From 645211f7881c00e482477e296d6378144739eb4a Mon Sep 17 00:00:00 2001 From: anthonywj Date: Mon, 30 Nov 2020 21:54:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=A4=87=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api-udims/pom.xml | 2 +- .../controller/auth/AuthAdminController.java | 2 +- .../controller/auth/CustomerController.java | 34 ++-- .../controller/auth/RegisterController.java | 5 +- .../controller/device/DeviceController.java | 138 ++++++++++---- .../device/DownloadDeviceHelper.java | 124 +++++++------ .../info/EnterpriseCertController.java | 2 +- .../info/FacidentcodeController.java | 18 +- .../publish/PostIdentifyController.java | 139 ++++++++++++-- .../publish/ProductClassifyController.java | 10 +- .../publish/SubUdiProductController.java | 36 +++- .../publish/UdiDeviceIdController.java | 93 +++++++++- .../publish/UdiProductController.java | 22 +-- .../udi/admin/dao/info/IdentifierDao.java | 4 + .../udi/admin/dao/publish/UdiDeviceIdDao.java | 4 + .../admin/dao/publish/UdiSubProductDao.java | 2 + .../glxp/udi/admin/dao/udid/DeviceMapper.java | 3 + .../entity/auth/CustomerDetailEntity.java | 2 +- .../admin/entity/auth/UserRegisterEntity.java | 1 + .../udi/admin/entity/info/CompanyEntity.java | 1 + .../admin/entity/info/FacidentcodeEntity.java | 1 + .../admin/entity/info/IdentifierEntity.java | 169 +++++++++++++++++- .../entity/publish/UdiDevicepkEntity.java | 2 + .../entity/publish/UdiProductEntity.java | 1 + .../entity/publish/UdiSubProductEntity.java | 1 + .../glxp/udi/admin/entity/udid/Device.java | 9 + .../udi/admin/entity/udid/DeviceEntity.java | 1 + .../req/info/FilterIdentifierRequest.java | 5 + .../publish/DeleteUdiSubProductRequest.java | 3 + .../publish/FilterUdiSubProductRequest.java | 1 + .../udi/admin/req/udid/DeviceListRequest.java | 1 + .../admin/req/udid/DeviceSearchRequest.java | 1 + .../admin/res/basic/FacidentcodeResponse.java | 2 + .../admin/res/udid/MedicalHistoryResonse.java | 2 +- .../auth/impl/CustomerInfoServiceImpl.java | 14 +- .../admin/service/info/IdentifierService.java | 6 + .../info/impl/IdentifierServiceImpl.java | 21 +++ .../service/publish/UdiDeviceIdService.java | 4 + .../service/publish/UdiSubProductService.java | 3 + .../publish/impl/UdiDeviceIdServiceImpl.java | 10 ++ .../impl/UdiSubProductServiceImpl.java | 12 +- .../com/glxp/udi/admin/util/HttpClient.java | 3 +- .../main/resources/application-pro.properties | 2 +- .../mybatis/mapper/auth/AuthAdminDao.xml | 20 +-- .../mybatis/mapper/auth/UserRegisterDao.xml | 5 +- .../mybatis/mapper/info/CompanyDao.xml | 5 +- .../mybatis/mapper/info/EnterpriseCertDao.xml | 2 +- .../mybatis/mapper/info/FacidentcodeDao.xml | 11 +- .../mybatis/mapper/info/IdentifierDao.xml | 54 +++++- .../mapper/publish/ProductClassifyDao.xml | 2 +- .../mybatis/mapper/publish/UdiDeviceIdDao.xml | 11 ++ .../mybatis/mapper/publish/UdiProductDao.xml | 12 +- .../mapper/publish/UdiSubProductDao.xml | 41 +++-- .../mybatis/mapper/udid/DeviceMapper.xml | 31 +++- .../classes/META-INF/api-udims.kotlin_module | Bin 16 -> 0 bytes .../target/classes/application-pro.properties | 2 +- .../com/glxp/udi/ApiAdminApplication.class | Bin 1344 -> 1344 bytes .../admin/annotation/AuthRuleAnnotation.class | Bin 450 -> 450 bytes .../udi/admin/aspect/AuthorizeAspect.class | Bin 4511 -> 4481 bytes .../glxp/udi/admin/config/CorsConfig.class | Bin 3255 -> 3249 bytes .../glxp/udi/admin/config/CorsFilter.class | Bin 1854 -> 1854 bytes .../udi/admin/config/DruidStatFilter.class | Bin 650 -> 650 bytes .../admin/config/DruidStatViewServlet.class | Bin 797 -> 797 bytes .../admin/config/MasterDataSourceConfig.class | Bin 2437 -> 2437 bytes .../udi/admin/config/PageHelperConfig.class | Bin 1116 -> 1116 bytes .../admin/config/PublicFileUrlConfig.class | Bin 990 -> 990 bytes .../glxp/udi/admin/config/WebMvcConfig.class | Bin 1451 -> 1451 bytes .../admin/constant/BussinessTypeUtils.class | Bin 2102 -> 2102 bytes .../udi/admin/constant/CookieConstant.class | Bin 416 -> 416 bytes .../udi/admin/constant/TestConstant.class | Bin 412 -> 412 bytes .../udi/admin/constant/TypeConstant.class | Bin 1065 -> 1065 bytes .../controller/auth/AuthAdminController.class | Bin 12625 -> 12557 bytes .../auth/AuthPermissionRuleController.class | Bin 4981 -> 4978 bytes .../controller/auth/AuthRoleController.class | Bin 10099 -> 10051 bytes .../auth/CustomerContactController.class | Bin 3691 -> 3691 bytes .../controller/auth/CustomerController.class | Bin 7803 -> 8420 bytes .../controller/auth/LoginController.class | Bin 7892 -> 7871 bytes .../controller/auth/RegisterController.class | Bin 16125 -> 16199 bytes .../controller/device/DeviceController.class | Bin 15247 -> 18594 bytes .../device/DownloadDeviceHelper.class | Bin 15634 -> 15349 bytes .../controller/info/CompanyController.class | Bin 3010 -> 3007 bytes .../info/EnterpriseCertController.class | Bin 6847 -> 6947 bytes .../info/FacidentcodeController.class | Bin 9805 -> 9956 bytes .../info/IdentifyCodeController.class | Bin 5322 -> 5322 bytes .../info/StandagencyController.class | Bin 4541 -> 4541 bytes .../inout/CodeContrastController.class | Bin 11059 -> 11013 bytes .../controller/inout/DruginfoController.class | Bin 12459 -> 12399 bytes .../controller/inout/OrderController.class | Bin 9083 -> 9074 bytes .../controller/inout/UnitController.class | Bin 4607 -> 4607 bytes .../inout/WareHouseController.class | Bin 19290 -> 19196 bytes .../inout/WhitecodeController.class | Bin 5306 -> 5292 bytes .../publish/PostIdentifyController.class | Bin 16047 -> 19545 bytes .../publish/ProductClassifyController.class | Bin 4745 -> 5018 bytes .../publish/SubUdiProductController.class | Bin 9526 -> 10707 bytes .../publish/UdiDeviceIdController.class | Bin 9441 -> 11895 bytes .../publish/UdiProductController.class | Bin 8300 -> 8542 bytes .../receipts/BussinessTypeController.class | Bin 5216 -> 5216 bytes .../receipts/ManuOrderController.class | Bin 8622 -> 8598 bytes .../receipts/MipsBarcodeController.class | Bin 2788 -> 2788 bytes .../receipts/ProductController.class | Bin 11168 -> 11146 bytes .../receipts/ProductInfoController.class | Bin 16890 -> 16852 bytes .../receipts/ReceiptsController.class | Bin 10505 -> 10473 bytes .../receipts/UnitMaintainController.class | Bin 5558 -> 5552 bytes .../udi/admin/dao/auth/AuthAdminDao.class | Bin 1316 -> 1316 bytes .../admin/dao/auth/AuthPermissionDao.class | Bin 849 -> 849 bytes .../dao/auth/AuthPermissionRuleDao.class | Bin 1089 -> 1089 bytes .../udi/admin/dao/auth/AuthRoleAdminDao.class | Bin 898 -> 898 bytes .../glxp/udi/admin/dao/auth/AuthRoleDao.class | Bin 1122 -> 1122 bytes .../admin/dao/auth/CustomerContacDao.class | Bin 993 -> 993 bytes .../udi/admin/dao/auth/CustomerInfoDao.class | Bin 1276 -> 1276 bytes .../udi/admin/dao/auth/UserRegisterDao.class | Bin 1089 -> 1089 bytes .../admin/dao/contrast/CodeContrastDao.class | Bin 847 -> 847 bytes .../dao/contrast/CustomercontrastDao.class | Bin 1379 -> 1379 bytes .../udi/admin/dao/contrast/WhitecodeDao.class | Bin 354 -> 354 bytes .../glxp/udi/admin/dao/info/CompanyDao.class | Bin 480 -> 480 bytes .../admin/dao/info/EnterpriseCertDao.class | Bin 1269 -> 1269 bytes .../udi/admin/dao/info/EnterpriseDao.class | Bin 1030 -> 1030 bytes .../udi/admin/dao/info/FacidentcodeDao.class | Bin 1244 -> 1244 bytes .../udi/admin/dao/info/IdentifierDao.class | Bin 1266 -> 1432 bytes .../udi/admin/dao/info/StandagencyDao.class | Bin 651 -> 651 bytes .../udi/admin/dao/inout/DruginfoDao.class | Bin 1696 -> 1696 bytes .../udi/admin/dao/inout/DruginfoMapper.class | Bin 1579 -> 1579 bytes .../udi/admin/dao/inout/ManuorderDao.class | Bin 970 -> 970 bytes .../glxp/udi/admin/dao/inout/OrderDao.class | Bin 1723 -> 1723 bytes .../glxp/udi/admin/dao/inout/UnitDao.class | Bin 782 -> 782 bytes .../udi/admin/dao/inout/WarehouseDao.class | Bin 1633 -> 1633 bytes .../admin/dao/inout/WarehousetempDao.class | Bin 1155 -> 1155 bytes .../dao/publish/ProductClassifyDao.class | Bin 535 -> 535 bytes .../admin/dao/publish/UdiDeviceCliDao.class | Bin 1024 -> 1024 bytes .../admin/dao/publish/UdiDeviceIdDao.class | Bin 1635 -> 1814 bytes .../admin/dao/publish/UdiDeviceSrgDao.class | Bin 964 -> 964 bytes .../admin/dao/publish/UdiDevicepkDao.class | Bin 1025 -> 1025 bytes .../udi/admin/dao/publish/UdiProductDao.class | Bin 1398 -> 1398 bytes .../admin/dao/publish/UdiSubProductDao.class | Bin 1121 -> 1338 bytes .../admin/dao/receipt/BussinessTypeDao.class | Bin 871 -> 871 bytes .../admin/dao/receipt/MipsBarcodeDao.class | Bin 982 -> 982 bytes .../udi/admin/dao/receipt/ProductDao.class | Bin 1304 -> 1304 bytes .../admin/dao/receipt/ProductInfoDao.class | Bin 1194 -> 1194 bytes .../udi/admin/dao/receipt/ReceiptDao.class | Bin 949 -> 949 bytes .../dao/receipt/ReceiptsdDetailDao.class | Bin 811 -> 811 bytes .../admin/dao/receipt/UnitMaintainDao.class | Bin 948 -> 948 bytes .../admin/dao/udid/ContactlistMapper.class | Bin 1413 -> 1413 bytes .../udi/admin/dao/udid/DeviceMapper.class | Bin 2618 -> 2759 bytes .../admin/dao/udid/DeviceclinicalMapper.class | Bin 1446 -> 1446 bytes .../admin/dao/udid/DevicedownloadMapper.class | Bin 1480 -> 1480 bytes .../admin/dao/udid/DevicepackageMapper.class | Bin 1435 -> 1435 bytes .../admin/dao/udid/DevicestorageMapper.class | Bin 1435 -> 1435 bytes .../udi/admin/entity/auth/AuthAdmin.class | Bin 6428 -> 6422 bytes .../admin/entity/auth/AuthPermission.class | Bin 2920 -> 2914 bytes .../entity/auth/AuthPermissionRule.class | Bin 5294 -> 5288 bytes .../glxp/udi/admin/entity/auth/AuthRole.class | Bin 5032 -> 5026 bytes .../udi/admin/entity/auth/AuthRoleAdmin.class | Bin 2409 -> 2403 bytes .../entity/auth/CustomerContactEntity.class | Bin 4237 -> 4231 bytes .../entity/auth/CustomerDetailEntity.class | Bin 9112 -> 9349 bytes .../entity/auth/CustomerInfoEntity.class | Bin 7192 -> 7186 bytes .../entity/auth/UpdateUserflagBean.class | Bin 2128 -> 2122 bytes .../entity/auth/UserRegisterEntity.class | Bin 9547 -> 10066 bytes .../contrast/CodeContrastDetailEntity.class | Bin 5321 -> 5315 bytes .../entity/contrast/CodeContrastEntity.class | Bin 3908 -> 3902 bytes .../contrast/CustomercontrastEntity.class | Bin 2589 -> 2583 bytes .../contrast/DownloadInfoResponse.class | Bin 9128 -> 9122 bytes .../entity/contrast/WhitecodeEntity.class | Bin 3436 -> 3430 bytes .../udi/admin/entity/info/CompanyEntity.class | Bin 7240 -> 7735 bytes .../entity/info/EnterpriseCertEntity.class | Bin 31792 -> 31839 bytes .../admin/entity/info/EnterpriseEntity.class | Bin 27245 -> 27286 bytes .../entity/info/FacidentcodeEntity.class | Bin 8884 -> 9198 bytes .../admin/entity/info/IdentifierEntity.class | Bin 11445 -> 5354 bytes .../info/RegisterInfoAttachEntity.class | Bin 4423 -> 4417 bytes .../entity/info/RegisterInfoEntity.class | Bin 12587 -> 12581 bytes .../admin/entity/info/StandagencyEntity.class | Bin 12541 -> 12535 bytes .../udi/admin/entity/inout/AddScanBean.class | Bin 2777 -> 2771 bytes .../admin/entity/inout/AddScanCodeBean.class | Bin 2235 -> 2229 bytes .../udi/admin/entity/inout/Druginfo.class | Bin 3577 -> 3571 bytes .../inout/DruginfoExample$Criteria.class | Bin 18509 -> 18509 bytes .../inout/DruginfoExample$Criterion.class | Bin 2413 -> 2407 bytes .../DruginfoExample$GeneratedCriteria.class | Bin 26134 -> 26287 bytes .../admin/entity/inout/DruginfoExample.class | Bin 2793 -> 2790 bytes .../admin/entity/inout/MipsDrugEntity.class | Bin 6651 -> 6645 bytes .../udi/admin/entity/inout/OrderEntity.class | Bin 6038 -> 6032 bytes .../glxp/udi/admin/entity/inout/Unit.class | Bin 4103 -> 4097 bytes .../admin/entity/inout/WarehouseEntity.class | Bin 9893 -> 9887 bytes .../entity/inout/WarehousetempEntity.class | Bin 9909 -> 9903 bytes .../admin/entity/publish/PostDataBean.class | Bin 28422 -> 28463 bytes .../publish/PostDeviceClinicalBean.class | Bin 2742 -> 2736 bytes .../publish/PostDevicePackageBean.class | Bin 3284 -> 3278 bytes .../publish/PostDeviceStorageBean.class | Bin 3137 -> 3131 bytes .../entity/publish/PostIdentifyEntity.class | Bin 2787 -> 2781 bytes .../entity/publish/PostSuccessBean.class | Bin 2887 -> 2881 bytes .../publish/ProductClassifyEntity.class | Bin 4615 -> 4609 bytes .../entity/publish/UdiDeviceCliEntity.class | Bin 8569 -> 8563 bytes .../entity/publish/UdiDeviceIdEntity.class | Bin 20331 -> 20348 bytes .../entity/publish/UdiDeviceSrgEntity.class | Bin 9139 -> 9133 bytes .../entity/publish/UdiDevicepkEntity.class | Bin 9219 -> 9213 bytes .../entity/publish/UdiProductEntity.class | Bin 8326 -> 8813 bytes .../entity/publish/UdiSubProductEntity.class | Bin 27152 -> 27865 bytes .../entity/receipt/BussinessTypeEntity.class | Bin 3388 -> 3382 bytes .../entity/receipt/CountProductEntity.class | Bin 1620 -> 1617 bytes .../entity/receipt/FilterDrugEntity.class | Bin 2394 -> 2388 bytes .../entity/receipt/ManuOrderEntity.class | Bin 10212 -> 10206 bytes .../entity/receipt/MipsBarcodeEntity.class | Bin 7249 -> 7243 bytes .../entity/receipt/ProductInfoEntity.class | Bin 7360 -> 7354 bytes .../entity/receipt/ProductOrderEntity.class | Bin 5066 -> 5060 bytes .../admin/entity/receipt/ReceiptsEntity.class | Bin 10720 -> 10714 bytes .../receipt/ReceiptsdDetailEntity.class | Bin 9199 -> 9193 bytes .../entity/receipt/UnitMaintainEntity.class | Bin 4621 -> 4615 bytes .../udi/admin/entity/udid/Contactlist.class | Bin 1961 -> 1955 bytes .../udid/ContactlistExample$Criteria.class | Bin 9916 -> 9916 bytes .../udid/ContactlistExample$Criterion.class | Bin 2422 -> 2416 bytes ...ContactlistExample$GeneratedCriteria.class | Bin 14839 -> 14839 bytes .../entity/udid/ContactlistExample.class | Bin 2416 -> 2413 bytes .../glxp/udi/admin/entity/udid/Device.class | Bin 12194 -> 12399 bytes .../udi/admin/entity/udid/DeviceEntity.class | Bin 33586 -> 34387 bytes .../entity/udid/DeviceExample$Criteria.class | Bin 70724 -> 70724 bytes .../entity/udid/DeviceExample$Criterion.class | Bin 2402 -> 2396 bytes .../DeviceExample$GeneratedCriteria.class | Bin 97787 -> 98035 bytes .../udi/admin/entity/udid/DeviceExample.class | Bin 2361 -> 2358 bytes .../udi/admin/entity/udid/DeviceHistory.class | Bin 2502 -> 2496 bytes .../admin/entity/udid/Deviceclinical.class | Bin 1952 -> 1946 bytes .../udid/DeviceclinicalExample$Criteria.class | Bin 9865 -> 9865 bytes .../DeviceclinicalExample$Criterion.class | Bin 2434 -> 2428 bytes ...iceclinicalExample$GeneratedCriteria.class | Bin 14713 -> 14713 bytes .../entity/udid/DeviceclinicalExample.class | Bin 2449 -> 2446 bytes .../admin/entity/udid/Devicedownload.class | Bin 2986 -> 2980 bytes .../udid/DevicedownloadExample$Criteria.class | Bin 16184 -> 16184 bytes .../DevicedownloadExample$Criterion.class | Bin 2434 -> 2428 bytes ...icedownloadExample$GeneratedCriteria.class | Bin 23392 -> 23488 bytes .../entity/udid/DevicedownloadExample.class | Bin 2449 -> 2446 bytes .../udi/admin/entity/udid/Devicepackage.class | Bin 2199 -> 2193 bytes .../udid/DevicepackageExample$Criteria.class | Bin 11316 -> 11316 bytes .../udid/DevicepackageExample$Criterion.class | Bin 2430 -> 2424 bytes ...vicepackageExample$GeneratedCriteria.class | Bin 16813 -> 16821 bytes .../entity/udid/DevicepackageExample.class | Bin 2438 -> 2435 bytes .../udi/admin/entity/udid/Devicestorage.class | Bin 2178 -> 2172 bytes .../udid/DevicestorageExample$Criteria.class | Bin 11237 -> 11237 bytes .../udid/DevicestorageExample$Criterion.class | Bin 2430 -> 2424 bytes ...vicestorageExample$GeneratedCriteria.class | Bin 16495 -> 16505 bytes .../entity/udid/DevicestorageExample.class | Bin 2438 -> 2435 bytes .../udi/admin/entity/udid/TokenEntity.class | Bin 1723 -> 1723 bytes .../udi/admin/entity/udid/UdiEntity.class | Bin 1423 -> 1423 bytes .../udi/admin/exception/JsonException.class | Bin 1107 -> 1107 bytes .../handler/GlobalExceptionHandler.class | Bin 1821 -> 1821 bytes .../glxp/udi/admin/req/ListPageRequest.class | Bin 2477 -> 2471 bytes .../req/auth/AuthAdminQueryRequest.class | Bin 3778 -> 3772 bytes .../admin/req/auth/AuthAdminSaveRequest.class | Bin 7393 -> 7387 bytes .../auth/AuthPermissionRuleSaveRequest.class | Bin 4633 -> 4627 bytes .../admin/req/auth/AuthRoleAuthRequest.class | Bin 2581 -> 2575 bytes .../admin/req/auth/AuthRoleQueryRequest.class | Bin 2125 -> 2119 bytes .../admin/req/auth/AuthRoleSaveRequest.class | Bin 4056 -> 4050 bytes .../auth/CustomerContactFilterRequest.class | Bin 1715 -> 1709 bytes .../req/auth/CustomerInfoFilterRequest.class | Bin 910 -> 910 bytes .../udi/admin/req/auth/LoginRequest.class | Bin 2167 -> 2161 bytes .../admin/req/auth/RegisterCheckRequest.class | Bin 2495 -> 2489 bytes .../admin/req/auth/ResetPasswdRequest.class | Bin 3189 -> 3183 bytes .../req/auth/UpdatePasswordRequest.class | Bin 2885 -> 2879 bytes .../req/auth/UserResisterFilterRequest.class | Bin 2062 -> 2056 bytes .../req/contrast/CodeContrastRequest.class | Bin 1988 -> 1982 bytes .../DeleteCustomerContrastRequest.class | Bin 2190 -> 2184 bytes .../contrast/FilterCodeContrastRequest.class | Bin 3010 -> 3004 bytes .../udi/admin/req/info/CompanyRequest.class | Bin 1606 -> 1600 bytes .../info/DeleteEnterpriseCertRequest.class | Bin 1527 -> 1521 bytes .../req/info/DeleteEnterpriseRequest.class | Bin 1511 -> 1505 bytes .../req/info/DeleteFacidentcodeRequest.class | Bin 1519 -> 1513 bytes .../req/info/DeleteIdentifierRequest.class | Bin 1511 -> 1505 bytes .../req/info/DeleteStandagencyRequest.class | Bin 1515 -> 1509 bytes .../info/FilterEnterpriseCertRequest.class | Bin 2911 -> 2905 bytes .../req/info/FilterEnterpriseRequest.class | Bin 917 -> 914 bytes .../req/info/FilterFacidentcodeRequest.class | Bin 2946 -> 2940 bytes .../req/info/FilterIdentifierRequest.class | Bin 3824 -> 4685 bytes .../udi/admin/req/inout/AddScanRequest.class | Bin 1883 -> 1877 bytes .../udi/admin/req/inout/CommitRequest.class | Bin 1508 -> 1502 bytes .../admin/req/inout/DeleteCodeRequest.class | Bin 1780 -> 1774 bytes .../udi/admin/req/inout/DeleteRequest.class | Bin 2036 -> 2030 bytes .../admin/req/inout/DrugFilterRequest.class | Bin 2838 -> 2832 bytes .../udi/admin/req/inout/DrugInfoRequest.class | Bin 1577 -> 1571 bytes .../admin/req/inout/DrugsSaveRequest.class | Bin 1882 -> 1876 bytes .../req/inout/OrderFilterByCodeRequest.class | Bin 1575 -> 1569 bytes .../admin/req/inout/OrderFilterRequest.class | Bin 3289 -> 3283 bytes .../admin/req/inout/OrderMergeRequest.class | Bin 1814 -> 1808 bytes .../admin/req/inout/OrderQueryRequest.class | Bin 917 -> 914 bytes .../admin/req/inout/OrderSaveRequest.class | Bin 3608 -> 3602 bytes .../udi/admin/req/inout/UnitKeyRequest.class | Bin 1528 -> 1522 bytes .../udi/admin/req/inout/UnitSaveRequest.class | Bin 1859 -> 1853 bytes .../req/inout/UpdateExportStatusRequest.class | Bin 2013 -> 2007 bytes .../req/inout/WarehouseQueryRequest.class | Bin 2013 -> 2007 bytes .../req/inout/WarehouseSaveRequest.class | Bin 5815 -> 5809 bytes .../req/publish/AddSubProductRequest.class | Bin 3491 -> 3485 bytes .../req/publish/AddUdiDeviceIdRequest.class | Bin 2674 -> 2668 bytes .../publish/DeleteUdiDeviceCliRequest.class | Bin 1982 -> 1976 bytes .../publish/DeleteUdiDeviceIdRequest.class | Bin 1521 -> 1515 bytes .../publish/DeleteUdiDeviceSrgRequest.class | Bin 1982 -> 1976 bytes .../publish/DeleteUdiDevicepkRequest.class | Bin 1978 -> 1972 bytes .../req/publish/DeleteUdiProductRequest.class | Bin 2080 -> 2074 bytes .../publish/DeleteUdiSubProductRequest.class | Bin 399 -> 1523 bytes .../admin/req/publish/FilterCliRequest.class | Bin 1559 -> 1553 bytes .../req/publish/FilterDeviceIdRequest.class | Bin 3315 -> 3309 bytes .../admin/req/publish/FilterPkgRequest.class | Bin 1531 -> 1525 bytes .../req/publish/FilterUdiProductRequest.class | Bin 2067 -> 2061 bytes .../publish/FilterUdiSubProductRequest.class | Bin 2086 -> 2501 bytes .../PostIdentifyKeyRequest$DataSetBean.class | Bin 1005 -> 1005 bytes .../req/publish/PostIdentifyKeyRequest.class | Bin 1382 -> 1382 bytes .../req/publish/PostIdentifyRequest.class | Bin 1784 -> 1778 bytes .../req/publish/ProductclassifyRequest.class | Bin 2422 -> 2416 bytes .../admin/req/receipt/AddByCodeRequest.class | Bin 2066 -> 2060 bytes .../admin/req/receipt/AddProductRequest.class | Bin 4781 -> 4775 bytes .../AddReceiptRequest$ReceiptRequest.class | Bin 2580 -> 2580 bytes .../admin/req/receipt/AddReceiptRequest.class | Bin 2069 -> 2063 bytes .../receipt/BussinessTypeFilterRequest.class | Bin 2065 -> 2059 bytes .../req/receipt/CombineDrugRequest.class | Bin 2254 -> 2248 bytes .../admin/req/receipt/CombineRequest.class | Bin 2238 -> 2232 bytes .../req/receipt/CombineUnitRequest.class | Bin 2254 -> 2248 bytes .../req/receipt/ManuorderFilterRequest.class | Bin 2456 -> 2450 bytes .../req/receipt/MipsBarcodeRequest.class | Bin 1977 -> 1971 bytes .../req/receipt/ProductFilterRequest.class | Bin 3336 -> 3330 bytes .../receipt/ProductInfoFilterRequest.class | Bin 3312 -> 3306 bytes .../req/receipt/ProductMipsRequest.class | Bin 2062 -> 2056 bytes .../req/receipt/ReceiptDetailRequest.class | Bin 1598 -> 1592 bytes .../req/receipt/ReceiptFilterRequest.class | Bin 2840 -> 2834 bytes .../receipt/UnitMaintainFilterRequest.class | Bin 1576 -> 1570 bytes .../udi/admin/req/udid/DeviceDiRequest.class | Bin 1570 -> 1564 bytes .../admin/req/udid/DeviceListRequest.class | Bin 1538 -> 1975 bytes .../udi/admin/req/udid/DeviceRequest.class | Bin 2937 -> 2931 bytes .../admin/req/udid/DeviceSearchRequest.class | Bin 3382 -> 3843 bytes .../req/udid/DownloadDeviceRequest.class | Bin 1376 -> 1373 bytes .../admin/req/udid/DownloadDiRequest.class | Bin 859 -> 859 bytes .../DownloadHistoryRequest$DataSetBean.class | Bin 785 -> 785 bytes .../req/udid/DownloadHistoryRequest.class | Bin 1596 -> 1596 bytes .../udi/admin/req/udid/TokenRequest.class | Bin 1924 -> 1918 bytes .../admin/req/udid/VerifyCodeRequest.class | Bin 1494 -> 1488 bytes .../udi/admin/res/PageSimpleResponse.class | Bin 2511 -> 2505 bytes .../glxp/udi/admin/res/ad/AdResponse.class | Bin 13257 -> 13251 bytes .../udi/admin/res/ad/AdSimpleResponse.class | Bin 2954 -> 2948 bytes .../udi/admin/res/ad/AdSiteResponse.class | Bin 3767 -> 3761 bytes .../admin/res/auth/AuthAdminResponse.class | Bin 7621 -> 7615 bytes .../res/auth/AuthAdminRoleResponse.class | Bin 2024 -> 2018 bytes .../AuthPermissionRuleMergeResponse.class | Bin 5100 -> 5094 bytes .../udi/admin/res/auth/AuthRoleResponse.class | Bin 4044 -> 4038 bytes .../udi/admin/res/auth/CheckCodeRequest.class | Bin 1954 -> 1948 bytes .../res/auth/LoginUserInfoResponse.class | Bin 4249 -> 4243 bytes .../admin/res/basic/AllFCodeResponse.class | Bin 1914 -> 1908 bytes .../res/basic/FacidentcodeResponse.class | Bin 4769 -> 5083 bytes .../res/contrast/CodeContrastResponse.class | Bin 2549 -> 2543 bytes .../res/contrast/WhitecodeResponse.class | Bin 1966 -> 1960 bytes .../admin/res/inout/DruginfoResponse.class | Bin 6798 -> 6792 bytes .../res/inout/MipsDrugResponse$DataBean.class | Bin 1220 -> 1220 bytes .../admin/res/inout/MipsDrugResponse.class | Bin 1307 -> 1307 bytes .../MipsManuorderResponse$DataBean.class | Bin 1249 -> 1249 bytes .../res/inout/MipsManuorderResponse.class | Bin 1342 -> 1342 bytes .../udi/admin/res/inout/OrderResponse.class | Bin 3596 -> 3590 bytes .../admin/res/inout/ProductInfoResponse.class | Bin 6041 -> 6041 bytes .../admin/res/inout/WarehouseResponse.class | Bin 5803 -> 5797 bytes ...se$ErrorListBean$ErrorDetailListBean.class | Bin 1117 -> 1117 bytes .../PostSaveResponse$ErrorListBean.class | Bin 1562 -> 1562 bytes .../admin/res/publish/PostSaveResponse.class | Bin 2299 -> 2299 bytes .../res/publish/ProductClassifyResponse.class | Bin 2816 -> 2810 bytes .../res/publish/UdiDeviceIdResponse.class | Bin 31729 -> 31774 bytes .../res/publish/UdiProductResponse.class | Bin 1926 -> 1920 bytes ...ipsBarcodeResponse$DataBean$ListBean.class | Bin 2075 -> 2075 bytes .../MipsBarcodeResponse$DataBean.class | Bin 1397 -> 1397 bytes .../res/receipt/MipsBarcodeResponse.class | Bin 1340 -> 1340 bytes .../res/receipt/SelectManuorderResponse.class | Bin 8331 -> 8325 bytes .../udid/DataSetBean$ContactListBean.class | Bin 1133 -> 1133 bytes .../udid/DataSetBean$DeviceClinicalBean.class | Bin 1124 -> 1124 bytes .../udid/DataSetBean$DevicePackageBean.class | Bin 1371 -> 1371 bytes .../udid/DataSetBean$DeviceStorageBean.class | Bin 1308 -> 1308 bytes .../glxp/udi/admin/res/udid/DataSetBean.class | Bin 12498 -> 12498 bytes .../res/udid/MedicalHistoryResonse.class | Bin 2088 -> 2088 bytes .../udi/admin/res/udid/MedicalResonse.class | Bin 2064 -> 2064 bytes .../res/udid/MedicalSingleResponse.class | Bin 1401 -> 1401 bytes .../udi/admin/res/udid/ProgressResponse.class | Bin 2056 -> 2053 bytes .../admin/service/auth/AuthAdminService.class | Bin 1247 -> 1247 bytes .../admin/service/auth/AuthLoginService.class | Bin 327 -> 327 bytes .../auth/AuthPermissionRuleService.class | Bin 907 -> 907 bytes .../service/auth/AuthPermissionService.class | Bin 780 -> 780 bytes .../service/auth/AuthRoleAdminService.class | Bin 986 -> 986 bytes .../admin/service/auth/AuthRoleService.class | Bin 1159 -> 1159 bytes .../service/auth/CustomerInfoService.class | Bin 1208 -> 1208 bytes .../service/auth/UserRegisterService.class | Bin 1003 -> 1003 bytes .../auth/impl/AuthAdminServiceImpl.class | Bin 3997 -> 3997 bytes .../auth/impl/AuthLoginServiceImpl.class | Bin 4048 -> 4039 bytes .../impl/AuthPermissionRuleServiceImpl.class | Bin 3307 -> 3304 bytes .../auth/impl/AuthPermissionServiceImpl.class | Bin 2006 -> 2006 bytes .../auth/impl/AuthRoleAdminServiceImpl.class | Bin 3880 -> 3862 bytes .../auth/impl/AuthRoleServiceImpl.class | Bin 3577 -> 3577 bytes .../auth/impl/CustomerContactService.class | Bin 933 -> 933 bytes .../impl/CustomerContactServiceImpl.class | Bin 2585 -> 2585 bytes .../auth/impl/CustomerInfoServiceImpl.class | Bin 4715 -> 4825 bytes .../auth/impl/UserRegisterServiceImpl.class | Bin 2899 -> 2899 bytes .../contrast/CodeContrastService.class | Bin 1068 -> 1068 bytes .../contrast/CustomercontrastService.class | Bin 1207 -> 1207 bytes .../service/contrast/WhitecodeService.class | Bin 411 -> 411 bytes .../impl/CodeContrastServiceImpl.class | Bin 2789 -> 2789 bytes .../impl/CustomercontrastServiceImpl.class | Bin 2602 -> 2602 bytes .../contrast/impl/WhitecodeServiceImpl.class | Bin 1677 -> 1677 bytes .../admin/service/info/CompanyService.class | Bin 411 -> 411 bytes .../service/info/EnterpriseCertService.class | Bin 980 -> 980 bytes .../service/info/FacidentcodeService.class | Bin 1072 -> 1072 bytes .../service/info/IdentifierService.class | Bin 1094 -> 1218 bytes .../service/info/StandagencyService.class | Bin 582 -> 582 bytes .../info/impl/CompanyServiceImpl.class | Bin 1225 -> 1225 bytes .../info/impl/EnterpriseCertServiceImpl.class | Bin 2686 -> 2686 bytes .../info/impl/FacidentcodeServiceImpl.class | Bin 2405 -> 2405 bytes .../info/impl/IdentifierServiceImpl.class | Bin 2962 -> 3417 bytes .../info/impl/StandagencyServiceImpl.class | Bin 1526 -> 1526 bytes .../admin/service/inout/DeviceService.class | Bin 1976 -> 1976 bytes .../admin/service/inout/DruginfoService.class | Bin 1362 -> 1362 bytes .../admin/service/inout/OrderService.class | Bin 1429 -> 1429 bytes .../udi/admin/service/inout/UnitService.class | Bin 839 -> 839 bytes .../service/inout/WarehouseService.class | Bin 1925 -> 1925 bytes .../inout/impl/DeviceServiceImpl.class | Bin 12209 -> 12167 bytes .../inout/impl/DruginfoServiceImpl.class | Bin 4412 -> 4406 bytes .../service/inout/impl/OrderServiceImpl.class | Bin 4052 -> 4052 bytes .../service/inout/impl/UnitServiceImpl.class | Bin 2792 -> 2792 bytes .../inout/impl/WareHouseServiceImpl.class | Bin 5091 -> 5091 bytes .../service/publish/UdiDeviceCliService.class | Bin 852 -> 852 bytes .../service/publish/UdiDeviceIdService.class | Bin 1463 -> 1642 bytes .../service/publish/UdiDeviceSrgService.class | Bin 976 -> 976 bytes .../service/publish/UdiDevicepkService.class | Bin 956 -> 956 bytes .../service/publish/UdiProductService.class | Bin 1329 -> 1329 bytes .../publish/UdiSubProductService.class | Bin 949 -> 1166 bytes .../impl/UdiDeviceCliServiceImpl.class | Bin 2069 -> 2069 bytes .../publish/impl/UdiDeviceIdServiceImpl.class | Bin 3746 -> 4083 bytes .../impl/UdiDeviceSrgServiceImpl.class | Bin 2067 -> 2067 bytes .../publish/impl/UdiDevicepkServiceImpl.class | Bin 2040 -> 2040 bytes .../publish/impl/UdiProductServiceImpl.class | Bin 3138 -> 3138 bytes .../impl/UdiSubProductServiceImpl.class | Bin 2695 -> 3091 bytes .../receipts/BussinessTypeService.class | Bin 700 -> 700 bytes .../service/receipts/ManuorderService.class | Bin 704 -> 704 bytes .../service/receipts/MipsBarcodeService.class | Bin 650 -> 650 bytes .../service/receipts/ProductInfoService.class | Bin 1005 -> 1005 bytes .../service/receipts/ProductService.class | Bin 1028 -> 1028 bytes .../receipts/ReceiptDetailService.class | Bin 646 -> 646 bytes .../service/receipts/ReceiptsService.class | Bin 762 -> 762 bytes .../receipts/UnitMaintainService.class | Bin 759 -> 759 bytes .../impl/BussinessTypeServiceImpl.class | Bin 2317 -> 2317 bytes .../receipts/impl/ManuorderServiceImpl.class | Bin 2352 -> 2352 bytes .../impl/MipsBarcodeServiceImpl.class | Bin 2294 -> 2294 bytes .../impl/ProductInfoServiceImpl.class | Bin 3126 -> 3126 bytes .../receipts/impl/ProductServiceImpl.class | Bin 3016 -> 3016 bytes .../impl/ReceiptDetailServiceImpl.class | Bin 2051 -> 2051 bytes .../receipts/impl/ReceiptsServiceImpl.class | Bin 2379 -> 2379 bytes .../impl/UnitMaintainServiceImpl.class | Bin 2367 -> 2367 bytes ...ecutorConfig$MyAsyncExceptionHandler.class | Bin 1905 -> 1905 bytes .../udi/admin/thread/TaskExecutorConfig.class | Bin 2009 -> 2009 bytes .../com/glxp/udi/admin/util/CacheUtils.class | Bin 3989 -> 3989 bytes .../com/glxp/udi/admin/util/CheckUtils.class | Bin 2177 -> 2168 bytes .../com/glxp/udi/admin/util/DateUtil.class | Bin 8070 -> 8055 bytes .../glxp/udi/admin/util/FastJsonUtils$1.class | Bin 631 -> 631 bytes .../glxp/udi/admin/util/FastJsonUtils.class | Bin 1758 -> 1758 bytes .../glxp/udi/admin/util/FilterUdiUtils.class | Bin 2850 -> 2844 bytes .../com/glxp/udi/admin/util/HttpClient.class | Bin 4055 -> 4098 bytes .../com/glxp/udi/admin/util/IpUtils.class | Bin 2453 -> 2438 bytes .../com/glxp/udi/admin/util/JwtUtils.class | Bin 4018 -> 4003 bytes .../com/glxp/udi/admin/util/Md5Utils.class | Bin 1384 -> 1378 bytes .../glxp/udi/admin/util/PasswordUtils.class | Bin 483 -> 483 bytes .../admin/util/PermissionRuleTreeUtils.class | Bin 1974 -> 1968 bytes .../glxp/udi/admin/util/PublicFileUtils.class | Bin 932 -> 932 bytes .../udi/admin/util/ReceiptBeanUtils.class | Bin 2959 -> 2956 bytes .../com/glxp/udi/admin/util/TreeUtils.class | Bin 347 -> 347 bytes .../com/glxp/udi/admin/util/UdidConfig.class | Bin 600 -> 600 bytes .../com/glxp/udi/admin/util/UuidUtils.class | Bin 646 -> 646 bytes .../udi/admin/util/WarehousBeanUtils.class | Bin 9399 -> 9396 bytes .../util/serializer/Date2LongSerializer.class | Bin 1360 -> 1360 bytes .../mybatis/mapper/auth/AuthAdminDao.xml | 20 +-- .../mybatis/mapper/auth/UserRegisterDao.xml | 5 +- .../mybatis/mapper/info/CompanyDao.xml | 5 +- .../mybatis/mapper/info/EnterpriseCertDao.xml | 2 +- .../mybatis/mapper/info/FacidentcodeDao.xml | 11 +- .../mybatis/mapper/info/IdentifierDao.xml | 54 +++++- .../mapper/publish/ProductClassifyDao.xml | 2 +- .../mybatis/mapper/publish/UdiDeviceIdDao.xml | 11 ++ .../mybatis/mapper/publish/UdiProductDao.xml | 12 +- .../mapper/publish/UdiSubProductDao.xml | 41 +++-- .../mybatis/mapper/udid/DeviceMapper.xml | 31 +++- api-udims/target/classes/static/.gitignore | 2 - api-udims/target/classes/templates/.gitignore | 2 - 475 files changed, 1047 insertions(+), 263 deletions(-) delete mode 100644 api-udims/target/classes/META-INF/api-udims.kotlin_module delete mode 100644 api-udims/target/classes/static/.gitignore delete mode 100644 api-udims/target/classes/templates/.gitignore diff --git a/api-udims/pom.xml b/api-udims/pom.xml index 1cbf90a..918bfb3 100644 --- a/api-udims/pom.xml +++ b/api-udims/pom.xml @@ -155,7 +155,7 @@ - UDIC_SALE_Server + UDIC_UDI_Server diff --git a/api-udims/src/main/java/com/glxp/udi/admin/controller/auth/AuthAdminController.java b/api-udims/src/main/java/com/glxp/udi/admin/controller/auth/AuthAdminController.java index fcb9951..efc5874 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/controller/auth/AuthAdminController.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/controller/auth/AuthAdminController.java @@ -176,7 +176,7 @@ public class AuthAdminController { if (authAdmin.getPassWord() != null) { authAdmin.setPassWord(PasswordUtils.authAdminPwd(authAdmin.getPassWord())); } - authAdmin.setCustomerId((long) 110); + authAdmin.setCustomerId( authAdminSaveRequest.getCustomerId()); //测试用 boolean b = authAdminService.insertAuthAdmin(authAdmin); authAdmin = authAdminService.findByUserName(authAdmin.getUserName()); diff --git a/api-udims/src/main/java/com/glxp/udi/admin/controller/auth/CustomerController.java b/api-udims/src/main/java/com/glxp/udi/admin/controller/auth/CustomerController.java index b8d962d..05ad09a 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/controller/auth/CustomerController.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/controller/auth/CustomerController.java @@ -23,6 +23,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.validation.Valid; +import java.util.ArrayList; import java.util.List; @RestController @@ -34,7 +35,7 @@ public class CustomerController { @Resource private CustomerContactService customerContactService; @Resource - private UserRegisterService userRegisterService; + private UserRegisterService userRegisterService; @Resource private AuthAdminService authAdminService; @Resource @@ -74,20 +75,33 @@ public class CustomerController { CustomerInfoEntity customerInfoEntity = new CustomerInfoEntity(); BeanUtils.copyProperties(customerDetailEntity, customerInfoEntity); boolean b = customerInfoService.updateCustomerInfo(customerInfoEntity); - if(customerDetailEntity.getUserFlag()!=null){ + if (customerDetailEntity.getUserFlag() != null) { UpdateUserflagBean userflagBean = new UpdateUserflagBean(); userflagBean.setCustomerId(customerDetailEntity.getCustomerId()); userflagBean.setUserFlag(customerDetailEntity.getUserFlag()); authAdminService.updateUserByCustomerId(userflagBean); } -// CustomerContactEntity customerContactEntity = new CustomerContactEntity(); -// BeanUtils.copyProperties(customerContactEntity, customerContactEntity); -// boolean c = customerContactService.updateCustomerContact(customerContactEntity); - if (!b ) { + + //更新角色 + List roles = new ArrayList<>(); + List authAdmins = authAdminService.findByCustomerId(customerDetailEntity.getCustomerId()); + if (authAdmins != null && authAdmins.size() > 0) { + for (AuthAdmin authAdmin : authAdmins) { + authRoleAdminService.deleteByAdminId(authAdmin.getId()); + if (customerDetailEntity.getRoleId() != null) { + roles.add(Long.parseLong(customerDetailEntity.getRoleId())); + authRoleAdminService.insertRolesAdminIdAll(roles, authAdmin.getId()); + } + } + } + + + if (!b) { return ResultVOUtils.error(ResultEnum.NOT_NETWORK); } return ResultVOUtils.success("更新成功"); } + @PostMapping("salewarehouse/customer/modify") public BaseResponse modifyCustomer(@RequestBody @Valid CustomerDetailEntity customerDetailEntity, BindingResult bindingResult) { @@ -102,7 +116,7 @@ public class CustomerController { CustomerContactEntity customerContactEntity = new CustomerContactEntity(); BeanUtils.copyProperties(customerDetailEntity, customerContactEntity); boolean c = customerContactService.updateCustomerContact(customerContactEntity); - if (!b ) { + if (!b) { return ResultVOUtils.error(ResultEnum.NOT_NETWORK); } return ResultVOUtils.success("更新成功"); @@ -121,9 +135,9 @@ public class CustomerController { userRegisterService.deleteByCustomerId(Long.parseLong(id)); - List authAdmins = authAdminService.findByCustomerId(Long.parseLong(id)); - if(authAdmins!=null && authAdmins.size()>0){ - for(int i =0;i authAdmins = authAdminService.findByCustomerId(Long.parseLong(id)); + if (authAdmins != null && authAdmins.size() > 0) { + for (int i = 0; i < authAdmins.size(); i++) { authRoleAdminService.deleteByAdminId(authAdmins.get(i).getId()); } } diff --git a/api-udims/src/main/java/com/glxp/udi/admin/controller/auth/RegisterController.java b/api-udims/src/main/java/com/glxp/udi/admin/controller/auth/RegisterController.java index 3c57f32..e3077bd 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/controller/auth/RegisterController.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/controller/auth/RegisterController.java @@ -263,7 +263,7 @@ public class RegisterController { customerInfoEntity.setCreditNum(userRegisterEntity.getCreditNum()); customerInfoEntity.setCustomerName(userRegisterEntity.getNickName()); customerInfoEntity.setUserFlag(1); - customerInfoEntity.setUserMax(10); + customerInfoEntity.setUserMax(2); customerInfoEntity.setRoleId(registerCheckRequest.getRoles()+""); customerInfoEntity.setCompanyName(userRegisterEntity.getCompanyName()); List roles = new ArrayList<>(); @@ -288,13 +288,14 @@ public class RegisterController { CompanyEntity companyEntity = new CompanyEntity(); companyEntity.setCustomerId(userId); companyEntity.setArea(userRegisterEntity.getArea()); + companyEntity.setAreaCode(userRegisterEntity.getAreaCode()); companyEntity.setDetailAddr(userRegisterEntity.getDetailAddr()); companyEntity.setContacts(customerContactEntity.getContacts()); companyEntity.setEmail(userRegisterEntity.getEmail()); companyEntity.setMobile(userRegisterEntity.getMobile()); companyEntity.setTel(userRegisterEntity.getTel()); companyEntity.setCompanyName(userRegisterEntity.getCompanyName()); - companyEntity.setBussinessStatus(userRegisterEntity.getBussinessStatus()); + companyEntity.setClasses(userRegisterEntity.getBussinessStatus()+""); companyEntity.setCreditNum(userRegisterEntity.getCreditNum()); companyService.insertCompany(companyEntity); diff --git a/api-udims/src/main/java/com/glxp/udi/admin/controller/device/DeviceController.java b/api-udims/src/main/java/com/glxp/udi/admin/controller/device/DeviceController.java index 7469350..b3f2dcd 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/controller/device/DeviceController.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/controller/device/DeviceController.java @@ -1,15 +1,21 @@ package com.glxp.udi.admin.controller.device; import com.github.pagehelper.PageInfo; +import com.glxp.udi.admin.annotation.AuthRuleAnnotation; import com.glxp.udi.admin.dao.udid.DeviceMapper; import com.glxp.udi.admin.dao.udid.DevicedownloadMapper; +import com.glxp.udi.admin.entity.auth.AuthAdmin; +import com.glxp.udi.admin.entity.info.CompanyEntity; import com.glxp.udi.admin.entity.udid.*; +import com.glxp.udi.admin.exception.JsonException; import com.glxp.udi.admin.req.udid.*; import com.glxp.udi.admin.res.PageSimpleResponse; import com.glxp.udi.admin.res.udid.ProgressResponse; +import com.glxp.udi.admin.service.auth.AuthAdminService; import com.glxp.udi.admin.service.info.CompanyService; import com.glxp.udi.admin.service.inout.DeviceService; import com.glxp.udi.admin.service.inout.DruginfoService; +import com.glxp.udi.admin.service.publish.UdiDeviceIdService; import com.glxp.udi.common.enums.ResultEnum; import com.glxp.udi.common.res.BaseResponse; import com.glxp.udi.common.util.ResultVOUtils; @@ -19,8 +25,11 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import java.util.ArrayList; import java.util.List; @@ -32,6 +41,8 @@ public class DeviceController { DeviceMapper deviceMapper; @Resource DruginfoService druginfoService; + @Resource + AuthAdminService authAdminService; @Resource private DeviceService deviceService; @@ -82,11 +93,9 @@ public class DeviceController { } String key = deviceListRequest.getKey(); - boolean isScan = false; if (key != null && key.length() > 22) { key = key.substring(2, 16); deviceListRequest.setKey(key); - isScan = true; } Device device = deviceService.searchByBs(key); long total = 1; @@ -121,14 +130,19 @@ public class DeviceController { pageSimpleResponse.setList(deviceEntityList); return ResultVOUtils.success(pageSimpleResponse); } - @GetMapping("warehouse/device/unionSearch") public BaseResponse search(@Valid DeviceSearchRequest deviceSearchRequest, BindingResult bindingResult) { - + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + if (attributes == null) { + throw new JsonException(ResultEnum.NOT_NETWORK); + } + HttpServletRequest request = attributes.getRequest(); + String userId = request.getHeader("ADMIN_ID"); + AuthAdmin authAdmin = authAdminService.findById(Long.parseLong(userId)); if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } - + deviceSearchRequest.setCustomerId(authAdmin.getCustomerId()+""); List medicalResonseList = deviceService.search(deviceSearchRequest); long total = deviceService.seatchTotal(deviceSearchRequest); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); @@ -137,6 +151,20 @@ public class DeviceController { return ResultVOUtils.success(pageSimpleResponse); } + @Resource + UdiDeviceIdService udiDeviceIdService; + @GetMapping("warehouse/device/downloadAll") + public BaseResponse downloadAll() { + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + if (attributes == null) { + throw new JsonException(ResultEnum.NOT_NETWORK); + } + HttpServletRequest request = attributes.getRequest(); + String userId = request.getHeader("ADMIN_ID"); + AuthAdmin authAdmin = authAdminService.findById(Long.parseLong(userId)); + return ResultVOUtils.success("下载成功"); + } + @GetMapping("warehouse/device/combineSearch") public BaseResponse combineSearch(@Valid DeviceSearchRequest deviceSearchRequest, BindingResult bindingResult) { @@ -155,11 +183,11 @@ public class DeviceController { total = devicedownload.getAlltotal() - devicedownload.getAllindex(); } - for (int i = 0;i { @@ -181,7 +217,7 @@ public class DeviceController { DownloadDiRequest downloadDiRequest1 = new DownloadDiRequest(); downloadDiRequest1.setAccessToken(token.getAccessToken()); downloadDiRequest1.setPrimaryDeviceId(deviceRequest.getPrimaryDeviceId()); - int result = downloadDeviceHelper.downloadBydi( downloadDiRequest1,deviceService); + int result = downloadDeviceHelper.downloadBydi(authAdmin.getCustomerId()+"",downloadDiRequest1, deviceService); if (result == -1) { return;// ResultVOUtils.error(505, "下载出错"); } @@ -192,9 +228,17 @@ public class DeviceController { @PostMapping("warehouse/device/downLoadHisory") public BaseResponse downLoadHisory(@RequestBody DeviceDiRequest deviceRequest) { - DownloadDeviceHelper downloadDeviceHelper = new DownloadDeviceHelper(companyService); - if(deviceRequest.getPrimaryDeviceId() == null){ - return ResultVOUtils.error(999,"最小销售单元标识不能为空"); + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + if (attributes == null) { + throw new JsonException(ResultEnum.NOT_NETWORK); + } + HttpServletRequest request = attributes.getRequest(); + String userId = request.getHeader("ADMIN_ID"); + AuthAdmin authAdmin = authAdminService.findById(Long.parseLong(userId)); + CompanyEntity companyEntity = companyService.findCompany(authAdmin.getCustomerId()); + DownloadDeviceHelper downloadDeviceHelper = new DownloadDeviceHelper(companyEntity); + if (deviceRequest.getPrimaryDeviceId() == null) { + return ResultVOUtils.error(999, "最小销售单元标识不能为空"); } new Thread(() -> { String deviceRecordKey = deviceService.selectKey(deviceRequest.getPrimaryDeviceId()); @@ -202,12 +246,12 @@ public class DeviceController { DownloadHistoryRequest deviceHistoryRequest = new DownloadHistoryRequest(); deviceHistoryRequest.setAccessToken(token.getAccessToken()); deviceHistoryRequest.setCurrentPageNumber("1"); - List< DownloadHistoryRequest.DataSetBean> dataSetBeans = new ArrayList<>(); + List dataSetBeans = new ArrayList<>(); DownloadHistoryRequest.DataSetBean keys = new DownloadHistoryRequest.DataSetBean(); keys.setDeviceRecordKey(deviceRecordKey); dataSetBeans.add(keys); deviceHistoryRequest.setDataSet(dataSetBeans); - int result = downloadDeviceHelper.downloadHistory(deviceHistoryRequest, deviceService); + int result = downloadDeviceHelper.downloadHistory(authAdmin.getCustomerId()+"",deviceHistoryRequest, deviceService); if (result == -1) { return;// ResultVOUtils.error(505, "下载出错"); } @@ -217,9 +261,18 @@ public class DeviceController { } + @PostMapping("warehouse/device/loadudid") public BaseResponse downLoadAll(DownloadDeviceRequest downloadDeviceRequest, BindingResult bindingResult) { - DownloadDeviceHelper downloadDeviceHelper = new DownloadDeviceHelper(companyService); + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + if (attributes == null) { + throw new JsonException(ResultEnum.NOT_NETWORK); + } + HttpServletRequest request = attributes.getRequest(); + String userId = request.getHeader("ADMIN_ID"); + AuthAdmin authAdmin = authAdminService.findById(Long.parseLong(userId)); + CompanyEntity companyEntity = companyService.findCompany(authAdmin.getCustomerId()); + DownloadDeviceHelper downloadDeviceHelper = new DownloadDeviceHelper(companyEntity); if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } @@ -228,22 +281,22 @@ public class DeviceController { TokenEntity token = downloadDeviceHelper.getToken(); int total = downloadDeviceHelper.getTotal(token.getAccessToken()); int curpage = total; - Devicedownload devicedownload = devicedownloadMapper.selectByPrimaryKey("udid"); + Devicedownload devicedownload = devicedownloadMapper.selectByPrimaryKey(authAdmin.getCustomerId() + ""); if (devicedownload != null) { int offset = devicedownload.getAlltotal() - devicedownload.getAllindex(); curpage = total - offset; } else { - devicedownload= new Devicedownload(); - devicedownload.setId("udid"); + devicedownload = new Devicedownload(); + devicedownload.setId(authAdmin.getCustomerId() + ""); devicedownload.setAlltotal(100); - devicedownload.setAllindex(99); + devicedownload.setAllindex(100); devicedownloadMapper.insert(devicedownload); } devicedownload.setIsdownload(1); long startTime = System.currentTimeMillis(); devicedownload.setStarttime(startTime + ""); devicedownloadMapper.updateByPrimaryKey(devicedownload); - Devicedownload stop = devicedownloadMapper.selectByPrimaryKey("udid"); + Devicedownload stop = devicedownloadMapper.selectByPrimaryKey(authAdmin.getCustomerId() + ""); while (curpage > 0 && stop.getIsdownload() == 1 && stop.getStarttime().equals(startTime + "")) { @@ -251,7 +304,7 @@ public class DeviceController { deviceRequest.setAccessToken(token.getAccessToken()); deviceRequest.setRequestType(3 + ""); deviceRequest.setCurrentPageNumber(curpage + ""); - int result = downloadDeviceHelper.downloadDevices(deviceService, deviceRequest); + int result = downloadDeviceHelper.downloadProduct(authAdmin.getCustomerId()+"",deviceService, deviceRequest); if (result == -1) { return;// ResultVOUtils.error(505, "下载出错"); } @@ -259,24 +312,24 @@ public class DeviceController { Devicedownload devicedownload1 = new Devicedownload(); devicedownload1.setAlltotal(total); devicedownload1.setAllindex(curpage); - devicedownload1.setId("udid"); + devicedownload1.setId(authAdmin.getCustomerId() + ""); devicedownloadMapper.updateProgress(devicedownload1); - stop = devicedownloadMapper.selectByPrimaryKey("udid"); + stop = devicedownloadMapper.selectByPrimaryKey(authAdmin.getCustomerId() + ""); } }).start(); - - -// Devicedownload devicedownload1 = new Devicedownload(); -// devicedownload1.setAlltotal(total); -// devicedownload1.setAllindex(curpage + 1); -// devicedownload1.setId("udid"); -// devicedownloadMapper.updateByExample(devicedownload1, new DevicedownloadExample()); return ResultVOUtils.success("开始下载"); } @GetMapping("warehouse/device/stop") public BaseResponse stopDown() { - Devicedownload devicedownload = devicedownloadMapper.selectByPrimaryKey("udid"); + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + if (attributes == null) { + throw new JsonException(ResultEnum.NOT_NETWORK); + } + HttpServletRequest request = attributes.getRequest(); + String userId = request.getHeader("ADMIN_ID"); + AuthAdmin authAdmin = authAdminService.findById(Long.parseLong(userId)); + Devicedownload devicedownload = devicedownloadMapper.selectByPrimaryKey(authAdmin.getCustomerId()+""); devicedownload.setIsdownload(2); devicedownloadMapper.updateByPrimaryKey(devicedownload); return ResultVOUtils.success("停止成功"); @@ -284,7 +337,14 @@ public class DeviceController { @GetMapping("warehouse/device/progress") public BaseResponse getProgress() { - Devicedownload devicedownload = devicedownloadMapper.selectByPrimaryKey("udid"); + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + if (attributes == null) { + throw new JsonException(ResultEnum.NOT_NETWORK); + } + HttpServletRequest request = attributes.getRequest(); + String userId = request.getHeader("ADMIN_ID"); + AuthAdmin authAdmin = authAdminService.findById(Long.parseLong(userId)); + Devicedownload devicedownload = devicedownloadMapper.selectByPrimaryKey(authAdmin.getCustomerId()+""); ProgressResponse response = new ProgressResponse(); if (devicedownload != null) { double index = devicedownload.getAlltotal() - devicedownload.getAllindex(); @@ -297,9 +357,9 @@ public class DeviceController { response.setIndex(index * 10); response.setProgress(progress * 100); } else { - response.setTotal(100); - response.setIndex(1); - response.setProgress(1); + response.setTotal(1000); + response.setIndex(0); + response.setProgress(0); } return ResultVOUtils.success(response); diff --git a/api-udims/src/main/java/com/glxp/udi/admin/controller/device/DownloadDeviceHelper.java b/api-udims/src/main/java/com/glxp/udi/admin/controller/device/DownloadDeviceHelper.java index 8ce8d69..14c4233 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/controller/device/DownloadDeviceHelper.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/controller/device/DownloadDeviceHelper.java @@ -14,7 +14,6 @@ import com.glxp.udi.admin.res.udid.DataSetBean; import com.glxp.udi.admin.res.udid.MedicalHistoryResonse; import com.glxp.udi.admin.res.udid.MedicalResonse; import com.glxp.udi.admin.res.udid.MedicalSingleResponse; -import com.glxp.udi.admin.service.info.CompanyService; import com.glxp.udi.admin.service.inout.DeviceService; import com.glxp.udi.admin.util.HttpClient; import com.glxp.udi.admin.util.WarehousBeanUtils; @@ -32,19 +31,19 @@ public class DownloadDeviceHelper { String appId; String appSecret; - public DownloadDeviceHelper(CompanyService companyService) { - long customerId = 110; - companyEntity = companyService.findCompany(customerId); - if (companyEntity != null && companyEntity.getClasses() != null) { - if (companyEntity.getClasses().equals("1")) { - url = "company/identifier/get"; - } else { - url = "sharing/get"; - } - appId = companyEntity.getAppId(); - appSecret = companyEntity.getAppSecret(); - } - } +// public DownloadDeviceHelper(CompanyService companyService) { +// long customerId = 110; +// companyEntity = companyService.findCompany(customerId); +// if (companyEntity != null && companyEntity.getClasses() != null) { +// if (companyEntity.getClasses().equals("1")) { +// url = "company/identifier/get"; +// } else { +// url = "sharing/get"; +// } +// appId = companyEntity.getAppId(); +// appSecret = companyEntity.getAppSecret(); +// } +// } public DownloadDeviceHelper(CompanyEntity companyEntity) { @@ -67,21 +66,19 @@ public class DownloadDeviceHelper { } //产品数据申报 - - public int getTotal(String token) { DeviceRequest deviceRequest = new DeviceRequest(); deviceRequest.setCurrentPageNumber("1"); deviceRequest.setRequestType("3"); deviceRequest.setAccessToken(token); - String response = HttpClient.post(url, deviceRequest); + String response = HttpClient.post("company/identifier/get", deviceRequest); MedicalResonse medicalResonse = (MedicalResonse) JSONObject.parseObject(response, MedicalResonse.class); return medicalResonse.getTotalPageCount(); } //下载流通企业 public int downloadDevices(DeviceService deviceService, DeviceRequest deviceRequest) { - String response = HttpClient.post(url, deviceRequest); + String response = HttpClient.post("sharing/get", deviceRequest); int result = -1; List dataSetBeanList; if (url.equals("sharing/get")) { @@ -121,7 +118,7 @@ public class DownloadDeviceHelper { keys.setDeviceRecordKey(device.getDevicerecordkey()); dataSetBeans.add(keys); deviceHistoryRequest.setDataSet(dataSetBeans); - downloadHistory(deviceHistoryRequest, deviceService); + downloadHistory("",deviceHistoryRequest, deviceService); } deviceService.insertDevice(device); @@ -184,8 +181,8 @@ public class DownloadDeviceHelper { } //下载生产企业 - public int downloadProduct(DeviceService deviceService, DeviceRequest deviceRequest) { - String response = HttpClient.post(url, deviceRequest); + public int downloadProduct(String customerId,DeviceService deviceService, DeviceRequest deviceRequest) { + String response = HttpClient.post("company/identifier/get", deviceRequest); MedicalHistoryResonse medicalResonse = (MedicalHistoryResonse) JSONObject.parseObject(response, MedicalHistoryResonse.class); if (medicalResonse.getReturnCode() == 1) { List dataSetBeanList = medicalResonse.getDataList(); @@ -193,10 +190,10 @@ public class DownloadDeviceHelper { for (int i = 0; i < dataSetBeanList.size(); i++) { DataSetBean dataSetBean = dataSetBeanList.get(i); Device device = WarehousBeanUtils.responseToDevice(dataSetBean); + device.setCustomerId(customerId); if (deviceService.selectisSame(device.getDevicerecordkey(), device.getVersionnumber()) != null) { - return -1; - } - if (device.getBssjzt() != null && device.getBssjzt().equals("草稿")) { +// return -1; + } else if (device.getBssjzt() != null && device.getBssjzt().equals("草稿")) { //草稿数据忽略 } else { String uuid = getUUId(); @@ -215,52 +212,63 @@ public class DownloadDeviceHelper { keys.setDeviceRecordKey(device.getDevicerecordkey()); dataSetBeans.add(keys); deviceHistoryRequest.setDataSet(dataSetBeans); - downloadHistory(deviceHistoryRequest, deviceService); + downloadHistory(customerId,deviceHistoryRequest, deviceService); } deviceService.insertDevice(device); List deviceclinicals = dataSetBean.getDeviceClinical(); - List deviceclinicalList = new ArrayList<>(); - for (DataSetBean.DeviceClinicalBean deviceClinicalBean : deviceclinicals) { - if (deviceClinicalBean != null) { - Deviceclinical deviceclinical = WarehousBeanUtils.responseToDeviceclinical(deviceClinicalBean); - deviceclinical.setDevicerecordkey(device.getDevicerecordkey()); - deviceclinical.setUuid(uuid); - deviceclinicalList.add(deviceclinical); + if (deviceclinicals != null && deviceclinicals.size() > 0) { + List deviceclinicalList = new ArrayList<>(); + for (DataSetBean.DeviceClinicalBean deviceClinicalBean : deviceclinicals) { + if (deviceClinicalBean != null) { + Deviceclinical deviceclinical = WarehousBeanUtils.responseToDeviceclinical(deviceClinicalBean); + deviceclinical.setDevicerecordkey(device.getDevicerecordkey()); + deviceclinical.setUuid(uuid); + deviceclinicalList.add(deviceclinical); + } } - + deviceService.insertDeviceClinical(deviceclinicalList); } - deviceService.insertDeviceClinical(deviceclinicalList); + List devicePackageBeans = dataSetBean.getDevicePackage(); - List devicepackageList = new ArrayList<>(); - for (DataSetBean.DevicePackageBean devicePackageBean : devicePackageBeans) { - Devicepackage devicepackage = WarehousBeanUtils.responseToDevicepackage(devicePackageBean); - devicepackage.setDevicerecordkey(device.getDevicerecordkey()); - devicepackage.setUuid(uuid); - devicepackageList.add(devicepackage); + if (devicePackageBeans != null && devicePackageBeans.size() > 0) { + List devicepackageList = new ArrayList<>(); + for (DataSetBean.DevicePackageBean devicePackageBean : devicePackageBeans) { + Devicepackage devicepackage = WarehousBeanUtils.responseToDevicepackage(devicePackageBean); + devicepackage.setDevicerecordkey(device.getDevicerecordkey()); + devicepackage.setUuid(uuid); + devicepackageList.add(devicepackage); + } + deviceService.insertDevicepackage(devicepackageList); } - deviceService.insertDevicepackage(devicepackageList); + List deviceStorageBeans = dataSetBean.getDeviceStorage(); - List devicestorageList = new ArrayList<>(); - for (DataSetBean.DeviceStorageBean deviceStorageBean : deviceStorageBeans) { - Devicestorage devicestorage = WarehousBeanUtils.responseToDevicestorage(deviceStorageBean); - devicestorage.setDevicerecordkey(device.getDevicerecordkey()); - devicestorage.setUuid(uuid); - devicestorageList.add(devicestorage); + if (deviceStorageBeans != null && deviceStorageBeans.size() > 0) { + List devicestorageList = new ArrayList<>(); + for (DataSetBean.DeviceStorageBean deviceStorageBean : deviceStorageBeans) { + Devicestorage devicestorage = WarehousBeanUtils.responseToDevicestorage(deviceStorageBean); + devicestorage.setDevicerecordkey(device.getDevicerecordkey()); + devicestorage.setUuid(uuid); + devicestorageList.add(devicestorage); + } + deviceService.insertDevicestorage(devicestorageList); } - deviceService.insertDevicestorage(devicestorageList); + List contactListBeans = dataSetBean.getContactList(); - List contactlistList = new ArrayList<>(); - for (DataSetBean.ContactListBean contactListBean : contactListBeans) { - Contactlist contactlist = WarehousBeanUtils.responseToContactlist(contactListBean); - contactlist.setDevicerecordkey(device.getDevicerecordkey()); - contactlist.setUuid(uuid); - contactlistList.add(contactlist); + if (contactListBeans != null && contactListBeans.size() > 0) { + List contactlistList = new ArrayList<>(); + for (DataSetBean.ContactListBean contactListBean : contactListBeans) { + Contactlist contactlist = WarehousBeanUtils.responseToContactlist(contactListBean); + contactlist.setDevicerecordkey(device.getDevicerecordkey()); + contactlist.setUuid(uuid); + contactlistList.add(contactlist); + } + deviceService.insertContactlist(contactlistList); } - deviceService.insertContactlist(contactlistList); + } } @@ -272,7 +280,7 @@ public class DownloadDeviceHelper { } //下载历史记录 - public int downloadHistory(DownloadHistoryRequest deviceHistoryRequest, DeviceService deviceService) { + public int downloadHistory(String customerId,DownloadHistoryRequest deviceHistoryRequest, DeviceService deviceService) { String response = HttpClient.post("sharing/history/get", deviceHistoryRequest); MedicalHistoryResonse medicalResonse = (MedicalHistoryResonse) JSONObject.parseObject(response, MedicalHistoryResonse.class); if (medicalResonse.getReturnCode() == 1) { @@ -283,6 +291,7 @@ public class DownloadDeviceHelper { Device device = WarehousBeanUtils.responseToDevice(dataSetBean); String uuid = getUUId(); device.setUuid(uuid); + device.setCustomerId(customerId); deviceService.insertDevice(device); List deviceclinicals = dataSetBean.getDeviceClinical(); @@ -336,7 +345,7 @@ public class DownloadDeviceHelper { } //单挑下载 - public int downloadBydi(DownloadDiRequest downloadDiRequest, DeviceService deviceService) { + public int downloadBydi(String customerId,DownloadDiRequest downloadDiRequest, DeviceService deviceService) { String response = HttpClient.post("sharing/single", downloadDiRequest); MedicalSingleResponse medicalResonse = (MedicalSingleResponse) JSONObject.parseObject(response, MedicalSingleResponse.class); if (medicalResonse.getReturnCode() == 1) { @@ -350,6 +359,7 @@ public class DownloadDeviceHelper { if (deviceService.selectisSame(device.getDevicerecordkey(), device.getVersionnumber()) != null) { return -1; } + device.setCustomerId(customerId); deviceService.insertDevice(device); List deviceclinicals = dataSetBean.getDeviceClinical(); List deviceclinicalList = new ArrayList<>(); diff --git a/api-udims/src/main/java/com/glxp/udi/admin/controller/info/EnterpriseCertController.java b/api-udims/src/main/java/com/glxp/udi/admin/controller/info/EnterpriseCertController.java index 79defda..8bfebbc 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/controller/info/EnterpriseCertController.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/controller/info/EnterpriseCertController.java @@ -98,7 +98,7 @@ public class EnterpriseCertController { HttpServletRequest request = attributes.getRequest(); String userId = request.getHeader("ADMIN_ID"); AuthAdmin authAdmin = authAdminService.findById(Long.parseLong(userId)); -// filterEnterpriseCertRequest.setCustomerId(authAdmin.getCustomerId()+""); //暂时取消 + filterEnterpriseCertRequest.setCustomerId(authAdmin.getCustomerId()+""); //暂时取消 List enterpriseCertEntities = enterpriseCertService.filterEnterpriseCerts(filterEnterpriseCertRequest); PageInfo pageInfo = new PageInfo<>(enterpriseCertEntities); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); diff --git a/api-udims/src/main/java/com/glxp/udi/admin/controller/info/FacidentcodeController.java b/api-udims/src/main/java/com/glxp/udi/admin/controller/info/FacidentcodeController.java index 71dea86..63a3307 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/controller/info/FacidentcodeController.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/controller/info/FacidentcodeController.java @@ -78,12 +78,18 @@ public class FacidentcodeController { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } - boolean b = facidentcodeService.deleteFacidentcode(deleteFacidentcodeRequest); - identifierService.deleteIdentifierByFacidentcode(deleteFacidentcodeRequest.getId()); - if (!b) { - return ResultVOUtils.error(500, "删除失败"); + + if(!identifierService.isUsed(deleteFacidentcodeRequest.getId())){ + boolean b = facidentcodeService.deleteFacidentcode(deleteFacidentcodeRequest); + identifierService.deleteIdentifierByFacidentcode(deleteFacidentcodeRequest.getId()); + if (!b) { + return ResultVOUtils.error(500, "删除失败"); + } + return ResultVOUtils.success("删除成功"); + }else { + return ResultVOUtils.error(500, "生成的产品项目码已被使用,不能删除"); } - return ResultVOUtils.success("删除成功"); + } @@ -147,6 +153,8 @@ public class FacidentcodeController { identifierEntities.add(identifierEntity); } boolean b = identifierService.insertIdentifierList(identifierEntities); + facidentcodeEntity.setIsGenerate(1); + facidentcodeService.modifyFacidentcode(facidentcodeEntity); if (!b) return ResultVOUtils.success("生成失败"); return ResultVOUtils.success("生成成功"); diff --git a/api-udims/src/main/java/com/glxp/udi/admin/controller/publish/PostIdentifyController.java b/api-udims/src/main/java/com/glxp/udi/admin/controller/publish/PostIdentifyController.java index 5fc4331..2924e0d 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/controller/publish/PostIdentifyController.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/controller/publish/PostIdentifyController.java @@ -47,6 +47,8 @@ public class PostIdentifyController { UdiDeviceSrgService udiDeviceSrgService; @Resource UdiProductService udiProductService; + @Resource + UdiSubProductService udiSubProductService; //草稿上传 @AuthRuleAnnotation("") @@ -64,21 +66,37 @@ public class PostIdentifyController { AuthAdmin authAdmin = authAdminService.findById(Long.parseLong(userId)); CompanyEntity companyEntity = companyService.findCompany(authAdmin.getCustomerId()); DownloadDeviceHelper downloadDeviceHelper = new DownloadDeviceHelper(companyEntity); -// CompanyEntity companyEntity = companyService.findCompany(authAdmin.getCustomerId()); TokenEntity tokenEntity = downloadDeviceHelper.getToken(); - PostIdentifyEntity postIdentifyEntity = buildPost(postIdentifyRequest, tokenEntity.getAccessToken()); - PostSaveResponse postSaveResponse = downloadDeviceHelper.postIdentify(postIdentifyEntity); - if (postSaveResponse.getReturnCode() == 1) { - List successListBeans = postSaveResponse.getSuccessList(); - for (PostSuccessBean successListBean : successListBeans) { - successListBean.setStatus("2"); - udiDeviceIdService.postUpdate(successListBean); + PostIdentifyEntity postIdentifyEntity = buildPost(postIdentifyRequest, tokenEntity.getAccessToken(),companyEntity); + new Thread(() -> { + + PostSaveResponse postSaveResponse = downloadDeviceHelper.postIdentify(postIdentifyEntity); + if (postSaveResponse.getReturnCode() == 1) { + List successListBeans = postSaveResponse.getSuccessList(); + for (PostSuccessBean successListBean : successListBeans) { + successListBean.setStatus("2"); + udiDeviceIdService.postUpdate(successListBean); + + UdiDeviceIdEntity udiDeviceIdEntity = udiDeviceIdService.selectByPriId(successListBean.getZXXSDYCPBS()); + //更新子类信息状态 + UdiSubProductEntity udiSubProductEntity = new UdiSubProductEntity(); + udiSubProductEntity.setUDI_SubProductOID(udiDeviceIdEntity.getUDI_SubProduct_FK()); + udiSubProductEntity.setStatus("2"); + udiSubProductService.modifyUdiSubProduct(udiSubProductEntity); + //更新企业产品状态 + UdiProductEntity udiProductEntity = new UdiProductEntity(); + udiProductEntity.setUDI_ProductOID(udiDeviceIdEntity.getUDI_Product_FK()); + udiProductEntity.setStatus("2"); + udiProductService.modifyUdiProduct(udiProductEntity); + } } - } - return ResultVOUtils.success("添加成功"); + }).start(); + + + return ResultVOUtils.success("提交草稿上传成功"); } - public PostIdentifyEntity buildPost(PostIdentifyRequest postIdentifyRequest, String token) { + public PostIdentifyEntity buildPost(PostIdentifyRequest postIdentifyRequest, String token,CompanyEntity companyEntity) { PostIdentifyEntity postIdentifyEntity = new PostIdentifyEntity(); postIdentifyEntity.setAccessToken(token); List dataSetBeans = new ArrayList<>(); @@ -90,8 +108,13 @@ public class PostIdentifyController { UdiDeviceIdResponse udiDeviceIdResponse = udiDeviceIdResponses.get(i); PostDataBean dataSetBean = new PostDataBean(); UdiProductEntity udiProductEntity = udiProductService.selectById(udiDeviceIdResponse.getUDI_Product_FK()); - dataSetBean.setUploadType("add"); + if (udiProductEntity.getStatus() == "2") + dataSetBean.setUploadType("modify"); + else { + dataSetBean.setUploadType("add"); + } dataSetBean.setCPMCTYMC(udiProductEntity.getProductName()); + dataSetBean.setTYSHXYDM(companyEntity.getCreditNum()); dataSetBean.setDeviceRecordKey(udiDeviceIdResponse.getDeviceRecordKey()); dataSetBean.setZXXSDYCPBS(udiDeviceIdResponse.getPrimaryDeviceId()); dataSetBean.setZXXSDYZSYDYDSL(udiDeviceIdResponse.getPkgQuantity()); @@ -132,7 +155,7 @@ public class PostIdentifyController { dataSetBean.setYFLBM(udiDeviceIdResponse.getProductOldCode()); dataSetBean.setYLQXZCRBARMC(udiDeviceIdResponse.getCompanyName()); dataSetBean.setYLQXZCRBARYWMC(udiDeviceIdResponse.getCompanyGBName()); - dataSetBean.setTYSHXYDM(udiDeviceIdResponse.getBusinessLicense()); +// dataSetBean.setTYSHXYDM(udiDeviceIdResponse.getBusinessLicense()); dataSetBean.setZCZBHHZBAPZBH(udiDeviceIdResponse.getRegcardCodes()); if (udiDeviceIdResponse.getProductType() != null && udiDeviceIdResponse.getProductType().equals("耗材")) dataSetBean.setHCHZSB("0"); @@ -144,7 +167,10 @@ public class PostIdentifyController { if (udiDeviceIdResponse.getIsDeviceSterile() != null && udiDeviceIdResponse.getIsDeviceSterile().equals("1")) dataSetBean.setSFWWJBZ("1"); else dataSetBean.setSFWWJBZ("0"); - dataSetBean.setSYQSFXYJXMJ(udiDeviceIdResponse.getIsSterilizationUse()); + if (udiDeviceIdResponse.getIsSterilizationUse() != null && udiDeviceIdResponse.getIsSterilizationUse().equals("1")) + dataSetBean.setSYQSFXYJXMJ("1"); + else dataSetBean.setSYQSFXYJXMJ("0"); +// dataSetBean.setSYQSFXYJXMJ(udiDeviceIdResponse.getIsSterilizationUse()); dataSetBean.setMJFS(udiDeviceIdResponse.getSterilizationMethod()); dataSetBean.setYBBM(udiDeviceIdResponse.getYBBM()); if (udiDeviceIdResponse.getMRISafetyInfo() == null) @@ -230,6 +256,70 @@ public class PostIdentifyController { TokenEntity tokenEntity = downloadDeviceHelper.getToken(); List udiDeviceIdResponses = udiDeviceIdService.selectKeysByIds(postIdentifyRequest.getIds()); + if (udiDeviceIdResponses != null && udiDeviceIdResponses.size() > 0) { + PostIdentifyKeyRequest postIdentifyKeyRequest = new PostIdentifyKeyRequest(); + List dataSetBeans = new ArrayList<>(); + for (UdiDeviceIdResponse udiDeviceIdResponse : udiDeviceIdResponses) { + + PostIdentifyKeyRequest.DataSetBean dataSetBean = new PostIdentifyKeyRequest.DataSetBean(); + if (udiDeviceIdResponse.getDeviceRecordKey() == null) { + return ResultVOUtils.error(500, "提交的标识包含未上传草稿,不能提交"); + } else + dataSetBean.setDeviceRecordKey(udiDeviceIdResponse.getDeviceRecordKey()); + dataSetBean.setZXXSDYCPBS(udiDeviceIdResponse.getPrimaryDeviceId()); + dataSetBeans.add(dataSetBean); + } + postIdentifyKeyRequest.setDataSet(dataSetBeans); + postIdentifyKeyRequest.setAccessToken(tokenEntity.getAccessToken()); + PostSaveResponse postSaveResponse = downloadDeviceHelper.postIdentifyKey(postIdentifyKeyRequest); + if (postSaveResponse.getReturnCode() == 1) { + List successListBeans = postSaveResponse.getSuccessList(); + for (PostSuccessBean successListBean : successListBeans) { + + + successListBean.setStatus("3"); + udiDeviceIdService.postUpdate(successListBean); + + UdiDeviceIdEntity udiDeviceIdEntity = udiDeviceIdService.selectByPriId(successListBean.getZXXSDYCPBS()); + //更新子类信息状态 + UdiSubProductEntity udiSubProductEntity = new UdiSubProductEntity(); + udiSubProductEntity.setUDI_SubProductOID(udiDeviceIdEntity.getUDI_SubProduct_FK()); + udiSubProductEntity.setStatus("3"); + udiSubProductService.modifyUdiSubProduct(udiSubProductEntity); + //更新企业产品状态 + UdiProductEntity udiProductEntity = new UdiProductEntity(); + udiProductEntity.setUDI_ProductOID(udiDeviceIdEntity.getUDI_Product_FK()); + udiProductEntity.setStatus("3"); + udiProductService.modifyUdiProduct(udiProductEntity); + } + } else + return ResultVOUtils.error(500, "提交失败"); + } else { + return ResultVOUtils.error(500, "上传数据为空"); + } + return ResultVOUtils.success("添加成功"); + } + + + //提交标识 + @AuthRuleAnnotation("") + @PostMapping("/udims/postIdentify/uploadNow") + public BaseResponse postUploadNow(@RequestBody @Valid PostIdentifyRequest postIdentifyRequest, BindingResult bindingResult) { + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + if (attributes == null) { + throw new JsonException(ResultEnum.NOT_NETWORK); + } + HttpServletRequest request = attributes.getRequest(); + String userId = request.getHeader("ADMIN_ID"); + AuthAdmin authAdmin = authAdminService.findById(Long.parseLong(userId)); + CompanyEntity companyEntity = companyService.findCompany(authAdmin.getCustomerId()); + DownloadDeviceHelper downloadDeviceHelper = new DownloadDeviceHelper(companyEntity); + TokenEntity tokenEntity = downloadDeviceHelper.getToken(); + List udiDeviceIdResponses = udiDeviceIdService.selectKeysByIds(postIdentifyRequest.getIds()); + if (udiDeviceIdResponses != null && udiDeviceIdResponses.size() > 0) { PostIdentifyKeyRequest postIdentifyKeyRequest = new PostIdentifyKeyRequest(); List dataSetBeans = new ArrayList<>(); @@ -246,13 +336,24 @@ public class PostIdentifyController { if (postSaveResponse.getReturnCode() == 1) { List successListBeans = postSaveResponse.getSuccessList(); for (PostSuccessBean successListBean : successListBeans) { - successListBean.setStatus("2"); + successListBean.setStatus("3"); udiDeviceIdService.postUpdate(successListBean); + UdiDeviceIdEntity udiDeviceIdEntity = udiDeviceIdService.selectByPriId(successListBean.getZXXSDYCPBS()); + //更新子类信息状态 + UdiSubProductEntity udiSubProductEntity = new UdiSubProductEntity(); + udiSubProductEntity.setUDI_SubProductOID(udiDeviceIdEntity.getUDI_SubProduct_FK()); + udiSubProductEntity.setStatus("3"); + udiSubProductService.modifyUdiSubProduct(udiSubProductEntity); + //更新企业产品状态 + UdiProductEntity udiProductEntity = new UdiProductEntity(); + udiProductEntity.setUDI_ProductOID(udiDeviceIdEntity.getUDI_Product_FK()); + udiProductEntity.setStatus("3"); + udiProductService.modifyUdiProduct(udiProductEntity); } - }else - return ResultVOUtils.error(500,"提交失败"); - }else { - return ResultVOUtils.error(500,"上传数据为空"); + } else + return ResultVOUtils.error(500, "提交失败"); + } else { + return ResultVOUtils.error(500, "上传数据为空"); } return ResultVOUtils.success("添加成功"); } diff --git a/api-udims/src/main/java/com/glxp/udi/admin/controller/publish/ProductClassifyController.java b/api-udims/src/main/java/com/glxp/udi/admin/controller/publish/ProductClassifyController.java index bd79c1b..efb5490 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/controller/publish/ProductClassifyController.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/controller/publish/ProductClassifyController.java @@ -37,21 +37,21 @@ public class ProductClassifyController { for (int i = 0; i < levelList1.size(); i++) { ProductClassifyEntity productClassifyEntity = levelList1.get(i); ProductClassifyResponse productClassifyResponse = new ProductClassifyResponse(); - productClassifyResponse.setLabel(productClassifyEntity.getName()); + productClassifyResponse.setLabel("("+productClassifyEntity.getId()+")"+productClassifyEntity.getName()); productClassifyResponse.setValue(productClassifyEntity.getId()); List l2productClassifyResponses = new ArrayList<>(); for (int j = 0; j < levelList2.size(); j++) { ProductClassifyEntity leve2Pce = levelList2.get(j); if (leve2Pce.getProductClassify_FK().equals(productClassifyEntity.getProductClassifyOID())) { ProductClassifyResponse lv2Res = new ProductClassifyResponse(); - lv2Res.setLabel(leve2Pce.getName()); + lv2Res.setLabel("("+leve2Pce.getId()+")"+leve2Pce.getName()); lv2Res.setValue(leve2Pce.getId()); List l3productClassifyResponses = new ArrayList<>(); for (int k = 0; k < levelList3.size(); k++) { ProductClassifyEntity leve3Pce = levelList3.get(k); if (leve3Pce.getProductClassify_FK().equals(leve2Pce.getProductClassifyOID())) { ProductClassifyResponse lv3Res = new ProductClassifyResponse(); - lv3Res.setLabel(leve3Pce.getName()); + lv3Res.setLabel("("+leve3Pce.getId()+")"+leve3Pce.getName()); lv3Res.setValue(leve3Pce.getId()); l3productClassifyResponses.add(lv3Res); } @@ -69,14 +69,14 @@ public class ProductClassifyController { for (int i = 0; i < levelList1.size(); i++) { ProductClassifyEntity productClassifyEntity = levelList1.get(i); ProductClassifyResponse productClassifyResponse = new ProductClassifyResponse(); - productClassifyResponse.setLabel(productClassifyEntity.getName()); + productClassifyResponse.setLabel("("+productClassifyEntity.getId()+")"+productClassifyEntity.getName()); productClassifyResponse.setValue(productClassifyEntity.getId()); List l2productClassifyResponses = new ArrayList<>(); for (int j = 0; j < levelList2.size(); j++) { ProductClassifyEntity leve2Pce = levelList2.get(j); if (leve2Pce.getProductClassify_FK().equals(productClassifyEntity.getProductClassifyOID())) { ProductClassifyResponse lv2Res = new ProductClassifyResponse(); - lv2Res.setLabel(leve2Pce.getName()); + lv2Res.setLabel("("+leve2Pce.getId()+")"+leve2Pce.getName()); lv2Res.setValue(leve2Pce.getId()); l2productClassifyResponses.add(lv2Res); } diff --git a/api-udims/src/main/java/com/glxp/udi/admin/controller/publish/SubUdiProductController.java b/api-udims/src/main/java/com/glxp/udi/admin/controller/publish/SubUdiProductController.java index a620ccf..0498a3a 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/controller/publish/SubUdiProductController.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/controller/publish/SubUdiProductController.java @@ -2,14 +2,17 @@ package com.glxp.udi.admin.controller.publish; import com.github.pagehelper.PageInfo; import com.glxp.udi.admin.annotation.AuthRuleAnnotation; +import com.glxp.udi.admin.entity.info.IdentifierEntity; import com.glxp.udi.admin.entity.publish.UdiDeviceCliEntity; import com.glxp.udi.admin.entity.publish.UdiDeviceSrgEntity; import com.glxp.udi.admin.entity.publish.UdiSubProductEntity; import com.glxp.udi.admin.req.publish.*; import com.glxp.udi.admin.res.PageSimpleResponse; +import com.glxp.udi.admin.service.info.IdentifierService; import com.glxp.udi.admin.service.publish.UdiDeviceCliService; import com.glxp.udi.admin.service.publish.UdiDeviceSrgService; import com.glxp.udi.admin.service.publish.UdiSubProductService; +import com.glxp.udi.admin.util.DateUtil; import com.glxp.udi.admin.util.UuidUtils; import com.glxp.udi.common.enums.ResultEnum; import com.glxp.udi.common.res.BaseResponse; @@ -34,6 +37,8 @@ public class SubUdiProductController { private UdiDeviceCliService udiDeviceCliService; @Resource private UdiDeviceSrgService udiDeviceSrgService; + @Resource + private IdentifierService identifierService; @AuthRuleAnnotation("") @PostMapping("/udims/subProduct/add") @@ -47,9 +52,17 @@ public class SubUdiProductController { String productId = UuidUtils.getUUId(); if (udiSubProductEntity != null) { + if (udiSubProductEntity.getSPTM() != null && udiSubProductEntity.getSPTM().length() ==13) { + if (identifierService.isUsedIdentifyCode(udiSubProductEntity.getSPTM(). + substring(0, udiSubProductEntity.getSPTM().length() - 1))) { + return ResultVOUtils.error(500, "商品条码已被使用"); + } + } + udiSubProductEntity.setSYS_Created(DateUtil.getDateTime()); udiSubProductEntity.setUDI_SubProductOID(productId); + udiSubProductEntity.setStatus("1"); udiSubProductService.insertUdiSubProduct(udiSubProductEntity); - } else return ResultVOUtils.success("添加失败"); + } else return ResultVOUtils.error(500,"添加失败"); List udiDeviceCliEntities = addSubProductRequest.getUdiDeviceCliEntities(); List insertClis = new ArrayList<>(); @@ -71,7 +84,12 @@ public class SubUdiProductController { } udiDeviceSrgService.insertUdiDeviceSrgList(insertSrgs); } + if (udiSubProductEntity.getSPTM() != null && udiSubProductEntity.getSPTM().length() == 13) { + String ideCode = udiSubProductEntity.getSPTM(). + substring(0, udiSubProductEntity.getSPTM().length() - 1); + identifierService.updateIsUsed(new IdentifierEntity(null, "1", ideCode, null)); + } return ResultVOUtils.success("添加成功"); } @@ -84,9 +102,16 @@ public class SubUdiProductController { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } UdiSubProductEntity udiSubProductEntity = addSubProductRequest.getUdiSubProductEntity(); - + UdiSubProductEntity temp = udiSubProductService.selectById(udiSubProductEntity.getUDI_SubProductOID()); if (udiSubProductEntity != null) { + + if (udiSubProductEntity.getSPTM() != null && udiSubProductEntity.getSPTM().length() ==13 && !temp.getSPTM().equals(udiSubProductEntity.getSPTM())) { + if (identifierService.isUsedIdentifyCode(udiSubProductEntity.getSPTM(). + substring(0, udiSubProductEntity.getSPTM().length() - 1))) { + return ResultVOUtils.error(500, "商品条码已被使用"); + } + } udiSubProductService.modifyUdiSubProduct(udiSubProductEntity); } else return ResultVOUtils.success("修改失败"); List udiDeviceCliEntities = addSubProductRequest.getUdiDeviceCliEntities(); @@ -127,6 +152,12 @@ public class SubUdiProductController { } udiDeviceSrgService.insertUdiDeviceSrgList(insertSrgs); } + if (udiSubProductEntity.getSPTM() != null && udiSubProductEntity.getSPTM().length() == 13) { + String ideCode = udiSubProductEntity.getSPTM(). + substring(0, udiSubProductEntity.getSPTM().length() - 1); + identifierService.updateIsUsed(new IdentifierEntity(null, "1", ideCode, null)); + + } return ResultVOUtils.success("修改成功"); } @@ -155,7 +186,6 @@ public class SubUdiProductController { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } List udiProductEntities = udiSubProductService.filterAll(filterUdiSubProductRequest); - PageInfo pageInfo = new PageInfo<>(udiProductEntities); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(pageInfo.getTotal()); diff --git a/api-udims/src/main/java/com/glxp/udi/admin/controller/publish/UdiDeviceIdController.java b/api-udims/src/main/java/com/glxp/udi/admin/controller/publish/UdiDeviceIdController.java index d0a86fa..c30e5f8 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/controller/publish/UdiDeviceIdController.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/controller/publish/UdiDeviceIdController.java @@ -3,6 +3,7 @@ package com.glxp.udi.admin.controller.publish; import com.github.pagehelper.PageInfo; import com.glxp.udi.admin.annotation.AuthRuleAnnotation; import com.glxp.udi.admin.entity.auth.AuthAdmin; +import com.glxp.udi.admin.entity.info.IdentifierEntity; import com.glxp.udi.admin.entity.publish.UdiDeviceIdEntity; import com.glxp.udi.admin.entity.publish.UdiDevicepkEntity; import com.glxp.udi.admin.exception.JsonException; @@ -10,6 +11,7 @@ import com.glxp.udi.admin.req.publish.*; import com.glxp.udi.admin.res.PageSimpleResponse; import com.glxp.udi.admin.res.publish.UdiDeviceIdResponse; import com.glxp.udi.admin.service.auth.AuthAdminService; +import com.glxp.udi.admin.service.info.IdentifierService; import com.glxp.udi.admin.service.publish.UdiDeviceIdService; import com.glxp.udi.admin.service.publish.UdiDevicepkService; import com.glxp.udi.admin.service.publish.UdiSubProductService; @@ -45,6 +47,9 @@ public class UdiDeviceIdController { @Resource AuthAdminService authAdminService; + @Resource + private IdentifierService identifierService; + @AuthRuleAnnotation("") @PostMapping("/udims/deviceId/add") public BaseResponse add(@RequestBody @Valid AddUdiDeviceIdRequest addUdiDeviceIdRequest, BindingResult bindingResult) { @@ -53,14 +58,42 @@ public class UdiDeviceIdController { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } UdiDeviceIdEntity udiDeviceIdEntity = addUdiDeviceIdRequest.getUdiDeviceIdEntity(); - + List udiDevicepkEntities = addUdiDeviceIdRequest.getUdiDevicepkEntities(); String productId = UuidUtils.getUUId(); if (udiDeviceIdEntity != null) { + if (udiDeviceIdEntity.getPrimaryDeviceId() != null && udiDeviceIdEntity.getPrimaryDeviceId().length() > 10) { + if (identifierService.isUsedIdentifyCode(udiDeviceIdEntity.getPrimaryDeviceId(). + substring(1, udiDeviceIdEntity.getPrimaryDeviceId().length() - 1))) { + return ResultVOUtils.error(500, "最小销售单元产品标识条码已被使用"); + } + + } + if (udiDeviceIdEntity.getDirectMarkDI() != null && udiDeviceIdEntity.getDirectMarkDI().length() > 10) { + if (identifierService.isUsedIdentifyCode(udiDeviceIdEntity.getDirectMarkDI(). + substring(1, udiDeviceIdEntity.getDirectMarkDI().length() - 1))) { + return ResultVOUtils.error(500, "本体产品标识条码已被使用"); + } + } + if (udiDeviceIdEntity.getUseUnitDeviceId() != null && udiDeviceIdEntity.getUseUnitDeviceId().length() > 10) { + if (identifierService.isUsedIdentifyCode(udiDeviceIdEntity.getUseUnitDeviceId(). + substring(1, udiDeviceIdEntity.getUseUnitDeviceId().length() - 1))) { + return ResultVOUtils.error(500, "使用单元产品标识条码已被使用"); + } + } + if (udiDevicepkEntities != null && udiDevicepkEntities.size() > 0) { + for (UdiDevicepkEntity udiDevicepkEntity : udiDevicepkEntities) { + if (identifierService.isUsedIdentifyCode(udiDevicepkEntity.getPkgDeviceId(). + substring(1, udiDevicepkEntity.getPkgDeviceId().length() - 1))) { + return ResultVOUtils.error(500, "包装产品标识条码已被使用"); + } + } + } udiDeviceIdEntity.setUDI_DeviceIdOID(productId); + udiDeviceIdEntity.setStatus("1"); udiDeviceIdService.insertUdiDeviceId(udiDeviceIdEntity); } else return ResultVOUtils.success("添加失败"); - List udiDevicepkEntities = addUdiDeviceIdRequest.getUdiDevicepkEntities(); + List insertPkgs = new ArrayList<>(); if (udiDevicepkEntities != null && udiDevicepkEntities.size() > 0) { @@ -70,11 +103,38 @@ public class UdiDeviceIdController { insertPkgs.add(udiDevicepkEntity); } udiDevicepkService.insertUdiDevicepkList(insertPkgs); + updateIdentifyStatus(udiDeviceIdEntity,udiDevicepkEntities); } return ResultVOUtils.success("添加成功"); } + public void updateIdentifyStatus(UdiDeviceIdEntity udiDeviceIdEntity, List udiDevicepkEntities) { + if (udiDeviceIdEntity.getPrimaryDeviceId() != null && udiDeviceIdEntity.getPrimaryDeviceId().length() > 10) { + String ideCode = udiDeviceIdEntity.getPrimaryDeviceId(). + substring(1, udiDeviceIdEntity.getPrimaryDeviceId().length() - 1); + identifierService.updateIsUsed(new IdentifierEntity(null, null, ideCode, "1")); + + } + if (udiDeviceIdEntity.getDirectMarkDI() != null && udiDeviceIdEntity.getDirectMarkDI().length() > 10) { + String ideCode = udiDeviceIdEntity.getDirectMarkDI(). + substring(1, udiDeviceIdEntity.getDirectMarkDI().length() - 1); + identifierService.updateIsUsed(new IdentifierEntity(null, null, ideCode, "1")); + } + if (udiDeviceIdEntity.getUseUnitDeviceId() != null && udiDeviceIdEntity.getUseUnitDeviceId().length() > 10) { + String ideCode = udiDeviceIdEntity.getUseUnitDeviceId(). + substring(1, udiDeviceIdEntity.getUseUnitDeviceId().length() - 1); + identifierService.updateIsUsed(new IdentifierEntity(null, null, ideCode, "1")); + } + if (udiDevicepkEntities != null && udiDevicepkEntities.size() > 0) { + for (UdiDevicepkEntity udiDevicepkEntity : udiDevicepkEntities) { + String ideCode = udiDevicepkEntity.getPkgDeviceId(). + substring(1, udiDevicepkEntity.getPkgDeviceId().length() - 1); + identifierService.updateIsUsed(new IdentifierEntity(null, null, ideCode, "1")); + } + } + } + @AuthRuleAnnotation("") @PostMapping("/udims/deviceId/delete") public BaseResponse deleteDeviceId(@RequestBody @Valid DeleteUdiDeviceIdRequest deleteUdiProductRequest, BindingResult bindingResult) { @@ -101,12 +161,33 @@ public class UdiDeviceIdController { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } UdiDeviceIdEntity udiDeviceIdEntity = addUdiDeviceIdRequest.getUdiDeviceIdEntity(); + UdiDeviceIdEntity temp = udiDeviceIdService.selectById(udiDeviceIdEntity.getUDI_DeviceIdOID()); + if (udiDeviceIdEntity.getPrimaryDeviceId() != null && udiDeviceIdEntity.getPrimaryDeviceId().length() > 13 && !udiDeviceIdEntity.getPrimaryDeviceId().equals(temp.getPrimaryDeviceId())) { + if (identifierService.isUsedIdentifyCode(udiDeviceIdEntity.getPrimaryDeviceId(). + substring(1, udiDeviceIdEntity.getPrimaryDeviceId().length() - 1))) { + return ResultVOUtils.error(500, "最小销售单元产品标识条码已被使用"); + } + + } + if (udiDeviceIdEntity.getDirectMarkDI() != null && udiDeviceIdEntity.getDirectMarkDI().length() > 13 && !udiDeviceIdEntity.getPrimaryDeviceId().equals(temp.getPrimaryDeviceId())) { + if (identifierService.isUsedIdentifyCode(udiDeviceIdEntity.getDirectMarkDI(). + substring(1, udiDeviceIdEntity.getDirectMarkDI().length() - 1))) { + return ResultVOUtils.error(500, "本体产品标识条码已被使用"); + } + } + if (udiDeviceIdEntity.getUseUnitDeviceId() != null && udiDeviceIdEntity.getUseUnitDeviceId().length() > 13 && !udiDeviceIdEntity.getPrimaryDeviceId().equals(temp.getPrimaryDeviceId())) { + if (identifierService.isUsedIdentifyCode(udiDeviceIdEntity.getUseUnitDeviceId(). + substring(1, udiDeviceIdEntity.getUseUnitDeviceId().length() - 1))) { + return ResultVOUtils.error(500, "使用单元产品标识条码已被使用"); + } + } + List udiDevicepkEntities = addUdiDeviceIdRequest.getUdiDevicepkEntities(); if (udiDeviceIdEntity != null) { udiDeviceIdService.modifyUdiDeviceId(udiDeviceIdEntity); - } else return ResultVOUtils.success("修改失败"); - List udiDevicepkEntities = addUdiDeviceIdRequest.getUdiDevicepkEntities(); + } else return ResultVOUtils.error(500, "修改失败"); + List insertPkgs = new ArrayList<>(); if (udiDevicepkEntities != null && udiDevicepkEntities.size() > 0) { @@ -125,10 +206,12 @@ public class UdiDeviceIdController { } udiDevicepkService.insertUdiDevicepkList(insertPkgs); } + updateIdentifyStatus(udiDeviceIdEntity,udiDevicepkEntities); return ResultVOUtils.success("修改成功"); } + @AuthRuleAnnotation("") @GetMapping("/udims/deviceId/list") public BaseResponse listDeviceId(@Valid FilterDeviceIdRequest filterDeviceIdRequest, BindingResult bindingResult) { @@ -143,7 +226,7 @@ public class UdiDeviceIdController { HttpServletRequest request = attributes.getRequest(); String userId = request.getHeader("ADMIN_ID"); AuthAdmin authAdmin = authAdminService.findById(Long.parseLong(userId)); - filterDeviceIdRequest.setCustomerId(authAdmin.getCustomerId()+""); + filterDeviceIdRequest.setCustomerId(authAdmin.getCustomerId() + ""); List udiDeviceIdEntities = udiDeviceIdService.selectByProductId(filterDeviceIdRequest); PageInfo pageInfo = new PageInfo<>(udiDeviceIdEntities); diff --git a/api-udims/src/main/java/com/glxp/udi/admin/controller/publish/UdiProductController.java b/api-udims/src/main/java/com/glxp/udi/admin/controller/publish/UdiProductController.java index 8ae2eb8..88cd265 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/controller/publish/UdiProductController.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/controller/publish/UdiProductController.java @@ -11,6 +11,7 @@ import com.glxp.udi.admin.res.PageSimpleResponse; import com.glxp.udi.admin.res.publish.UdiProductResponse; import com.glxp.udi.admin.service.auth.AuthAdminService; import com.glxp.udi.admin.service.publish.UdiProductService; +import com.glxp.udi.admin.service.publish.UdiSubProductService; import com.glxp.udi.admin.util.UuidUtils; import com.glxp.udi.common.enums.ResultEnum; import com.glxp.udi.common.res.BaseResponse; @@ -34,6 +35,8 @@ public class UdiProductController { @Resource private UdiProductService udiProductService; @Resource + private UdiSubProductService udiSubProductService; + @Resource private AuthAdminService authAdminService; @AuthRuleAnnotation("") @@ -52,6 +55,7 @@ public class UdiProductController { AuthAdmin authAdmin = authAdminService.findById(Long.parseLong(userId)); udiProductEntity.setUDI_Customer_FK(authAdmin.getCustomerId() + ""); udiProductEntity.setUDI_ProductOID(UuidUtils.getUUId()); + udiProductEntity.setStatus("1"); boolean b = udiProductService.insertUdiProduct(udiProductEntity); if (!b) return ResultVOUtils.success("添加失败"); @@ -62,19 +66,15 @@ public class UdiProductController { @PostMapping("/udims/product/delete") public BaseResponse deleteCustomerContrast(@RequestBody @Valid DeleteUdiProductRequest deleteUdiProductRequest, BindingResult bindingResult) { - ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } - if (attributes == null) { - throw new JsonException(ResultEnum.NOT_NETWORK); + + int count = udiSubProductService.selectCount(deleteUdiProductRequest.getId()); + if (count > 0) { + return ResultVOUtils.error(500, "请先删除子类信息"); } - HttpServletRequest request = attributes.getRequest(); - String userId = request.getHeader("ADMIN_ID"); - AuthAdmin authAdmin = authAdminService.findById(Long.parseLong(userId)); boolean b = udiProductService.deleteUdiProduct(deleteUdiProductRequest); - //删除关联数据 - //toDo if (!b) { return ResultVOUtils.error(500, "删除失败"); @@ -132,11 +132,11 @@ public class UdiProductController { HttpServletRequest request = attributes.getRequest(); String userId = request.getHeader("ADMIN_ID"); AuthAdmin authAdmin = authAdminService.findById(Long.parseLong(userId)); - List udiProductEntities = udiProductService.selectByCustomerId(authAdmin.getCustomerId() ); + List udiProductEntities = udiProductService.selectByCustomerId(authAdmin.getCustomerId()); List udiProductResponses = new ArrayList<>(); - if(udiProductEntities!=null && udiProductEntities.size()>0){ - for(UdiProductEntity udiProductEntity:udiProductEntities){ + if (udiProductEntities != null && udiProductEntities.size() > 0) { + for (UdiProductEntity udiProductEntity : udiProductEntities) { UdiProductResponse udiProductResponse = new UdiProductResponse(); udiProductResponse.setLabel(udiProductEntity.getProductName()); udiProductResponse.setValue(udiProductEntity.getUDI_ProductOID()); diff --git a/api-udims/src/main/java/com/glxp/udi/admin/dao/info/IdentifierDao.java b/api-udims/src/main/java/com/glxp/udi/admin/dao/info/IdentifierDao.java index 47a326b..fdb211c 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/dao/info/IdentifierDao.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/dao/info/IdentifierDao.java @@ -25,4 +25,8 @@ public interface IdentifierDao { String randomCode(FilterIdentifierRequest filterIdentifierRequest); + Integer isUsed(String facidentcode); + Integer isUsedIdentifyCode(String code); + boolean updateIsUsed(IdentifierEntity identifierEntity); + } diff --git a/api-udims/src/main/java/com/glxp/udi/admin/dao/publish/UdiDeviceIdDao.java b/api-udims/src/main/java/com/glxp/udi/admin/dao/publish/UdiDeviceIdDao.java index c32c56c..28c189f 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/dao/publish/UdiDeviceIdDao.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/dao/publish/UdiDeviceIdDao.java @@ -31,4 +31,8 @@ public interface UdiDeviceIdDao { List selectKeysByIds(List ids); + UdiDeviceIdEntity selectByPriId(String primaryDeviceId); + + UdiDeviceIdEntity selectById(String UDI_DeviceIdOID); + } diff --git a/api-udims/src/main/java/com/glxp/udi/admin/dao/publish/UdiSubProductDao.java b/api-udims/src/main/java/com/glxp/udi/admin/dao/publish/UdiSubProductDao.java index 1298ba5..81e378c 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/dao/publish/UdiSubProductDao.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/dao/publish/UdiSubProductDao.java @@ -21,5 +21,7 @@ public interface UdiSubProductDao { List filterAll(FilterUdiSubProductRequest filterCodeContrastRequest); + Integer selectCount(String productId); + UdiSubProductEntity selectById(String UDI_SubProductOID); } diff --git a/api-udims/src/main/java/com/glxp/udi/admin/dao/udid/DeviceMapper.java b/api-udims/src/main/java/com/glxp/udi/admin/dao/udid/DeviceMapper.java index 719eff5..58c0e12 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/dao/udid/DeviceMapper.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/dao/udid/DeviceMapper.java @@ -44,6 +44,7 @@ public interface DeviceMapper { boolean deleteHistory(@Param("deviceRecordKey") String deviceRecordKey); Device searchByDeviceRecordKey(@Param("deviceRecordKey") String deviceRecordKey); + Device searchByZxxscpbs(@Param("zxxsdycpbs") String zxxsdycpbs); List searchHistory(@Param("deviceRecordKey") String deviceRecordKey); @@ -51,4 +52,6 @@ public interface DeviceMapper { String selectisSame(@Param("deviceRecordKey") String deviceRecordKey, @Param("versionNumber") String versionNumber); String selectKey(@Param("zxxsdycpbs") String zxxsdycpbs); + + List selectDeviceRecordKey(@Param("customerId") String customerId); } \ No newline at end of file diff --git a/api-udims/src/main/java/com/glxp/udi/admin/entity/auth/CustomerDetailEntity.java b/api-udims/src/main/java/com/glxp/udi/admin/entity/auth/CustomerDetailEntity.java index d88eab3..5053074 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/entity/auth/CustomerDetailEntity.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/entity/auth/CustomerDetailEntity.java @@ -14,7 +14,7 @@ public class CustomerDetailEntity { private Integer userFlag; private int isInfoLink; private String infoLink; - private int roleId; + private String roleId; private int userMax; private String contacts; private String mobile; diff --git a/api-udims/src/main/java/com/glxp/udi/admin/entity/auth/UserRegisterEntity.java b/api-udims/src/main/java/com/glxp/udi/admin/entity/auth/UserRegisterEntity.java index bdf1c83..d38bf29 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/entity/auth/UserRegisterEntity.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/entity/auth/UserRegisterEntity.java @@ -23,4 +23,5 @@ public class UserRegisterEntity { private String checkTime; private String comments; private int checkCode; + private String areaCode; } diff --git a/api-udims/src/main/java/com/glxp/udi/admin/entity/info/CompanyEntity.java b/api-udims/src/main/java/com/glxp/udi/admin/entity/info/CompanyEntity.java index 2a4cec2..ee7d15b 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/entity/info/CompanyEntity.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/entity/info/CompanyEntity.java @@ -11,6 +11,7 @@ public class CompanyEntity { private String classes; //企业类别 //企业类别:1.生产企业,2.流通企业,3。医疗机构 private String area; + private String areaCode; private String detailAddr; private String appId; private String appSecret; diff --git a/api-udims/src/main/java/com/glxp/udi/admin/entity/info/FacidentcodeEntity.java b/api-udims/src/main/java/com/glxp/udi/admin/entity/info/FacidentcodeEntity.java index 328608a..2ad8251 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/entity/info/FacidentcodeEntity.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/entity/info/FacidentcodeEntity.java @@ -13,6 +13,7 @@ public class FacidentcodeEntity { private String NoDigit; //序号位数 private String UDI_Customer_FK; private String UDI_StandAgency_FK; //发码机构外键 + private int isGenerate; //是否生成项目码 0:未生成,1:已生成 private String SYS_Created; diff --git a/api-udims/src/main/java/com/glxp/udi/admin/entity/info/IdentifierEntity.java b/api-udims/src/main/java/com/glxp/udi/admin/entity/info/IdentifierEntity.java index fc910af..5df90ed 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/entity/info/IdentifierEntity.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/entity/info/IdentifierEntity.java @@ -1,13 +1,19 @@ package com.glxp.udi.admin.entity.info; import com.fasterxml.jackson.annotation.JsonAutoDetect; -import lombok.Data; //生成项目码 -@Data @JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY,getterVisibility = JsonAutoDetect.Visibility.NONE) public class IdentifierEntity { + public IdentifierEntity(){} + public IdentifierEntity(String isReg, String isSPTM, String identifierCode, String isUDI) { + IsReg = isReg; + this.isSPTM = isSPTM; + IdentifierCode = identifierCode; + IsUDI = isUDI; + } + private String GtinCode; private String isGTIN; private String IsReg; @@ -42,4 +48,163 @@ public class IdentifierEntity { private String SYS_ORG; private String SYS_LAST_UPD_BY; + public String getGtinCode() { + return GtinCode; + } + + public void setGtinCode(String gtinCode) { + GtinCode = gtinCode; + } + + public String getIsGTIN() { + return isGTIN; + } + + public void setIsGTIN(String isGTIN) { + this.isGTIN = isGTIN; + } + + public String getIsReg() { + return IsReg; + } + + public void setIsReg(String isReg) { + IsReg = isReg; + } + + public String getIsSPTM() { + return isSPTM; + } + + public void setIsSPTM(String isSPTM) { + this.isSPTM = isSPTM; + } + + public String getBZ() { + return BZ; + } + + public void setBZ(String BZ) { + this.BZ = BZ; + } + + public String getIdentifierCode() { + return IdentifierCode; + } + + public void setIdentifierCode(String identifierCode) { + IdentifierCode = identifierCode; + } + + public String getIsUDI() { + return IsUDI; + } + + public void setIsUDI(String isUDI) { + IsUDI = isUDI; + } + + public String getSeqNumber() { + return SeqNumber; + } + + public void setSeqNumber(String seqNumber) { + SeqNumber = seqNumber; + } + + public String getUDI_FacIdentCode_FK() { + return UDI_FacIdentCode_FK; + } + + public void setUDI_FacIdentCode_FK(String UDI_FacIdentCode_FK) { + this.UDI_FacIdentCode_FK = UDI_FacIdentCode_FK; + } + + public String getUDI_DeviceId_FK() { + return UDI_DeviceId_FK; + } + + public void setUDI_DeviceId_FK(String UDI_DeviceId_FK) { + this.UDI_DeviceId_FK = UDI_DeviceId_FK; + } + + public String getUDI_IdentifierOID() { + return UDI_IdentifierOID; + } + + public void setUDI_IdentifierOID(String UDI_IdentifierOID) { + this.UDI_IdentifierOID = UDI_IdentifierOID; + } + + public String getSYS_Created() { + return SYS_Created; + } + + public void setSYS_Created(String SYS_Created) { + this.SYS_Created = SYS_Created; + } + + public String getSYS_LAST_UPD() { + return SYS_LAST_UPD; + } + + public void setSYS_LAST_UPD(String SYS_LAST_UPD) { + this.SYS_LAST_UPD = SYS_LAST_UPD; + } + + public String getSYS_Deleted() { + return SYS_Deleted; + } + + public void setSYS_Deleted(String SYS_Deleted) { + this.SYS_Deleted = SYS_Deleted; + } + + public String getSYS_CreatedBy() { + return SYS_CreatedBy; + } + + public void setSYS_CreatedBy(String SYS_CreatedBy) { + this.SYS_CreatedBy = SYS_CreatedBy; + } + + public String getSYS_REPLACEMENT() { + return SYS_REPLACEMENT; + } + + public void setSYS_REPLACEMENT(String SYS_REPLACEMENT) { + this.SYS_REPLACEMENT = SYS_REPLACEMENT; + } + + public String getSYS_POSTN() { + return SYS_POSTN; + } + + public void setSYS_POSTN(String SYS_POSTN) { + this.SYS_POSTN = SYS_POSTN; + } + + public String getSYS_DIVISION() { + return SYS_DIVISION; + } + + public void setSYS_DIVISION(String SYS_DIVISION) { + this.SYS_DIVISION = SYS_DIVISION; + } + + public String getSYS_ORG() { + return SYS_ORG; + } + + public void setSYS_ORG(String SYS_ORG) { + this.SYS_ORG = SYS_ORG; + } + + public String getSYS_LAST_UPD_BY() { + return SYS_LAST_UPD_BY; + } + + public void setSYS_LAST_UPD_BY(String SYS_LAST_UPD_BY) { + this.SYS_LAST_UPD_BY = SYS_LAST_UPD_BY; + } } diff --git a/api-udims/src/main/java/com/glxp/udi/admin/entity/publish/UdiDevicepkEntity.java b/api-udims/src/main/java/com/glxp/udi/admin/entity/publish/UdiDevicepkEntity.java index ef9f9c5..3d80c93 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/entity/publish/UdiDevicepkEntity.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/entity/publish/UdiDevicepkEntity.java @@ -27,4 +27,6 @@ public class UdiDevicepkEntity { private int isDelete; //1:已删除 + + } diff --git a/api-udims/src/main/java/com/glxp/udi/admin/entity/publish/UdiProductEntity.java b/api-udims/src/main/java/com/glxp/udi/admin/entity/publish/UdiProductEntity.java index ec6195b..1337ec2 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/entity/publish/UdiProductEntity.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/entity/publish/UdiProductEntity.java @@ -16,6 +16,7 @@ public class UdiProductEntity { private String UDI_Customer_FK; private String SYS_Created; private String SYS_LAST_UPD; + private String status; //未用 private String SYS_Deleted; diff --git a/api-udims/src/main/java/com/glxp/udi/admin/entity/publish/UdiSubProductEntity.java b/api-udims/src/main/java/com/glxp/udi/admin/entity/publish/UdiSubProductEntity.java index d028a32..7be6425 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/entity/publish/UdiSubProductEntity.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/entity/publish/UdiSubProductEntity.java @@ -43,6 +43,7 @@ public class UdiSubProductEntity { private String UDI_Registration_FK; private String UDI_Enterprise_FK; private String UDI_SubProduct_FK; + private String status; private String SYS_Created; private String SYS_LAST_UPD; diff --git a/api-udims/src/main/java/com/glxp/udi/admin/entity/udid/Device.java b/api-udims/src/main/java/com/glxp/udi/admin/entity/udid/Device.java index 4d8087a..5508563 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/entity/udid/Device.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/entity/udid/Device.java @@ -94,6 +94,7 @@ public class Device { private String devicehistoryrecordkey; private String bssjzt; + private String customerId; public String getUuid() { return uuid; @@ -470,4 +471,12 @@ public class Device { public void setBssjzt(String bssjzt) { this.bssjzt = bssjzt == null ? null : bssjzt.trim(); } + + public String getCustomerId() { + return customerId; + } + + public void setCustomerId(String customerId) { + this.customerId = customerId; + } } \ No newline at end of file diff --git a/api-udims/src/main/java/com/glxp/udi/admin/entity/udid/DeviceEntity.java b/api-udims/src/main/java/com/glxp/udi/admin/entity/udid/DeviceEntity.java index 56d8761..3b0712b 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/entity/udid/DeviceEntity.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/entity/udid/DeviceEntity.java @@ -145,6 +145,7 @@ public class DeviceEntity { private String devicehistoryrecordkey; private String bssjzt; + private String customerId; private boolean check; private List contactlistList; diff --git a/api-udims/src/main/java/com/glxp/udi/admin/req/info/FilterIdentifierRequest.java b/api-udims/src/main/java/com/glxp/udi/admin/req/info/FilterIdentifierRequest.java index f153105..1dce60d 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/req/info/FilterIdentifierRequest.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/req/info/FilterIdentifierRequest.java @@ -1,14 +1,19 @@ package com.glxp.udi.admin.req.info; +import com.fasterxml.jackson.annotation.JsonAutoDetect; import lombok.Data; @Data +@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY,getterVisibility = JsonAutoDetect.Visibility.NONE) public class FilterIdentifierRequest { + private String IdentifierCode; private String IsUDI; private String isSPTM; private String IsReg; private Integer page; private Integer limit; + + private String facidentcode; } diff --git a/api-udims/src/main/java/com/glxp/udi/admin/req/publish/DeleteUdiSubProductRequest.java b/api-udims/src/main/java/com/glxp/udi/admin/req/publish/DeleteUdiSubProductRequest.java index 36ba208..23455fe 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/req/publish/DeleteUdiSubProductRequest.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/req/publish/DeleteUdiSubProductRequest.java @@ -1,5 +1,8 @@ package com.glxp.udi.admin.req.publish; +import lombok.Data; + +@Data public class DeleteUdiSubProductRequest { private String id; diff --git a/api-udims/src/main/java/com/glxp/udi/admin/req/publish/FilterUdiSubProductRequest.java b/api-udims/src/main/java/com/glxp/udi/admin/req/publish/FilterUdiSubProductRequest.java index 2d68955..4620d2a 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/req/publish/FilterUdiSubProductRequest.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/req/publish/FilterUdiSubProductRequest.java @@ -8,5 +8,6 @@ public class FilterUdiSubProductRequest extends ListPageRequest { private String specification; private String productId; + private String status; } diff --git a/api-udims/src/main/java/com/glxp/udi/admin/req/udid/DeviceListRequest.java b/api-udims/src/main/java/com/glxp/udi/admin/req/udid/DeviceListRequest.java index 74b3015..d0a7c3a 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/req/udid/DeviceListRequest.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/req/udid/DeviceListRequest.java @@ -7,5 +7,6 @@ import lombok.Data; @Data public class DeviceListRequest extends ListPageRequest { private String key; + private String customerId; //and customerId = #{customerId} } diff --git a/api-udims/src/main/java/com/glxp/udi/admin/req/udid/DeviceSearchRequest.java b/api-udims/src/main/java/com/glxp/udi/admin/req/udid/DeviceSearchRequest.java index a346018..db02cd4 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/req/udid/DeviceSearchRequest.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/req/udid/DeviceSearchRequest.java @@ -11,5 +11,6 @@ public class DeviceSearchRequest extends ListPageRequest { private String ylqxzcrbarmc; private String ggxh; private String zczbhhzbapzbh; + private String customerId; } diff --git a/api-udims/src/main/java/com/glxp/udi/admin/res/basic/FacidentcodeResponse.java b/api-udims/src/main/java/com/glxp/udi/admin/res/basic/FacidentcodeResponse.java index a2ed6f8..f1bdeba 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/res/basic/FacidentcodeResponse.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/res/basic/FacidentcodeResponse.java @@ -13,5 +13,7 @@ public class FacidentcodeResponse { private String IndentCode; //厂商识别码 private String Text1; //备注 private String NoDigit; //序号位数 + + private int isGenerate; private String UDI_StandAgency_FK; } diff --git a/api-udims/src/main/java/com/glxp/udi/admin/res/udid/MedicalHistoryResonse.java b/api-udims/src/main/java/com/glxp/udi/admin/res/udid/MedicalHistoryResonse.java index a01a4a4..9e65b33 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/res/udid/MedicalHistoryResonse.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/res/udid/MedicalHistoryResonse.java @@ -1,7 +1,7 @@ package com.glxp.udi.admin.res.udid; import java.util.List; - +//生产企业 public class MedicalHistoryResonse { diff --git a/api-udims/src/main/java/com/glxp/udi/admin/service/auth/impl/CustomerInfoServiceImpl.java b/api-udims/src/main/java/com/glxp/udi/admin/service/auth/impl/CustomerInfoServiceImpl.java index 45c1f00..2885e74 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/service/auth/impl/CustomerInfoServiceImpl.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/service/auth/impl/CustomerInfoServiceImpl.java @@ -54,15 +54,11 @@ public class CustomerInfoServiceImpl implements CustomerInfoService { CustomerDetailEntity customerDetailEntity = customerDetailEntities.get(i); int count = authAdminDao.findCountByCustomerId(customerDetailEntity.getCustomerId()); customerDetailEntities.get(i).setCount(count + ""); - AuthRole authRole = authRoleService.findById(Long.parseLong(customerDetailEntity.getRoleId() + "")); - if (authRole != null) - customerDetailEntities.get(i).setRole(authRole.getName()); -// if (customerDetailEntity.getRoleId() != null) { -// List roleId = JSON.parseArray(customerDetailEntity.getRoleId(), Long.class); -// AuthRole authRole = authRoleService.findById(roleId.get(0)); -// customerDetailEntities.get(i).setRole(authRole.getName()); -// } - + if(!customerDetailEntity.getRoleId().equals("null") && !customerDetailEntity.getRoleId().equals("") && customerDetailEntity.getRoleId()!=null ){ + AuthRole authRole = authRoleService.findById(Long.parseLong(customerDetailEntity.getRoleId() + "")); + if (authRole != null) + customerDetailEntities.get(i).setRole(authRole.getName()); + } } return customerDetailEntities; diff --git a/api-udims/src/main/java/com/glxp/udi/admin/service/info/IdentifierService.java b/api-udims/src/main/java/com/glxp/udi/admin/service/info/IdentifierService.java index 48992e9..1cfbaef 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/service/info/IdentifierService.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/service/info/IdentifierService.java @@ -22,4 +22,10 @@ public interface IdentifierService { List selectByfacident(FilterIdentifierRequest filterIdentifierRequest); String randomCode(FilterIdentifierRequest filterIdentifierRequest); + + boolean isUsed(String facidentcode); + boolean isUsedIdentifyCode(String code); + boolean updateIsUsed(IdentifierEntity identifierEntity); + + } diff --git a/api-udims/src/main/java/com/glxp/udi/admin/service/info/impl/IdentifierServiceImpl.java b/api-udims/src/main/java/com/glxp/udi/admin/service/info/impl/IdentifierServiceImpl.java index 27a40d8..ed3fab5 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/service/info/impl/IdentifierServiceImpl.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/service/info/impl/IdentifierServiceImpl.java @@ -58,4 +58,25 @@ public class IdentifierServiceImpl implements IdentifierService { public String randomCode(FilterIdentifierRequest filterIdentifierRequest) { return identifierDao.randomCode(filterIdentifierRequest); } + + @Override + public boolean isUsed(String facidentcode) { + if (identifierDao.isUsed(facidentcode) == 0) { + return false; + } + return true; + } + + @Override + public boolean isUsedIdentifyCode(String code) { + if (identifierDao.isUsedIdentifyCode(code) == 0) { + return false; + } + return true; + } + + @Override + public boolean updateIsUsed(IdentifierEntity identifierEntity) { + return identifierDao.updateIsUsed(identifierEntity); + } } diff --git a/api-udims/src/main/java/com/glxp/udi/admin/service/publish/UdiDeviceIdService.java b/api-udims/src/main/java/com/glxp/udi/admin/service/publish/UdiDeviceIdService.java index 437256c..5188b97 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/service/publish/UdiDeviceIdService.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/service/publish/UdiDeviceIdService.java @@ -25,8 +25,12 @@ public interface UdiDeviceIdService { boolean postUpdate(PostSuccessBean successListBean); + UdiDeviceIdEntity selectByPriId(String primaryDeviceId); + //关联查询上传 List selectByByIds(List ids); List selectKeysByIds(List ids); + + UdiDeviceIdEntity selectById(String UDI_DeviceIdOID); } diff --git a/api-udims/src/main/java/com/glxp/udi/admin/service/publish/UdiSubProductService.java b/api-udims/src/main/java/com/glxp/udi/admin/service/publish/UdiSubProductService.java index 44738d3..6166ee1 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/service/publish/UdiSubProductService.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/service/publish/UdiSubProductService.java @@ -18,4 +18,7 @@ public interface UdiSubProductService { List filterAll(FilterUdiSubProductRequest filterCodeContrastRequest); + Integer selectCount(String productId); + + UdiSubProductEntity selectById(String UDI_SubProductOID); } diff --git a/api-udims/src/main/java/com/glxp/udi/admin/service/publish/impl/UdiDeviceIdServiceImpl.java b/api-udims/src/main/java/com/glxp/udi/admin/service/publish/impl/UdiDeviceIdServiceImpl.java index 1184ede..d27a815 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/service/publish/impl/UdiDeviceIdServiceImpl.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/service/publish/impl/UdiDeviceIdServiceImpl.java @@ -61,6 +61,11 @@ public class UdiDeviceIdServiceImpl implements UdiDeviceIdService { return udiDeviceIdDao.postUpdate(successListBean); } + @Override + public UdiDeviceIdEntity selectByPriId(String primaryDeviceId) { + return udiDeviceIdDao.selectByPriId(primaryDeviceId); + } + @Override public List selectByByIds(List ids) { return udiDeviceIdDao.selectByByIds(ids); @@ -70,4 +75,9 @@ public class UdiDeviceIdServiceImpl implements UdiDeviceIdService { public List selectKeysByIds(List ids) { return udiDeviceIdDao.selectKeysByIds(ids); } + + @Override + public UdiDeviceIdEntity selectById(String UDI_DeviceIdOID) { + return udiDeviceIdDao.selectById(UDI_DeviceIdOID); + } } diff --git a/api-udims/src/main/java/com/glxp/udi/admin/service/publish/impl/UdiSubProductServiceImpl.java b/api-udims/src/main/java/com/glxp/udi/admin/service/publish/impl/UdiSubProductServiceImpl.java index a7a17f2..5fae243 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/service/publish/impl/UdiSubProductServiceImpl.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/service/publish/impl/UdiSubProductServiceImpl.java @@ -45,7 +45,17 @@ public class UdiSubProductServiceImpl implements UdiSubProductService { } int offset = (filterCodeContrastRequest.getPage() - 1) * filterCodeContrastRequest.getLimit(); PageHelper.offsetPage(offset, filterCodeContrastRequest.getLimit()); - List udiSubProductEntities= udiSubProductDao.filterAll(filterCodeContrastRequest); + List udiSubProductEntities = udiSubProductDao.filterAll(filterCodeContrastRequest); return udiSubProductEntities; } + + @Override + public Integer selectCount(String productId) { + return udiSubProductDao.selectCount(productId); + } + + @Override + public UdiSubProductEntity selectById(String UDI_SubProductOID) { + return udiSubProductDao.selectById(UDI_SubProductOID); + } } diff --git a/api-udims/src/main/java/com/glxp/udi/admin/util/HttpClient.java b/api-udims/src/main/java/com/glxp/udi/admin/util/HttpClient.java index bc7ea45..9a6294c 100644 --- a/api-udims/src/main/java/com/glxp/udi/admin/util/HttpClient.java +++ b/api-udims/src/main/java/com/glxp/udi/admin/util/HttpClient.java @@ -13,7 +13,7 @@ import java.util.Map; public class HttpClient { public static String post(String url,Object object) { - System.out.println("参数:\n"+(String)object); + System.out.println("参数:\n"+object); RestTemplate restTemplate = new RestTemplate(); String json = JSONObject.toJSON(object).toString(); MultiValueMap postParameters = new LinkedMultiValueMap<>(); @@ -22,7 +22,6 @@ public class HttpClient { headers.add("Content-Type", "application/x-www-form-urlencoded"); HttpEntity> httpEntity = new HttpEntity<>(postParameters, headers); System.out.println(UdidConfig.apiUrl+url); - String response = restTemplate.postForObject(UdidConfig.apiUrl+url, httpEntity,String.class); System.out.println(response); diff --git a/api-udims/src/main/resources/application-pro.properties b/api-udims/src/main/resources/application-pro.properties index 86037e3..324b383 100644 --- a/api-udims/src/main/resources/application-pro.properties +++ b/api-udims/src/main/resources/application-pro.properties @@ -2,7 +2,7 @@ server.port=9995 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver -spring.datasource.jdbc-url=jdbc:mysql://127.0.0.1:3306/udimsdb?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true +spring.datasource.jdbc-url=jdbc:mysql://127.0.0.1:3306/udims?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true spring.datasource.username=root spring.datasource.password=123456 server.servlet.context-path= diff --git a/api-udims/src/main/resources/mybatis/mapper/auth/AuthAdminDao.xml b/api-udims/src/main/resources/mybatis/mapper/auth/AuthAdminDao.xml index 00151d5..531b4a7 100644 --- a/api-udims/src/main/resources/mybatis/mapper/auth/AuthAdminDao.xml +++ b/api-udims/src/main/resources/mybatis/mapper/auth/AuthAdminDao.xml @@ -30,7 +30,7 @@ SELECT * - FROM UDI_User + FROM udi_user id = #{id} @@ -48,7 +48,7 @@ - INSERT INTO UDI_User(userName,passWord,lastLoginIp,lastLoginTime,createTime,userFlag,employeeName,CustomerId) + INSERT INTO udi_user(userName,passWord,lastLoginIp,lastLoginTime,createTime,userFlag,employeeName,CustomerId) values (#{userName}, @@ -92,7 +92,7 @@ - UPDATE UDI_User + UPDATE udi_user userName=#{userName}, passWord=#{passWord}, @@ -106,16 +106,16 @@ - delete from UDI_User where id = #{id} + delete from udi_user where id = #{id} - delete from UDI_User where CustomerId = #{id} + delete from udi_user where CustomerId = #{id} SELECT count(0) - FROM UDI_User + FROM udi_user where CustomerId = #{id} - UPDATE UDI_User + UPDATE udi_user userFlag=#{userFlag}, diff --git a/api-udims/src/main/resources/mybatis/mapper/auth/UserRegisterDao.xml b/api-udims/src/main/resources/mybatis/mapper/auth/UserRegisterDao.xml index dc0a3b5..afb9def 100644 --- a/api-udims/src/main/resources/mybatis/mapper/auth/UserRegisterDao.xml +++ b/api-udims/src/main/resources/mybatis/mapper/auth/UserRegisterDao.xml @@ -28,7 +28,7 @@ tel, mobile, userId, email, companyName, creditNum, area, detailAddr, bussinessStatus, - checkType, registerTime, checkTime,comments + checkType, registerTime, checkTime,comments,areaCode ) values ( @@ -37,7 +37,7 @@ #{email},#{companyName},#{creditNum}, #{area},#{detailAddr},#{bussinessStatus}, #{checkType},#{registerTime},#{checkTime}, - #{comments} + #{comments},#{areaCode} ) @@ -59,6 +59,7 @@ checkType=#{checkType}, registerTime=#{registerTime}, checkTime=#{checkTime}, + areaCode=#{areaCode}, WHERE id=#{id} diff --git a/api-udims/src/main/resources/mybatis/mapper/info/CompanyDao.xml b/api-udims/src/main/resources/mybatis/mapper/info/CompanyDao.xml index dd4e310..c6405fb 100644 --- a/api-udims/src/main/resources/mybatis/mapper/info/CompanyDao.xml +++ b/api-udims/src/main/resources/mybatis/mapper/info/CompanyDao.xml @@ -25,6 +25,7 @@ mobile=#{mobile}, tel=#{tel}, email=#{email}, + areaCode=#{areaCode}, WHERE customerId=#{customerId} @@ -34,7 +35,7 @@ INSERT INTO company(companyName, bussinessStatus,creditNum,classes,area, - detailAddr,appId,appSecret,contacts,mobile,tel,email,customerId) values + detailAddr,appId,appSecret,contacts,mobile,tel,email,customerId,areaCode) values ( #{companyName}, #{bussinessStatus}, #{creditNum}, @@ -47,7 +48,7 @@ #{mobile}, #{tel}, #{email}, - #{customerId}) + #{customerId},#{areaCode}) diff --git a/api-udims/src/main/resources/mybatis/mapper/info/EnterpriseCertDao.xml b/api-udims/src/main/resources/mybatis/mapper/info/EnterpriseCertDao.xml index dd276a7..e2a1cf6 100644 --- a/api-udims/src/main/resources/mybatis/mapper/info/EnterpriseCertDao.xml +++ b/api-udims/src/main/resources/mybatis/mapper/info/EnterpriseCertDao.xml @@ -140,7 +140,7 @@ and ZCBACPBS like concat(#{ZCBACPBS},'%') - and customer_contrast.customerId = #{customerId} + and UDI_Enterprise_FK = #{customerId} diff --git a/api-udims/src/main/resources/mybatis/mapper/info/FacidentcodeDao.xml b/api-udims/src/main/resources/mybatis/mapper/info/FacidentcodeDao.xml index 2d2d54c..df9b34f 100644 --- a/api-udims/src/main/resources/mybatis/mapper/info/FacidentcodeDao.xml +++ b/api-udims/src/main/resources/mybatis/mapper/info/FacidentcodeDao.xml @@ -55,17 +55,18 @@ NoDigit=#{NoDigit}, UDI_Customer_FK=#{UDI_Customer_FK}, UDI_StandAgency_FK=#{UDI_StandAgency_FK}, + isGenerate=#{isGenerate}, WHERE UDI_FacIdentCodeOID=#{UDI_FacIdentCodeOID} select * FROM udi_identifier @@ -88,8 +106,21 @@ and IdentifierCode like concat(#{IdentifierCode},'%') - + + and IsUDI = #{IsUDI} + + + and isSPTM = #{isSPTM} + + + and IsReg =#{IsReg} + + + and UDI_FacIdentCode_FK =#{facidentcode} + + + ORDER BY SeqNumber + + + diff --git a/api-udims/src/main/resources/mybatis/mapper/publish/ProductClassifyDao.xml b/api-udims/src/main/resources/mybatis/mapper/publish/ProductClassifyDao.xml index bf41d8d..46c7082 100644 --- a/api-udims/src/main/resources/mybatis/mapper/publish/ProductClassifyDao.xml +++ b/api-udims/src/main/resources/mybatis/mapper/publish/ProductClassifyDao.xml @@ -5,6 +5,6 @@ \ No newline at end of file diff --git a/api-udims/src/main/resources/mybatis/mapper/publish/UdiDeviceIdDao.xml b/api-udims/src/main/resources/mybatis/mapper/publish/UdiDeviceIdDao.xml index a235bf1..627ecc4 100644 --- a/api-udims/src/main/resources/mybatis/mapper/publish/UdiDeviceIdDao.xml +++ b/api-udims/src/main/resources/mybatis/mapper/publish/UdiDeviceIdDao.xml @@ -182,5 +182,16 @@ #{item} + + + diff --git a/api-udims/src/main/resources/mybatis/mapper/publish/UdiProductDao.xml b/api-udims/src/main/resources/mybatis/mapper/publish/UdiProductDao.xml index 22851e5..cf59011 100644 --- a/api-udims/src/main/resources/mybatis/mapper/publish/UdiProductDao.xml +++ b/api-udims/src/main/resources/mybatis/mapper/publish/UdiProductDao.xml @@ -7,7 +7,7 @@ insert INTO udi_product - (UDI_ProductOID,productName,UDI_Customer_FK,SYS_Created,SYS_LAST_UPD,Text1) + (UDI_ProductOID,productName,UDI_Customer_FK,SYS_Created,SYS_LAST_UPD,Text1,status) values ( #{UDI_ProductOID}, @@ -15,7 +15,8 @@ #{UDI_Customer_FK}, #{SYS_Created}, #{SYS_LAST_UPD}, - #{Text1} + #{Text1}, + #{status} ) @@ -23,7 +24,7 @@ insert INTO udi_product - (UDI_ProductOID,productName,UDI_Customer_FK,SYS_Created,SYS_LAST_UPD,Text1) + (UDI_ProductOID,productName,UDI_Customer_FK,SYS_Created,SYS_LAST_UPD,Text1,status) VALUES @@ -32,7 +33,7 @@ #{item.productName}, #{item.UDI_Customer_FK}, #{item.SYS_Created}, - #{item.SYS_LAST_UPD}, #{Text1} + #{item.SYS_LAST_UPD}, #{Text1},#{status} ) @@ -42,6 +43,8 @@ + + UPDATE udi_product @@ -50,6 +53,7 @@ SYS_Created=#{SYS_Created}, Text1=#{Text1}, `SYS_LAST_UPD`=#{SYS_LAST_UPD}, + status=#{status}, WHERE UDI_ProductOID = #{UDI_ProductOID} diff --git a/api-udims/src/main/resources/mybatis/mapper/publish/UdiSubProductDao.xml b/api-udims/src/main/resources/mybatis/mapper/publish/UdiSubProductDao.xml index c68ecbf..6caae07 100644 --- a/api-udims/src/main/resources/mybatis/mapper/publish/UdiSubProductDao.xml +++ b/api-udims/src/main/resources/mybatis/mapper/publish/UdiSubProductDao.xml @@ -16,8 +16,8 @@ reuseTimes,isDeviceSterile,isSterilizationUse,sterilizationMethod, otherInfoLink,YBBM,deviceEndDate,specialText, clinicalSizeText,SPTM,Quality,QualityUnit, - productOldName,UDI_Product_FK,UDI_Registration_FK,UDI_Enterprise_FK, - UDI_SubProduct_FK) + productOldName,UDI_Product_FK,UDI_Registration_FK,UDI_Enterprise_FK,productName, + UDI_SubProduct_FK,status) values ( #{UDI_SubProductOID}, #{SYS_Created}, #{SYS_LAST_UPD}, #{SYS_Deleted}, @@ -28,8 +28,8 @@ #{reuseTimes}, #{isDeviceSterile}, #{isSterilizationUse}, #{sterilizationMethod}, #{otherInfoLink}, #{YBBM}, #{deviceEndDate}, #{specialText}, #{clinicalSizeText}, #{SPTM}, #{Quality}, #{QualityUnit}, - #{productOldName}, #{UDI_Product_FK}, #{UDI_Registration_FK}, #{UDI_Enterprise_FK}, - #{UDI_SubProduct_FK} + #{productOldName}, #{UDI_Product_FK}, #{UDI_Registration_FK}, #{UDI_Enterprise_FK},#{productName}, + #{UDI_SubProduct_FK},#{status} ) @@ -37,7 +37,7 @@ insert INTO udi_subproduct - ( UDI_SubProductOID,SYS_Created,SYS_LAST_UPD,SYS_Deleted, + ( UDI_SubProductOID,SYS_Created,SYS_LAST_UPD,SYS_Deleted, brandName,productOldCode,productCode,companyName, companyGBName,regcardCodes,businessLicense,deviceType, productType,deviceKit,specification,deviceDescription, @@ -45,8 +45,8 @@ reuseTimes,isDeviceSterile,isSterilizationUse,sterilizationMethod, otherInfoLink,YBBM,deviceEndDate,specialText, clinicalSizeText,SPTM,Quality,QualityUnit, - productOldName,UDI_Product_FK,UDI_Registration_FK,UDI_Enterprise_FK, - UDI_SubProduct_FK) + productOldName,UDI_Product_FK,UDI_Registration_FK,UDI_Enterprise_FK,productName, + UDI_SubProduct_FK,status) VALUES @@ -59,8 +59,9 @@ #{item.reuseTimes}, #{item.isDeviceSterile}, #{item.isSterilizationUse}, #{item.sterilizationMethod}, #{item.otherInfoLink}, #{item.YBBM}, #{item.deviceEndDate}, #{item.specialText}, #{item.clinicalSizeText}, #{item.SPTM}, #{item.Quality}, #{item.QualityUnit}, - #{item.productOldName}, #{item.UDI_Product_FK}, #{item.UDI_Registration_FK}, #{item.UDI_Enterprise_FK}, - #{item.UDI_SubProduct_FK} + #{item.productOldName}, #{item.UDI_Product_FK}, #{item.UDI_Registration_FK}, + #{item.UDI_Enterprise_FK},#{productName}, + #{item.UDI_SubProduct_FK},#{status} ) @@ -111,8 +112,11 @@ UDI_Registration_FK=#{UDI_Registration_FK}, UDI_Enterprise_FK=#{UDI_Enterprise_FK}, UDI_SubProduct_FK=#{UDI_SubProduct_FK}, + status=#{status}, WHERE UDI_SubProductOID=#{UDI_SubProductOID} + + @@ -124,15 +128,30 @@ and specification like concat('%',#{specification},'%') - + + and status = #{status} + and UDI_Product_FK = #{productId} - + ORDER BY SYS_Created + + + diff --git a/api-udims/src/main/resources/mybatis/mapper/udid/DeviceMapper.xml b/api-udims/src/main/resources/mybatis/mapper/udid/DeviceMapper.xml index b6a47ce..4a9940b 100644 --- a/api-udims/src/main/resources/mybatis/mapper/udid/DeviceMapper.xml +++ b/api-udims/src/main/resources/mybatis/mapper/udid/DeviceMapper.xml @@ -49,6 +49,7 @@ + @@ -164,7 +165,7 @@ ylqxzcrbarmc, ylqxzcrbarywmc, zczbhhzbapzbh, zdcfsycs, zxxsdycpbs, bszt, sfyzcbayz, zcbacpbs, zxxsdyzsydydsl, - deviceHistoryRecordKey, bssjzt) + deviceHistoryRecordKey, bssjzt,customerId) values (#{uuid,jdbcType=VARCHAR}, #{devicerecordkey,jdbcType=VARCHAR}, #{btcpbs,jdbcType=VARCHAR}, #{btcpbsyzxxsdycpbssfyz,jdbcType=VARCHAR}, #{cgzmraqxgxx,jdbcType=VARCHAR}, #{cpbsbmtxmc,jdbcType=VARCHAR}, #{cpbsfbrq,jdbcType=VARCHAR}, #{cphhhbh,jdbcType=VARCHAR}, #{cplb,jdbcType=VARCHAR}, @@ -180,7 +181,7 @@ #{ylqxzcrbarmc,jdbcType=VARCHAR}, #{ylqxzcrbarywmc,jdbcType=VARCHAR}, #{zczbhhzbapzbh,jdbcType=VARCHAR}, #{zdcfsycs,jdbcType=VARCHAR}, #{zxxsdycpbs,jdbcType=VARCHAR}, #{bszt,jdbcType=VARCHAR}, #{sfyzcbayz,jdbcType=VARCHAR}, #{zcbacpbs,jdbcType=VARCHAR}, #{zxxsdyzsydydsl,jdbcType=VARCHAR}, - #{devicehistoryrecordkey,jdbcType=VARCHAR}, #{bssjzt,jdbcType=VARCHAR}) + #{devicehistoryrecordkey,jdbcType=VARCHAR}, #{bssjzt,jdbcType=VARCHAR},#{customerId,jdbcType=VARCHAR}) insert into device @@ -469,6 +470,9 @@ #{bssjzt,jdbcType=VARCHAR}, + + #{customerId,jdbcType=VARCHAR}, + @@ -951,4 +969,9 @@ + + \ No newline at end of file diff --git a/api-udims/target/classes/META-INF/api-udims.kotlin_module b/api-udims/target/classes/META-INF/api-udims.kotlin_module deleted file mode 100644 index 8fb60192d378759239a3ecbf60eac8c8de446e9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16 RcmZQzU|?ooU|@t|UH|}6022TJ diff --git a/api-udims/target/classes/application-pro.properties b/api-udims/target/classes/application-pro.properties index 86037e3..324b383 100644 --- a/api-udims/target/classes/application-pro.properties +++ b/api-udims/target/classes/application-pro.properties @@ -2,7 +2,7 @@ server.port=9995 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver -spring.datasource.jdbc-url=jdbc:mysql://127.0.0.1:3306/udimsdb?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true +spring.datasource.jdbc-url=jdbc:mysql://127.0.0.1:3306/udims?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true spring.datasource.username=root spring.datasource.password=123456 server.servlet.context-path= diff --git a/api-udims/target/classes/com/glxp/udi/ApiAdminApplication.class b/api-udims/target/classes/com/glxp/udi/ApiAdminApplication.class index 523682722eb9e451c48d5c941c5368095f4d69aa..1b615718f75581714029243aea4050c37613ab1d 100644 GIT binary patch delta 408 zcmYk1&q_i;6vlsZuR3|V{z=Q!{%Dyuy)7h&K#&%-3fcul(B`hf5DSb}fe&$CBsUd7 z;kp-S*_%XXCZPuAeCN#hzH`2rdQ-3Z@%{P^>=Al6xSE7dl9b{&zEzd@#PQ=VC&;9F z{bB#^K;gF9XYq{_urM+RWF?j*>gOcprR)1AWu+#Uursht zj%QTbD9py_sK&^^$iNK5tU#TNK-KIF96%Nm11Ff|V&DeS(m*~BPz`%D17j)!F9RO~ MKZuvgAiy990FAg1bpQYW delta 133 zcmX@ae27{2)W2Q(7#J8#7=+jv_}Li**ck*jRLO9T0w YKs7AU42-D^TnyX{JRn{w11|#~0Fzi1f&c&j diff --git a/api-udims/target/classes/com/glxp/udi/admin/aspect/AuthorizeAspect.class b/api-udims/target/classes/com/glxp/udi/admin/aspect/AuthorizeAspect.class index 6aa463e819b5892265f0160009d0b8aa7b5d8285..031b87b3bcf34434b6752bb1e732616ee537c73f 100644 GIT binary patch delta 1746 zcmZ9M>sORj6vlt=Ff(W7oim6i=xBln7zl`#mz=1eKqa|&L)1zHp#ep_fM!=x>|&;- zr;A!@ce|RXA!sRDY1yh(U;5Ts{Q-S38(L94OO9GpHotu4 zlDe5C6%_%dIfMooEUcbWR^@UBGZazHof7x~cd3vRSpxNqt6SRYS{g$XQ=+(6b04J+ zspdB~)m(N9)2+rcHM7VS>y9-GI@Y(e#Vplw&Hcu%e~C!)(`C0(z9k6pw43;7PM1Fk+-?u5Yhu+9ZV}^|RFOcWRzyvpK8N zQUY{2_~HUu%Fk$?x;zW-xbHWLx%ln7f;_K>^0*Q(K$Un*&#YYk*4zI}AFa4|1`=pl}Anj{1 zE0o@`s}oM*bj!fQUTN(%q_Iz0J!rswUYD7}8?x((gY)8ZS+l^-n~~W!A)RYTOClur z1M(ki=a6)7@)il!m1l_bVKF${i|Qv_nSYVQ(+pX1jG-qPaW=n)QB?)WX?=|K5cL-H zG2S8SbE5u;x0eY~|6w|lqG}Lvn?)2PPaQN?5p}~?d?%uMnH~*90{>eMB;VD?Jsx@} zvo3=XeuN~2W11jrivZC%X@-S^zuH3McdJ`@&O+TK3l9l;$yrNu!m1%?1(g?Y5`nXDj9d61>k5ro_w3X7;rFlG!gLgfHc! z!6La#XM%8r+Pn+Y4 zxdK=4T)~Y?6ZD89#0A3Y8%nQVxQw`O2qwpR*?yeemcMh;r5hu=wX&- zr!=fI%QDJJ)R56adTCkNbM>o#LaU!zxlr5pLfUGrd(PSC?#KD=@80KZ%|4XfcJbPo z9$+fJ`N*Zo$2#JQX2p6h57XkqNvn?(5*{}A*~lhq+U#Qsk0>6sY##IQxQ{1j^YEmf zt!%RbZMQ6T_<4$_70>t?%Cm}{KAvNjkI_8uC7T!g?4HaXKQFS^&r4`)dRg&`hkcgO zek=N`igq6dc+K*7UGauq>B-blce&o=DM@vg#Nx5UOoNoX2}@6QdeT#d+u++32Nj1T zmf}spsW_~A{eQa^Zzl~x7O>xxZJvuDq`z9Z7%)m3N zbbdv&x}sD9ntaGdCLeQL;+k}F!eH>)nvFF@O*Qd`qO#3v>enY?&2f{HbQt*iT^Co* zD~l>lnS4T*1gxoB7mHWN>I9X^X}V3495*?G_pIPH`IOJ}WoN$2q=$3*usf)ixiX6s zy(XXYg~^wEWio+@imy%1b3w8)`G#*LHIs{cXYxHi=s#UUGhFsjCYSipYNhZbzQJ=9oOhU{IuTj*z;vY+*(D z^6K(gk%-=rvO))(MSdYD(Yz?p5{ozJ)y}c{n6p?9apmi6uG(}1cT;`5A<<}8yh6BX z()ns!hJk9VX^qxz7A(>VEA%ckO82O&G^++n7SELvDk5d2+Ubc-Axkgq?*+d;2vhn z(^M!gMyW_HiN1$2%B6e@h%-n2DH^F_E){s#$#m`&t(Ojh%p-!YjT6G{e4=uEj~rCV zeFAQQfC%I6BdAz-T^dCx7AY3XPO(I>)c&e46wAy$LbA1Om-msQ%`vTX9TXRj8fDq9_%AeD7XSwa9qJ>=P$ij yD`sUfJTy>h-yzv#*|EVJ$nIv`NpdWZR$ugAI>;1q8fE7oW?v$oNNZ*P5c~tqA4_xq diff --git a/api-udims/target/classes/com/glxp/udi/admin/config/CorsConfig.class b/api-udims/target/classes/com/glxp/udi/admin/config/CorsConfig.class index e1046572e83ee4eb2e301227a736988b06bbf791..818de7d311f4d89d124f1b2b9e2d429cc2fc7720 100644 GIT binary patch literal 3249 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 delta 813 zcmZ`$+int36kTU#m>FQ&+9^^{+ghPO3y2qr+B^0FMQeRBsZSzIS_okj#>-pd7Z7s3 zq_Huf4@6&m(qHgH)IArg#`th%?Y;JG?LEWM;b{5u_p>2@JRSuwhMNj*skrUODDnX; zq7a0DJ1Xwl&OH@NHZH4JQL!4t8rBtTC@3np-#;txFT%lyywYeltThHPHUESs#in1a zn>&q`Wpv*6#0Zl%6>RZu(mPedMT8j={H2uWA5A~iFb-Y8wuT*)G?cN+aHUwQ8QpGn z(`;KEvz0BjTIQSVo?#uC^{$2rO8?6#8`Zkep_~UOab1Y%43gD(Whi*4VG4T;asEt< zlYk4&>g#H*Rc#;U_MbP6n#B;}U&RoGCY(^i%|J+FT5Ak|JXZb4bu7lElgsOJN=hWK-iAf?0YodW=@icsneTZ#Vg8`MG6h d`>-257r>Ckb?RV`uutv|@Y%H8IOnvx@e?Dmdx`)6 diff --git a/api-udims/target/classes/com/glxp/udi/admin/config/DruidStatFilter.class b/api-udims/target/classes/com/glxp/udi/admin/config/DruidStatFilter.class index 9cf56752eed242c3d3ce061bd96a223f0fe532a1..0de446138a0329c0cdb1af15b8e6276ca54799e0 100644 GIT binary patch delta 171 zcmeBT?P3)_^>5cc1_lNb1{p2}CI)791{NL$RtC1ow;A=+rCH8jK6 z88{}dXVlxM*1{;ppvb@uR1X4-KnT5cc1_lNb1{p2}W(G-i1}Sz1X+{P%o6Nk-5<5l)W)01-jV*1A96Ssx z46KX{niKbGP88P{V^CyZ0%`yOMj!;r0ZF#W3QS@l>_9O#Adi7Tkbwh8@_^Z_44e#H zKpqnVH<;vM;04m^Ksi33IsC;80t|xD42;DLLJYz{+JQj?s8qC=L5xAXm_Y&n;;j-8 diff --git a/api-udims/target/classes/com/glxp/udi/admin/config/DruidStatViewServlet.class b/api-udims/target/classes/com/glxp/udi/admin/config/DruidStatViewServlet.class index cd71bb336cbf9b28c894f225b0e48f37d785da9c..301c877fcdc9637622f563731f85b76e7ee1a1f3 100644 GIT binary patch delta 265 zcmY++yAAbnU^)b%SlH)|F?JR9Y`fd;=L)meUpWL7!_#qiawoUdMIC71 z$Py@uga}KGhzz3gQu>T!OgbaqU=8l5oBt&)smG8aA*om714*$yk@ho#D|I8Ytn_kg jlt-Sz8f!suDXo%6nTkhM{AEqE{$oS4`D5#!ZOzUH3ZENu delta 260 zcmY+6J#NB46okJu>{>W>AORIOlg8;e0F~>=hoC|Ni34yb z#Pde7L^E%`nbFHkX2RoXcL2V4_bBn^(sSvj>yN;Ump{wjiJ~+ZesA`FO8Zps()nlF zj8=4TWDklKWwcx)aDVKuErBdnz5fLbtDwk5Eh@uZ>z-me=jh(^7r#|rk zvzOm>81$*ae!-b$PzQ&$On7n0fXQ(goFO5ST2Msw7wz)m z3P&q^4BE~?q4=61JUArIln}}L#aGX~&qNSc4TLz_W!u=%@3AOZzO!s6UtX{rD_1%w z@8(Ukp+nBoDJpswvAe{%XC!7K0#zj!vC@dq+wD8H68euCz`+YH&x9vh{KW*(grSiv({2Ou$Ql6kMj9a)3MiEPNm+-wN zJOB^fQR1{th|fl-a-aGn0x3+=%4@ZT2bdznWMZT@&W>aMALGN(BvicN5*H z(;rd~g@}+=n;=;P%k>Mgk>^bp)Q&0D%PmdWN3hV`@d7AYg1+Eoc>^jb^4yjL={VW+VL3ml6E3`}w?*|DtB6?Ohfg;kE%GOH(o6AYcHxlCqhrhRb=FM z7O@MwMTTKTUCUF=E*)A#jbO zXOwEVrT4edd5bpnRx;hj>Jn>=?rcwFHt>sRYC&EZZXuSTA7v zUuCFGMYO3nsK>3!@J(}sF#>CI_$u|*sdw-aeES0SR5a4So#>?x2En_Ijt1^E&>3x@ zt0gJ_+5^YRk%1dxON?635)m5IPRmE}n1o|grF@NJlrpO_P0>J~qJ64xbE*WL)Awa~ gLeEp>h(`a1@^Y-n@lci|JWg-%ylL75UQ`hN2cI2wEdT%j diff --git a/api-udims/target/classes/com/glxp/udi/admin/config/PageHelperConfig.class b/api-udims/target/classes/com/glxp/udi/admin/config/PageHelperConfig.class index 7b0981e5f843b409870b69e54b9ca8cb3b3e6050..c3ff2482fd0a1a70864e6e3ec58e312800034637 100644 GIT binary patch delta 468 zcmX|6OHKko6s(>BrX2>v@sFZ_KR$zq;L6{|#F%JY7&Y!3$V4H-M?e!-p21997%w3k zNF?z9-oS)2cm(w|7`u~t)!naNRrh$0?|yv0y#vT$LxlucflGrM9)>{4yff3bS-DCd z=Sx7;4R*KCX200c#Q@|O*k3V6r3PlLL3}a4)jipqmkU9JezH7^_S@pf5Y106X z0E4@H-?*_wi>_gm6ra*Th+~35ty^ZJS~2ss#WBU;YSwRw1)WPNnBbTt|C(7h%MFe> z27jS?TWN0h@k9(%5Y`Yu)QQRlrCD^IrF84`g+0*a0)0&^2^0Vx!X-MTsWPhWLBDV|oE!SMKG{Y@ zuxY^rnbAXnB#k!aldq(guxNlk9l8lZ^Jh_|%6%>V_;&CE_j*Lm1OaxDULkJ%I0xyaX z!GIs&H~0k}`~a9>kHYPbb) zqN!b~(n3nIZpkExs6CS8wHBiJC)WFrXny-=x20RM)A7$u@O~p0W!D(;7{fT%PH>f+ OZ_-mHy_oucO#{DoLry{f diff --git a/api-udims/target/classes/com/glxp/udi/admin/config/PublicFileUrlConfig.class b/api-udims/target/classes/com/glxp/udi/admin/config/PublicFileUrlConfig.class index 16f531c8041c2d10c1944e0a114ee53689560c32..173ac7fa0e7ad583557b044b5be24f7135edbf99 100644 GIT binary patch delta 487 zcmZ`#J5Iw;5S)Fn{jhOxAOQjdf`gFwC~`vy^i*_+)_jBKaN!ARz4Sg!uG9P~IX>%Mp7#ab zewJtbLqTP0`^3i-e2XB&G(thQD7r;Et}8tgB2vz~xV=fUe0cgM1H^nVbTSBZgI%C1 zq6<+=)*7dTD9Y}ZfJ3cb zP`w&|U(ik?2^N(V4uFp)mPqN@7EwRv3HFgFW09JimL~?NjsJ3)0MvU0CiR(NU-=XsbEJY>w delta 484 zcmZ`#J5Iwu6r8oQ-q|s5C#;T7Rx>D8*VuRjj7)J`;`OS5j(UDKs$4DOo3Ul1md?LZeJeq8YZHFkQ_5kOesD4F?s9Mzk1tfr54IqEe`zL_>#dm-@ gFY(d-D}Y-Ku)()1aNa?LMPf*1mq?cB*SW>Y2k~wti2wiq diff --git a/api-udims/target/classes/com/glxp/udi/admin/config/WebMvcConfig.class b/api-udims/target/classes/com/glxp/udi/admin/config/WebMvcConfig.class index 035a746dfcd16eedfec66d803e5ae0761d09c89e..bc7d6ca913ea076f13717d66ecf98b57278c2530 100644 GIT binary patch delta 454 zcmY*U%TB^T6g|@ig;KFrM10~Cp(rSVx*%*_8I2f?3r(sJEUA!Sqf0-)xFG!u5)(Ex zG0_k3H~bIc9l(XNIA_k>d(Pb34R^z*-~Ep-00kVV5Fjd$G{^`r=nd=9$~jiEo;$v2 z)NWmdK*?^}Zka($rO$&1(j{k_DpZ6OXd1>4VJLf+koVrCu=gX_rULz6RK;!E&3X_9 z10!b?Qwm}lrV;n9g(BH>uOr^8yfUj{4)b1LyvlO9s3CzkL&S2N)>Ex|RCDiI)d!h| zrxVe6&#Hzstb2}B2`JcLNOoS5v{IU~4|`{?>>0~Q(wYn@@^GeA2~AQtVn!^R?_j+_ zIYY?HKnRzH5AGk2UBKC;+Wc$D`@RmT^ delta 446 zcmY*U$xgyh6g{`4l%XP2#945Lq81T{1u>DmaUjvSa8ZR|2||L6F8u^U`VlTz8Izir zsCz%cPchyHxbQ8`z2^?+p4Sa`!zW)qZyx{(*bQL_$pBIz%wb-|LI8^)EMZx|ih#7j zgZv^zwdiBa7l-v&G-IT0%j-TW{Ex9$ialh#z zMu=FAM(e&>IjB0KhJ#xcQ1Cb_2&6JdC&htrthD4fj#zw84&n*aa+ diff --git a/api-udims/target/classes/com/glxp/udi/admin/constant/BussinessTypeUtils.class b/api-udims/target/classes/com/glxp/udi/admin/constant/BussinessTypeUtils.class index 31420172e245db88a1f2ada1b36d266ee7817091..0d6870448d251626231ae339405b846fc2d0739c 100644 GIT binary patch literal 2102 zcmb7F>r)$596gr+SweU%uNEtPKxs%@QXkkVNabNm+q58|VC!>9*03ccncYp556*y& z;;8*pW^@K;bgCWuMXe(o)+; zLi3>l9xp2Ws6w?s;|=Ae5=tn^cxYnoh8i^mst2{CW)2B>0=+X{NCM4vP{z~}p(S!jnuGQw=kvFFh_~PaG8J7}Io`R#wlR zKWrC#H>EEW=XFuo=)4*&p^pmGj;3Pjl$uT`QB}gRJdtlMp;y2cF;me6J6pnW7K$hd z)hMoiQlMooMP7uMP;hr#G3GBTX&?IFk?^#DKezVvA6wsVe{^?y>vk6V8tN-UrUnIpBlX_0GHnF{Y z%loW5g~N#OooszPpyjCM^D0Ln{tEt91vepnCaAy+pVl-WVU|z76M$E7jiVY|$7_sY zGD9ltxlbO#dut~_P=@{Gsw<$22) z2M);e#(^)&bjN{bW%}d5VVMp&a8#y84t!arOAb6Q(r)$L6vm%T3V9R4CCjbFN-tmysHAFZt57NzTiT`t2^XoiF3B3Uge0@Osq(=Y z&`}&OpJYa7a7L%vv0v0WGQ*UP_Pc+F1pFr)pWV$8l3+(>l6}s3&pGee-+SKh=Rcc& z05}CLfD<_9Lw^7s>v>+_O*NQ{XLuw*_wap!hH=p}J2?Yi7R$Z@6np z!hxYoLX}V-)za#<+`_D?Pbjk~dgN#(uB4_EU9;?h^ME<084^xLGWA|Il1pe2 zC9$BTBk@eyFqO0!8O#|5s~N_`Vpg3rwUp7za!J*+7K$sZBZs@9Hm zK-ZN;>jWf(A9c9anGO|Bng=+hXA-%%I<4sHNG4~fm(o7OgGhjzH;%E9ImOt!N^avS z4IH6=m#2)_FIh&zEL|hUV0G znXksW3*%}wrNr63Z54Kt5Qv$X_`IFOcZew|)hI34wEyOzBH|Inn6pPGxV`%AUz}=w6wEch@!c3@5B6Ocgt5-Hd(_8UR}!nvb^P* z+iUBL-!*q0u5NAI*){W@{+|DS$u<4k-!13Y9_GKe%^PCr-|n&+e<`-tzTW=ezEgZ_ z^=CKU?WC|*&!fhra{hR+Z6x;H9G$(%W0O!7-x4kxy^>$-&6Vz>>| zo3%#c>^{-^5Pf-V*06dLn zX!+5@B#)KMJdeHh$pd(1HsHO|Emz$~wFlGPvdIqw8F$e zypKcpm>KT73oPLzo@Kq~__1g>p66+u;>W{^e!PG)1uBPa#J~>^&_pWDq|#z>Y4uuM z4q9X!c}ON3N4CkNnqxJ*WlY?n#Nkw;{5a^z8&q#SunCM!oCmr2W! z9Wr@2vQs88Tb2`R=er#tm!oLs$aLX2->?Jc(TU3(ph=F<4Gzyd$LAJTm&y8ba{7u~ bZ*w||#J(Z1vn9kV&x^anULwU_n_b_(ND((1 diff --git a/api-udims/target/classes/com/glxp/udi/admin/constant/CookieConstant.class b/api-udims/target/classes/com/glxp/udi/admin/constant/CookieConstant.class index 14e3705d9dbdcc92d6b66b7578845c17b4702166..92d34db5259c5fd99a711c5f27b05f07d1092ebc 100644 GIT binary patch delta 155 zcmZ3$yntE!)W2Q(7#J8#7^Juum>8JZ8CZB2SQ*$Rb2FOrax!o*aI!OS@i1^R@Ju|c zKhZ}PsDN+c2eFB=I-J6c46G&j*{OLGGkx{g7=dbefd(-#NHXv<2rw`*2!eS+Kt516 lkPT8H!XOHy#U>Xpipa2U1Ph7-Nj9J$0|OV3lmOB|BLF*^5=sC7 delta 168 zcmZ3$yntEi)W2Q(7#J8#7^Juu1Q~=l8JHP_*%?IG8AK=U)n^o&*daght1mA*gE$X^ z1cM|G11AI5#Atm-t2o~f6k|5;_Kt+rU{6LzCK>z?) C)fdtL diff --git a/api-udims/target/classes/com/glxp/udi/admin/constant/TestConstant.class b/api-udims/target/classes/com/glxp/udi/admin/constant/TestConstant.class index 64b8e40c00f59fb39531c24e05d03ad4fae86f80..a771aa59aab3e50c05cc71b3c368ada282528026 100644 GIT binary patch delta 186 zcmbQkJcn8Q)W2Q(7#J8#7^Juum>8JZ8CZB2SQ*$Rvoo6Wax!o*aI!OS@i1^R@Ju|Y zJJCm0jGcjxkwG9Uu`E$PCowNw-#;lUHMwM>ls>00BLizmes*f!#7yrvHb$UcUZBBD z43Z4|3<3;{41!>u5ReZv4af$m5MdAn(qcfK5|9P~E delta 183 zcmbQkJcn88)W2Q(7#J8#7^Juu1Q~=l8JHP_*%?IG8AK=U)@Kx(*d{;mvo|k0gE$X^ z1cM|G11AI5#Asbffvm)`ME#t^ymWp4q^#8B5=I8rlKkw{youuGacqo0Q&@neGBHRp zurjbQFfy=%c^p7K&;THtk%5DOn}G*N^8$HFKpF(N1Z5O?u(*J`pyEbca4Vluncz^QOe)Dp@if(Dx`seVrn0E~H6Q!| z{wT|v&N3bJ@k>t5J?D1k_n)7?0AL3`v|xt7mKU8WQE9DgLxsf@m` zAmbD+qt1$>QReXj7W00TC44U=ur&1>*jit8bPDqXR;(=cj#$zZFV`CNwZFTQcA4}aMu-@}y zJeU9b%b^cUd!NFl2>m^ZPnz!2&{|*DQ1}SfpdE4VoUTZrnLQo%U>T~08+$@vPK!p| z=97SVygE`Ls(U>zMP;|@9${;3e^}0ZL7?rVk#`~n6QI>0Qh1G@*NO9MQ@q1L>lQeZ_)~OY4KBefQVVGYC~{lkIpmJS3&>rGmylN^ zUPZnt@ipW%iPw>CN_-3Xj>LD7?@PRa{6OM|$XgOWMt&;sGvsZF737x^ze3)T_zkuu J@J@7p{}=hH?M46q literal 1065 zcmZvbS#Q%o6ou~;Xol`-%F?p$Wvf}rCZ4Q`OR8GfvK^{EMT0X+-MXI03(&vD13!Qt zg}Amd?l|!H9nU%E&K>#ppP#<~U>iQP;86=U39JMMt~GG`!NB#LZl47NR_!DHjT{&tI`%K{}fu&kBZQBVb zJj2LJbFkVsZS+1@-cnNDE#)o6iPunLms;2I1IIg{@Ip;gB?g|k`>BUTFPo|Rj<-kQ zm7dCa7DMf|@-wGvVZUpe45!*|$aUKrH3PP@y}=~oEdi=-O5vR%oQT4E0&~7B(opO~ zu_#kd$3ks&t6VvO%}|~gqxi?zD29>2hbK{Dgp%7mZlta2p_HQ|J_ z1PILFPq6~)a1PERT|k%?+6#1gYbI9`=FCZ^!yo9{0ahc!Ncon&$@fz|ajV~i# p(fBIzy2cww*EGJ4d_&`#$hS1UjeJMryU6!6zK^#i@SwW;!@sXJ?Fs+@ diff --git a/api-udims/target/classes/com/glxp/udi/admin/controller/auth/AuthAdminController.class b/api-udims/target/classes/com/glxp/udi/admin/controller/auth/AuthAdminController.class index e8141b22b98937076ac40981f49773a23764fd53..c8cc2e7880662bc9e8239354f0eb6859a311c422 100644 GIT binary patch literal 12557 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 literal 12625 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 diff --git a/api-udims/target/classes/com/glxp/udi/admin/controller/auth/AuthPermissionRuleController.class b/api-udims/target/classes/com/glxp/udi/admin/controller/auth/AuthPermissionRuleController.class index 0664f5d9e4e44a32944cf7dbf8741f0b39b208fa..e74a3222fc41069c95f8c8eacf67df6e7ce66b9f 100644 GIT binary patch delta 1667 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 delta 3646 zcma)<33yaj703VQ&GKg6+$56>gbX1eA%RRb!VU=}kU&_INk~%yr9g+|Ndl8e%uFgE z?I_yTDpm2imEuyZ6%{Ro8Ztz?SZyn|weD7HDK4#AZMAh5TF-qm9a2EPe);CzbJuh3 z@BPo2$-}`{gYna^ow^^uJTeV5;iv~+#n;@p2gj6kuYuz@VcM+29UYGt$ikyK9y5@QqpI^=1E=vl)qPw&o>0dc6-!sOJ7^pze9~JdIb>idWU+Z#w>N zpjK_H#Xr>JpDz4Mwg1-f9|KEqRL6gHoRbH%mGXSX5?Q5hl4EcR>AUiiMsF0@WR3xaFrU@#cQbE(HK+p^-6Ig?_It2ukQ$?18D!o)C zunMbnsunbpYIK?30Ku!q^PPICm!rFlBd7qoyD3R*<9g6gP- zZ?V{0LQB*&>IF5>Qss1+PK|<^NEfu6RtRb)P0sS<*$8DEbBXkN>@#&*DQFd~7PN-e z3R#CobFRP(lK#?ql~b`_Np9HE~6zKEbsx|&dBkvNm#m-jex z#QWOAd3^F|m(O9Kkv7VcwhH-@ZL{29UoDT=>&pnfK+6Sq>Rl}^ z-#~EfFk_tqu~66&-&%Q-W43(IQEU+Os2NkszT#Py z!^6S0&TYZw&aSqOb%bC*7Hbn_zgXmA`h38e9{HpwUdA#V9_$IlOchbbK-eT0J!aU9 znN54v^bp*9Q#Gt?AKUHbP=8-E+BXpC;OO~~yE000X|tef={kYCR7QkY0r(6)EA#T_ zvaGu~hg${)b`7%}#hOUO99kX@MWbev@OVI;&CipO0$oP(k8;ZRIIxR7=)|t4%l7=~ z{EiE`E$l!sm$oJ@mo~0goU>f*nz`rXb|tr(%8yINIFBwGb90|-13z2kQw6#4VCoE@ z6m4t^o&g+a$9irF9k_~nt!&O_&pMAqsuIu$x5IZFHn#bVjleMq=dp_WpjRf~(h#gp zz)d&>14zK5VH6^P42{csW}STuS(~a)!dvGU3m|*bN#xWy{Z7AQ1in#B7{NsD*hi4- zcaCDxF?MN3P~KKp6ITJQP6m+*ki$VIuC{`XU<0}sL@8f-BQ|lkja;0sVav`}F2QD8 z%U9{dWNg7!2Dgn*tKhlh`s>o`L+SO~)9br=eNUV>*g$@mY`8T(3hWZrdzi$I-^O9= zh@uyL%GeBwVkdT~wV+&X!u;u1U5)2eM*)stfc+`JWhubj%rTES`ZcsNUyI{p#c}=WvxJBLCQdj(amy;K#nTA_=_Zt#> zKR%FTLyJ-p+j}K8Is++BphBhbBM`??nNy|GdkobqteJK8N#g;kAk~tptWVN80k&R%%p)10-*e|@8eM+Dzx4TP| zgd36}r3vp#6W*61JfCHlB)p01WRh^0$t4LZirKLHGtMD!IgFR3c)LY0p491~w}kNy z9OgHxQur`qv~gQIo>m&x`~((hsGo8{a8|)&ZpnncfB^FF^l6sLijwE08Puj2OyT0A zZmC&X(V=CYLtauMT!{{F49)x*SKL1}P92}NDiQy@CY5epL;V0?Kk5d%Qa30VLvbx< zOA3;NvDkYp{a_fxzaZwgn1%#(KwmYpV>|%|74xi_>Dedm} zdU2;W`EBy%bmu7e2MMoKQLN)u<2GvyOF4*TEftlVxRoilJdtT(sfP=@8<4^Olc;al z+~gkI&6x(C((y$cvGU3)&v&z5JHEtI8or$V4e}NK0#h~30MQoOPFvyUuYW*+ALGwA S@J-yGvVMpkrL42~_5T3Ft)Nx_ diff --git a/api-udims/target/classes/com/glxp/udi/admin/controller/auth/CustomerContactController.class b/api-udims/target/classes/com/glxp/udi/admin/controller/auth/CustomerContactController.class index 68e412a7ab1567469cb16db6ed94b813bc2e27db..6c2aa17b8e5fe0f4180ea18e3e735118745810df 100644 GIT binary patch delta 1170 zcmZvb+fP(i6vlshE}S!GHX_4-qJuD15k|(ryMmWqX;l>4QiOONEX6^@3*+4u#a1a# zrRSmXsW#E~8Vrn**znf)<{yD+W9ozHqcN_17)DJz$=Pe4wb%N-Z>_z~v)Hp(%i~uM z9|7z5*};e3BA^LUq?q5AK9^4Qrw4jdZQXr6N3)8eEt!E#cALUqSKkrBCS>7g!f5x2 zwSDZjuHrEBD6yEYDJ9}I+IIyo`l}VMbtt34ATLmq)wO!qXS139RBL81+g#saQK_hR zr&YQ8+#gLkEW~eeVwx(JDD2*zZ2QSlBw1yV(loN#?F^lAjNG+aieK;k9cr((*{IM@C#PmcZ$BORWoGnu zhs`uuG#j2RZp=x>Y^45t%*>s8|J=W8U_aD+#K-Oqr?c4MQ$Dk3(R|Jq?jKI8NULF| zW*4pQf6g+GbdRQuy>4lEX`{_o0yr~r``=r4W=U<@3!XWO4)$4eYPxXOhT9y|`~#YU z92&b)HTI%uyjhJ0hlq>YC%5Tikva2rayuvv%f3kL5wStBa>cTyRY_56d~A)~A{5zRM3<`nb8L!i&9OaSfP_Yb0+AV(kt?A=8n?=8oe?HLg_7c2 z;<8s#1y}f9h<=dsBKp)z%GI38OX4#(_O8ky$-Bz6yvVC!4R*p4Il(76c1VXGuzODJ zmv5>4`i)xmui^z>yJxi}3fdA3b6q&1ysJ&5$sd?+;P88;{V0R?Q(>gy0%D#}#Ln@} YIQz|5skg=|S|Nqs5T}ouh0z>=*Sw*`H~;_u delta 1182 zcmZva&vR2%6vsdJ{m4sSZh@vrL$S7vEz*S6f)+stKLk|dM-i<+1%CvrwS^Y60aVnW zs8m)mcZCaOflFs#fHv3}9JdZG_#2oqIxO6{WEjs)%9BwulY8zx_j}Iyob&G8mb)$G zU+@2P1L))HkVR~(Bg6ItJLnJC8RGF$z^;%O+w9@xkXIP6$5-vLJ7f=gt$HxdYa#pC zALn)Jd?Vyd-m>bVy*?1OPfDcs;n93NWf9ed%Uliprkp* zSio`32|mz#$VUo&XL@G#?1ej%-^`xJOSv_%uK=p5imj=bYAj z!Iz?%oxJeJ`HQvS=vWJK6$N2wJhwmB5%87f43nBiXi+Q}EgmoS9xjd#_wGC}I&`q4 zSW}f=>oPetY;LHg21R^$s5Ee-RFn>-|E*@3v)mkVvY{fF7%FWanJAeboug)nJ7B(b zd(3TjuawM7o{Sj_8_hAV&3xx|nwwsSY4`ifGMSE!pJZ1%dRNHlvD^d*UO=`^c!TiMp>tL2)jBU#C_RO%(f zcGDwdDFJ^%kX?Bm3t7f;d7w{9WV?83s;44VU!+D6Ev}o^-^eq+{YMI_eiS;lm+qqm-1PO+sLLl$Wvl%?tB$;ie!aG znecT|4`|a5(Kh`W$n*k4^T cQ(@s1n(ebv4?U|?lQh0XoDMHWPjf5$4P_p`8~^|S diff --git a/api-udims/target/classes/com/glxp/udi/admin/controller/auth/CustomerController.class b/api-udims/target/classes/com/glxp/udi/admin/controller/auth/CustomerController.class index 33e062e9c479f79a587d58979824462fa516d604..41ec4fa7c06325cc98900eb92b15cf787edc53d8 100644 GIT binary patch literal 8420 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 diff --git a/api-udims/target/classes/com/glxp/udi/admin/controller/auth/LoginController.class b/api-udims/target/classes/com/glxp/udi/admin/controller/auth/LoginController.class index 36c527f89aeee70cf9d9731e2f8893b3bc318478..e266546ad4a30dd2ea58bd496e735a2f2c1828cc 100644 GIT binary patch delta 3119 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 diff --git a/api-udims/target/classes/com/glxp/udi/admin/controller/auth/RegisterController.class b/api-udims/target/classes/com/glxp/udi/admin/controller/auth/RegisterController.class index ca87bfdec516f138fcc6308dd2221a3d86991435..4ce3bd2170ac2e1897eafa1513e23d02ab5389c0 100644 GIT binary patch literal 16199 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 literal 16125 zcmd5@33OD|`TxF~!HSB8`WC;)!Wfu*Lghkw7G8vMANhZ!rfM~5~l|>Qv z1x3MqtAeOQV(LD~rt$d&^aigk(@E?;c$C0@$s^W|oZm)CMoZY$&x z@^U4Iy}XXAWL|Y4M|i!L*761qN99?Km#*PjAs6#<9bYO#<6auX2@fX?uJ@83gn1)x z%0FumxWK>sv;MW-Y8brPOGSLX!3_pq=B2@WzK1WD-!IAK3J-tT!&gdki%`7E!&iIw zD}{UwU+dwm9^U5R?H=|Ryu(WqWbSnyzFwL;4ZgukQ+Su~e51iP2^Tke_!c2^tHHN< z=}Z}ayZqka;X6HimzQ_*-GzJ)?~zIOO6xuk@0Hc}74rT3fQKLS@I!_CFh5ejkMd*E zdfdxT@ROp4uX_0@zE70*v?yc0hY!f_Gcxp`40zVV&k51zJ)Dwd56Rd@X*C%P%dF*Q zx%pb2rJCGZ-}CT`qS2Q;{IZ8%5n^BW@T*>ajlUuN-;~Si(*1^)-{hC%0`0%aRUZD9 zi11b+f1AJKr6+awcg0ZO6Z^gG;qQC+2VRW%p_hNeKNccCk=9Rz=FddrcRc)ax%q{M ze`)Z$G8gc;hJPiU-<8X+g_GY%-+OZTt@Qm)TECaeVOgj}T2%(Odg*4FezTtbzO;_W z_@mPLgS7rAtv^ZY&(iupE+5L}uw4Ek%>7kbf0H2}N$X>S|L&y+`TRou2mez9{+BHG zNg@B6|0B1@3i(t1%;3*O1%P0kBD56Ct%#wN+~&w7S8ns9l@FyU!%!YCrG(`ahT?KW zE`N{#1!xJ4l*~+FCNBB7@W*oblUzQ)>dITF3Y7`Gscv%VZm1q!)l>EIC?8W!G*-pr zD~rXe0*UCliR%Mpv8t+Yd>S6Dh)3no`ryW3AR4T#3X~_~k=iOe>Rq1*$CrhxB8g-; zULKBbjD*5WlgdJ|nm|=_b6udmG7<<@)sSPi# zuc-*fmj_`}3u2*QbY(Cek$bx{H(4Elkte$?8-lR$STq`rYwV=qCQ|5rtnOVGi2{OU z03y?x5pHzi;Y*$1OIVnlZ%tbkzO+7^NKPA>Jr7!`iPZ+;;Y46|FcAjc>VQSTn_uJJ zg+?brbYXFz*y&C4;0nn|7+UG6J+D3)i3UVKtnaA{R)qyqOhuaKNV2-VA|Tz>;bcn*t9DWmRVHQ+28n)UF{jlU>e7~**N(aAZe+tEOM_GUI$~Hd zHcXp|1y-Cuj4w)ets6h?Vt&yjdM*klt7DZ*gYjTZ7$AhnCh9m^Ct-4(bZ?5qHv~3? zD*_df+Dc~-TM$kz3f9%>aGJL<7_Eno^iKq%;Z4DKxH<+%0DxLufv5#w7#v8;*4pK+krHJcpMEU1J%i7UEpk7%EO5SVr|!*pdb?@nMS#(*=cqO zv{rBwJa)i&1Ji^PQCIZ(3%{KMk<08!N9s;A}RfWbIO-2UQ)3> z91@@D84{g2G{H31ZA}4(NEYazIi^ChKN+uK3lFP$zyS)=FV0NKsB1s<)x~V2fd>zSa(62daLlhpeiq z3(;UHjN29t26qw$vi*NhcGZ-@MppUMbr$R}F*{b-AW~L_fow?|5kxkot2+rcmj)uW zvHE0Su034mQ&+hW<06$-Sr?d%V2H>E>OgAO15bu2YZaz3?r!YP6J(MYoLN?)fSY+b zWs^xoDw&3KVw`pg>t0_6VWB`B!kKosY7p*tybSr@aoFWDhAWt`(V|m3kwx>4=h+Zj zj`W{}u9NLR=+GI$PNWh5G84g#4(T8NLeifg%>IwGEa`2zJ;6e(r76+QVJrh-f= zky5NWW|g>z){(@#&5`6%>A;S@^E@s(!Ei*yFk*Qku?cv3#8oqyx)DB-9^2JK{y$QS z&%w6M3X|)G;dsn5^=-GCNhcN8O`Fp{+HGU>ylL1~Go8{N$WR)JVy)qBmetxkar=oh zu3gqD12Q`QuR=wa9kEZk#B(mjW7d|3=<3Nxn}svpj040RHYJeUTw zx2RnTTed_wR28lb#}QzqIuxO?`-Fq$)C4!nHGZ|YA7lZQw>wYP5LqY#84wl zHBya|v7>>D);&+O?s%zX`++0-AAbL~$6B`^GSwJWY^t#;V5)KI44A-F<1t%Jkjq3h z2?Dh4xW0AI3oSPuI^4Lc_1VW-w(e}bGj+J}hQp0pj%<4l8%j6V5N)}XwuUM()nqjV zx!Y})4UgIl;mWKU7DasfLns)qeb?;zNEB5qHYKfBKi2xxgDra=JM!{9NABOLB{=%T z&LjJ;`tWNzb>sbgSGC@?-&9josayc|96W=TTDEUJdduFHt=G2h+0lCY_TO*0+Emj; zqwlI2D4m0$Pz=XaNCtDpO&&L;Wc>K?sQOGbQ=Mt;&k=KCaR9Ptd}U>2Ma8S-S{FP8F=d%ZeotV^e|sV>A-d zCDrEQO`A3quZzWNitFRiaINedDyN02gK>ny84G5gD;%E1H2AnnX@3<_XPNXJ`firu zb@6Sg*=i1WX}$5L!!JD4y8Wh>>-L&zuA0Ymx}f+tn=$C8CR}5sNmI>N3*e)AgX0aw z!|-KEw1zs{R0{>-eN1(ZI@hGP=-Z|$Q^R4P;$nbxs#;{I#im*!=IGIK_-Hk5LyG>Oxapq%Jnq zC29@iYuUc<=L62sWzynscIBrSQgDAFK=tzv)7Gg zOyQt*U}pWJx9vW%e}Bh;pyzaE%~57n#-&YFr!HkW8BroLyyeirBM&^O-QQ5)F(GP8 zsu`xLR~t>WNd*ms(Cf>D7LaRs>Mr=8N$=3l4b@<(%hctj`jSk%LMDD$UD+<)FEsjgQ$O?89N-z9xFO6w+({AQ8jj1$o9m|RVDi_p1M z=-ei)+og4fNO7l-y-WIbOW)mcxkv3W)x8p??~~iT@^qgF*xSO76*yQPz!G2!EJX+0sW zC*|^0xqV7nPpkci@tu?JSR|P00A|xK=$D3i##9H@v!;4Z9N~GD!dBXaR48*0tj}#a zCUip~!!@cV%$I0d8VH;*u4HVay1pSYRtO?Xp?t7jPb6v*W9zEx&csO`&h%!K*H_d; z5aiuNki_hIPy{rKH99{SVjAWael6>@OL!+jRL4^>6h&=V5E$TW%|&Zzfh`G~RLaw@ zaeC`Bb>}mbfD4abHS5tX2jke@XS0P&+j~U&K6!QE!TH8=y!k;a(~?++KvEqd?P7~r zA6~Lf=AL6y%sd7~53-y+H%+|lu@E;fKr3ZfmQrvdXZ@B5P|o2zV&#$*IB|!>Mxs6x z!r>@Wsm-rN(msRga*baIu|zwIaU6`Z{t-^@GcVM}Wih1><+Ci6iA)(Ybzg_$jM)us zq-Q$0v?;gaQWJKKcu-=$5euEn+4%?$^1|_W429Jq=L+e^+LV@R+!wV~EN;{8bxJom z(MrGalATMIa;$v;Iukfs3MFSZI7iNNa$*fUp`=bc>qrL43c$f4>#P;~agU7%MFb#%GPR={QC@D9>=C*|nH9P28}X z9AnRq#r5J$7dh#5T)89Hb8sS)n0BFqyR;k~yAT#6M+76*i)80Yb5IwT%geu7yha`g zW9HP=BVJB%j_H&er;pf+XVuB&4R|XK81xF&$K&udDQg!+qEUI%X(9~GO5!zoMZLTi zIDz8RqCs(a0H^G8v%r*o?hsvb-G-K)mT?>}_EB_8^6g{?<~YgAI;4fCR0k9DBn&_b z0313Sk`=RTFAvw&*Cgb11|sP^w4sKjvzE4r_$!C(|?%?+;$g7ZZP`*x|P57U=q^ z_NXj1rr*c99%91^b+Vz;IWa3RrF|5KAYOeGJ-b2h;*t$vI-fq_b%sQyl6JCoOcu`Z zb_f+96fRz}e9hu{%U3N~b}ruZv?J4*%Gw2Ndzed>koTSrpBd)jq^>S$V4l|0kP}R? zGfhDhwZ=;QDmDj`fm7#17jMhBzb8_gOwSxK67TCIv1psLqmnjMN5mjHV3Ktbs865s z^|^8E>pPAqL0X@3+oz~Z(_AKGl{v@xUIoBTR{{d;vz?q;25bkYj_^$v5Lw$9 z1PLqg%VDu~a8qcry~?`lp*AG~W?@ae zQP3^PJ#)h-AEL7=D^dLlU(S0Up3knw#}l>47I-V1tVe1@wc4@M(n&mA8A)2DrKRk) zTj4gXLCr0IZppStPP21S4nkhp9m$t&SVPn=O;JA%!f^y`eZ{5cb{A^S4!2Eymd}YA zgxsvGZ|M4J9a&3SPZn0riXxy4wvA|6Lv~ct9Fa`>A;RAYcb;j1<#j`Odgo~e8RxUE zq$THgXIc`Cg@e&H1lW!b6^b_J)xflR>u5JcvFY7FK1M7L<9R+ht%j|U^lCOSrm5`` zURMK;l{zi+S*I)D$}OIzP31f>$tbLwHj-^`oI@Rt6(3xNb`&3oI6YmL>~`Jes6?mHKzf6w;Ui-Yog&A) zXnEz-+4}4lZ&8Tp`)KFm_Xqe@a-7wn5AQiT^x=@JLmv(yJM`hOsa>BJ_jrke>#wn5 z0KYg(q`Xmwh@Y`o_zkYY5YbqA4_8wUpx@H(aL4p}I!rm%N!%QnCd29 zgdRQWgUqN8Go${3QGdm#JO)9s4AC8A|Azk`T}YgukJ0)&{R6|GD)kB2Frk2*qf^xF zbvhS9cb8@p^-#39_zmjOi$89pp1xj<>iyNtb9~!WsN2m{-wqaLEZZj33e_&~zrzF3b2CZ(U!MGpd8=9hFeL-%xZ-lh+ zr8N?*6v2k0OAUXXZ;Y?FiN@v-ngQRqbn^^ZKYcUaZ&=M{ngFU3OFe#%Z<4PhMU$Ip z%4&a}-*bqjmKGErq*8x@Z&1#QG%ZEbU!g&zUcc8jBSkZJQ$sVIiOFY`7WxZ)v$S-x zSD`(pFD%?MMb^#SMw(|?fA*>|zB&HFCYql^2Wf#V&zL4Un+g2;7UBYUoC86c=v+l< zfy+cp5f~2yIJTM>iSl5#Tnj`SVS1t^WYALTOXrcFmeEjJP7`S*ptTB5F2waBs-laj zjxM1Dt)acNmY$#>Jx>+%Duv*dl{h^PgWfto2w9Y>@$q?td((P8oi^|oigGE{@?45> zHP!JJidz8PMcuJxDgBfF1#nHI{`3j`8-L!>n`-DkbPNy#YSQpU>r?s+$dbO#@uO%J zPhw_;xm7%rb2t|=)$st%<9uK)!G1Q-mk)mb%pP!QfXfsYfHx2L+{cA%QUNIKY*bTy6cprJ?gz^IaT=Y(L!g};O9MH?ep@Oo0=M$VG99HF+EJ=uJREFD5#*ApU znGsH{z1ebKIC~RasOS|sQ{rD+e7r~;*PrW~o1%+TbjjpAwCAK~%`3DvMZppSx3f}I zQHq=~uU}rc4~1^KFB3AuGP$n-#H`z!>8!FSdeGT7E524szhwqIX`+atl7hYkyEF6F z%k$BVv>`>&(K%Mgs~p5fSoR^hlO93qQQA+B(@TgxuhEkz1D=9MKMh#zM-n?gAJQ|(I?r16 zUk87N&NIk9ma+daJ9^-$g>i{IZ*l-*bFuo9JdV$R<<`<39*^i@fRkH!0zANjb!YNK zAf^DT`7G>sEwAWL2Cy^Q;7Om+^jrx7eNH+?r}Hryrt#D*2di5#pc9WNal=%PoGeTU zswVRkjVd)zql)|gKS5Q@4OMlnsFLh|sg?ap3;YFb_>SACOZZXppa4js06@}woksY* zDXRB-Ky5em_ZMLP#uRM=;=210^EM;qJ(|I0gHZ8ZmK7{C=w5)~P&Cks0NqP4`pW>_ zD*)ZAF#BsT_%~qcZvu3$19Wc!bl(E#z75cQ2k`nHX1tA2-^cZbNOV6!ocJ-4)lay9 ze#U(P!S`Tb3v}E+4LXGPsYrYXI_T3W3#|<3-p_#UtqkazGoU+|0o}z`f-JzQ(|HZ$*Soxt+!S~+RsmKEQ-X?ljbNPtBKp1+o zi5|=xM)Kt7pINI*_7gbPF0es9Vpb=s5_V@Ozu+ zd5cO4R1Qf|s^>QP3vIcZbPIC7fEEO5PSMwNA1J@5TcG@sZh`X4x&^Ub(Jg4|>$(L^ zy^3{TlZy5mShsJ!OR~_#X)8RGu*oREzQvCn%W2rH6eIYSV6QS0#o0=fY$5u9Y7zRA z*nnI?AJJB9KW@VI<6fkKN8vfoptyVi;rDfT>rYWE{)ThtC<6OOoJXH>KB6^ThCT4h z0v^I%9*weaKAXIhyYXu7fxmz4$x)2Bf_w80lz6xBNxX+o#^2TYc|V`RO_=!_iq5yW zh~MFX{9E|*nyT^iecUyB&QrIR%5JmmPaA}hn0x(=?Z?=iW3GTyo~4aJo12l z;`z{90pEhZHPx}>9lDAa@Yz^Rc6!*P>QTJVE^><~*Z&z^kZa(x=FjBsmU|g|uEAxW z;;TWPVeq1K{Wl9?&At9x>=sixR7m(z2jWRdcn}dq_QPeilc0Wa#DucZxp0VYrs(yu zo|Q9lXJWrM;MB@(8&2I8vUYpc?hYd|dz~^=Cd;1!Js2BTt5W2N)Q=}o5tqD!>*8UeF)_*F)ow(O00Yc%@Z0+A}V{*+3gaWZS zOgR%vR_9YL<>}-$D4z_bDdEV*vS@oG5Zc%h@wWNT4@WkYo#zb(eBM|f94e~`gnW3n z(jScnF;rfwH@YAa2}h!8v~_tjl!oav+@KLOlBu{k+*Yu9-%xs9ssUZ2js5E9(}nUB9rpzMkoX`oZ+A67mZTDxy(LLpJ(j3j_Y3Pf^5F zICt)A2f;V9*3%LTLtpUSC@vR2K1{E7J6p)%wp1H2doV(b!7=xp99~Gz*Ma>hE+@ z2~E;zvO!a*G(!bVKA>UHAKDmeRZ3GQ&C3irk)}bRqVcAvViwb=iFI|hOf06844OeF zW1Og(kf~^*&6-!|Q3ai%(@cXZsfy`jo8>fzL$OFW81zTVd}=|~y5^^zL$S;^jsA$N znCZk!W}1A7ns3Vjp>RBA4Py0xmd>U*I?Xj`9#u0=N% z7*=Al5>YA{q%qLe9!#m0n-)=y$YZHN^|TBIVlveiK0g!;dwt8i?UUVyoVNrh&p0%da z8kT9Xt%wGsr?;f?X$`H_X`Ml5h$#(KE+r)fCPy@|*)NUGGU#kt4}*dUiaBIhj_LWq zD6hRu_f43aHc+!cK7!ikW9aH&Fcyw^gEB?BZPtZi{*C?!9LPp$)hS@mIYRG<9v5h} zV9E`IVynHuIJm!of(Esvjg9Ey?{FfJ$-hE3ol6m&q6Wn%o?N^NW%c3EMkXDBDehn1 zA_}@Bof>%!QWnwq26a#;=7gVEWzwD0<-oWfpGQMmcV}n!cdZH3nTvJD85M3wlj{ZwO%mzpZFAv^m_~xgrvVy~YB5 z&^;lYZi^Rb?l{RExQs7CR6QzO9f^25O%`7#cDROaFz815GPKz1^JO{pUENbVQrmo1$*|D&4Bn*9^LizRonuZb9e!n}9{2upKdpW)iv(aMfS&`gpuJ z9Q27ZDul*cZ>nR6N=@;Ytao-Fz@ndld%8nX-(Z?ISi&TP1Z}9$=?%3ElA!8GW(`McL^-ZZ&{2|lmYzEcD1ETzHdQ#lOkLbrbJ!8;M=vk(TcIsxv*vz3# zEIvOTjfLC%5g~MBMzpZ}^ON+vK`+oxf#W3lhtRGxeL+c+PxB?F5G@*^LoYIskh)(6 zdO53qpGuJIFFk)@&@Tn+=ElNidpEsGztZW~2E8T_Q__~69L5%FH7XyTLcv22IC|DD z?&@`eeoJpCxGLVBX?~Wa4LqzJG?-1lGw3Zk0E>nnj5W7fA#TQJ7=1}Dz0G92wfE|G z9(m;8mDe4(>gy6A-Zkj=!X3%2#K-zN#mkBf{n4O5(R%dZ|lQ$vRofKMnd9ePDut`K|uuO@L1m*OjO& z;Uk0oO&_T{8tZ168T3PtQW@>~9&SSUE`34)J zM0W550XQ9?*9KB%G!iPeA`)oxMmkN3>U=<#JQQeuFv?=|miedMjZ``-T6KHxeoKqk(GOv}>QoE*wV zk1~@Ja8=@CuPj<;R3p*~FRNN3h*2Ync#OdwJ_7hA5)U!GZp%;`!KlPku!)(eR%Mc5 zIuDy}HuALX+LsJ$8(Z?ubofc{q(Jq`cqrs;3Zk08MLbrN=P1OPbPlIlh>8^P(FTu~ zT9q>z^G0I1jM9j4;CmMz*mbq(jz$u5v2gDA|6`tgs)hdt4E_{68%Y{ZkhM-^df>lA zKRyNdNTzv`!IOCkVtz6$wyYSHAr<+u5eJmV#y?q;rj?qKX+Hqh2A*ng8J~#2gkW12 zO}-MhkY=_?OO`U{N}g`;Njw8|#oJNM^w%JVQQk$-HQkoi{SZ-7m&@g%sF&P&@ZQ_a zh^g}_D52UcMqGqi3DTyGxQVW`DsFDBpd8n{VwLa`?szs*Rz`8wF|k&xqk`udTrCeI zhpm(R*fno$PxA!^FO;`H0PvRP;I4T)=BXCqy_Xoglu=O4g*#mp-sFehnF=swLuC45 zRm%km+rf+*c)89i3_ex7xNXvrR%uD=ig=1yt5wRZ9t%N@2Cw4Nk_1_`gfyWgQ5))l z8w7%G;57!X6)5Hu4j>3@;4=(9Q=~7ePL?F(`Pl}qPkXM)2_ky0!A&B1R{&McNX*SX z_UqhY@J0q2OLNtYoza-T4TX#5cq9UbtO~UGmj!~Tzo}Z~5+FuC2UwE<9>!)C9WtS* zP}62`Na!{|Wuv&Z7)Fy9?FOGKRS!W`J<2O@q6Wu=$p+q}bt&QV3_f2nV;2%tZ!oGe zY{|a*mJv^_XzJz;u#!7?i@_HNNkfHkJ#xwAip0cmnK_Sy;pU%gX||6MT-~s za#?srbt!A%7-O5kSIQWLm}S1nNT~=m#M_#XSwIJ_GWcr#f`CUWMnQFbaoL<`Pq$x7 z73`EXnIqYiTkYCsxq545RV8(z9@iSYL)2ra=^2uC1nACRH26!Bk>;7s48B6=8&IaS zv7eqPtVJzG^(Y+awB~a2^&*4oc}p&T1>Bw{*V}adD$|@#KU#6EH|A~h$D}Uf=38Xs zTlhAEzb<@-=e5ekEB(#kh)-(rnCu${-!7Fc6rEyLcM-;&27i<9N)v`fH&f>zg)zX& zZE-|@0xYT1`EL7CWv{7Hh|$fvgbTZPi~PFB;Cqv-$VQP^^L+;I=KEo1Nd>Iw^aYq= zpLM}0Dn7$ng$jl6k~Q#2b_$$TgEre@Q^Nx=C4OafAQ}MZst$!v=al*nJl2uQt#*`o zQx9clDIAY9`_XeGB2p4rr}CW&ySbCHYL7R;6SkI})~h3ibIcF>;M0cH2SS#muM!l9 zdFsQ>-r#C)Bp~yeAo+mqib0f?l(unP2lzvu+VA6zem$o-M_0ugF@okd;w2{3- zvC6I+o4tSzybdke{JsDrDyoEVDr6&un%z=c6Ihnh+9}{A2==nWB-=_%<4ykbx$z{L zDXla2kB~ju@fBFgX0r)H49gS?RBcqI8X~4ysyH``^jUTj^%kIoj^<#p630}xz;_zkuSZmm~!Yii+VtzRgFvC^>rARKCn(mYq z`D5bGWQ!bXqjq&r{XgFu@wbNKQGar07QP3Xc2uUr6L6B@^v0;wb)=tKz;;u>hoO(n z?3yArqrcSB)Rv6O3tXliVUxp7BE7W&vsm8T)DJ|l!F9CM36^BeXx@u)>3jecaT|!x zdv@g6y|`vBCvB^#7J=@_KAJVDFt}|nzBQxj`FVNQ0+SgTbDk4n9&7NaeLEt zaBBKgO^H3}8$%Kp?en1v}){v`brkIM#dIjFE<*C(PELoF_K~J2xXfL!Y<~2MT&o zmeogrt$J+s*9HRUbJ}3EtOr7dNv$UA>jX7Jg_EK&NJ)@MF&*7Y$Ff@}1CTDt0JaaHV;Q`* z=Kj2VSy851r1bM7JH6=9Pg@do4Q1|WP}IJ+rtJD5UFgL?k(1P>q{0*nx7VVdUGSB6 za4)D!B-3MrYE@u?_16l*v#L+H1W-}u$@;Jz!7;YgFi5;NeLdqA2EA=fK5ubSQqR2((jymBy5dI0(|h7@dFlqEk2 zm&K@d+Dq?05J(SUgAjb*RxvW=*pj<O!E9IXm z+XhUh3_3oo#JQgNJ$q&V)-~a9EE!{&!*RmtWM?xi@hOV&>tPTj-!`>Ip6?9?8v`+a)o^kR)3s_hRcJMacA_>7ceQf2z|baW z6LGgl?iL%`SPi>+MqMc6kIWBxqft2+m7i9W)HQ56sB=8#>GO;=WO7E=8h{@A;Dyx` zPSj*09fQLM8n!od?594!4`OfdA>6s}_hGf^fl~>+p5e4l)-z3x1owJ|lc`zHNX`Xh zKjQ@N$$B=7;L8;idqG7R?r<`NoRiS*eq3nWh2J0&zfa(O_-&XCxSPL+J2)eL1UseZ ztQ~=Y3_N>zN*7_<{bnk7fQI0@fGI(v_tH_jCnxB*hMaOo=~FbeG(i)GkGhizN}a=p zCunNJWIUPfD0fVHh{`8-(JZXgnOEWJrkb@L=N_u9%81wUtmvXs z(a`O2KSfhL?k+l=ae}VcDKVJySh%4hf|5Z@ZQfS={(@X>)6rx2d!7eIZKn)s(^=jNYbmPx6eFQTW}{-sp= z{i*gZqy5j(zLcDvPpDX@5rWN}3RZx%_MVyrz2KJ#O%i`8P>L;|sA~H=gb2U(ujto}`uy z&(JbavC=Nu3e9o2E1cc54XU)gQujEXBDcrk(f86-NoC9R>7HCqo~TG}hKel2XC#D^&v|qvRAfEGw1Fmr^(RpiodRyvk{^oE0tMKJ!`rQB z6~L2oC`_Ah?l%ZEX`}5FQtEIfM!`~3O0XlP1UphnaIU2UwX~F9=ifqz6=qmqKJ))5H`{i7B2EQ#>W6(=9PgN{Oj7C8qL}n3kr*bapQ>neRkQ z=DVbrjv~!-m?n~*Zibe)U^@d^-#Y^djDE}Snr@!I0)dHNx@#}p@)+%GD1DlScGK-^ zAD}z;(5^>eao?_VcpM|Y+eN#@heL7+4=iXOjHrvgk4LV)McqwL!o;5PxDxbqf}R`s zvjn}Apr0q`6;S|$h2NmRZe72rQAH{!AOwtp6^bMGxIMZUr8~nY=g=@vy$yzNCFtJ{ zFMc(Rr7z%%p=;pHuZ7p%0Z;rz3elG!_v`5jx&cpaL>&7vP7U9rq}-zX&Rr=f-^IV@ zKPZoUmnCH#$G88;e*%xj(pCH({~5+OfiB{|z)L$ZPmur0e}hNfOjDGX)-lg`WvaQD zZL~5_(<6&nnyp?0&E~uPmiH|r?PD6H)6PRQOQ-u`o;v*~Ddyip;`UDV?*oaM|H1Dg z<_i>f2uqOf3uc*OuAiJKW`y!@FPmZsxj|%Hnl56;$b%O1b5zhAC$I;R8SDY`cY^u1 z<9oF`@Y&X#Ft2Ya=FTwZvzV)67gQLDnlH|}2_rSM9-|nUgFY_BNQd%Lxx^+rYy!(a z5jy^rR9+lxbSmY2y-yYF(X)oU3P&;uxbQd=a_AmiAP3@r1v&H{$bpz)K@R-2AcrHT zJg+DZQ3uU$r^Tg3c@{$1mY{bk-5CE5f?xiuLE(zh-Z~QW{w^As_9O>SF3aOxhadE~ zMmf^piVL>4#pBA*`Xz+(d-NUnwR_;#?gI<&hdw@luht%fKYJMXBLQEsha$is7ZV~J z&V%1ZkI-%$_kI-5eu(4VFVPR^6`Z3G_$L-{wuMe|(YlO3fM&blHCOP5{E-S)ucz$e z^^|?QZrMjMbt}Ek0Tp|d-aA0ceM;|Lpy+D~ljtfijfV=F?O()|*=j#*$87a7K&FJK zspNw1TVwgYR}};i_+es?PoOqXj!KxwM>O<9_%O>E_H8Bq9?(iY=1%|yVI{l*WToV6a;9(GphlM|f#Gz}k- z^Y&gIQozIa^2puYT(owQN1yC*?&Hw}^mk-}#})7~8OBylLqO6qFt(pS*`I~6Jr5&# zfsUu20)G4qc=Sbhx|e7j?FRt)IU?N~h;VNz`K~mVlak<8J_LY=!VPUv=BQz$R%MPk z81HOljt-2vRGFg_V^?YLAYe-)ov3MAjwPiDNso0Hhy)<9LT7xwyEEmybj_i2juoq% z%!hC(C~-7tn&e2YMCnCMmkWW5TCT!}$TCTk6_`Sz`Xaswm*Yme}PE;3X%LB-+twQ;g0`GkpQ@-Ng_X65{5Q}a+Gm2!`X^- zwtse{pv*(SfN37OG7nwMBezcvZrVt$$F+}7=vN+`59P!MUsmIyH(~u?=@W~k-YLeh6UI6wl1p60( z{dIICFQH;yO66QnYj_#H`D~yzUanX^$D}z04cb!BU~LK-tVltFIVLnfOc<-OXy-s6 zK`R80ic&m!4SFjcbpPkYqi(KPyN731x;)OOkVC@#H%Wa0e-&8RHWSXoe70?7-q4x( zWAcXHbQ`(H=wtH2GxI&JF?oetxhcW3aH*S@b8(qp$TfIcyNgD9T!p+yH5i&;yu z6f!U&nW|&(D#+k8$Y3>Oum&<%3mL3~49Q^W3InCP-m3&DKU~qv7^0r|J9*uJVAs%d|1Lk{n`x zN}|uDB-)jd=!d8j%M!e@+)?BxmvEibf5i6Q>hJQno}%%R zz9@;}uaaoFUgRj!edW$ww5XdlK=`X6eAKp-C1s72;L|;>;XY+W>rz)|DSL8t@dhb7 zxE!XD?d9eQJvGoMJ;8xg&cwlF7cs$sD9{l*i$u z{{)=sK9Q&4eEoDj7039aIIi2tC-Y_;kiP&=ui%+{9arKEY!yGuv-okI&2Qpd`~jY; zjOa3GVm;~FI6!M1^K|ne?Pw%{Q3`A0@hqROK%Mg#lnPOK<%7wX#0OP0K}^CkNjNpE z>J9B!?KrsqVf+gK?~kD61^kj$j4LPB`G7Jk7gjMxJ06uI9jN33?F5W$R)VII^DwP8 zQ8wow-PCcso^{$FmFD@MP$MAshEM2f9p|V&q;p_VsJojM#hsW-3U-%?qy^S?@pXt5 zjwvv(N@q7;4@J6B3<7RXjP1)FR{`IY;G2^bH^lv0(B{@kWL6$Wg1-j1m1|YtTuAnL z=M+mJkOHM!rAHFC@&w-@$(K?sk+)gMHA_DKKw02@{6{SRM9Jr0D4~3SMB_u6NgpB2 z_&3V79|MN!4Ao(#oI*lJ*==z~x&_X9p;4 ziUf54ZqWI9lwEb`6cNOL%@9)zB!xjq!|TPdRXVzP7kK(D3E9F^@cr8!Cq$B);O`_Y zHJhE{0Kv}hmb;2vDR!FXbF9i7eu?G0g5|!7Z1Y!iEd3hA&eu?r{tYT;Zz#4cHfcz) ztv;!$Ffw7Fu&v%=n~N4IW;rn8Y;C%B5>&O;VvOne!I(p|RIPd!Hb}J@=&fldD<_Y< vK`X~?1)d?7)K0nHy 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 literal 15634 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 diff --git a/api-udims/target/classes/com/glxp/udi/admin/controller/info/CompanyController.class b/api-udims/target/classes/com/glxp/udi/admin/controller/info/CompanyController.class index 5603cc3d78929f1e620cc6c6fb4a926455ec2355..61fb0cc4b2cc303755249e856ab675bbe4066893 100644 GIT binary patch delta 1063 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 delta 2568 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 Q30Fx`6Fv&t@b7{D0Xcx|00000 literal 5322 zcmcIoYjYFV8Gep!Az3WJ7%&J*La0kEZd-^+h)rE=V^b3u6x(r2F2Gt^$qSNJ?5+U! zmfn&O(l%+EUPwzr8`6I3kWL0nnQ6cGcNC`m-kE;sbo!iKd9@O2BWB7F~1T9&ctw5t`uS@%KK6r zCdx6KlZ#diwp?^#sKjtyUS5deVjSzS5XINx*npGr=Ie2M1K*Ul-;!UiOTlkP@tr8X zE3n4M>Ltg>8M-yCTj!08F7Qk$V;0qX;bK{>WDQlz7LAf>drwuPlrz4b?_IYfl>b%Jy@k>vo&r6-s%feCkb~J>Qs^bF?V$^Wm&x2&&yOa?P!^^lUlh-f7hh$%$wP?CNVp@#ZZLiKp=x; z2253gnZ^i2NL7U~hQR(%-!ABLsss_t#k6TVbfrvQsbam%`l7AY7-I=!1-8^D_{>7N zKFK#$lROZtSs6E~+*ZHUM_E@St@}HrpR4G$Gh${JsJtty7f4w!@7@W`J4-+3CEekM z4OM-QEB7`uI#{(QLln|!nz|{l@%|8bHpoWN%o@3cAR8glo{+#31;ciNvQ3y9HwsM7 z+J?u?TrS*RGv=0alfBRITesT>44swMxHSJr@kq(xT>9Dw86Q9VQL@PwuY#F zx(SF!(|R(@7ukI!H}w!7%|L(4J?w}cXkk6~*N04WM%vO!S+iJ6V2;U*J0`n5nhRPf zuTDF1{E)Sf%JCEk#HZcy%}isr-CR}JFcJ62sV{J#We^-#PGF!a*pAOf@jV6K#~V?+ zso*VKQt&n|NAZq=AK-^k{7AvOcu&DrJRQZ475oH06;STox^wsPwY%3p`NyXpD|jD2 z^VjZOdhhP#4;383&!hN-f?whapWVH5?Vne!FUh})5B#+y`7u}T-~al@d+*=&IVGy+!;N?^w{+W6KlE7_WKi zOb<^DPoA0`o0=FuacX=xl@i!qUrWpEWm2xn>(02L7qYHtf!%${&;$$2;hH%2C!2t* z3DZ&9I;`h3dOoS!Hmh1-9qrYq^J`^$7<9L#ddO#wzr_AZrXsqeOyG3GkX{b){l;28 z_3f?msg;8~)5741(W)DY{SBVBa8#7Z5Vb3r3|SKx=nH`GlCAZl>w!?~O-~8ZgEh4{ zO_UrxuaowudqO;(!Uy1TR-Kv0c&%VFrUdEm-8BMUh#yK@oo8{I4AH}|ze+S){GKrcG!YJ!gSQg<-qS*nJB<108p;;lwR$9Ec<$iH@5{EMn75Y)(XW-^6DUtP{5wI^1H|h8Xpy zNXjHhIZjg2B;-XV?G)*m#!<|;Y&i&h{?HJ4GIag0!hG#f@Kt5CRgCClh5KAmq? z%P855&Ml;KcU|&yyG`L$^7I-pog$9Yfuu?Lyd-^Il0GjHd=)2%>k-hs+yq@4ULi$o Lc-3#iuL1u9IxoxT diff --git a/api-udims/target/classes/com/glxp/udi/admin/controller/info/StandagencyController.class b/api-udims/target/classes/com/glxp/udi/admin/controller/info/StandagencyController.class index 014d3cb193fb0854e0d15871959b7559f1dd64dd..304ede732cf915aa4a057fa5e2a42a88138c8a18 100644 GIT binary patch delta 1582 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 literal 9083 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 JcF(r~{{?fa!d(CW diff --git a/api-udims/target/classes/com/glxp/udi/admin/controller/inout/UnitController.class b/api-udims/target/classes/com/glxp/udi/admin/controller/inout/UnitController.class index 4ff0288a3288e378315d6ba85dfae97a49aff348..c45c1303877279d1032d08bbb9392dfc71f47ec4 100644 GIT binary patch delta 1591 zcmcJP+gH?86vscm8HV4?Z_XeBqEi8K2^g+nnuJJTc}WpaiAzR`GSSck27_ga*u^rs zNvE4>3E6$sS}bY}5Un0ttNwu=dhtacdhMZ?R<;j})LKcc9{R0y&OYb2zvt||zx(_9 zUCY0gzwL+Lzy20j&u0!U+%`!H56Kp(ecea9E2G{0y_L;}`of1}7Rj}d{z$CO!d)C{ z^W(*5<0$+n9q=^-e5A0#CRMSLG~MLuaSSFyv5HJR?W<39SVPd}CdJL%ViD4*z8sz5 zY!F8_IW}t*x#U?C>OH;;eb5<6^-;jBHie2JiY?aZNl&`|$(uWVX>+Qd5=w2#6y;P{ zlo{XncR{WEJEV-;^kqA@(4mrbrl8v`(u*4xN*azuqLq!2q1dKSo6QE3$E0VK&h}=M zJHmt8oT*maNsWcKHympnh;>I7YToHk%VwK8#a-0v$h zGPy*+1tLJOWJt5cJ}IkYvB$+Gi4|GOd_t$BWR8v`e2An@%36sBL5y-rti@A2ExQx4 z{uQ^JgO;*6Y>RWGPZN-Jx<#DTvt&(`d_{ig93dA?^Hg@0&rns9G|&3Z8Sbd@1UOzYP_Hhb&I)Q=P;RUsugSvak{ED$R3^h#iiFcL zUf+*3#2dV6Fj$#l-jeaQ*}BAUHio5hyz^gKYP=Ckxy#V>7nXimu^db1xge<+zWzU! z&ddGFu=MV~vh*Go6D)l%)F;VR9sj7MIa(~*6RO(hqHdb@dAd47GaSf@b1n` zaiUolaHbiYWq2y>i3D42(Nx3AMYc*7!!2p5g9#=V*y>2IRUyBM_qimA8D-eGg1=F1 rU0271sawW%aeN?W7sc`6jmi$VM5P}IUIem6jEj#K=1-Qs#ZTc6Egl!B delta 1566 zcmcJO*;8Ca6vlt|&T^SM4M|uAMnzV`K!zZw2@*m;jbuT<1X+xlkTAi)31}GNE^!a2 z5$w1}6ZfS`iz3zlQsujr5B>@9A$ju62VX4X>48vI8MJ(Gs?Isx(`Whm>+fDFyHqy* z!yn&%2i(Y)E+upa>7h43A9tJ8K9_sA*X2I;2Po!1kbVw29C8UT;1F{O(rq?}T?V<| zY~#ianUV)gcEY$L#tjD;;X#LoTtcQO#L)~!OU)u_+?dNT9yX&NG1ZS|@R-Bn4o~O_ zdz-Fu8Z-Tk@!@!~$-)z<>^?W(9QSWltf#`^NySr)I~-R$%`=K;dCuW^#S6UXa6&P` zq@t8EhnEyD^NQ~9lw_FNlNOcwXD3e=xw)GZuQKH@t#}QsIK}IVH#n(yleZLa^N!+O z#ucY|&*6Q=8O~bd>+`<+or(|m&?2Y$?>}?&k>X}ihVeR$os1QVvwsf1ZWIR#R79UM+sqD7M7>p&mMw0!BG?%;d zFP>Um;Vp43oY7d)r0K)nRz2tK3`+7qED=k#BocbPuUU`!YV}XPh>WV%Q~q3C=MS5l zwg|R&bnS27-qq8wXSYRrM3>lk`n3C8w&b;PX7R|{Ymve? zkAJ4>8=MUbWZ1MX66mX*!)@>`66~8pHTc55us22KJXtB$gniX1)`orVJnLqpsaI6; zRaV8gfzY%xW*LGEq=xI$usW%w4qGl118T>`8Md-y+%~c1eORNkaEr;o3Q4$C>^8Ht<=kuxOWV2q zzp|8lC6-E7q3JIy{kmo~mRi{%Pz+!HA4{#$e-)N?{wqtn*uBis_d>l_TJ`>;mKMmd z=vh`(u1(V{d5eVlD(A>AOi_>>PH|O=t5aN4cp7(>!g;Qp$u3%E%Ojdk;vN$@Wc1av}Ug_GIwy1QEu2Y^DW*5e*#?#{AU0F diff --git a/api-udims/target/classes/com/glxp/udi/admin/controller/inout/WareHouseController.class b/api-udims/target/classes/com/glxp/udi/admin/controller/inout/WareHouseController.class index 372c1f626584814e983c973b784cbb312d30ffff..ae770172e192ac17f584a02cd9791482c557ef24 100644 GIT binary patch literal 19196 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 Zp3C#>Qma$C#4g1VJH>Tt95Gh>e*oQy?OXr= diff --git a/api-udims/target/classes/com/glxp/udi/admin/controller/inout/WhitecodeController.class b/api-udims/target/classes/com/glxp/udi/admin/controller/inout/WhitecodeController.class index 12fffc96bff8f09ea3875069a7c8504b3ee0419d..38e5872c63a0f761ce2b8d2e18d19ddaa4196429 100644 GIT binary patch delta 1461 zcmY+E*>_V_6vlryNpq8%lc6cL1Tj*u&~%_eL8TNevPT!&RCOl0)>SpH>PW867`SWOyV^518#qg2tri}tC&~-%BAyCZiP* z#^^t+HI@w-tGI@!UgoO{S&XCDWV~Vm*BQhv?@;Hrn8+lPQbmk1{kw0U+oZyf@L*nn z-s346Z*M(WQN(O4RTY+npJ|He+@MdW8Bq^68F*$l zENX08+1TKthM6X{idhKn5?$;p(NX_&sk@HZCUX?^H0bl*S-poFh3&1(GnubwWP!o7 zTq*7T^-&*j7MV0Dnz_v&kdt;xroFQ&-k#3r3;sz~SWH-=xSbYV9w?KoT3KqcOwq=j z21WX3f00fFW((~V++}jNVkP(JzQBADtd&)Y)vVDM1G7YhwT5Wd=ZsFYNV48$+HO!# z8vp;PGh?kL8*D{w!Txj>R$6r6v@uem;N`H=)G8bwBBfN9o?0;%^{|T=A=@YbY^p6)1qW%eQHfQ=;oBg2%npLq4<)o z^u|!N%iwIOUYtK#pUXG(PoYE35Z~y({jrI%{98*5`%ZC;;~|b4sK&0Y_tn~BcT?kCGYlUF-Pz>RSXg|c!`1|TqW_<2K`){rKGR& zG=X8t+m28C#RMO@(<2btlZCa>%mx0DYuS7P^)hS+T;FX| zS$nD6%T%Or_VIj<-hN)-MbXF<_(EV zX{8AqkL=VT z#UW*pGpk67J0zukoaPe_+re^-G<|%UgBpc09Fga!ojPRRPLSJ28b-37ZpjwP9(Ef9 zhuJC0Jr*x3&+>S=t&#)V_JHt)sZv_CeW~Q^FT4a1D+grGBLuQyiy`cWa=76uz4V#n bC*-jk=A`WOHK#el_wvTV@NkwNIZxz2ra>UO delta 1456 zcmY+E`B#)x7{@>No#oEFbAdq+8a0(PVL&3cOhi+0LlMdlBQqTZ6(mq+u(EWteX-1L zi?%P?YKCGkK&h>kEm}YHtH1PH=kynJIz8{u@tn?_d!OgI^L_5~eU|s0h!4fn7ylVL z3(VvqdfGlsTC?A!m;;)JTw+v8#9|(Hd4xwj`!R2O+>7*t=1G@{ z9;K&vT60kIjP3Q;+q`g1POzrEt35Se;VX+b_tk}$`h7yW?@-PjC&v({T=T5q5YHXH zQd_1uY z!%05X^cqfaTGMAZ!)Jzm1{Ap+iQS2+o>Y5hRegI>rL5K^A&)>t5f@scZNL;xFbp!J z88&>*7lyN(Gn^-5_>!*_)3Uhzp>Yw-*M@KSRxvx9(m{V|K{h~VqHAkaG`u}B~nj3GHYHw{zHFc*Fo!R!Tu*dW?dqtPH3Y~0ANr6&!d}x_H8A{}6elT3* z7sKr|*~;jQv6{<@V10M@_MROIQ`gniwyU-?kxaHF?Z)UO8Ixb_zWg#FJKi41AD^Z~ zxJ{N>RkEb1B1=UJiYyc96Di{)dxcn4B0XH7d;oPy6o;v@dtewxrR-(|zzqWSF1?Xy z1UzSDe{(4h<7)8DLCx zI2MkD`Wc&HTtC+qh^6}(9}8!g&@1fxOtpWEs!e;jY#HJEUoOI&>CDLHcSIhHS(3ec zTHM5J$!r#zxtTfQzkoZaX0BviFTWb*Nqsuxj`^Z#dZgU92qwfn#;}k@@{ZI>ta9-j z!7ujk>8!(&s}4)AIxG{1<>C;=`J0KFx?EOxrX%FMcZ_WRiiO-tp<1706%C%U4wa;l zTeGgJNW^WjR(qx+|9b{e*PA18tw@WtQWQsI-Y^rTbS3rW6&bFp@TxS@_gu*v2^*5C zY=h61Bx|Kuf#3cEAG5HY3s!PS(YonAGyR&6vRl$fj3P( K5@k2{a^Jr+j0~Xw diff --git a/api-udims/target/classes/com/glxp/udi/admin/controller/publish/PostIdentifyController.class b/api-udims/target/classes/com/glxp/udi/admin/controller/publish/PostIdentifyController.class index 672c77ae7b755ded84e80f963346bdfc7f87ecfd..e66b84249e17e26329eabb0e5c74d77f3fb40f02 100644 GIT binary patch literal 19545 zcmd^n33!y%)&Dv79Wq%iWCLYf5EYe8qT)v4mP`l~ zsCCC`-8bA2*B2r#xM8(wwQ99mtG0l&wrZ{VX|?eE&b!P^k^zF>|9Sr3^L)>vnft!) zJ?EZ#&bhyH?s@OaOWPiMl8BBpPRJ)khL=2=22c)D(SqROU|A#>?I@czcR{Ev$&_p3MGwto;z$-L3aE&Ry;P#9lm;`6&BkwWFcNMLCd094SyedN4ka{(5?vAKEN^}=F)<#G z#W5SGtu>GKpgp}bRFjYPVj9sFTU6E&S=w3F)gFef7A*pcP_%1N0*Vq26VYZWo?h8l z*)V6;#KyXsmN_+*_4P~#*Y}6ELd4%k)4nu}X&|&*6Ane%Es2;8-GO>Drjzbokx#>E ze=i-N=|CF6G-?-$NK-<73|t+W7sP}bLWxAMBLtIU@U)KwVDxAQ#yFS`@zO|5qi8hd zm~Dz($#BHc&a7!OaRJp12#JoFP9NDnt@IsvR93=xC{b1wOoU*J&R8@Nf=`WQ8r?&z zVEdvljJC8b)MrrrgTvhPtV9>Z%K3 zG#yV^*awM0cF6-?jj?M(L2KzAJTjXy`&c%QPNGULRcZ25HSi*f3I!_Su}CBoFYD}@ z8wn@omrai)l6CE&Xfix+nLvj980Zx2O3tqo#mn@+JR|y2IGm4-5!!{nv;b?y`~15%H+ke=?YDo$5c9Ua;9$! z1FXa8G{Z}cngZ0sbXb=8?^IYAZ62VdYFS-7w3jK2#lDyOIz9=#C71P@e1%wImZsU% zj44Bm&R}#|N{ff>OpD>@yjYpP2L*K4N+)~i6iuhnX-p%t%uCGIM+_T{{9TD;Y*8pK zlPc)}2#(TDr=XYSYHB0&7?*{)tF$b#Va18c9DxxEc1vrS3@2JMz(Rp>Cu9*K!*kn1 zmcv!YmP8}5V0*Q7SsRLUhT{1YqWQAs!%T&mSt#J`ypDWDME+`xmbTqv4x>1 zbONnqk;u_GqDp(2)zg_mKEY~M1 zDRaBRk#631P7=p`VHe zp2f6h=4wdw5Im|!SzU!$?>sD-f{N^n` zziji0n3mvFhWxoi z(=X^!cxl@c24SzoP5$7^}{PjJoy|CLfc{d0gCcwK1~~AwtfLbd#5E z)^rQq%5+o~!FSCCIGqSZkpEXLlh}hP9N?HXJp;$r(l-j|cDln$cWPQice#Nz^_a<% z2%mwFjfA*Py56JdUb+w0(304wF4K7(=ke10JJNk31uPj#a5FY9J&-+cWLZMh!DO&1 z6pZH68ZsnIKCI~xdKCF9%rZS5Ywv1HrmS*wKdsV}4oh$~t<|(n&{xvpnbmc3oGx=} zrWDX)wBAdPYkGp7%)Sb;n5^dzNDWu?=`(G zRAaNO0!Qq=QH4ok5Pv+>9!^f}S|mgKLDReL5KS$C+UAz(2C?ZMHN7wVOF&?+;Koo} zEZ#mPWXGANQV0@Vi12X7lO

8v^F;fs$2Zis{%6Y zR!x6RDPv*BjIN*+y@lu#O@9}nVhm{$wFX+MTdD)~Links&)gAbCPFi@vv)_#rGGM! zu=tmzFWt!stvl-1n*K|Oi!j-`M4}5@x5|!Cw9T68x0?R#3M&Lv4Nc8rhSl`FrvC_8 zp+#05jssR2g7Jmma7S+ioJM>w|q6&`}BK~Oe&JpkN|E3LUa0M2w6L}st%Tp3+s z)`6Oqs;1V-Re@a2$MeG>18dC#MFv@Wb%_8R$DOuN7iumN>Y<>nY7*&N()tFwR$)=1 zxzwFTdJ@%j!eEHzJ%mACih)oJ)$DWiWe?{M#^d2oJeT)|U=_K%FMh^~9`@5bocD)1 z;-St+P&PKznG4uIKNt^42_@PV%FLO1+|Pv1)W&)ZAEsQC^U}G@DZBFyCY4v zw|Br>S+;zX=A&H_>0VRSI75UxR`UcQkwsV)4@TRabG9`?NzlJAiu9eP$L4lgtRrRe+_5SHX zGFkH!A(3*GO;R07w8g{L#$QMqG*5NM0RYJo<>{JdxPti+VIr{(V98wB53J#U<|ZKk zWCO8kYip}4*=A{;Ei@SzXW<~X075oBapmUQS8iRiV#~_aTi0B@dHFfQ>155Pq=&9= zmZ4A6Jf{~Mf2`foc~J9Qw|h-}m0%dRYYs_wSsM=^43DLna&1VQ@5hz>ztyQ(PtyPuN@te!Y3*K(^QF7(5ml3CxA>a_Ekbgk=AR3Rl-3$U zU5QXrcu~lbWrgO8gvMG2)&815i{EmGOEmvNC?rtSC2TJWBt!9V#2V@{&6f+AI0T$; z_T(xHbFS2Ul~4__sO!9xrtFXuj8#&OfQOp|NsC^Q30WNmpyWU&zJRt%VzmG@)WF zR1au=P^bjVn*x4+t-rO&n$g3W9}${T(D)-LOSc6h0pye}p{aST5Q=?;Fktz2x8}!$ zN{m&PsE;M9g2}e|GSK6ipOF5Rf&EnhKv3;;Yb8FVd4te6@d9=VM$*go8O_hS(+W6r z&Gi=H^O`pbp(wpB(GZMw%?q|AyQIwN;@+<{zbMqQLR{*A-^RY*Xnxt9VO?V4($260 zvJPgxs`nYmrCXi)f{3OAO%|Iqv?e}-*O6gPTTzTN!|BkAhL zt~a&Cf!o`OxtIUNbZi!_^~%PjI+N0xwPLKj4u63yE`QEnYqoMaS?zv*_3V89g1^;l zrE-D__Px*fd(Bo7SAc%?exRBku?Bs&YenK$f_LfrpDU%6A-0z-u;1T`u4;f*Inp)9 zV%rMkt6Yr~U-n!oU#kM8q1BWdb}meL;qGmPQ-tD#YLHfiB8UL5IH9eJy7p-(gR5dy z;#H+u4Hg&Nt(|ge5G(B1J7t%(SM9+xe%Gc+8MSkvV^cMh>6l#;rfoVs*tQVwRV