From 898e1955da58deb77d63521186d9fe1c3ad9e089 Mon Sep 17 00:00:00 2001 From: anthonywj Date: Mon, 19 Jul 2021 08:58:04 +0800 Subject: [PATCH] first commit --- .gitignore | 25 + README.md | 0 api-admin/pom.xml | 228 +++ .../com/glxp/api/ApiAdminApplication.java | 25 + .../admin/annotation/AuthRuleAnnotation.java | 17 + .../api/admin/aspect/AuthorizeAspect.java | 108 ++ .../com/glxp/api/admin/config/CorsConfig.java | 24 + .../com/glxp/api/admin/config/CorsFilter.java | 39 + .../api/admin/config/DruidStatFilter.java | 18 + .../admin/config/DruidStatViewServlet.java | 21 + .../admin/config/MasterDataSourceConfig.java | 49 + .../api/admin/config/PageHelperConfig.java | 34 + .../api/admin/config/PublicFileUrlConfig.java | 39 + .../glxp/api/admin/config/WebMvcConfig.java | 24 + .../admin/constant/BussinessTypeUtils.java | 49 + .../api/admin/constant/ConstantStatus.java | 24 + .../glxp/api/admin/constant/ConstantType.java | 23 + .../controller/auth/AuthAdminController.java | 234 +++ .../auth/AuthPermissionRuleController.java | 133 ++ .../controller/auth/AuthRoleController.java | 224 +++ .../controller/auth/LoginController.java | 152 ++ .../basic/BasicUnitMaintainController.java | 181 +++ .../basic/BussinessTypeController.java | 93 ++ .../controller/basic/UdiInfoController.java | 115 ++ .../basic/UdiRelevanceController.java | 228 +++ .../controller/info/CompanyController.java | 36 + .../controller/info/SetupController.java | 39 + .../info/SystemParamConfigController.java | 105 ++ .../controller/inout/OrderController.java | 260 +++ .../inout/OrderDetailController.java | 266 +++ .../controller/inout/UdiTraceController.java | 66 + .../controller/inout/WareHouseController.java | 138 ++ .../inout/utils/ContrastErpUtil.java | 260 +++ .../controller/inout/utils/DataTransUtil.java | 39 + .../controller/inout/utils/InoutUtils.java | 226 +++ .../inout/utils/TransInoutUtil.java | 4 + .../inventory/InvCheckController.java | 189 +++ .../inventory/InvErpOnhandController.java | 115 ++ .../inventory/InvPrintController.java | 208 +++ .../glxp/api/admin/dao/auth/AuthAdminDao.java | 60 + .../api/admin/dao/auth/AuthPermissionDao.java | 40 + .../admin/dao/auth/AuthPermissionRuleDao.java | 61 + .../api/admin/dao/auth/AuthRoleAdminDao.java | 47 + .../glxp/api/admin/dao/auth/AuthRoleDao.java | 47 + .../admin/dao/basic/BasicUnitMaintainDao.java | 24 + .../api/admin/dao/basic/BussinessTypeDao.java | 22 + .../glxp/api/admin/dao/basic/UdiInfoDao.java | 32 + .../api/admin/dao/basic/UdiRelevanceDao.java | 35 + .../api/admin/dao/basic/UnitMaintainDao.java | 19 + .../glxp/api/admin/dao/info/CompanyDao.java | 14 + .../glxp/api/admin/dao/info/ScheduledDao.java | 18 + .../com/glxp/api/admin/dao/info/SetupDao.java | 18 + .../admin/dao/info/SystemParamConfigDao.java | 27 + .../glxp/api/admin/dao/inout/CodesDao.java | 37 + .../api/admin/dao/inout/CodesTempDao.java | 20 + .../glxp/api/admin/dao/inout/OrderDao.java | 50 + .../api/admin/dao/inout/OrderDetailDao.java | 43 + .../admin/dao/inventory/InvErpStockDao.java | 24 + .../admin/dao/inventory/InvOrderCheckDao.java | 21 + .../admin/dao/inventory/InvStockPrintDao.java | 32 + .../glxp/api/admin/entity/auth/AuthAdmin.java | 31 + .../api/admin/entity/auth/AuthPermission.java | 19 + .../admin/entity/auth/AuthPermissionRule.java | 22 + .../glxp/api/admin/entity/auth/AuthRole.java | 21 + .../api/admin/entity/auth/AuthRoleAdmin.java | 14 + .../entity/basic/BasicUnitMaintainEntity.java | 20 + .../entity/basic/BussinessTypeEntity.java | 14 + .../admin/entity/basic/ErpStockEntity.java | 18 + .../admin/entity/basic/StockPrintEntity.java | 27 + .../api/admin/entity/basic/UdiEntity.java | 65 + .../api/admin/entity/basic/UdiInfoEntity.java | 337 ++++ .../entity/basic/UdiRelevanceEntity.java | 15 + .../entity/basic/UnitMaintainEntity.java | 19 + .../api/admin/entity/info/CompanyEntity.java | 16 + .../admin/entity/info/MipsServiceEntity.java | 10 + .../admin/entity/info/ScheduledEntity.java | 12 + .../api/admin/entity/info/SetupEntity.java | 30 + .../entity/info/SystemParamConfigEntity.java | 16 + .../entity/inout/ErpDetailCodeEntity.java | 21 + .../admin/entity/inout/ErpOrderEntity.java | 58 + .../entity/inout/FilterErpOrderRequest.java | 23 + .../admin/entity/inout/MipsDrugEntity.java | 20 + .../admin/entity/inout/OrderDetailEntity.java | 34 + .../api/admin/entity/inout/OrderEntity.java | 24 + .../admin/entity/inout/StockCheckEntity.java | 17 + .../com/glxp/api/admin/entity/inout/Unit.java | 14 + .../admin/entity/inout/WarehouseEntity.java | 24 + .../api/admin/entity/inout/Warehousetemp.java | 192 +++ .../entity/inout/WarehousetempExample.java | 1429 +++++++++++++++++ .../api/admin/exception/JsonException.java | 28 + .../admin/handler/GlobalExceptionHandler.java | 33 + .../api/admin/httpclient/ErpBasicClient.java | 61 + .../api/admin/httpclient/ErpInvClient.java | 39 + .../api/admin/httpclient/ErpOrderClient.java | 144 ++ .../api/admin/httpclient/UdiDlHttpClient.java | 59 + .../glxp/api/admin/req/ListPageRequest.java | 23 + .../admin/req/auth/AuthAdminQueryRequest.java | 21 + .../admin/req/auth/AuthAdminSaveRequest.java | 38 + .../auth/AuthPermissionRuleSaveRequest.java | 24 + .../admin/req/auth/AuthRoleAuthRequest.java | 18 + .../admin/req/auth/AuthRoleQueryRequest.java | 16 + .../admin/req/auth/AuthRoleSaveRequest.java | 16 + .../glxp/api/admin/req/auth/LoginRequest.java | 19 + .../admin/req/auth/UpdatePasswordRequest.java | 23 + .../basic/BasicUnitMaintainFilterRequest.java | 11 + .../basic/BasicUnitMaintainSaveRequest.java | 19 + .../api/admin/req/basic/CombineRequest.java | 15 + .../req/basic/FilterErpGoodsRequest.java | 12 + .../req/basic/FilterStockprintRequest.java | 17 + .../admin/req/basic/FilterUdiInfoRequest.java | 16 + .../admin/req/basic/UOnhandQueryRequest.java | 21 + .../req/basic/UpdatePrintStatusRequest.java | 12 + .../admin/req/info/FilterSetupRequest.java | 12 + .../req/info/SystemParamConfigRequest.java | 19 + .../info/SystemParamConfigSaveRequest.java | 16 + .../api/admin/req/inout/CommitRequest.java | 9 + .../admin/req/inout/DeleteCodeRequest.java | 10 + .../api/admin/req/inout/DeleteRequest.java | 12 + .../admin/req/inout/ERPPostBillRequest.java | 14 + .../admin/req/inout/FilterOrderRequest.java | 16 + .../req/inout/FilterStockCheckRequest.java | 16 + .../req/inout/ImportErpOrderRequest.java | 17 + .../req/inout/OrderFilterByCodeRequest.java | 10 + .../admin/req/inout/OrderFilterRequest.java | 22 + .../admin/req/inout/OrderMergeRequest.java | 11 + .../admin/req/inout/OrderQueryRequest.java | 9 + .../api/admin/req/inout/PostOrderRequest.java | 69 + .../api/admin/req/inout/USignRequest.java | 11 + .../req/inout/UpdateExportStatusRequest.java | 11 + .../req/inout/WarehouseQueryRequest.java | 14 + .../admin/req/inout/WarehouseSaveRequest.java | 19 + .../admin/req/inventory/ErpOnhandRequest.java | 14 + .../admin/req/receipt/AddReceiptRequest.java | 107 ++ .../receipt/BussinessTypeFilterRequest.java | 13 + .../admin/req/receipt/ClearStockRequest.java | 8 + .../admin/req/receipt/CodeDetailRequest.java | 9 + .../admin/req/receipt/CombineUnitRequest.java | 14 + .../req/receipt/ManuorderFilterRequest.java | 14 + .../req/receipt/ProductFilterRequest.java | 16 + .../req/receipt/ProductInfoFilterRequest.java | 15 + .../req/receipt/ReceiptDetailRequest.java | 10 + .../req/receipt/ReceiptFilterRequest.java | 13 + .../glxp/api/admin/req/receipt/U8Request.java | 139 ++ .../receipt/UnitMaintainFilterRequest.java | 12 + .../api/admin/req/udid/ScheduledRequest.java | 9 + .../api/admin/res/PageSimpleResponse.java | 16 + .../api/admin/res/auth/AuthAdminResponse.java | 41 + .../admin/res/auth/AuthAdminRoleResponse.java | 15 + .../auth/AuthPermissionRuleMergeResponse.java | 24 + .../api/admin/res/auth/AuthRoleResponse.java | 18 + .../admin/res/auth/LoginUserInfoResponse.java | 18 + .../res/basic/BasicUnitMaintainResponse.java | 20 + .../admin/res/basic/ErpProductsResponse.java | 19 + .../api/admin/res/basic/ErpUnitsResponse.java | 15 + .../admin/res/basic/UOnhandQueryResponse.java | 175 ++ .../admin/res/basic/UdiRelevanceResponse.java | 39 + .../api/admin/res/basic/UdiTraceResponse.java | 20 + .../res/info/SystemParamConfigResponse.java | 16 + .../api/admin/res/inout/ErpOrderResponse.java | 146 ++ .../admin/res/inout/InvmandocResponse.java | 16 + .../admin/res/inout/PurchaseinResponse.java | 164 ++ .../admin/res/inout/WarehouseResponse.java | 19 + .../res/inventory/ErpOnHandResponse.java | 16 + .../admin/service/auth/AuthAdminService.java | 27 + .../admin/service/auth/AuthLoginService.java | 9 + .../auth/AuthPermissionRuleService.java | 25 + .../service/auth/AuthPermissionService.java | 19 + .../service/auth/AuthRoleAdminService.java | 22 + .../admin/service/auth/AuthRoleService.java | 23 + .../auth/impl/AuthAdminServiceImpl.java | 110 ++ .../auth/impl/AuthLoginServiceImpl.java | 81 + .../impl/AuthPermissionRuleServiceImpl.java | 110 ++ .../auth/impl/AuthPermissionServiceImpl.java | 60 + .../auth/impl/AuthRoleAdminServiceImpl.java | 103 ++ .../auth/impl/AuthRoleServiceImpl.java | 93 ++ .../basic/BasicUnitMaintainService.java | 23 + .../service/basic/BussinessTypeService.java | 21 + .../admin/service/basic/UdiInfoService.java | 31 + .../service/basic/UdiRelevanceService.java | 32 + .../service/basic/UnitMaintainService.java | 17 + .../impl/BasicUnitMaintainServiceImpl.java | 57 + .../basic/impl/BussinessTypeServiceImpl.java | 67 + .../basic/impl/UdiInfoServiceImpl.java | 81 + .../basic/impl/UdiRelevanceServiceImpl.java | 85 + .../basic/impl/UnitMaintainServiceImpl.java | 45 + .../admin/service/info/CompanyService.java | 11 + .../api/admin/service/info/SetupService.java | 19 + .../info/SystemParamConfigService.java | 28 + .../service/info/impl/CompanyServiceImpl.java | 29 + .../service/info/impl/SetupServiceImpl.java | 40 + .../impl/SystemParamConfigServiceImpl.java | 65 + .../api/admin/service/inout/CodesService.java | 37 + .../admin/service/inout/CodesTempService.java | 16 + .../service/inout/OrderDetailService.java | 39 + .../api/admin/service/inout/OrderService.java | 48 + .../service/inout/impl/CodesServiceImpl.java | 112 ++ .../inout/impl/CodesTempServiceImpl.java | 43 + .../inout/impl/OrderDetailServiceImpl.java | 125 ++ .../service/inout/impl/OrderServiceImpl.java | 138 ++ .../service/inventory/InvErpStockService.java | 21 + .../inventory/InvOrderCheckService.java | 19 + .../inventory/InvStockPrintService.java | 25 + .../impl/InvErpStockServiceImpl.java | 41 + .../impl/InvOrderCheckServiceImpl.java | 49 + .../impl/InvStockPrintServiceImpl.java | 67 + .../admin/thread/BasicUpdateErpDataTask.java | 62 + .../thread/BasicUpdateproductService.java | 155 ++ .../admin/thread/InvDlErpStockService.java | 108 ++ .../api/admin/thread/InvDlErpStockTask.java | 45 + .../admin/thread/InvImportStockService.java | 332 ++++ .../api/admin/thread/InvUpdateStock1Task.java | 50 + .../api/admin/thread/InvUpdateStock2Task.java | 51 + .../api/admin/thread/IoModifyErpTask.java | 176 ++ .../api/admin/thread/IoTransInoutService.java | 238 +++ .../api/admin/thread/IoTransInoutTask.java | 45 + .../api/admin/thread/TaskExecutorConfig.java | 57 + .../com/glxp/api/admin/util/CacheUtils.java | 129 ++ .../com/glxp/api/admin/util/CheckUtils.java | 34 + .../com/glxp/api/admin/util/CustomUtil.java | 11 + .../com/glxp/api/admin/util/DateUtil.java | 481 ++++++ .../glxp/api/admin/util/FastJsonUtils.java | 55 + .../glxp/api/admin/util/FilterUdiUtils.java | 256 +++ .../com/glxp/api/admin/util/HttpClient.java | 100 ++ .../java/com/glxp/api/admin/util/IpUtils.java | 57 + .../com/glxp/api/admin/util/JwtUtils.java | 104 ++ .../com/glxp/api/admin/util/Md5Utils.java | 23 + .../glxp/api/admin/util/PasswordUtils.java | 13 + .../admin/util/PermissionRuleTreeUtils.java | 36 + .../glxp/api/admin/util/PublicFileUtils.java | 23 + .../com/glxp/api/admin/util/TreeUtils.java | 12 + .../com/glxp/api/admin/util/UdidConfig.java | 12 + .../util/serializer/Date2LongSerializer.java | 21 + .../main/resources/application-dev.properties | 26 + .../src/main/resources/application.properties | 8 + .../src/main/resources/logback-spring.xml | 145 ++ .../main/resources/mybatis/configuration.xml | 63 + .../src/main/resources/mybatis/db.properties | 5 + .../mybatis/mapper/auth/AuthAdminDao.xml | 106 ++ .../mybatis/mapper/auth/AuthPermissionDao.xml | 38 + .../mapper/auth/AuthPermissionRuleDao.xml | 71 + .../mybatis/mapper/auth/AuthRoleAdminDao.xml | 42 + .../mybatis/mapper/auth/AuthRoleDao.xml | 89 + .../mapper/basic/BasicUnitMaintainDao.xml | 85 + .../mybatis/mapper/basic/BussinessTypeDao.xml | 56 + .../mybatis/mapper/basic/UdiInfoDao.xml | 154 ++ .../mybatis/mapper/basic/UdiRelevanceDao.xml | 141 ++ .../mybatis/mapper/basic/UnitMaintainDao.xml | 49 + .../mybatis/mapper/info/CompanyDao.xml | 37 + .../mybatis/mapper/info/ScheduleDao.xml | 40 + .../mybatis/mapper/info/SetupDao.xml | 58 + .../mapper/info/SystemParamConfigDao.xml | 71 + .../mybatis/mapper/inout/CodesDao.xml | 115 ++ .../mybatis/mapper/inout/CodesTempDao.xml | 46 + .../mybatis/mapper/inout/OrderDao.xml | 210 +++ .../mybatis/mapper/inout/OrderDetail.xml | 183 +++ .../mapper/inventory/InvErpStockDao.xml | 71 + .../mapper/inventory/InvOrderCheckDao.xml | 66 + .../mapper/inventory/InvStockPrintDao.xml | 142 ++ .../main/resources/mybatis/mybatis-config.xml | 24 + .../src/main/resources/static/.gitignore | 2 + .../src/main/resources/templates/.gitignore | 2 + .../glxp/api/BaseApiAdminApplicationTest.java | 10 + .../auth/impl/AuthAdminServiceImplTest.java | 70 + .../auth/impl/AuthLoginServiceImplTest.java | 26 + .../AuthPermissionRuleServiceImplTest.java | 37 + .../impl/AuthRoleAdminServiceImplTest.java | 46 + .../auth/impl/AuthRoleServiceImplTest.java | 32 + .../api/admin/service/auth/impl/MmpaTest.java | 24 + .../com/glxp/api/admin/util/DlDeviceTest.java | 34 + .../com/glxp/api/admin/util/JwtUtilsTest.java | 65 + .../com/glxp/api/admin/util/NormalTest.java | 24 + .../util/PermissionRuleTreeUtilsTest.java | 26 + .../classes/META-INF/api-admin.kotlin_module | Bin 0 -> 16 bytes .../spring-configuration-metadata.json | 38 + .../target/classes/application-dev.properties | 26 + .../target/classes/application.properties | 8 + .../com/glxp/api/ApiAdminApplication.class | Bin 0 -> 1344 bytes .../admin/annotation/AuthRuleAnnotation.class | Bin 0 -> 450 bytes .../api/admin/aspect/AuthorizeAspect.class | Bin 0 -> 4511 bytes .../glxp/api/admin/config/CorsConfig.class | Bin 0 -> 2730 bytes .../glxp/api/admin/config/CorsFilter.class | Bin 0 -> 1854 bytes .../api/admin/config/DruidStatFilter.class | Bin 0 -> 650 bytes .../admin/config/DruidStatViewServlet.class | Bin 0 -> 797 bytes .../admin/config/MasterDataSourceConfig.class | Bin 0 -> 2437 bytes .../api/admin/config/PageHelperConfig.class | Bin 0 -> 1647 bytes .../admin/config/PublicFileUrlConfig.class | Bin 0 -> 989 bytes .../glxp/api/admin/config/WebMvcConfig.class | Bin 0 -> 1451 bytes .../admin/constant/BussinessTypeUtils.class | Bin 0 -> 2102 bytes .../api/admin/constant/ConstantStatus.class | Bin 0 -> 1041 bytes .../api/admin/constant/ConstantType.class | Bin 0 -> 1065 bytes .../controller/auth/AuthAdminController.class | Bin 0 -> 11560 bytes .../auth/AuthPermissionRuleController.class | Bin 0 -> 4981 bytes .../controller/auth/AuthRoleController.class | Bin 0 -> 10099 bytes .../controller/auth/LoginController.class | Bin 0 -> 6935 bytes .../basic/BasicUnitMaintainController.class | Bin 0 -> 11380 bytes .../basic/BussinessTypeController.class | Bin 0 -> 4650 bytes .../controller/basic/UdiInfoController.class | Bin 0 -> 7204 bytes .../basic/UdiRelevanceController.class | Bin 0 -> 10686 bytes .../controller/info/CompanyController.class | Bin 0 -> 1972 bytes .../controller/info/SetupController.class | Bin 0 -> 2220 bytes .../info/SystemParamConfigController.class | Bin 0 -> 7031 bytes .../controller/inout/OrderController.class | Bin 0 -> 15249 bytes .../inout/OrderDetailController.class | Bin 0 -> 14765 bytes .../controller/inout/UdiTraceController.class | Bin 0 -> 5558 bytes .../inout/WareHouseController.class | Bin 0 -> 8141 bytes .../inout/utils/ContrastErpUtil.class | Bin 0 -> 13775 bytes .../inout/utils/DataTransUtil.class | Bin 0 -> 2273 bytes .../controller/inout/utils/InoutUtils.class | Bin 0 -> 11057 bytes .../inout/utils/TransInoutUtil.class | Bin 0 -> 351 bytes .../inventory/InvCheckController.class | Bin 0 -> 11203 bytes .../inventory/InvErpOnhandController$1.class | Bin 0 -> 1082 bytes .../inventory/InvErpOnhandController.class | Bin 0 -> 6679 bytes .../inventory/InvPrintController.class | Bin 0 -> 11176 bytes .../api/admin/dao/auth/AuthAdminDao.class | Bin 0 -> 931 bytes .../admin/dao/auth/AuthPermissionDao.class | Bin 0 -> 849 bytes .../dao/auth/AuthPermissionRuleDao.class | Bin 0 -> 1089 bytes .../api/admin/dao/auth/AuthRoleAdminDao.class | Bin 0 -> 898 bytes .../glxp/api/admin/dao/auth/AuthRoleDao.class | Bin 0 -> 970 bytes .../dao/basic/BasicUnitMaintainDao.class | Bin 0 -> 1142 bytes .../admin/dao/basic/BussinessTypeDao.class | Bin 0 -> 865 bytes .../glxp/api/admin/dao/basic/UdiInfoDao.class | Bin 0 -> 1407 bytes .../api/admin/dao/basic/UdiRelevanceDao.class | Bin 0 -> 1454 bytes .../api/admin/dao/basic/UnitMaintainDao.class | Bin 0 -> 940 bytes .../glxp/api/admin/dao/info/CompanyDao.class | Bin 0 -> 440 bytes .../api/admin/dao/info/ScheduledDao.class | Bin 0 -> 598 bytes .../glxp/api/admin/dao/info/SetupDao.class | Bin 0 -> 504 bytes .../admin/dao/info/SystemParamConfigDao.class | Bin 0 -> 1242 bytes .../glxp/api/admin/dao/inout/CodesDao.class | Bin 0 -> 1803 bytes .../api/admin/dao/inout/CodesTempDao.class | Bin 0 -> 884 bytes .../glxp/api/admin/dao/inout/OrderDao.class | Bin 0 -> 2145 bytes .../api/admin/dao/inout/OrderDetailDao.class | Bin 0 -> 1927 bytes .../admin/dao/inventory/InvErpStockDao.class | Bin 0 -> 926 bytes .../dao/inventory/InvOrderCheckDao.class | Bin 0 -> 847 bytes .../dao/inventory/InvStockPrintDao.class | Bin 0 -> 1449 bytes .../api/admin/entity/auth/AuthAdmin.class | Bin 0 -> 6428 bytes .../admin/entity/auth/AuthPermission.class | Bin 0 -> 2920 bytes .../entity/auth/AuthPermissionRule.class | Bin 0 -> 5294 bytes .../glxp/api/admin/entity/auth/AuthRole.class | Bin 0 -> 4712 bytes .../api/admin/entity/auth/AuthRoleAdmin.class | Bin 0 -> 2409 bytes .../basic/BasicUnitMaintainEntity.class | Bin 0 -> 6040 bytes .../entity/basic/BussinessTypeEntity.class | Bin 0 -> 3852 bytes .../admin/entity/basic/ErpStockEntity.class | Bin 0 -> 5083 bytes .../admin/entity/basic/StockPrintEntity.class | Bin 0 -> 10056 bytes .../api/admin/entity/basic/UdiEntity.class | Bin 0 -> 1842 bytes .../admin/entity/basic/UdiInfoEntity.class | Bin 0 -> 7923 bytes .../entity/basic/UdiRelevanceEntity.class | Bin 0 -> 3812 bytes .../entity/basic/UnitMaintainEntity.class | Bin 0 -> 6020 bytes .../api/admin/entity/info/CompanyEntity.class | Bin 0 -> 4606 bytes .../admin/entity/info/MipsServiceEntity.class | Bin 0 -> 2350 bytes .../admin/entity/info/ScheduledEntity.class | Bin 0 -> 2665 bytes .../api/admin/entity/info/SetupEntity.class | Bin 0 -> 7515 bytes .../entity/info/SystemParamConfigEntity.class | Bin 0 -> 4009 bytes .../entity/inout/ErpDetailCodeEntity.class | Bin 0 -> 6237 bytes .../admin/entity/inout/ErpOrderEntity.class | Bin 0 -> 14815 bytes .../entity/inout/FilterErpOrderRequest.class | Bin 0 -> 6506 bytes .../admin/entity/inout/MipsDrugEntity.class | Bin 0 -> 6651 bytes .../entity/inout/OrderDetailEntity.class | Bin 0 -> 10896 bytes .../api/admin/entity/inout/OrderEntity.class | Bin 0 -> 8735 bytes .../admin/entity/inout/StockCheckEntity.class | Bin 0 -> 4422 bytes .../glxp/api/admin/entity/inout/Unit.class | Bin 0 -> 4103 bytes .../admin/entity/inout/WarehouseEntity.class | Bin 0 -> 9304 bytes .../admin/entity/inout/Warehousetemp.class | Bin 0 -> 5107 bytes .../inout/WarehousetempExample$Criteria.class | Bin 0 -> 27344 bytes .../WarehousetempExample$Criterion.class | Bin 0 -> 2433 bytes ...rehousetempExample$GeneratedCriteria.class | Bin 0 -> 38440 bytes .../entity/inout/WarehousetempExample.class | Bin 0 -> 2448 bytes .../api/admin/exception/JsonException.class | Bin 0 -> 1107 bytes .../handler/GlobalExceptionHandler.class | Bin 0 -> 1821 bytes .../admin/httpclient/ErpBasicClient$1.class | Bin 0 -> 962 bytes .../api/admin/httpclient/ErpBasicClient.class | Bin 0 -> 3843 bytes .../api/admin/httpclient/ErpInvClient$1.class | Bin 0 -> 924 bytes .../api/admin/httpclient/ErpInvClient.class | Bin 0 -> 2754 bytes .../admin/httpclient/ErpOrderClient$1.class | Bin 0 -> 943 bytes .../admin/httpclient/ErpOrderClient$2.class | Bin 0 -> 840 bytes .../admin/httpclient/ErpOrderClient$3.class | Bin 0 -> 850 bytes .../api/admin/httpclient/ErpOrderClient.class | Bin 0 -> 7876 bytes .../admin/httpclient/UdiDlHttpClient$1.class | Bin 0 -> 860 bytes .../admin/httpclient/UdiDlHttpClient.class | Bin 0 -> 2996 bytes .../glxp/api/admin/req/ListPageRequest.class | Bin 0 -> 2345 bytes .../req/auth/AuthAdminQueryRequest.class | Bin 0 -> 3317 bytes .../admin/req/auth/AuthAdminSaveRequest.class | Bin 0 -> 6890 bytes .../auth/AuthPermissionRuleSaveRequest.class | Bin 0 -> 4633 bytes .../admin/req/auth/AuthRoleAuthRequest.class | Bin 0 -> 2581 bytes .../admin/req/auth/AuthRoleQueryRequest.class | Bin 0 -> 2125 bytes .../admin/req/auth/AuthRoleSaveRequest.class | Bin 0 -> 3736 bytes .../api/admin/req/auth/LoginRequest.class | Bin 0 -> 2167 bytes .../req/auth/UpdatePasswordRequest.class | Bin 0 -> 2885 bytes .../BasicUnitMaintainFilterRequest.class | Bin 0 -> 1592 bytes .../basic/BasicUnitMaintainSaveRequest.class | Bin 0 -> 5772 bytes .../api/admin/req/basic/CombineRequest.class | Bin 0 -> 3082 bytes .../req/basic/FilterErpGoodsRequest.class | Bin 0 -> 1964 bytes .../req/basic/FilterStockprintRequest.class | Bin 0 -> 5248 bytes .../req/basic/FilterUdiInfoRequest.class | Bin 0 -> 3757 bytes .../admin/req/basic/UOnhandQueryRequest.class | Bin 0 -> 4359 bytes .../req/basic/UpdatePrintStatusRequest.class | Bin 0 -> 1828 bytes .../admin/req/info/FilterSetupRequest.class | Bin 0 -> 2797 bytes .../req/info/SystemParamConfigRequest.class | Bin 0 -> 4075 bytes .../info/SystemParamConfigSaveRequest.class | Bin 0 -> 4023 bytes .../api/admin/req/inout/CommitRequest.class | Bin 0 -> 1508 bytes .../admin/req/inout/DeleteCodeRequest.class | Bin 0 -> 1780 bytes .../api/admin/req/inout/DeleteRequest.class | Bin 0 -> 2188 bytes .../admin/req/inout/ERPPostBillRequest.class | Bin 0 -> 2484 bytes .../admin/req/inout/FilterOrderRequest.class | Bin 0 -> 4279 bytes .../req/inout/FilterStockCheckRequest.class | Bin 0 -> 4292 bytes .../req/inout/ImportErpOrderRequest.class | Bin 0 -> 3837 bytes .../req/inout/OrderFilterByCodeRequest.class | Bin 0 -> 1575 bytes .../admin/req/inout/OrderFilterRequest.class | Bin 0 -> 6806 bytes .../admin/req/inout/OrderMergeRequest.class | Bin 0 -> 1814 bytes .../admin/req/inout/OrderQueryRequest.class | Bin 0 -> 917 bytes .../inout/PostOrderRequest$PostOrder.class | Bin 0 -> 2071 bytes .../admin/req/inout/PostOrderRequest.class | Bin 0 -> 2262 bytes .../api/admin/req/inout/USignRequest.class | Bin 0 -> 1682 bytes .../req/inout/UpdateExportStatusRequest.class | Bin 0 -> 2142 bytes .../req/inout/WarehouseQueryRequest.class | Bin 0 -> 3287 bytes .../req/inout/WarehouseSaveRequest.class | Bin 0 -> 5815 bytes .../req/inventory/ErpOnhandRequest.class | Bin 0 -> 3266 bytes .../AddReceiptRequest$ReceiptRequest.class | Bin 0 -> 2580 bytes .../admin/req/receipt/AddReceiptRequest.class | Bin 0 -> 2069 bytes .../receipt/BussinessTypeFilterRequest.class | Bin 0 -> 2451 bytes .../admin/req/receipt/ClearStockRequest.class | Bin 0 -> 1528 bytes .../admin/req/receipt/CodeDetailRequest.class | Bin 0 -> 1507 bytes .../req/receipt/CombineUnitRequest.class | Bin 0 -> 3017 bytes .../req/receipt/ManuorderFilterRequest.class | Bin 0 -> 3323 bytes .../req/receipt/ProductFilterRequest.class | Bin 0 -> 4227 bytes .../receipt/ProductInfoFilterRequest.class | Bin 0 -> 3716 bytes .../req/receipt/ReceiptDetailRequest.class | Bin 0 -> 1598 bytes .../req/receipt/ReceiptFilterRequest.class | Bin 0 -> 2840 bytes .../api/admin/req/receipt/U8Request.class | Bin 0 -> 3144 bytes .../receipt/UnitMaintainFilterRequest.class | Bin 0 -> 2398 bytes .../api/admin/req/udid/ScheduledRequest.class | Bin 0 -> 1968 bytes .../api/admin/res/PageSimpleResponse.class | Bin 0 -> 2511 bytes .../admin/res/auth/AuthAdminResponse.class | Bin 0 -> 7621 bytes .../res/auth/AuthAdminRoleResponse.class | Bin 0 -> 2024 bytes .../AuthPermissionRuleMergeResponse.class | Bin 0 -> 5100 bytes .../api/admin/res/auth/AuthRoleResponse.class | Bin 0 -> 3724 bytes .../res/auth/LoginUserInfoResponse.class | Bin 0 -> 3184 bytes .../res/basic/BasicUnitMaintainResponse.class | Bin 0 -> 6042 bytes .../admin/res/basic/ErpProductsResponse.class | Bin 0 -> 4048 bytes .../admin/res/basic/ErpUnitsResponse.class | Bin 0 -> 4051 bytes .../res/basic/UOnhandQueryResponse.class | Bin 0 -> 4065 bytes .../res/basic/UdiRelevanceResponse.class | Bin 0 -> 15334 bytes .../admin/res/basic/UdiTraceResponse.class | Bin 0 -> 6698 bytes .../res/info/SystemParamConfigResponse.class | Bin 0 -> 4011 bytes .../inout/ErpOrderResponse$SubErpOrder.class | Bin 0 -> 2195 bytes .../admin/res/inout/ErpOrderResponse.class | Bin 0 -> 2363 bytes .../admin/res/inout/InvmandocResponse.class | Bin 0 -> 4055 bytes .../PurchaseinResponse$SubPurchase.class | Bin 0 -> 2664 bytes .../admin/res/inout/PurchaseinResponse.class | Bin 0 -> 2443 bytes .../admin/res/inout/WarehouseResponse.class | Bin 0 -> 6392 bytes .../res/inventory/ErpOnHandResponse.class | Bin 0 -> 4650 bytes .../admin/service/auth/AuthAdminService.class | Bin 0 -> 862 bytes .../admin/service/auth/AuthLoginService.class | Bin 0 -> 327 bytes .../auth/AuthPermissionRuleService.class | Bin 0 -> 907 bytes .../service/auth/AuthPermissionService.class | Bin 0 -> 780 bytes .../service/auth/AuthRoleAdminService.class | Bin 0 -> 986 bytes .../admin/service/auth/AuthRoleService.class | Bin 0 -> 999 bytes .../auth/impl/AuthAdminServiceImpl.class | Bin 0 -> 3242 bytes .../auth/impl/AuthLoginServiceImpl.class | Bin 0 -> 4048 bytes .../impl/AuthPermissionRuleServiceImpl.class | Bin 0 -> 3307 bytes .../auth/impl/AuthPermissionServiceImpl.class | Bin 0 -> 2006 bytes .../auth/impl/AuthRoleAdminServiceImpl.class | Bin 0 -> 3880 bytes .../auth/impl/AuthRoleServiceImpl.class | Bin 0 -> 3084 bytes .../basic/BasicUnitMaintainService.class | Bin 0 -> 952 bytes .../service/basic/BussinessTypeService.class | Bin 0 -> 848 bytes .../admin/service/basic/UdiInfoService.class | Bin 0 -> 1191 bytes .../service/basic/UdiRelevanceService.class | Bin 0 -> 1186 bytes .../service/basic/UnitMaintainService.class | Bin 0 -> 750 bytes .../impl/BasicUnitMaintainServiceImpl.class | Bin 0 -> 2807 bytes .../basic/impl/BussinessTypeServiceImpl.class | Bin 0 -> 3028 bytes .../basic/impl/UdiInfoServiceImpl.class | Bin 0 -> 3411 bytes .../basic/impl/UdiRelevanceServiceImpl.class | Bin 0 -> 3421 bytes .../basic/impl/UnitMaintainServiceImpl.class | Bin 0 -> 2344 bytes .../admin/service/info/CompanyService.class | Bin 0 -> 336 bytes .../api/admin/service/info/SetupService.class | Bin 0 -> 506 bytes .../info/SystemParamConfigService.class | Bin 0 -> 1187 bytes .../info/impl/CompanyServiceImpl.class | Bin 0 -> 1123 bytes .../service/info/impl/SetupServiceImpl.class | Bin 0 -> 1512 bytes .../impl/SystemParamConfigServiceImpl.class | Bin 0 -> 3109 bytes .../admin/service/inout/CodesService.class | Bin 0 -> 1362 bytes .../service/inout/CodesTempService.class | Bin 0 -> 686 bytes .../service/inout/OrderDetailService.class | Bin 0 -> 1589 bytes .../admin/service/inout/OrderService.class | Bin 0 -> 1989 bytes .../service/inout/impl/CodesServiceImpl.class | Bin 0 -> 3859 bytes .../inout/impl/CodesTempServiceImpl.class | Bin 0 -> 2145 bytes .../inout/impl/OrderDetailServiceImpl.class | Bin 0 -> 4376 bytes .../service/inout/impl/OrderServiceImpl.class | Bin 0 -> 5189 bytes .../inventory/InvErpStockService.class | Bin 0 -> 713 bytes .../inventory/InvOrderCheckService.class | Bin 0 -> 675 bytes .../inventory/InvStockPrintService.class | Bin 0 -> 1211 bytes .../impl/InvErpStockServiceImpl.class | Bin 0 -> 1848 bytes .../impl/InvOrderCheckServiceImpl.class | Bin 0 -> 2287 bytes .../impl/InvStockPrintServiceImpl.class | Bin 0 -> 3332 bytes .../admin/thread/BasicUpdateErpDataTask.class | Bin 0 -> 4390 bytes .../thread/BasicUpdateproductService.class | Bin 0 -> 7828 bytes .../admin/thread/InvDlErpStockService.class | Bin 0 -> 6433 bytes .../api/admin/thread/InvDlErpStockTask.class | Bin 0 -> 3561 bytes .../thread/InvImportStockService$1.class | Bin 0 -> 869 bytes .../thread/InvImportStockService$2.class | Bin 0 -> 894 bytes .../thread/InvImportStockService$3.class | Bin 0 -> 928 bytes .../admin/thread/InvImportStockService.class | Bin 0 -> 15349 bytes .../admin/thread/InvUpdateStock1Task.class | Bin 0 -> 3656 bytes .../admin/thread/InvUpdateStock2Task.class | Bin 0 -> 3656 bytes .../api/admin/thread/IoModifyErpTask.class | Bin 0 -> 9571 bytes .../admin/thread/IoTransInoutService.class | Bin 0 -> 11458 bytes .../api/admin/thread/IoTransInoutTask.class | Bin 0 -> 3330 bytes ...ecutorConfig$MyAsyncExceptionHandler.class | Bin 0 -> 1734 bytes .../api/admin/thread/TaskExecutorConfig.class | Bin 0 -> 1828 bytes .../com/glxp/api/admin/util/CacheUtils.class | Bin 0 -> 3989 bytes .../com/glxp/api/admin/util/CheckUtils.class | Bin 0 -> 2177 bytes .../com/glxp/api/admin/util/CustomUtil.class | Bin 0 -> 649 bytes .../com/glxp/api/admin/util/DateUtil.class | Bin 0 -> 9440 bytes .../glxp/api/admin/util/FastJsonUtils$1.class | Bin 0 -> 631 bytes .../glxp/api/admin/util/FastJsonUtils.class | Bin 0 -> 1758 bytes .../glxp/api/admin/util/FilterUdiUtils.class | Bin 0 -> 5620 bytes .../com/glxp/api/admin/util/HttpClient.class | Bin 0 -> 5068 bytes .../com/glxp/api/admin/util/IpUtils.class | Bin 0 -> 2453 bytes .../com/glxp/api/admin/util/JwtUtils.class | Bin 0 -> 4018 bytes .../com/glxp/api/admin/util/Md5Utils.class | Bin 0 -> 1384 bytes .../glxp/api/admin/util/PasswordUtils.class | Bin 0 -> 483 bytes .../admin/util/PermissionRuleTreeUtils.class | Bin 0 -> 1974 bytes .../glxp/api/admin/util/PublicFileUtils.class | Bin 0 -> 932 bytes .../com/glxp/api/admin/util/TreeUtils.class | Bin 0 -> 347 bytes .../com/glxp/api/admin/util/UdidConfig.class | Bin 0 -> 600 bytes .../util/serializer/Date2LongSerializer.class | Bin 0 -> 1360 bytes api-admin/target/classes/logback-spring.xml | 145 ++ .../target/classes/mybatis/configuration.xml | 63 + .../target/classes/mybatis/db.properties | 5 + .../mybatis/mapper/auth/AuthAdminDao.xml | 106 ++ .../mybatis/mapper/auth/AuthPermissionDao.xml | 38 + .../mapper/auth/AuthPermissionRuleDao.xml | 71 + .../mybatis/mapper/auth/AuthRoleAdminDao.xml | 42 + .../mybatis/mapper/auth/AuthRoleDao.xml | 89 + .../mapper/basic/BasicUnitMaintainDao.xml | 85 + .../mybatis/mapper/basic/BussinessTypeDao.xml | 56 + .../mybatis/mapper/basic/UdiInfoDao.xml | 154 ++ .../mybatis/mapper/basic/UdiRelevanceDao.xml | 141 ++ .../mybatis/mapper/basic/UnitMaintainDao.xml | 49 + .../mybatis/mapper/info/CompanyDao.xml | 37 + .../mybatis/mapper/info/ScheduleDao.xml | 40 + .../classes/mybatis/mapper/info/SetupDao.xml | 58 + .../mapper/info/SystemParamConfigDao.xml | 71 + .../classes/mybatis/mapper/inout/CodesDao.xml | 115 ++ .../mybatis/mapper/inout/CodesTempDao.xml | 46 + .../classes/mybatis/mapper/inout/OrderDao.xml | 210 +++ .../mybatis/mapper/inout/OrderDetail.xml | 183 +++ .../mapper/inventory/InvErpStockDao.xml | 71 + .../mapper/inventory/InvOrderCheckDao.xml | 66 + .../mapper/inventory/InvStockPrintDao.xml | 142 ++ .../target/classes/mybatis/mybatis-config.xml | 24 + api-admin/target/classes/static/.gitignore | 2 + api-admin/target/classes/templates/.gitignore | 2 + .../META-INF/api-admin.kotlin_module | Bin 0 -> 16 bytes .../api/BaseApiAdminApplicationTest.class | Bin 0 -> 532 bytes .../auth/impl/AuthAdminServiceImplTest.class | Bin 0 -> 3060 bytes .../auth/impl/AuthLoginServiceImplTest.class | Bin 0 -> 1021 bytes .../AuthPermissionRuleServiceImplTest.class | Bin 0 -> 1481 bytes .../impl/AuthRoleAdminServiceImplTest.class | Bin 0 -> 1896 bytes .../auth/impl/AuthRoleServiceImplTest.class | Bin 0 -> 1358 bytes .../admin/service/auth/impl/MmpaTest.class | Bin 0 -> 1308 bytes .../glxp/api/admin/util/DlDeviceTest.class | Bin 0 -> 1188 bytes .../glxp/api/admin/util/JwtUtilsTest.class | Bin 0 -> 2443 bytes .../com/glxp/api/admin/util/NormalTest.class | Bin 0 -> 1135 bytes .../util/PermissionRuleTreeUtilsTest.class | Bin 0 -> 1371 bytes api-common/pom.xml | 29 + .../api/common/constant/CacheConstant.java | 10 + .../converter/LongList2StringConverter.java | 33 + .../converter/String2LongListConverter.java | 38 + .../converter/String2StringListConverter.java | 34 + .../com/glxp/api/common/enums/ResultEnum.java | 30 + .../glxp/api/common/req/BaseLimitRequest.java | 56 + .../com/glxp/api/common/req/BaseRequest.java | 37 + .../com/glxp/api/common/res/BaseResponse.java | 17 + .../glxp/api/common/util/ResultVOUtils.java | 70 + .../src/main/resources/application.properties | 0 .../api/common/util/ResultVOUtilsTest.java | 8 + .../target/classes/application.properties | 0 .../api/common/constant/CacheConstant.class | Bin 0 -> 233 bytes .../converter/LongList2StringConverter.class | Bin 0 -> 1489 bytes .../converter/String2LongListConverter.class | Bin 0 -> 1490 bytes .../String2StringListConverter.class | Bin 0 -> 1274 bytes .../glxp/api/common/enums/ResultEnum.class | Bin 0 -> 2291 bytes .../api/common/req/BaseLimitRequest.class | Bin 0 -> 1248 bytes .../com/glxp/api/common/req/BaseRequest.class | Bin 0 -> 1096 bytes .../glxp/api/common/res/BaseResponse.class | Bin 0 -> 2921 bytes .../glxp/api/common/util/ResultVOUtils.class | Bin 0 -> 2007 bytes .../api/common/util/ResultVOUtilsTest.class | Bin 0 -> 393 bytes pom.xml | 55 + scripts/vue-admin.sql | 234 +++ 588 files changed, 19675 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 api-admin/pom.xml create mode 100644 api-admin/src/main/java/com/glxp/api/ApiAdminApplication.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/annotation/AuthRuleAnnotation.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/aspect/AuthorizeAspect.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/config/CorsConfig.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/config/CorsFilter.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/config/DruidStatFilter.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/config/DruidStatViewServlet.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/config/MasterDataSourceConfig.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/config/PageHelperConfig.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/config/PublicFileUrlConfig.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/config/WebMvcConfig.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/constant/BussinessTypeUtils.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/constant/ConstantStatus.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/constant/ConstantType.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/controller/auth/AuthAdminController.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/controller/auth/AuthPermissionRuleController.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/controller/auth/AuthRoleController.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/controller/auth/LoginController.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/controller/basic/BasicUnitMaintainController.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/controller/basic/BussinessTypeController.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/controller/basic/UdiInfoController.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/controller/basic/UdiRelevanceController.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/controller/info/CompanyController.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/controller/info/SetupController.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/controller/info/SystemParamConfigController.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/controller/inout/OrderController.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/controller/inout/OrderDetailController.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/controller/inout/UdiTraceController.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/controller/inout/WareHouseController.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/controller/inout/utils/ContrastErpUtil.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/controller/inout/utils/DataTransUtil.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/controller/inout/utils/InoutUtils.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/controller/inout/utils/TransInoutUtil.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvCheckController.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvErpOnhandController.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvPrintController.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/dao/auth/AuthAdminDao.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/dao/auth/AuthPermissionDao.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/dao/auth/AuthPermissionRuleDao.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/dao/auth/AuthRoleAdminDao.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/dao/auth/AuthRoleDao.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/dao/basic/BasicUnitMaintainDao.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/dao/basic/BussinessTypeDao.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/dao/basic/UdiInfoDao.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/dao/basic/UdiRelevanceDao.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/dao/basic/UnitMaintainDao.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/dao/info/CompanyDao.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/dao/info/ScheduledDao.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/dao/info/SetupDao.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/dao/info/SystemParamConfigDao.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/dao/inout/CodesDao.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/dao/inout/CodesTempDao.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/dao/inout/OrderDao.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/dao/inout/OrderDetailDao.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/dao/inventory/InvErpStockDao.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/dao/inventory/InvOrderCheckDao.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/dao/inventory/InvStockPrintDao.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/entity/auth/AuthAdmin.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/entity/auth/AuthPermission.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/entity/auth/AuthPermissionRule.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/entity/auth/AuthRole.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/entity/auth/AuthRoleAdmin.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/entity/basic/BasicUnitMaintainEntity.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/entity/basic/BussinessTypeEntity.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/entity/basic/ErpStockEntity.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/entity/basic/StockPrintEntity.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/entity/basic/UdiEntity.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/entity/basic/UdiInfoEntity.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/entity/basic/UdiRelevanceEntity.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/entity/basic/UnitMaintainEntity.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/entity/info/CompanyEntity.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/entity/info/MipsServiceEntity.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/entity/info/ScheduledEntity.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/entity/info/SetupEntity.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/entity/info/SystemParamConfigEntity.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/entity/inout/ErpDetailCodeEntity.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/entity/inout/ErpOrderEntity.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/entity/inout/FilterErpOrderRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/entity/inout/MipsDrugEntity.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/entity/inout/OrderDetailEntity.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/entity/inout/OrderEntity.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/entity/inout/StockCheckEntity.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/entity/inout/Unit.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/entity/inout/WarehouseEntity.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/entity/inout/Warehousetemp.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/entity/inout/WarehousetempExample.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/exception/JsonException.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/handler/GlobalExceptionHandler.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/httpclient/ErpBasicClient.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/httpclient/ErpInvClient.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/httpclient/ErpOrderClient.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/httpclient/UdiDlHttpClient.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/ListPageRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/auth/AuthAdminQueryRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/auth/AuthAdminSaveRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/auth/AuthPermissionRuleSaveRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/auth/AuthRoleAuthRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/auth/AuthRoleQueryRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/auth/AuthRoleSaveRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/auth/LoginRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/auth/UpdatePasswordRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/basic/BasicUnitMaintainFilterRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/basic/BasicUnitMaintainSaveRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/basic/CombineRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/basic/FilterErpGoodsRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/basic/FilterStockprintRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/basic/FilterUdiInfoRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/basic/UOnhandQueryRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/basic/UpdatePrintStatusRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/info/FilterSetupRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/info/SystemParamConfigRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/info/SystemParamConfigSaveRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/inout/CommitRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/inout/DeleteCodeRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/inout/DeleteRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/inout/ERPPostBillRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/inout/FilterOrderRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/inout/FilterStockCheckRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/inout/ImportErpOrderRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/inout/OrderFilterByCodeRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/inout/OrderFilterRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/inout/OrderMergeRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/inout/OrderQueryRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/inout/PostOrderRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/inout/USignRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/inout/UpdateExportStatusRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/inout/WarehouseQueryRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/inout/WarehouseSaveRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/inventory/ErpOnhandRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/receipt/AddReceiptRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/receipt/BussinessTypeFilterRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/receipt/ClearStockRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/receipt/CodeDetailRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/receipt/CombineUnitRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/receipt/ManuorderFilterRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/receipt/ProductFilterRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/receipt/ProductInfoFilterRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/receipt/ReceiptDetailRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/receipt/ReceiptFilterRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/receipt/U8Request.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/receipt/UnitMaintainFilterRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/req/udid/ScheduledRequest.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/res/PageSimpleResponse.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/res/auth/AuthAdminResponse.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/res/auth/AuthAdminRoleResponse.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/res/auth/AuthPermissionRuleMergeResponse.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/res/auth/AuthRoleResponse.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/res/auth/LoginUserInfoResponse.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/res/basic/BasicUnitMaintainResponse.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/res/basic/ErpProductsResponse.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/res/basic/ErpUnitsResponse.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/res/basic/UOnhandQueryResponse.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/res/basic/UdiRelevanceResponse.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/res/basic/UdiTraceResponse.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/res/info/SystemParamConfigResponse.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/res/inout/ErpOrderResponse.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/res/inout/InvmandocResponse.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/res/inout/PurchaseinResponse.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/res/inout/WarehouseResponse.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/res/inventory/ErpOnHandResponse.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/auth/AuthAdminService.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/auth/AuthLoginService.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/auth/AuthPermissionRuleService.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/auth/AuthPermissionService.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/auth/AuthRoleAdminService.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/auth/AuthRoleService.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/auth/impl/AuthAdminServiceImpl.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/auth/impl/AuthLoginServiceImpl.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/auth/impl/AuthPermissionRuleServiceImpl.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/auth/impl/AuthPermissionServiceImpl.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/auth/impl/AuthRoleAdminServiceImpl.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/auth/impl/AuthRoleServiceImpl.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/basic/BasicUnitMaintainService.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/basic/BussinessTypeService.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/basic/UdiInfoService.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/basic/UdiRelevanceService.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/basic/UnitMaintainService.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/basic/impl/BasicUnitMaintainServiceImpl.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/basic/impl/BussinessTypeServiceImpl.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/basic/impl/UdiInfoServiceImpl.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/basic/impl/UdiRelevanceServiceImpl.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/basic/impl/UnitMaintainServiceImpl.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/info/CompanyService.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/info/SetupService.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/info/SystemParamConfigService.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/info/impl/CompanyServiceImpl.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/info/impl/SetupServiceImpl.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/info/impl/SystemParamConfigServiceImpl.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/inout/CodesService.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/inout/CodesTempService.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/inout/OrderDetailService.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/inout/OrderService.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/inout/impl/CodesServiceImpl.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/inout/impl/CodesTempServiceImpl.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/inout/impl/OrderDetailServiceImpl.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/inout/impl/OrderServiceImpl.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/inventory/InvErpStockService.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/inventory/InvOrderCheckService.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/inventory/InvStockPrintService.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvErpStockServiceImpl.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvOrderCheckServiceImpl.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvStockPrintServiceImpl.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/thread/BasicUpdateErpDataTask.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/thread/BasicUpdateproductService.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/thread/InvDlErpStockService.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/thread/InvDlErpStockTask.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/thread/InvImportStockService.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/thread/InvUpdateStock1Task.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/thread/InvUpdateStock2Task.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/thread/IoModifyErpTask.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/thread/IoTransInoutService.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/thread/IoTransInoutTask.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/thread/TaskExecutorConfig.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/util/CacheUtils.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/util/CheckUtils.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/util/CustomUtil.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/util/DateUtil.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/util/FastJsonUtils.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/util/FilterUdiUtils.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/util/HttpClient.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/util/IpUtils.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/util/JwtUtils.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/util/Md5Utils.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/util/PasswordUtils.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/util/PermissionRuleTreeUtils.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/util/PublicFileUtils.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/util/TreeUtils.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/util/UdidConfig.java create mode 100644 api-admin/src/main/java/com/glxp/api/admin/util/serializer/Date2LongSerializer.java create mode 100644 api-admin/src/main/resources/application-dev.properties create mode 100644 api-admin/src/main/resources/application.properties create mode 100644 api-admin/src/main/resources/logback-spring.xml create mode 100644 api-admin/src/main/resources/mybatis/configuration.xml create mode 100644 api-admin/src/main/resources/mybatis/db.properties create mode 100644 api-admin/src/main/resources/mybatis/mapper/auth/AuthAdminDao.xml create mode 100644 api-admin/src/main/resources/mybatis/mapper/auth/AuthPermissionDao.xml create mode 100644 api-admin/src/main/resources/mybatis/mapper/auth/AuthPermissionRuleDao.xml create mode 100644 api-admin/src/main/resources/mybatis/mapper/auth/AuthRoleAdminDao.xml create mode 100644 api-admin/src/main/resources/mybatis/mapper/auth/AuthRoleDao.xml create mode 100644 api-admin/src/main/resources/mybatis/mapper/basic/BasicUnitMaintainDao.xml create mode 100644 api-admin/src/main/resources/mybatis/mapper/basic/BussinessTypeDao.xml create mode 100644 api-admin/src/main/resources/mybatis/mapper/basic/UdiInfoDao.xml create mode 100644 api-admin/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml create mode 100644 api-admin/src/main/resources/mybatis/mapper/basic/UnitMaintainDao.xml create mode 100644 api-admin/src/main/resources/mybatis/mapper/info/CompanyDao.xml create mode 100644 api-admin/src/main/resources/mybatis/mapper/info/ScheduleDao.xml create mode 100644 api-admin/src/main/resources/mybatis/mapper/info/SetupDao.xml create mode 100644 api-admin/src/main/resources/mybatis/mapper/info/SystemParamConfigDao.xml create mode 100644 api-admin/src/main/resources/mybatis/mapper/inout/CodesDao.xml create mode 100644 api-admin/src/main/resources/mybatis/mapper/inout/CodesTempDao.xml create mode 100644 api-admin/src/main/resources/mybatis/mapper/inout/OrderDao.xml create mode 100644 api-admin/src/main/resources/mybatis/mapper/inout/OrderDetail.xml create mode 100644 api-admin/src/main/resources/mybatis/mapper/inventory/InvErpStockDao.xml create mode 100644 api-admin/src/main/resources/mybatis/mapper/inventory/InvOrderCheckDao.xml create mode 100644 api-admin/src/main/resources/mybatis/mapper/inventory/InvStockPrintDao.xml create mode 100644 api-admin/src/main/resources/mybatis/mybatis-config.xml create mode 100644 api-admin/src/main/resources/static/.gitignore create mode 100644 api-admin/src/main/resources/templates/.gitignore create mode 100644 api-admin/src/test/java/com/glxp/api/BaseApiAdminApplicationTest.java create mode 100644 api-admin/src/test/java/com/glxp/api/admin/service/auth/impl/AuthAdminServiceImplTest.java create mode 100644 api-admin/src/test/java/com/glxp/api/admin/service/auth/impl/AuthLoginServiceImplTest.java create mode 100644 api-admin/src/test/java/com/glxp/api/admin/service/auth/impl/AuthPermissionRuleServiceImplTest.java create mode 100644 api-admin/src/test/java/com/glxp/api/admin/service/auth/impl/AuthRoleAdminServiceImplTest.java create mode 100644 api-admin/src/test/java/com/glxp/api/admin/service/auth/impl/AuthRoleServiceImplTest.java create mode 100644 api-admin/src/test/java/com/glxp/api/admin/service/auth/impl/MmpaTest.java create mode 100644 api-admin/src/test/java/com/glxp/api/admin/util/DlDeviceTest.java create mode 100644 api-admin/src/test/java/com/glxp/api/admin/util/JwtUtilsTest.java create mode 100644 api-admin/src/test/java/com/glxp/api/admin/util/NormalTest.java create mode 100644 api-admin/src/test/java/com/glxp/api/admin/util/PermissionRuleTreeUtilsTest.java create mode 100644 api-admin/target/classes/META-INF/api-admin.kotlin_module create mode 100644 api-admin/target/classes/META-INF/spring-configuration-metadata.json create mode 100644 api-admin/target/classes/application-dev.properties create mode 100644 api-admin/target/classes/application.properties create mode 100644 api-admin/target/classes/com/glxp/api/ApiAdminApplication.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/annotation/AuthRuleAnnotation.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/aspect/AuthorizeAspect.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/config/CorsConfig.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/config/CorsFilter.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/config/DruidStatFilter.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/config/DruidStatViewServlet.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/config/MasterDataSourceConfig.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/config/PageHelperConfig.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/config/PublicFileUrlConfig.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/config/WebMvcConfig.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/constant/BussinessTypeUtils.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/constant/ConstantStatus.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/constant/ConstantType.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/controller/auth/AuthAdminController.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/controller/auth/AuthPermissionRuleController.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/controller/auth/AuthRoleController.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/controller/auth/LoginController.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/controller/basic/BasicUnitMaintainController.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/controller/basic/BussinessTypeController.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/controller/basic/UdiInfoController.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/controller/basic/UdiRelevanceController.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/controller/info/CompanyController.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/controller/info/SetupController.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/controller/info/SystemParamConfigController.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/controller/inout/OrderController.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/controller/inout/OrderDetailController.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/controller/inout/UdiTraceController.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/controller/inout/WareHouseController.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/controller/inout/utils/ContrastErpUtil.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/controller/inout/utils/DataTransUtil.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/controller/inout/utils/InoutUtils.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/controller/inout/utils/TransInoutUtil.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/controller/inventory/InvCheckController.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/controller/inventory/InvErpOnhandController$1.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/controller/inventory/InvErpOnhandController.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/controller/inventory/InvPrintController.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/dao/auth/AuthAdminDao.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/dao/auth/AuthPermissionDao.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/dao/auth/AuthPermissionRuleDao.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/dao/auth/AuthRoleAdminDao.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/dao/auth/AuthRoleDao.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/dao/basic/BasicUnitMaintainDao.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/dao/basic/BussinessTypeDao.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/dao/basic/UdiInfoDao.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/dao/basic/UdiRelevanceDao.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/dao/basic/UnitMaintainDao.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/dao/info/CompanyDao.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/dao/info/ScheduledDao.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/dao/info/SetupDao.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/dao/info/SystemParamConfigDao.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/dao/inout/CodesDao.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/dao/inout/CodesTempDao.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/dao/inout/OrderDao.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/dao/inout/OrderDetailDao.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/dao/inventory/InvErpStockDao.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/dao/inventory/InvOrderCheckDao.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/dao/inventory/InvStockPrintDao.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/entity/auth/AuthAdmin.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/entity/auth/AuthPermission.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/entity/auth/AuthPermissionRule.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/entity/auth/AuthRole.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/entity/auth/AuthRoleAdmin.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/entity/basic/BasicUnitMaintainEntity.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/entity/basic/BussinessTypeEntity.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/entity/basic/ErpStockEntity.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/entity/basic/StockPrintEntity.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/entity/basic/UdiEntity.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/entity/basic/UdiInfoEntity.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/entity/basic/UdiRelevanceEntity.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/entity/basic/UnitMaintainEntity.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/entity/info/CompanyEntity.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/entity/info/MipsServiceEntity.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/entity/info/ScheduledEntity.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/entity/info/SetupEntity.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/entity/info/SystemParamConfigEntity.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/entity/inout/ErpDetailCodeEntity.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/entity/inout/ErpOrderEntity.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/entity/inout/FilterErpOrderRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/entity/inout/MipsDrugEntity.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/entity/inout/OrderDetailEntity.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/entity/inout/OrderEntity.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/entity/inout/StockCheckEntity.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/entity/inout/Unit.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/entity/inout/WarehouseEntity.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/entity/inout/Warehousetemp.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/entity/inout/WarehousetempExample$Criteria.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/entity/inout/WarehousetempExample$Criterion.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/entity/inout/WarehousetempExample$GeneratedCriteria.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/entity/inout/WarehousetempExample.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/exception/JsonException.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/handler/GlobalExceptionHandler.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/httpclient/ErpBasicClient$1.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/httpclient/ErpBasicClient.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/httpclient/ErpInvClient$1.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/httpclient/ErpInvClient.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/httpclient/ErpOrderClient$1.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/httpclient/ErpOrderClient$2.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/httpclient/ErpOrderClient$3.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/httpclient/ErpOrderClient.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/httpclient/UdiDlHttpClient$1.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/httpclient/UdiDlHttpClient.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/ListPageRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/auth/AuthAdminQueryRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/auth/AuthAdminSaveRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/auth/AuthPermissionRuleSaveRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/auth/AuthRoleAuthRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/auth/AuthRoleQueryRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/auth/AuthRoleSaveRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/auth/LoginRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/auth/UpdatePasswordRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/basic/BasicUnitMaintainFilterRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/basic/BasicUnitMaintainSaveRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/basic/CombineRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/basic/FilterErpGoodsRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/basic/FilterStockprintRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/basic/FilterUdiInfoRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/basic/UOnhandQueryRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/basic/UpdatePrintStatusRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/info/FilterSetupRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/info/SystemParamConfigRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/info/SystemParamConfigSaveRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/inout/CommitRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/inout/DeleteCodeRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/inout/DeleteRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/inout/ERPPostBillRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/inout/FilterOrderRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/inout/FilterStockCheckRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/inout/ImportErpOrderRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/inout/OrderFilterByCodeRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/inout/OrderFilterRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/inout/OrderMergeRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/inout/OrderQueryRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/inout/PostOrderRequest$PostOrder.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/inout/PostOrderRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/inout/USignRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/inout/UpdateExportStatusRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/inout/WarehouseQueryRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/inout/WarehouseSaveRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/inventory/ErpOnhandRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/receipt/AddReceiptRequest$ReceiptRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/receipt/AddReceiptRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/receipt/BussinessTypeFilterRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/receipt/ClearStockRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/receipt/CodeDetailRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/receipt/CombineUnitRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/receipt/ManuorderFilterRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/receipt/ProductFilterRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/receipt/ProductInfoFilterRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/receipt/ReceiptDetailRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/receipt/ReceiptFilterRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/receipt/U8Request.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/receipt/UnitMaintainFilterRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/req/udid/ScheduledRequest.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/res/PageSimpleResponse.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/res/auth/AuthAdminResponse.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/res/auth/AuthAdminRoleResponse.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/res/auth/AuthPermissionRuleMergeResponse.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/res/auth/AuthRoleResponse.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/res/auth/LoginUserInfoResponse.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/res/basic/BasicUnitMaintainResponse.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/res/basic/ErpProductsResponse.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/res/basic/ErpUnitsResponse.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/res/basic/UOnhandQueryResponse.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/res/basic/UdiRelevanceResponse.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/res/basic/UdiTraceResponse.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/res/info/SystemParamConfigResponse.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/res/inout/ErpOrderResponse$SubErpOrder.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/res/inout/ErpOrderResponse.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/res/inout/InvmandocResponse.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/res/inout/PurchaseinResponse$SubPurchase.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/res/inout/PurchaseinResponse.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/res/inout/WarehouseResponse.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/res/inventory/ErpOnHandResponse.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/auth/AuthAdminService.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/auth/AuthLoginService.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/auth/AuthPermissionRuleService.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/auth/AuthPermissionService.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/auth/AuthRoleAdminService.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/auth/AuthRoleService.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/auth/impl/AuthAdminServiceImpl.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/auth/impl/AuthLoginServiceImpl.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/auth/impl/AuthPermissionRuleServiceImpl.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/auth/impl/AuthPermissionServiceImpl.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/auth/impl/AuthRoleAdminServiceImpl.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/auth/impl/AuthRoleServiceImpl.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/basic/BasicUnitMaintainService.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/basic/BussinessTypeService.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/basic/UdiInfoService.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/basic/UdiRelevanceService.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/basic/UnitMaintainService.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/basic/impl/BasicUnitMaintainServiceImpl.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/basic/impl/BussinessTypeServiceImpl.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/basic/impl/UdiInfoServiceImpl.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/basic/impl/UdiRelevanceServiceImpl.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/basic/impl/UnitMaintainServiceImpl.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/info/CompanyService.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/info/SetupService.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/info/SystemParamConfigService.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/info/impl/CompanyServiceImpl.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/info/impl/SetupServiceImpl.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/info/impl/SystemParamConfigServiceImpl.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/inout/CodesService.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/inout/CodesTempService.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/inout/OrderDetailService.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/inout/OrderService.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/inout/impl/CodesServiceImpl.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/inout/impl/CodesTempServiceImpl.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/inout/impl/OrderDetailServiceImpl.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/inout/impl/OrderServiceImpl.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/inventory/InvErpStockService.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/inventory/InvOrderCheckService.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/inventory/InvStockPrintService.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/inventory/impl/InvErpStockServiceImpl.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/inventory/impl/InvOrderCheckServiceImpl.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/service/inventory/impl/InvStockPrintServiceImpl.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/thread/BasicUpdateErpDataTask.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/thread/BasicUpdateproductService.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/thread/InvDlErpStockService.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/thread/InvDlErpStockTask.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/thread/InvImportStockService$1.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/thread/InvImportStockService$2.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/thread/InvImportStockService$3.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/thread/InvImportStockService.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/thread/InvUpdateStock1Task.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/thread/InvUpdateStock2Task.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/thread/IoModifyErpTask.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/thread/IoTransInoutService.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/thread/IoTransInoutTask.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/thread/TaskExecutorConfig$MyAsyncExceptionHandler.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/thread/TaskExecutorConfig.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/util/CacheUtils.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/util/CheckUtils.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/util/CustomUtil.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/util/DateUtil.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/util/FastJsonUtils$1.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/util/FastJsonUtils.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/util/FilterUdiUtils.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/util/HttpClient.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/util/IpUtils.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/util/JwtUtils.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/util/Md5Utils.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/util/PasswordUtils.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/util/PermissionRuleTreeUtils.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/util/PublicFileUtils.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/util/TreeUtils.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/util/UdidConfig.class create mode 100644 api-admin/target/classes/com/glxp/api/admin/util/serializer/Date2LongSerializer.class create mode 100644 api-admin/target/classes/logback-spring.xml create mode 100644 api-admin/target/classes/mybatis/configuration.xml create mode 100644 api-admin/target/classes/mybatis/db.properties create mode 100644 api-admin/target/classes/mybatis/mapper/auth/AuthAdminDao.xml create mode 100644 api-admin/target/classes/mybatis/mapper/auth/AuthPermissionDao.xml create mode 100644 api-admin/target/classes/mybatis/mapper/auth/AuthPermissionRuleDao.xml create mode 100644 api-admin/target/classes/mybatis/mapper/auth/AuthRoleAdminDao.xml create mode 100644 api-admin/target/classes/mybatis/mapper/auth/AuthRoleDao.xml create mode 100644 api-admin/target/classes/mybatis/mapper/basic/BasicUnitMaintainDao.xml create mode 100644 api-admin/target/classes/mybatis/mapper/basic/BussinessTypeDao.xml create mode 100644 api-admin/target/classes/mybatis/mapper/basic/UdiInfoDao.xml create mode 100644 api-admin/target/classes/mybatis/mapper/basic/UdiRelevanceDao.xml create mode 100644 api-admin/target/classes/mybatis/mapper/basic/UnitMaintainDao.xml create mode 100644 api-admin/target/classes/mybatis/mapper/info/CompanyDao.xml create mode 100644 api-admin/target/classes/mybatis/mapper/info/ScheduleDao.xml create mode 100644 api-admin/target/classes/mybatis/mapper/info/SetupDao.xml create mode 100644 api-admin/target/classes/mybatis/mapper/info/SystemParamConfigDao.xml create mode 100644 api-admin/target/classes/mybatis/mapper/inout/CodesDao.xml create mode 100644 api-admin/target/classes/mybatis/mapper/inout/CodesTempDao.xml create mode 100644 api-admin/target/classes/mybatis/mapper/inout/OrderDao.xml create mode 100644 api-admin/target/classes/mybatis/mapper/inout/OrderDetail.xml create mode 100644 api-admin/target/classes/mybatis/mapper/inventory/InvErpStockDao.xml create mode 100644 api-admin/target/classes/mybatis/mapper/inventory/InvOrderCheckDao.xml create mode 100644 api-admin/target/classes/mybatis/mapper/inventory/InvStockPrintDao.xml create mode 100644 api-admin/target/classes/mybatis/mybatis-config.xml create mode 100644 api-admin/target/classes/static/.gitignore create mode 100644 api-admin/target/classes/templates/.gitignore create mode 100644 api-admin/target/test-classes/META-INF/api-admin.kotlin_module create mode 100644 api-admin/target/test-classes/com/glxp/api/BaseApiAdminApplicationTest.class create mode 100644 api-admin/target/test-classes/com/glxp/api/admin/service/auth/impl/AuthAdminServiceImplTest.class create mode 100644 api-admin/target/test-classes/com/glxp/api/admin/service/auth/impl/AuthLoginServiceImplTest.class create mode 100644 api-admin/target/test-classes/com/glxp/api/admin/service/auth/impl/AuthPermissionRuleServiceImplTest.class create mode 100644 api-admin/target/test-classes/com/glxp/api/admin/service/auth/impl/AuthRoleAdminServiceImplTest.class create mode 100644 api-admin/target/test-classes/com/glxp/api/admin/service/auth/impl/AuthRoleServiceImplTest.class create mode 100644 api-admin/target/test-classes/com/glxp/api/admin/service/auth/impl/MmpaTest.class create mode 100644 api-admin/target/test-classes/com/glxp/api/admin/util/DlDeviceTest.class create mode 100644 api-admin/target/test-classes/com/glxp/api/admin/util/JwtUtilsTest.class create mode 100644 api-admin/target/test-classes/com/glxp/api/admin/util/NormalTest.class create mode 100644 api-admin/target/test-classes/com/glxp/api/admin/util/PermissionRuleTreeUtilsTest.class create mode 100644 api-common/pom.xml create mode 100644 api-common/src/main/java/com/glxp/api/common/constant/CacheConstant.java create mode 100644 api-common/src/main/java/com/glxp/api/common/converter/LongList2StringConverter.java create mode 100644 api-common/src/main/java/com/glxp/api/common/converter/String2LongListConverter.java create mode 100644 api-common/src/main/java/com/glxp/api/common/converter/String2StringListConverter.java create mode 100644 api-common/src/main/java/com/glxp/api/common/enums/ResultEnum.java create mode 100644 api-common/src/main/java/com/glxp/api/common/req/BaseLimitRequest.java create mode 100644 api-common/src/main/java/com/glxp/api/common/req/BaseRequest.java create mode 100644 api-common/src/main/java/com/glxp/api/common/res/BaseResponse.java create mode 100644 api-common/src/main/java/com/glxp/api/common/util/ResultVOUtils.java create mode 100644 api-common/src/main/resources/application.properties create mode 100644 api-common/src/test/java/com/glxp/api/common/util/ResultVOUtilsTest.java create mode 100644 api-common/target/classes/application.properties create mode 100644 api-common/target/classes/com/glxp/api/common/constant/CacheConstant.class create mode 100644 api-common/target/classes/com/glxp/api/common/converter/LongList2StringConverter.class create mode 100644 api-common/target/classes/com/glxp/api/common/converter/String2LongListConverter.class create mode 100644 api-common/target/classes/com/glxp/api/common/converter/String2StringListConverter.class create mode 100644 api-common/target/classes/com/glxp/api/common/enums/ResultEnum.class create mode 100644 api-common/target/classes/com/glxp/api/common/req/BaseLimitRequest.class create mode 100644 api-common/target/classes/com/glxp/api/common/req/BaseRequest.class create mode 100644 api-common/target/classes/com/glxp/api/common/res/BaseResponse.class create mode 100644 api-common/target/classes/com/glxp/api/common/util/ResultVOUtils.class create mode 100644 api-common/target/test-classes/com/glxp/api/common/util/ResultVOUtilsTest.class create mode 100644 pom.xml create mode 100644 scripts/vue-admin.sql diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..82eca336 --- /dev/null +++ b/.gitignore @@ -0,0 +1,25 @@ +/target/ +!.mvn/wrapper/maven-wrapper.jar + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/build/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 00000000..e69de29b diff --git a/api-admin/pom.xml b/api-admin/pom.xml new file mode 100644 index 00000000..deaec4c7 --- /dev/null +++ b/api-admin/pom.xml @@ -0,0 +1,228 @@ + + + + api + com.glxp + 0.0.1 + + 4.0.0 + war + api-admin + + + + + + com.glxp + api-common + + + + org.apache.commons + commons-lang3 + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + javax.servlet + javax.servlet-api + 3.1.0 + provided + + + + org.springframework.boot + spring-boot-configuration-processor + true + + + + + org.springframework.boot + spring-boot-starter-aop + + + + + org.springframework.boot + spring-boot-starter-data-redis + + + + + org.springframework.boot + spring-boot-devtools + true + + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + mysql + mysql-connector-java + 8.0.21 + runtime + + + + + com.oracle + ojdbc6 + 11.2.0.4 + runtime + + + + com.alibaba + druid-spring-boot-starter + 1.1.10 + + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 1.3.2 + + + com.itfsw + mybatis-generator-plugin + 1.3.8 + + + + com.github.pagehelper + pagehelper + 5.1.7 + + + + + org.projectlombok + lombok + true + + + + + io.jsonwebtoken + jjwt + 0.9.1 + + + + + com.alibaba + fastjson + + + + + org.springframework.boot + spring-boot-starter-test + test + + + + org.springframework.boot + spring-boot-starter-tomcat + provided + + + javax.xml.bind + jaxb-api + 2.3.0 + + + com.fasterxml.jackson.core + jackson-databind + 2.9.2 + + + com.github.pagehelper + pagehelper-spring-boot-autoconfigure + 1.2.5 + + + + + + UDI_WMS_MC + + + + org.springframework.boot + spring-boot-maven-plugin + + + + maven-compiler-plugin + + 1.8 + 1.8 + true + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + true + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.4.2 + + true + + + + org.mybatis.generator + mybatis-generator-maven-plugin + 1.4.0 + + src/main/resources/mybatis/configuration.xml + true + true + + + + Generate MyBatis Artifacts + + generate + + + + + + org.mybatis.generator + mybatis-generator-core + 1.4.0 + + + + + + + + + \ No newline at end of file diff --git a/api-admin/src/main/java/com/glxp/api/ApiAdminApplication.java b/api-admin/src/main/java/com/glxp/api/ApiAdminApplication.java new file mode 100644 index 00000000..2131c75c --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/ApiAdminApplication.java @@ -0,0 +1,25 @@ +package com.glxp.api; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.ServletComponentScan; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + + +@SpringBootApplication +@ServletComponentScan +public class ApiAdminApplication extends SpringBootServletInitializer { + + + + public static void main(String[] args) { + SpringApplication.run(ApiAdminApplication.class, args); + } + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { + return builder.sources(ApiAdminApplication.class); + } + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/annotation/AuthRuleAnnotation.java b/api-admin/src/main/java/com/glxp/api/admin/annotation/AuthRuleAnnotation.java new file mode 100644 index 00000000..b12bb811 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/annotation/AuthRuleAnnotation.java @@ -0,0 +1,17 @@ +package com.glxp.api.admin.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 后台登录授权/权限验证的注解 + */ +//此注解只能修饰方法 +@Target(ElementType.METHOD) +//当前注解如何去保持 +@Retention(RetentionPolicy.RUNTIME) +public @interface AuthRuleAnnotation { + String value(); +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/aspect/AuthorizeAspect.java b/api-admin/src/main/java/com/glxp/api/admin/aspect/AuthorizeAspect.java new file mode 100644 index 00000000..aa86ec1c --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/aspect/AuthorizeAspect.java @@ -0,0 +1,108 @@ +package com.glxp.api.admin.aspect; + +import com.glxp.api.admin.annotation.AuthRuleAnnotation; +import com.glxp.api.admin.exception.JsonException; +import com.glxp.api.admin.service.auth.AuthLoginService; +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.admin.util.JwtUtils; +import io.jsonwebtoken.Claims; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.aspectj.lang.annotation.Pointcut; +import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.stereotype.Component; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.lang.reflect.Method; +import java.util.List; + +/** + * 登录验证 AOP + */ +@Aspect +@Component +@Slf4j +public class AuthorizeAspect { + + @Resource + private AuthLoginService authLoginService; + + @Pointcut("@annotation(com.glxp.api.admin.annotation.AuthRuleAnnotation)") + public void adminLoginVerify() { + } + + /** + * 登录验证 + * + * @param joinPoint + */ + @Before("adminLoginVerify()") + public void doAdminAuthVerify(JoinPoint joinPoint) { + + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + if (attributes == null) { + throw new JsonException(ResultEnum.NOT_NETWORK); + } + HttpServletRequest request = attributes.getRequest(); + + String id = request.getHeader("ADMIN_ID"); + String query = request.getQueryString(); + Long adminId = null; + try { + adminId = Long.valueOf(id); + }catch (Exception e) { + throw new JsonException(ResultEnum.LOGIN_VERIFY_FALL); + } + + String token = request.getHeader("ADMIN_TOKEN"); + if (token == null) { + throw new JsonException(ResultEnum.LOGIN_VERIFY_FALL); + } + + // 验证 token + Claims claims = JwtUtils.parse(token); + if (claims == null) { + throw new JsonException(ResultEnum.LOGIN_VERIFY_FALL); + } + Long jwtAdminId = Long.valueOf(claims.get("admin_id").toString()); + if (adminId.compareTo(jwtAdminId) != 0) { + throw new JsonException(ResultEnum.LOGIN_VERIFY_FALL); + } + + // 判断是否进行权限验证 + MethodSignature signature = (MethodSignature) joinPoint.getSignature(); + //从切面中获取当前方法 + Method method = signature.getMethod(); + //得到了方,提取出他的注解 + AuthRuleAnnotation action = method.getAnnotation(AuthRuleAnnotation.class); + // 进行权限验证 +// authRuleVerify(action.value(), adminId); + } + + /** + * 权限验证 + * + * @param authRule + */ + private void authRuleVerify(String authRule, Long adminId) { + + if (authRule != null && authRule.length() > 0) { + + List authRules = authLoginService.listRuleByAdminId(adminId); + // admin 为最高权限 + for (String item : authRules) { + if (item.equals("admin") || item.equals(authRule)) { + return; + } + } + throw new JsonException(ResultEnum.AUTH_FAILED); + } + + } + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/config/CorsConfig.java b/api-admin/src/main/java/com/glxp/api/admin/config/CorsConfig.java new file mode 100644 index 00000000..8d57673d --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/config/CorsConfig.java @@ -0,0 +1,24 @@ +package com.glxp.api.admin.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; + +/** + * 跨域配置 + */ +@Data +@Configuration +@Component +@ConfigurationProperties(prefix = "cors") +public class CorsConfig { + + // 允许的域 + private String allowedOrigins; + // 允许的方法 + private String allowedMethods; + // 允许的头信息 + private String allowedHeaders; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/config/CorsFilter.java b/api-admin/src/main/java/com/glxp/api/admin/config/CorsFilter.java new file mode 100644 index 00000000..5c4ef95e --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/config/CorsFilter.java @@ -0,0 +1,39 @@ +package com.glxp.api.admin.config; + +import org.springframework.beans.factory.annotation.Autowired; + +import javax.servlet.*; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +//@WebFilter(urlPatterns = "/*", filterName = "corsFilter") +public class CorsFilter implements Filter { + + @Autowired + private CorsConfig corsConfig; + + @Override + public void destroy() { + + } + + @Override + public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) + throws IOException, ServletException { + HttpServletResponse response = (HttpServletResponse) res; + response.setHeader("Access-Control-Allow-Origin", corsConfig.getAllowedOrigins()); + response.setHeader("Access-Control-Allow-Methods", corsConfig.getAllowedMethods()); + response.setHeader("Access-Control-Allow-Headers", corsConfig.getAllowedHeaders()); + response.setHeader("Access-Control-Allow-Credentials", "true"); +// response.setHeader("Access-Control-Allow-Origin", "*"); +// response.setHeader("Access-Control-Allow-Methods", "Content-Type,ADMIN_ID,ADMIN_TOKEN"); +// response.setHeader("Access-Control-Allow-Headers", "GET,POST"); + chain.doFilter(req, res); + } + + @Override + public void init(FilterConfig arg0) throws ServletException { + + } + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/config/DruidStatFilter.java b/api-admin/src/main/java/com/glxp/api/admin/config/DruidStatFilter.java new file mode 100644 index 00000000..1f1ebcd1 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/config/DruidStatFilter.java @@ -0,0 +1,18 @@ +package com.glxp.api.admin.config; + +import com.alibaba.druid.support.http.WebStatFilter; + +import javax.servlet.annotation.WebFilter; +import javax.servlet.annotation.WebInitParam; + +/** + * 配置监控拦截器 (过滤不需要监控的后缀) + * druid监控拦截器 + */ +@WebFilter(filterName = "druidWebStatFilter", urlPatterns = "/*", + initParams = { + @WebInitParam(name = "exclusions", value = "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*")//忽略资源 + } +) +public class DruidStatFilter extends WebStatFilter { +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/config/DruidStatViewServlet.java b/api-admin/src/main/java/com/glxp/api/admin/config/DruidStatViewServlet.java new file mode 100644 index 00000000..e9ae3028 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/config/DruidStatViewServlet.java @@ -0,0 +1,21 @@ +package com.glxp.api.admin.config; + +import com.alibaba.druid.support.http.StatViewServlet; + +import javax.servlet.annotation.WebInitParam; +import javax.servlet.annotation.WebServlet; + +/** + * druid监控视图配置 (监控视图配置) + */ +@WebServlet(urlPatterns = "/druid/*", initParams={ + @WebInitParam(name="allow",value="127.0.0.1"),// IP白名单 (没有配置或者为空,则允许所有访问) + @WebInitParam(name="deny",value="192.168.16.111"),// IP黑名单 (存在共同时,deny优先于allow) + @WebInitParam(name="loginUsername",value="api"),// 用户名 + @WebInitParam(name="loginPassword",value="api"),// 密码 + @WebInitParam(name="resetEnable",value="true")// 禁用HTML页面上的“Reset All”功能 +}) +public class DruidStatViewServlet extends StatViewServlet { + private static final long serialVersionUID = 2359758657306626394L; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/config/MasterDataSourceConfig.java b/api-admin/src/main/java/com/glxp/api/admin/config/MasterDataSourceConfig.java new file mode 100644 index 00000000..129fce3d --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/config/MasterDataSourceConfig.java @@ -0,0 +1,49 @@ +package com.glxp.api.admin.config; + +import org.apache.ibatis.session.SqlSessionFactory; +import org.mybatis.spring.SqlSessionFactoryBean; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.jdbc.DataSourceBuilder; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.core.io.support.PathMatchingResourcePatternResolver; +import org.springframework.jdbc.datasource.DataSourceTransactionManager; + +import javax.sql.DataSource; + +@Configuration +// 扫描 Mapper 接口并容器管理 +@MapperScan(basePackages = MasterDataSourceConfig.PACKAGE, sqlSessionFactoryRef = "masterSqlSessionFactory") +public class MasterDataSourceConfig { + + // 精确到 master 目录,以便跟其他数据源隔离 + static final String PACKAGE = "com.glxp.api.admin.dao"; + static final String MAPPER_LOCATION = "classpath:mybatis/mapper/*/*.xml"; + + @Bean(name = "masterDataSource") + @ConfigurationProperties(prefix = "spring.datasource") + @Primary + public DataSource masterDataSource() { + return DataSourceBuilder.create().build(); + } + + @Bean(name = "masterTransactionManager") + @Primary + public DataSourceTransactionManager masterTransactionManager() { + return new DataSourceTransactionManager(masterDataSource()); + } + + @Bean(name = "masterSqlSessionFactory") + @Primary + public SqlSessionFactory masterSqlSessionFactory(@Qualifier("masterDataSource") DataSource masterDataSource) + throws Exception { + final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); + sessionFactory.setDataSource(masterDataSource); + sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver() + .getResources(MasterDataSourceConfig.MAPPER_LOCATION)); + return sessionFactory.getObject(); + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/config/PageHelperConfig.java b/api-admin/src/main/java/com/glxp/api/admin/config/PageHelperConfig.java new file mode 100644 index 00000000..74d5ed39 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/config/PageHelperConfig.java @@ -0,0 +1,34 @@ +package com.glxp.api.admin.config; + +import com.github.pagehelper.PageHelper; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.Properties; + +@Configuration +public class PageHelperConfig { + + /** + * 注入pagehelper配置 + * + * @return + */ + @Bean + public PageHelper getPageHelper() { + PageHelper pageHelper = new PageHelper(); + Properties properties = new Properties(); + properties.setProperty("offsetAsPageNum", "false"); + properties.setProperty("rowBoundsWithCount", "false"); + properties.setProperty("pageSizeZero", "true"); + properties.setProperty("reasonable", "false"); + properties.setProperty("supportMethodsArguments", "false"); + properties.setProperty("returnPageInfo", "none"); + properties.setProperty("autoDialect", "true"); + properties.setProperty("autoRuntimeDialect", "true"); //处理多数据源数据库 + System.out.println("配置多数据"+properties.getProperty("autoRuntimeDialect")); + pageHelper.setProperties(properties); + return pageHelper; + } + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/config/PublicFileUrlConfig.java b/api-admin/src/main/java/com/glxp/api/admin/config/PublicFileUrlConfig.java new file mode 100644 index 00000000..a2faf06a --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/config/PublicFileUrlConfig.java @@ -0,0 +1,39 @@ +package com.glxp.api.admin.config; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +/** + * 公共文件的配置 + */ + +@Configuration +@ConfigurationProperties(prefix = "public-file") +public class PublicFileUrlConfig { + + /** + * 上传的地址 + */ + private static String uploadUrl; + + public void setUploadUrl(String uploadUrl) { + PublicFileUrlConfig.uploadUrl = uploadUrl; + } + + public static String getUploadUrl() { + return uploadUrl; + } + + /** + * 资源的域名 + */ + private static String domain; + + public void setDomain(String domain) { + PublicFileUrlConfig.domain = domain; + } + + public static String getDomain() { + return domain; + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/config/WebMvcConfig.java b/api-admin/src/main/java/com/glxp/api/admin/config/WebMvcConfig.java new file mode 100644 index 00000000..84edbe56 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/config/WebMvcConfig.java @@ -0,0 +1,24 @@ +package com.glxp.api.admin.config; + + +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class WebMvcConfig implements WebMvcConfigurer { + + @Override + public void addCorsMappings(CorsRegistry registry) { + //设置允许跨域的路径 + registry.addMapping("/**") + //设置允许跨域请求的域名 + .allowedOrigins("*") + //是否允许证书 不再默认开启 + .allowCredentials(true) + //设置允许的方法 + .allowedMethods("*") + //跨域允许时间 + .maxAge(3600); + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/constant/BussinessTypeUtils.java b/api-admin/src/main/java/com/glxp/api/admin/constant/BussinessTypeUtils.java new file mode 100644 index 00000000..37f129ad --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/constant/BussinessTypeUtils.java @@ -0,0 +1,49 @@ +package com.glxp.api.admin.constant; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class BussinessTypeUtils { + + public static List getBusssinessTypes() { + List types = new ArrayList<>(); + types.add(ConstantType.TYPE_PUT_PRODUCT); + types.add(ConstantType.TYPE_PUT_PURCHASE); + types.add(ConstantType.TYPE_PUT_RETURN); + types.add(ConstantType.TYPE_PUT_ALLOT); + types.add(ConstantType.TYPE_OUT_RETURN); + types.add(ConstantType.TYPE_OUT_DESTORY); + types.add(ConstantType.TYPE_OUT_STRAIGHT); + types.add(ConstantType.TYPE_OUT_REWORK); + types.add(ConstantType.TYPE_OUT_CHECK); + types.add(ConstantType.TYPE_CODE_REPLACE); + types.add(ConstantType.TYPE_CODE_DESTORY); + types.add(ConstantType.TYPE_STOCK_CHECK); + types.add(ConstantType.TYPE_OUT_SALE); + types.add(ConstantType.TYPE_OUT_ALLOT); + return types; + } + + public static Map getBusssinessTypeMap() { + Map types = new HashMap<>(); + types.put("生产入库", ConstantType.TYPE_PUT_PRODUCT); + types.put("采购入库", ConstantType.TYPE_PUT_PURCHASE); + types.put("退货入库", ConstantType.TYPE_PUT_RETURN); + types.put("调拨入库", ConstantType.TYPE_PUT_ALLOT); + types.put("退货出库", ConstantType.TYPE_OUT_RETURN); + types.put("销毁出库", ConstantType.TYPE_OUT_DESTORY); + types.put("直调出库", ConstantType.TYPE_OUT_STRAIGHT); + types.put("返工出库", ConstantType.TYPE_OUT_REWORK); + types.put("抽检出库", ConstantType.TYPE_OUT_CHECK); + types.put("码替换", ConstantType.TYPE_CODE_REPLACE); + types.put("码注销", ConstantType.TYPE_CODE_DESTORY); + types.put("盘点", ConstantType.TYPE_STOCK_CHECK); + types.put("销售出库", ConstantType.TYPE_OUT_SALE); + types.put("调拨出库", ConstantType.TYPE_OUT_ALLOT); + return types; + } + + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/constant/ConstantStatus.java b/api-admin/src/main/java/com/glxp/api/admin/constant/ConstantStatus.java new file mode 100644 index 00000000..8dd67cf3 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/constant/ConstantStatus.java @@ -0,0 +1,24 @@ +package com.glxp.api.admin.constant; + +public class ConstantStatus { + + //订单状态 + public static final Integer ORDER_STATUS_PROCESS = 1; //等待处理 + public static final Integer ORDER_STATUS_CHECK = 2; //等待校验 + public static final Integer ORDER_STATUS_FAIL = 3; //重码校验失败 + public static final Integer ORDER_STATUS_SUCCESS = 4; //已校验 + + //ERP校验状态 + public static final Integer ORDER_CHECK_SUCCESS = 1; //校验成功 + public static final Integer ORDER_CHECK_FAIL = 0; //校验失败 + + //ERP订单上传状态 + public static final Integer ORDER_EXPORT_UN = 0; //未导出 + public static final Integer ORDER_EXPORT_ED = 1; //已导出 + public static final Integer ORDER_EXPORT_FAIL = 2; //导出失败 + + //ERP订单签字状态 + public static final Integer ORDER_SIGN_UN = 0; //未签字 + public static final Integer ORDER_SIGN_ED = 1; //已签字 + public static final Integer ORDER_SIGN_FAIL = 2; //签字失败 +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/constant/ConstantType.java b/api-admin/src/main/java/com/glxp/api/admin/constant/ConstantType.java new file mode 100644 index 00000000..7e012ea8 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/constant/ConstantType.java @@ -0,0 +1,23 @@ +package com.glxp.api.admin.constant; + +public interface ConstantType { + + String TYPE_PUT_PRODUCT = "ProduceWareHouseIn"; //生产入库 + String TYPE_PUT_PURCHASE = "PurchaseWareHouseIn"; //采购入库 + String TYPE_PUT_RETURN = "ReturnWareHouseIn"; //退货入库 + String TYPE_PUT_ALLOT = "AllocateWareHouseIn"; //调拨入库 + + String TYPE_OUT_SALE = "SalesWareHouseOut"; //销售出库 + String TYPE_OUT_RETURN = "ReturnWareHouseOut"; //退货出库 + String TYPE_OUT_ALLOT = "AllocateWareHouseOut"; //调拨出库 + String TYPE_OUT_DESTORY = "DestoryWareHouseOut"; //销毁出库 + String TYPE_OUT_STRAIGHT = "DirectAllocateWareHouseOut"; //直调出库 + String TYPE_OUT_REWORK = "ReworkWareHouseOut"; //返工出库 + String TYPE_OUT_CHECK = "CheckWareHouseOut"; //盘点 抽检出库 + String TYPE_CODE_REPLACE = "CodeReplace"; //码替换 + String TYPE_CODE_DESTORY = "CodeDestory"; //码注销 + String TYPE_STOCK_CHECK = "StockCheck"; //盘点 + + String TYPE_PUT = "WareHouseIn"; //出库 + String TYPE_OUT = "WareHouseOut"; //入库 +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/auth/AuthAdminController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/auth/AuthAdminController.java new file mode 100644 index 00000000..4d771c16 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/auth/AuthAdminController.java @@ -0,0 +1,234 @@ +package com.glxp.api.admin.controller.auth; + +import com.github.pagehelper.PageInfo; +import com.glxp.api.admin.req.auth.AuthAdminQueryRequest; +import com.glxp.api.admin.req.auth.AuthAdminSaveRequest; +import com.glxp.api.admin.res.PageSimpleResponse; +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.admin.annotation.AuthRuleAnnotation; +import com.glxp.api.admin.entity.auth.AuthAdmin; +import com.glxp.api.admin.entity.auth.AuthRole; +import com.glxp.api.admin.entity.auth.AuthRoleAdmin; +import com.glxp.api.admin.service.auth.AuthAdminService; +import com.glxp.api.admin.service.auth.AuthRoleAdminService; +import com.glxp.api.admin.service.auth.AuthRoleService; +import com.glxp.api.admin.util.PasswordUtils; +import com.glxp.api.admin.res.auth.AuthAdminRoleResponse; +import com.glxp.api.admin.res.auth.AuthAdminResponse; +import org.springframework.beans.BeanUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 管理员相关 + */ +@RestController +public class AuthAdminController { + + @Resource + private AuthAdminService authAdminService; + + @Resource + private AuthRoleService authRoleService; + + @Resource + private AuthRoleAdminService authRoleAdminService; + + /** + * 获取管理员列表 + */ + @AuthRuleAnnotation("admin/auth/admin/index") + @GetMapping("/admin/auth/admin/index") + public BaseResponse index(@Valid AuthAdminQueryRequest authAdminQueryRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + if (authAdminQueryRequest.getRoleId() != null) { + List authRoleAdmins = authRoleAdminService.listByRoleId(authAdminQueryRequest.getRoleId()); + List ids = new ArrayList<>(); + if (authRoleAdmins != null && !authRoleAdmins.isEmpty()) { + ids = authRoleAdmins.stream().map(AuthRoleAdmin::getAdmin_id).collect(Collectors.toList()); + } + authAdminQueryRequest.setIds(ids); + } + List authAdmins = authAdminService.listAdminPage(authAdminQueryRequest); + List authAdminList = new ArrayList<>(); + for (AuthAdmin authAdmin : authAdmins) { + if (!authAdmin.getUserName().equals("admin")) { + authAdminList.add(authAdmin); + } + } + // 查询所有的权限 + List adminIds = authAdminList.stream().map(AuthAdmin::getId).collect(Collectors.toList()); + List authRoleAdminList = authRoleAdminService.listByAdminIdIn(adminIds); + + // 视图列表 + List authAdminResponseList = authAdminList.stream().map(item -> { + AuthAdminResponse authAdminResponse = new AuthAdminResponse(); + BeanUtils.copyProperties(item, authAdminResponse); + List roles = authRoleAdminList.stream() + .filter(authRoleAdmin -> authAdminResponse.getId().equals(authRoleAdmin.getAdmin_id())) + .map(AuthRoleAdmin::getRole_id) + .collect(Collectors.toList()); + authAdminResponse.setRoles(roles); + return authAdminResponse; + }).collect(Collectors.toList()); + + PageInfo authAdminPageInfo = new PageInfo<>(authAdminList); + PageSimpleResponse authAdminPageSimpleResponse = new PageSimpleResponse<>(); + authAdminPageSimpleResponse.setTotal(authAdminPageInfo.getTotal()); + authAdminPageSimpleResponse.setList(authAdminResponseList); + + return ResultVOUtils.success(authAdminPageSimpleResponse); + + } + + + /** + * 获取角色列表 + */ + @AuthRuleAnnotation("admin/auth/admin/roleList") + @GetMapping("/admin/auth/admin/roleList") + public BaseResponse roleList(@RequestParam(value = "page", defaultValue = "1") Integer page, + @RequestParam(value = "limit", defaultValue = "100") Integer limit) { + + List authRoleList = authRoleService.listAuthAdminRolePage(page, limit, null); + PageInfo pageInfo = new PageInfo<>(authRoleList); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + List authAdminRoleResponses = authRoleList.stream().map(e -> { + AuthAdminRoleResponse authAdminRoleResponse = new AuthAdminRoleResponse(); + BeanUtils.copyProperties(e, authAdminRoleResponse); + return authAdminRoleResponse; + }).collect(Collectors.toList()); + pageSimpleResponse.setList(authAdminRoleResponses); + + return ResultVOUtils.success(pageSimpleResponse); + + } + + + /** + * 新增 + * + * @return + */ + @AuthRuleAnnotation("admin/auth/admin/save") + @PostMapping("/admin/auth/admin/save") + public BaseResponse save(@RequestBody @Valid AuthAdminSaveRequest authAdminSaveRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + // 检查是否存在相同名称的管理员 + AuthAdmin byUserName = authAdminService.findByUserName(authAdminSaveRequest.getUserName()); + if (byUserName != null) { + return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "当前管理员已存在"); + } + + AuthAdmin authAdmin = new AuthAdmin(); + BeanUtils.copyProperties(authAdminSaveRequest, authAdmin); + + if (authAdmin.getPassWord() != null) { + authAdmin.setPassWord(PasswordUtils.authAdminPwd(authAdmin.getPassWord())); + } + + boolean b = authAdminService.insertAuthAdmin(authAdmin); + authAdmin = authAdminService.findByUserName(authAdmin.getUserName()); + if (!b) { + return ResultVOUtils.error(ResultEnum.NOT_NETWORK); + } + + // 插入角色 + if (authAdminSaveRequest.getRoles() != null) { + authRoleAdminService.insertRolesAdminIdAll(authAdminSaveRequest.getRoles(), authAdmin.getId()); + } + + Map res = new HashMap<>(); + res.put("id", authAdmin.getId()); + return ResultVOUtils.success(res); + } + + /** + * 修改 + * + * @return + */ + @AuthRuleAnnotation("admin/auth/admin/edit") + @PostMapping("/admin/auth/admin/edit") + public BaseResponse edit(@RequestBody @Valid AuthAdminSaveRequest authAdminSaveRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + if (authAdminSaveRequest.getId() == null) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "参数错误!"); + } + + // 检查是否存在除了当前管理员的其它名称的管理员 + AuthAdmin byUserName = authAdminService.findByUserName(authAdminSaveRequest.getUserName()); + if (byUserName != null && !authAdminSaveRequest.getId().equals(byUserName.getId())) { + return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "当前管理员已存在"); + } + + AuthAdmin authAdmin = new AuthAdmin(); + BeanUtils.copyProperties(authAdminSaveRequest, authAdmin); + if (authAdmin.getPassWord() != null) { + authAdmin.setPassWord(PasswordUtils.authAdminPwd(authAdmin.getPassWord())); + } + + boolean b = authAdminService.updateAuthAdmin(authAdmin); + + if (!b) { + return ResultVOUtils.error(ResultEnum.NOT_NETWORK); + } + + // 修改角色 + if (authAdminSaveRequest.getRoles() != null) { + // 先删除之前的 + authRoleAdminService.deleteByAdminId(authAdmin.getId()); + authRoleAdminService.insertRolesAdminIdAll(authAdminSaveRequest.getRoles(), authAdmin.getId()); + } + + return ResultVOUtils.success(); + } + + /** + * 删除 + * + * @return + */ + @AuthRuleAnnotation("admin/auth/admin/delete") + @PostMapping("/admin/auth/admin/delete") + public BaseResponse delete(@RequestBody AuthAdminSaveRequest authAdminSaveRequest) { + + if (authAdminSaveRequest.getId() == null) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "参数错误!"); + } + + boolean b = authAdminService.deleteById(authAdminSaveRequest.getId()); + if (!b) { + return ResultVOUtils.error(ResultEnum.NOT_NETWORK); + } + // 先删除之前的角色 + authRoleAdminService.deleteByAdminId(authAdminSaveRequest.getId()); + + return ResultVOUtils.success(); + } + + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/auth/AuthPermissionRuleController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/auth/AuthPermissionRuleController.java new file mode 100644 index 00000000..eeb40139 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/auth/AuthPermissionRuleController.java @@ -0,0 +1,133 @@ +package com.glxp.api.admin.controller.auth; + +import com.glxp.api.admin.annotation.AuthRuleAnnotation; +import com.glxp.api.admin.req.auth.AuthPermissionRuleSaveRequest; +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.admin.entity.auth.AuthPermissionRule; +import com.glxp.api.admin.service.auth.AuthPermissionRuleService; +import com.glxp.api.admin.util.PermissionRuleTreeUtils; +import com.glxp.api.admin.res.auth.AuthPermissionRuleMergeResponse; +import org.springframework.beans.BeanUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 权限规则相关 + */ +@RestController +public class AuthPermissionRuleController { + + @Resource + private AuthPermissionRuleService authPermissionRuleService; + + /** + * 列表 + * @return + */ + @AuthRuleAnnotation("admin/auth/permission_rule/index") + @GetMapping("/admin/auth/permission_rule/index") + public BaseResponse index() { + + + List authPermissionRuleList = authPermissionRuleService.listAll(); + List merge = PermissionRuleTreeUtils.merge(authPermissionRuleList,0L); + + Map restMap = new HashMap<>(); + restMap.put("list", merge); + return ResultVOUtils.success(restMap); + } + + /** + * 新增 + * @param authPermissionRuleSaveRequest + * @param bindingResult + * @return + */ + @AuthRuleAnnotation("admin/auth/permission_rule/save") + @PostMapping("/admin/auth/permission_rule/save") + public BaseResponse save(@RequestBody @Valid AuthPermissionRuleSaveRequest authPermissionRuleSaveRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + if (authPermissionRuleSaveRequest.getPid() == null) { + authPermissionRuleSaveRequest.setPid(0L); // 默认设置 + } + AuthPermissionRule authPermissionRule = new AuthPermissionRule(); + BeanUtils.copyProperties(authPermissionRuleSaveRequest, authPermissionRule); + + boolean b = authPermissionRuleService.insertAuthPermissionRule(authPermissionRule); + if (!b) { + return ResultVOUtils.error(ResultEnum.NOT_NETWORK); + } + + Map res = new HashMap<>(); + res.put("id", authPermissionRule.getId()); + return ResultVOUtils.success(res); + } + + /** + * 编辑 + * @param authPermissionRuleSaveRequest + * @param bindingResult + * @return + */ + @AuthRuleAnnotation("admin/auth/permission_rule/edit") + @PostMapping("/admin/auth/permission_rule/edit") + public BaseResponse edit(@RequestBody @Valid AuthPermissionRuleSaveRequest authPermissionRuleSaveRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + if (authPermissionRuleSaveRequest.getId() == null) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + + authPermissionRuleSaveRequest.setPid(null); // 不能修改父级 pid + + AuthPermissionRule authPermissionRule = new AuthPermissionRule(); + BeanUtils.copyProperties(authPermissionRuleSaveRequest, authPermissionRule); + + boolean b = authPermissionRuleService.updateAuthPermissionRule(authPermissionRule); + if (!b) { + return ResultVOUtils.error(ResultEnum.NOT_NETWORK); + } + + return ResultVOUtils.success(); + } + + /** + * 删除 + * @param authPermissionRuleSaveRequest + * @return + */ + @AuthRuleAnnotation("admin/auth/permission_rule/delete") + @PostMapping("/admin/auth/permission_rule/delete") + public BaseResponse delete(@RequestBody AuthPermissionRuleSaveRequest authPermissionRuleSaveRequest) { + + if (authPermissionRuleSaveRequest.getId() == null) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + + boolean b = authPermissionRuleService.deleteById(authPermissionRuleSaveRequest.getId()); + if (!b) { + return ResultVOUtils.error(ResultEnum.NOT_NETWORK); + } + + return ResultVOUtils.success(); + } + + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/auth/AuthRoleController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/auth/AuthRoleController.java new file mode 100644 index 00000000..19a15a47 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/auth/AuthRoleController.java @@ -0,0 +1,224 @@ +package com.glxp.api.admin.controller.auth; + +import com.github.pagehelper.PageInfo; +import com.glxp.api.admin.req.auth.AuthRoleAuthRequest; +import com.glxp.api.admin.req.auth.AuthRoleQueryRequest; +import com.glxp.api.admin.req.auth.AuthRoleSaveRequest; +import com.glxp.api.admin.res.PageSimpleResponse; +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.admin.annotation.AuthRuleAnnotation; +import com.glxp.api.admin.entity.auth.AuthPermission; +import com.glxp.api.admin.entity.auth.AuthPermissionRule; +import com.glxp.api.admin.entity.auth.AuthRole; +import com.glxp.api.admin.service.auth.AuthPermissionRuleService; +import com.glxp.api.admin.service.auth.AuthPermissionService; +import com.glxp.api.admin.service.auth.AuthRoleService; +import com.glxp.api.admin.util.PermissionRuleTreeUtils; +import com.glxp.api.admin.res.auth.AuthPermissionRuleMergeResponse; +import com.glxp.api.admin.res.auth.AuthRoleResponse; +import org.springframework.beans.BeanUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 角色相关 + */ +@RestController +public class AuthRoleController { + + @Resource + private AuthRoleService authRoleService; + + @Resource + private AuthPermissionRuleService authPermissionRuleService; + + @Resource + private AuthPermissionService authPermissionService; + + /** + * 角色列表 + */ + @AuthRuleAnnotation("admin/auth/role/index") + @GetMapping("/admin/auth/role/index") + public BaseResponse index(@Valid AuthRoleQueryRequest authRoleQueryRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + List authRoleList = authRoleService.listAdminPage(authRoleQueryRequest); + List authRoleResponseList = authRoleList.stream().map(item -> { + AuthRoleResponse authRoleResponse = new AuthRoleResponse(); + BeanUtils.copyProperties(item, authRoleResponse); + return authRoleResponse; + }).collect(Collectors.toList()); + + PageInfo pageInfo = new PageInfo<>(authRoleList); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(authRoleResponseList); + return ResultVOUtils.success(pageSimpleResponse); + } + + /** + * 获取授权列表 + * + * @param id + * @return + */ + @AuthRuleAnnotation("admin/auth/role/authList") + @GetMapping("/admin/auth/role/authList") + public BaseResponse authList(@RequestParam("id") Long id) { + + // 查询当前角色拥有的权限id + List authPermissionList = authPermissionService.listByRoleId(id); + List checkedKeys = authPermissionList.stream() + .map(AuthPermission::getPermissionRuleId) + .collect(Collectors.toList()); + + // 查询所有权限规则 + List authPermissionRuleList = authPermissionRuleService.listAll(); + List merge = PermissionRuleTreeUtils.merge(authPermissionRuleList, 0L); + + Map restMap = new HashMap<>(); + restMap.put("list", merge); + restMap.put("checkedKeys", checkedKeys); + return ResultVOUtils.success(restMap); + } + + @AuthRuleAnnotation("admin/auth/role/auth") + @PostMapping("/admin/auth/role/auth") + public BaseResponse auth(@RequestBody @Valid AuthRoleAuthRequest authRoleAuthRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + // 先删除之前的授权 + authPermissionService.deleteByRoleId(authRoleAuthRequest.getRole_id()); + + List authPermissionList = authRoleAuthRequest.getAuth_rules().stream() + .map(aLong -> { + AuthPermission authPermission = new AuthPermission(); + authPermission.setRoleId(authRoleAuthRequest.getRole_id()); + authPermission.setPermissionRuleId(aLong); + authPermission.setType("admin"); + return authPermission; + }).collect(Collectors.toList()); + + int i = authPermissionService.insertAuthPermissionAll(authPermissionList); + + return ResultVOUtils.success(); + } + + /** + * 新增 + * + * @param authRoleSaveRequest + * @param bindingResult + * @return + */ + @AuthRuleAnnotation("admin/auth/role/save") + @PostMapping("/admin/auth/role/save") + public BaseResponse save(@RequestBody @Valid AuthRoleSaveRequest authRoleSaveRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + AuthRole byName = authRoleService.findByName(authRoleSaveRequest.getName()); + if (byName != null) { + return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "当前角色已存在"); + } + + AuthRole authRole = new AuthRole(); + BeanUtils.copyProperties(authRoleSaveRequest, authRole); + + boolean b = authRoleService.insertAuthRole(authRole); + if (!b) { + return ResultVOUtils.error(ResultEnum.NOT_NETWORK); + } + + Map res = new HashMap<>(); + res.put("id", authRole.getId()); + return ResultVOUtils.success(res); + } + + /** + * 编辑 + * + * @param authRoleSaveRequest + * @param bindingResult + * @return + */ + @AuthRuleAnnotation("admin/auth/role/edit") + @PostMapping("/admin/auth/role/edit") + public BaseResponse edit(@RequestBody @Valid AuthRoleSaveRequest authRoleSaveRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + if (authRoleSaveRequest.getId() == null) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + + // 检查是否存在当前角色 + AuthRole byName = authRoleService.findByName(authRoleSaveRequest.getName()); + if (byName != null && !authRoleSaveRequest.getId().equals(byName.getId())) { + return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "当前角色已存在"); + } + + AuthRole authRole = new AuthRole(); + BeanUtils.copyProperties(authRoleSaveRequest, authRole); + + boolean b = authRoleService.updateAuthRole(authRole); + if (!b) { + return ResultVOUtils.error(ResultEnum.NOT_NETWORK); + } + + return ResultVOUtils.success(); + } + + /** + * 删除 + * + * @param authRoleSaveRequest + * @return + */ + @AuthRuleAnnotation("admin/auth/role/delete") + @PostMapping("/admin/auth/role/delete") + public BaseResponse delete(@RequestBody AuthRoleSaveRequest authRoleSaveRequest) { + + if (authRoleSaveRequest.getId() == null) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + + boolean b = authRoleService.deleteById(authRoleSaveRequest.getId()); + if (!b) { + return ResultVOUtils.error(ResultEnum.NOT_NETWORK); + } + + //TODO 删除角色后先前授权的缓存不会消失 + + // 再删除之前的授权 + authPermissionService.deleteByRoleId(authRoleSaveRequest.getId()); + + return ResultVOUtils.success(); + } + + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/auth/LoginController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/auth/LoginController.java new file mode 100644 index 00000000..cf9da5c3 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/auth/LoginController.java @@ -0,0 +1,152 @@ +package com.glxp.api.admin.controller.auth; + +import com.glxp.api.admin.req.auth.LoginRequest; +import com.glxp.api.admin.req.auth.UpdatePasswordRequest; +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.admin.annotation.AuthRuleAnnotation; +import com.glxp.api.admin.entity.auth.AuthAdmin; +import com.glxp.api.admin.exception.JsonException; +import com.glxp.api.admin.service.auth.AuthAdminService; +import com.glxp.api.admin.service.auth.AuthLoginService; +import com.glxp.api.admin.util.PasswordUtils; +import com.glxp.api.admin.res.auth.LoginUserInfoResponse; +import com.glxp.api.admin.util.IpUtils; +import com.glxp.api.admin.util.JwtUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.BindingResult; +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 javax.servlet.http.HttpServletRequest; +import javax.validation.Valid; +import java.util.*; + +/** + * 登录相关 + */ +@RestController +@Slf4j +public class LoginController { + + @Autowired + private AuthLoginService authLoginService; + + @Autowired + private AuthAdminService authAdminService; + + /** + * 用户登录 + * @return + */ + @PostMapping(value = "/login") + public BaseResponse index(@RequestBody @Valid LoginRequest loginRequest, + BindingResult bindingResult, + HttpServletRequest request) { + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + AuthAdmin authAdmin = authAdminService.findByUserName(loginRequest.getUsername()); + if (authAdmin == null) { + throw new JsonException(ResultEnum.DATA_NOT, "用户名或密码错误"); + } + + if (!PasswordUtils.authAdminPwd(loginRequest.getPassword()).equals(authAdmin.getPassWord())) { + throw new JsonException(ResultEnum.DATA_NOT, "用户名或密码错误"); + } + + // 更新登录状态 + AuthAdmin authAdminUp = new AuthAdmin(); + authAdminUp.setId(authAdmin.getId()); + authAdminUp.setLastLoginTime(new Date()); + authAdminUp.setLastLoginIp(IpUtils.getIpAddr(request)); + authAdminService.updateAuthAdmin(authAdminUp); + + // 登录成功后获取权限,这里面会设置到缓存 + authLoginService.listRuleByAdminId(authAdmin.getId()); + + Map claims = new HashMap<>(); + claims.put("admin_id", authAdmin.getId()); + String token = JwtUtils.createToken(claims, 86400L); // 一天后过期 + + Map map = new HashMap<>(); + map.put("id", authAdmin.getId()); + map.put("token", token); + + return ResultVOUtils.success(map); + } + + /** + * 获取登录用户信息 + * @return + */ + @AuthRuleAnnotation("") + @GetMapping("/admin/auth/login/userInfo") + public BaseResponse userInfo(HttpServletRequest request) { + String adminId = request.getHeader("ADMIN_ID"); + Long id = Long.valueOf(adminId); + + AuthAdmin authAdmin = authAdminService.findById(id); + + List authRules = authLoginService.listRuleByAdminId(authAdmin.getId()); + + LoginUserInfoResponse loginUserInfoResponse = new LoginUserInfoResponse(); + BeanUtils.copyProperties(authAdmin, loginUserInfoResponse); + loginUserInfoResponse.setAuthRules(authRules); + + return ResultVOUtils.success(loginUserInfoResponse); + } + + /** + * 登出 + * @return + */ + @PostMapping("/admin/auth/login/out") + public BaseResponse out(){ + return ResultVOUtils.success(); + } + + /** + * 修改密码 + * @return + */ + @AuthRuleAnnotation("") // 需要登录验证,但是不需要权限验证时,value 值填空字符串 + @PostMapping("/admin/auth/login/password") + public BaseResponse password(@RequestBody @Valid UpdatePasswordRequest updatePasswordRequest, + BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL.getCode(), + bindingResult.getFieldError().getDefaultMessage()); + } + + AuthAdmin authAdmin = authAdminService.findById(updatePasswordRequest.getAdminId()); + if (authAdmin == null) { + throw new JsonException(ResultEnum.DATA_NOT); + } + String oldPwd = PasswordUtils.authAdminPwd(updatePasswordRequest.getOldPassword()); + // 旧密码不对 + if (authAdmin.getPassWord() != null + && !authAdmin.getPassWord().equals(oldPwd)) { + throw new JsonException(ResultEnum.DATA_NOT, "旧密码匹配失败"); + } + + AuthAdmin authAdminUp = new AuthAdmin(); + authAdminUp.setId(authAdmin.getId()); + String newPwd = PasswordUtils.authAdminPwd(updatePasswordRequest.getNewPassword()); + authAdminUp.setPassWord(newPwd); + + boolean b = authAdminService.updateAuthAdmin(authAdminUp); + if (b) { + return ResultVOUtils.success(); + } + + return ResultVOUtils.error(ResultEnum.DATA_CHANGE); + } + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/basic/BasicUnitMaintainController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/basic/BasicUnitMaintainController.java new file mode 100644 index 00000000..806540e6 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/basic/BasicUnitMaintainController.java @@ -0,0 +1,181 @@ +package com.glxp.api.admin.controller.basic; + +import com.github.pagehelper.PageInfo; +import com.glxp.api.admin.res.basic.ErpUnitsResponse; +import com.glxp.api.admin.entity.basic.BasicUnitMaintainEntity; +import com.glxp.api.admin.entity.info.SystemParamConfigEntity; +import com.glxp.api.admin.httpclient.ErpBasicClient; +import com.glxp.api.admin.req.basic.BasicUnitMaintainFilterRequest; +import com.glxp.api.admin.req.basic.BasicUnitMaintainSaveRequest; +import com.glxp.api.admin.req.info.SystemParamConfigRequest; +import com.glxp.api.admin.req.inout.DeleteRequest; +import com.glxp.api.admin.req.receipt.CombineUnitRequest; +import com.glxp.api.admin.req.receipt.UnitMaintainFilterRequest; +import com.glxp.api.admin.res.PageSimpleResponse; +import com.glxp.api.admin.res.basic.BasicUnitMaintainResponse; +import com.glxp.api.admin.service.basic.BasicUnitMaintainService; +import com.glxp.api.admin.service.info.SystemParamConfigService; +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.BindingResult; +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 javax.annotation.Resource; +import javax.validation.Valid; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 往来单位信息维护 + */ +@RestController +public class BasicUnitMaintainController { + + @Resource + private BasicUnitMaintainService basicUnitMaintainService; + + @Autowired + private SystemParamConfigService systemParamConfigService; + + + @GetMapping("/udiwms/basic/unit/maintain/filter") + public BaseResponse filterBasicUnitMaintain(BasicUnitMaintainFilterRequest basicUnitMaintainFilterRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + List basicUnitMaintainEntities; + basicUnitMaintainEntities = basicUnitMaintainService.filterList(basicUnitMaintainFilterRequest); + PageInfo pageInfo = new PageInfo<>(basicUnitMaintainEntities); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(basicUnitMaintainEntities); + + SystemParamConfigEntity systemParamConfigEntityBUMErpId = systemParamConfigService.selectByParamKey("basic_unit_maintain_erp_id"); + SystemParamConfigEntity systemParamConfigEntityBUMThirdId = systemParamConfigService.selectByParamKey("basic_unit_maintain_third_id"); + Map rMap = new HashMap<>(); + rMap.put("BUMErpIdValue", + systemParamConfigEntityBUMErpId != null && StringUtils.isNotBlank(systemParamConfigEntityBUMErpId.getParamValue()) ? + systemParamConfigEntityBUMErpId.getParamValue() : "0"); + rMap.put("BUMThirdIdValue", + systemParamConfigEntityBUMThirdId != null && StringUtils.isNotBlank(systemParamConfigEntityBUMThirdId.getParamValue()) ? + systemParamConfigEntityBUMThirdId.getParamValue() : "0"); + rMap.put("page", pageSimpleResponse); + return ResultVOUtils.success(rMap); + } + + @PostMapping("/udiwms/basic/unit/maintain/save") + public BaseResponse save(@RequestBody @Valid BasicUnitMaintainSaveRequest basicUnitMaintainSaveRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + BasicUnitMaintainEntity basicUnitMaintainEntity = new BasicUnitMaintainEntity(); + BeanUtils.copyProperties(basicUnitMaintainSaveRequest, basicUnitMaintainEntity); + + boolean b = basicUnitMaintainService.insert(basicUnitMaintainEntity); + if (!b) { + return ResultVOUtils.error(ResultEnum.NOT_NETWORK); + } + + return ResultVOUtils.success(); + } + + @PostMapping("/udiwms/basic/unit/maintain/update") + public BaseResponse update(@RequestBody BasicUnitMaintainSaveRequest basicUnitMaintainSaveRequest) { + basicUnitMaintainService.updateById(basicUnitMaintainSaveRequest); + return ResultVOUtils.success("修改成功"); + } + + @GetMapping("/udiwms/unit/download") + public BaseResponse downloadBasicUnit(BasicUnitMaintainFilterRequest basicUnitMaintainFilterRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + List basicUnitMaintainEntities; + basicUnitMaintainEntities = basicUnitMaintainService.filterList(basicUnitMaintainFilterRequest); + + List basicUnitMaintainResponses = basicUnitMaintainEntities.stream().map(item -> + { + BasicUnitMaintainResponse basicUnitMaintainResponse = new BasicUnitMaintainResponse(); + BeanUtils.copyProperties(item, basicUnitMaintainResponse); + return basicUnitMaintainResponse; + }).collect(Collectors.toList()); + PageInfo pageInfo; + pageInfo = new PageInfo<>(basicUnitMaintainResponses); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(basicUnitMaintainResponses); + return ResultVOUtils.success(pageSimpleResponse); + } + + + @PostMapping("/udiwms/basic/unit/maintain/combine") + public BaseResponse combine(@RequestBody CombineUnitRequest combineRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + List custmandocResponses = combineRequest.getCustmandocResponses(); + if (custmandocResponses != null && custmandocResponses.size() > 0) { + for (ErpUnitsResponse custmandocResponse : custmandocResponses) { + BasicUnitMaintainEntity basicUnitMaintainEntity = new BasicUnitMaintainEntity(); + basicUnitMaintainEntity.setErpId(custmandocResponse.getId()); + basicUnitMaintainEntity.setName(custmandocResponse.getName()); + basicUnitMaintainEntity.setSpell(custmandocResponse.getSpell()); + basicUnitMaintainEntity.setAddr(custmandocResponse.getAddr()); + basicUnitMaintainEntity.setCreditNo(custmandocResponse.getCreditNo()); + basicUnitMaintainEntity.setContact(custmandocResponse.getContact()); + basicUnitMaintainEntity.setMobile(custmandocResponse.getMobile()); + basicUnitMaintainService.insertBasicUnitMaintain(basicUnitMaintainEntity); + } + } + + return ResultVOUtils.success("选入成功"); + } + + + @PostMapping("/udiwms/basic/unit/maintain/delete") + public BaseResponse deleteBasicUnitMaintain(@RequestBody DeleteRequest deleteRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + String id = deleteRequest.getId(); + + basicUnitMaintainService.deleteById(id); + + return ResultVOUtils.success("删除成功"); + } + + + //查询ERP往来单位 + @GetMapping("/udiwms/unitMaintain/filterErp") + public BaseResponse filterErp(UnitMaintainFilterRequest unitMaintainFilterRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + SystemParamConfigEntity systemParamConfigEntityBUMErpQuery = systemParamConfigService.selectByParamKey("basic_unit_maintain_erp_query"); + if (systemParamConfigEntityBUMErpQuery == null) + return ResultVOUtils.error(500, "往来单位接口地址未定义"); + BaseResponse> udiDlDeviceResponse = + new ErpBasicClient().getErpCrop(unitMaintainFilterRequest, systemParamConfigEntityBUMErpQuery.getParamValue()); + return udiDlDeviceResponse; + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/basic/BussinessTypeController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/basic/BussinessTypeController.java new file mode 100644 index 00000000..a23337c5 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/basic/BussinessTypeController.java @@ -0,0 +1,93 @@ +package com.glxp.api.admin.controller.basic; + +import com.github.pagehelper.PageInfo; +import com.glxp.api.admin.constant.BussinessTypeUtils; +import com.glxp.api.admin.entity.basic.BussinessTypeEntity; +import com.glxp.api.admin.req.inout.DeleteRequest; +import com.glxp.api.admin.req.receipt.BussinessTypeFilterRequest; +import com.glxp.api.admin.res.PageSimpleResponse; +import com.glxp.api.admin.service.basic.BussinessTypeService; +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import org.springframework.validation.BindingResult; +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 javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +/** + * 业务类型维护 + */ + +@RestController +public class BussinessTypeController { + + + @Resource + private BussinessTypeService bussinessTypeService; + + + @GetMapping("/udiwms/bussinessType/filter") + public BaseResponse filterBussinessType(BussinessTypeFilterRequest bussinessTypeFilterRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + List bussinessTypeEntities; + bussinessTypeEntities = bussinessTypeService.filterList(bussinessTypeFilterRequest); + PageInfo pageInfo; + pageInfo = new PageInfo<>(bussinessTypeEntities); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(bussinessTypeEntities); + return ResultVOUtils.success(pageSimpleResponse); + } + + @PostMapping("/udiwms/bussinessType/delete") + public BaseResponse deleteBussinessType(@RequestBody DeleteRequest deleteRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + String id = deleteRequest.getId(); + bussinessTypeService.deleteById(id); + return ResultVOUtils.success("删除成功"); + } + + @PostMapping("/udiwms/bussinessType/update") + public BaseResponse updateBussinessType(@RequestBody BussinessTypeEntity bussinessTypeEntity, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + if (bussinessTypeEntity != null) { + bussinessTypeService.updateBussinessType(bussinessTypeEntity); + } else { + ResultVOUtils.error(999, "参数错误"); + } + return ResultVOUtils.success("更新成功"); + } + + + @PostMapping("/udiwms/bussinessType/insert") + public BaseResponse insertBussinessType(@RequestBody BussinessTypeEntity bussinessTypeEntity, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + if (bussinessTypeEntity != null) { + bussinessTypeService.insertBussinessType(bussinessTypeEntity); + } else { + ResultVOUtils.error(999, "参数错误"); + } + return ResultVOUtils.success("添加成功"); + } + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/basic/UdiInfoController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/basic/UdiInfoController.java new file mode 100644 index 00000000..7b853507 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/basic/UdiInfoController.java @@ -0,0 +1,115 @@ +package com.glxp.api.admin.controller.basic; + +import com.alibaba.fastjson.JSONObject; +import com.glxp.api.admin.entity.basic.UdiInfoEntity; +import com.glxp.api.admin.entity.basic.UdiRelevanceEntity; +import com.glxp.api.admin.entity.info.SystemParamConfigEntity; +import com.glxp.api.admin.entity.basic.UdiEntity; +import com.glxp.api.admin.httpclient.ErpBasicClient; +import com.glxp.api.admin.req.basic.FilterErpGoodsRequest; +import com.glxp.api.admin.req.basic.FilterUdiInfoRequest; +import com.glxp.api.admin.req.info.SystemParamConfigRequest; +import com.glxp.api.admin.res.PageSimpleResponse; +import com.glxp.api.admin.res.basic.ErpProductsResponse; +import com.glxp.api.admin.service.basic.UdiInfoService; +import com.glxp.api.admin.service.basic.UdiRelevanceService; +import com.glxp.api.admin.service.info.SystemParamConfigService; +import com.glxp.api.admin.util.FilterUdiUtils; +import com.glxp.api.admin.util.HttpClient; +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +//基础信息维护 +@RestController +public class UdiInfoController { + + @Resource + UdiRelevanceService udiRelevanceService; + @Resource + UdiInfoService udiInfoService; + @Autowired + private SystemParamConfigService systemParamConfigService; + + @Value("${UDI_SERVER_URL}") + private String udiUrl; + + //获取同步库UDI信息 + @GetMapping("udiwms/udiinfo/filterUdi") + public BaseResponse filterUdi(FilterUdiInfoRequest productInfoFilterRequest) { + + + String nameCode = null; + if (productInfoFilterRequest.getNameCode() != null) { + UdiEntity udiEntity = FilterUdiUtils.getUdi(productInfoFilterRequest.getNameCode()); + if (udiEntity != null) { + nameCode = udiEntity.getUdi(); + } else { + nameCode = productInfoFilterRequest.getNameCode(); + } + } + Map paramMap = new HashMap<>(16); + paramMap.put("page", productInfoFilterRequest.getPage()); + paramMap.put("limit", productInfoFilterRequest.getLimit()); + paramMap.put("ylqxzcrbarmc", productInfoFilterRequest.getYlqxzcrbarmc()); + paramMap.put("cpmctymc", productInfoFilterRequest.getCpmctymc()); + paramMap.put("nameCode", nameCode); + paramMap.put("ggxh", productInfoFilterRequest.getGgxh()); + paramMap.put("uuid", productInfoFilterRequest.getUuid()); + + String response = HttpClient.mipsGet(udiUrl + "/udidl/device/filterUdi", paramMap); + try { + BaseResponse> udiDlDeviceResponse = (BaseResponse>) JSONObject.parseObject(response, BaseResponse.class); + return udiDlDeviceResponse; + } catch (Exception e) { + e.printStackTrace(); + return ResultVOUtils.error(500, "连接UDI数据下载服务出错!"); + } + } + + //获取本地已维护UDI信息 + @GetMapping("udiwms/udiinfo/local/filterByUuid") + public BaseResponse filterLocalByUuid(FilterUdiInfoRequest productInfoFilterRequest) { + + List udiInfoEntities = udiInfoService.filterAllUdiInfo(productInfoFilterRequest); + return ResultVOUtils.success(udiInfoEntities); + } + + //获取ERP产品信息 + @GetMapping("udiwms/udiinfo/erp/products") + public BaseResponse getErpProducts(FilterErpGoodsRequest filterErpGoodsRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("erp_products_query"); + if (systemParamConfigEntity == null) return ResultVOUtils.error(500, "ERP产品信息接口地址未定义"); + ErpBasicClient erpBasicHttpClient = new ErpBasicClient(); + BaseResponse> udiDlDeviceResponse = erpBasicHttpClient.getErpProducts(filterErpGoodsRequest, systemParamConfigEntity.getParamValue()); + if (udiDlDeviceResponse.getCode() == 20000) { + List invmandocResponses = udiDlDeviceResponse.getData().getList(); + for (ErpProductsResponse invmandocResponse : invmandocResponses) { + UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectByThirdId(invmandocResponse.getCode()); + if (udiRelevanceEntity != null) { + invmandocResponse.setChecked(true); + } else { + invmandocResponse.setChecked(false); + } + + } + } + return udiDlDeviceResponse; + + } +} \ No newline at end of file diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/basic/UdiRelevanceController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/basic/UdiRelevanceController.java new file mode 100644 index 00000000..4aa4d384 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/basic/UdiRelevanceController.java @@ -0,0 +1,228 @@ +package com.glxp.api.admin.controller.basic; + +import com.github.pagehelper.PageInfo; +import com.glxp.api.admin.entity.basic.UdiInfoEntity; +import com.glxp.api.admin.entity.basic.UdiRelevanceEntity; +import com.glxp.api.admin.entity.info.SystemParamConfigEntity; +import com.glxp.api.admin.entity.inout.WarehouseEntity; +import com.glxp.api.admin.httpclient.UdiDlHttpClient; +import com.glxp.api.admin.req.basic.CombineRequest; +import com.glxp.api.admin.req.basic.FilterUdiInfoRequest; +import com.glxp.api.admin.req.inout.DeleteRequest; +import com.glxp.api.admin.res.PageSimpleResponse; +import com.glxp.api.admin.res.basic.UdiRelevanceResponse; +import com.glxp.api.admin.service.basic.UdiInfoService; +import com.glxp.api.admin.service.basic.UdiRelevanceService; +import com.glxp.api.admin.service.info.SystemParamConfigService; +import com.glxp.api.admin.service.inout.CodesService; +import com.glxp.api.admin.thread.BasicUpdateproductService; +import com.glxp.api.admin.util.DateUtil; +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.validation.BindingResult; +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 javax.annotation.Resource; +import java.util.List; + +@RestController +public class UdiRelevanceController { + + @Value("${UDI_SERVER_URL}") + private String udiUrl; + @Resource + UdiRelevanceService udiRelevanceService; + @Resource + UdiInfoService udiInfoService; + @Resource + BasicUpdateproductService updateproductService; + @Resource + CodesService warehouseService; + @Resource + private SystemParamConfigService systemParamConfigService; + + //客户端器械信息下载 + @GetMapping("/udi/udirel/download") + public BaseResponse downloadProducts(FilterUdiInfoRequest filterUdiInfoRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + List udiRelevanceResponses = null; + udiRelevanceResponses = udiRelevanceService.filterUdiRelevance(filterUdiInfoRequest); + + PageInfo pageInfo; + pageInfo = new PageInfo<>(udiRelevanceResponses); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(udiRelevanceResponses); + return ResultVOUtils.success(pageSimpleResponse); + } + + + //器械信息维护首页 + @GetMapping("/udi/udirel/filterUdi") + public BaseResponse filterUdiGp(FilterUdiInfoRequest filterUdiInfoRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + List udiRelevanceResponses = null; + udiRelevanceResponses = udiRelevanceService.filterUdiGp(filterUdiInfoRequest); + if (udiRelevanceResponses != null && udiRelevanceResponses.size() > 0) { + for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) { + if (udiRelevanceResponse.getDiType() == 2 && udiRelevanceResponse.getIsUseDy() != 1) { + udiRelevanceResponse.setNameCode(udiRelevanceResponse.getSjcpbm()); + } + } + } + PageInfo pageInfo; + pageInfo = new PageInfo<>(udiRelevanceResponses); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(udiRelevanceResponses); + return ResultVOUtils.success(pageSimpleResponse); + } + + + //更新下载ERP存货产品 + @GetMapping("/udi/udirel/updateErp") + public BaseResponse updateErp() { + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("erp_products_query"); + String productUrl; + String onHandUrl; + if (systemParamConfigEntity == null) + return ResultVOUtils.error(500, "ERP产品信息接口地址未定义"); + else + productUrl = systemParamConfigEntity.getParamValue(); + systemParamConfigEntity = systemParamConfigService.selectByParamKey("erp_onhand_query"); + if (systemParamConfigEntity == null) + return ResultVOUtils.error(500, "ERP现存量接口地址未定义"); + else + onHandUrl = systemParamConfigEntity.getParamValue(); + updateproductService.updateProduct(productUrl, onHandUrl); + return ResultVOUtils.success("后台已开启下载更新,请稍后刷新查看!"); + } + + //多选删除 + @PostMapping("/udi/udirel/deleteAll") + public BaseResponse deleteAll(@RequestBody DeleteRequest deleteRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + List ids = deleteRequest.getIds(); + udiRelevanceService.deleteByIds(ids); + return ResultVOUtils.success("删除成功"); + } + + @PostMapping("/udi/udirel/deleteById") + public BaseResponse deleteById(@RequestBody DeleteRequest deleteRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + String ids = deleteRequest.getId(); + UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(ids); + if (udiRelevanceEntity != null && udiRelevanceEntity.getUuid() != null) { + List udiRelevanceEntities = udiRelevanceService.selectByUuid(udiRelevanceEntity.getUuid()); + if (udiRelevanceEntities != null && !udiRelevanceEntities.isEmpty()) { + for (UdiRelevanceEntity udiRelevanceEntity1 : udiRelevanceEntities) { + List udiInfoEntities = udiInfoService.findByUuids(udiRelevanceEntity1.getUuid()); + if (udiInfoEntities != null && udiInfoEntities.size() > 0) { + for (int i = 0; i < udiInfoEntities.size(); i++) { + List warehouseEntityList = warehouseService.searchCode(udiInfoEntities.get(i).getNameCode()); + if (warehouseEntityList != null && warehouseEntityList.size() > 0) { + return ResultVOUtils.error(500, "改产品已被" + warehouseEntityList.get(0).getOrderId() + "订单关联不能删除"); + } + } + } + } + udiInfoService.deleteByUuid(udiRelevanceEntity.getUuid()); + } + } + udiRelevanceService.deleteById(ids); + return ResultVOUtils.success("删除成功"); + } + + @PostMapping("/udi/udirel/update") + public BaseResponse updateRelevanceEntity(@RequestBody UdiRelevanceEntity udiRelevanceEntity, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + udiRelevanceEntity.setUpdateTime(DateUtil.getDateTime()); + udiRelevanceService.updateUdiRelevance(udiRelevanceEntity); + return ResultVOUtils.success("更新成功"); + } + + //新增或修改关联 + @PostMapping("/udi/udirel/revleance") + public BaseResponse revleanceUdi(@RequestBody CombineRequest combineRequest) { + + List keys = combineRequest.getKeys(); + if (keys != null && keys.size() > 0) { + for (String key : keys) { + FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest(); + filterUdiInfoRequest.setUuid(key); + List udiInfoEntities = udiInfoService.filterAllUdiInfo(filterUdiInfoRequest); + UdiRelevanceEntity udiRelevanceEntity = new UdiRelevanceEntity(); + if (udiInfoEntities == null || udiInfoEntities.isEmpty()) { + udiInfoEntities = new UdiDlHttpClient(udiUrl).getUdiByUuid(key); + if (udiInfoEntities != null) { + udiInfoService.insertUdiInfos(udiInfoEntities); + } else { + return ResultVOUtils.error(500, "连接UDI数据下载服务出错!"); + } + } + if (combineRequest.getRelId() != null) { + udiRelevanceEntity.setId(combineRequest.getRelId()); + udiRelevanceEntity.setUuid(key); + udiRelevanceEntity.setUpdateTime(DateUtil.getDateTime()); + udiRelevanceService.updateUdiRelevance(udiRelevanceEntity); + } else { + udiRelevanceEntity.setThirdId(combineRequest.getThirdId()); + udiRelevanceEntity.setThirdName(combineRequest.getErpName()); + udiRelevanceEntity.setUpdateTime(DateUtil.getDateTime()); + udiRelevanceEntity.setUuid(key); + udiRelevanceService.insertUdiRelevance(udiRelevanceEntity); + } + + + } + } + return ResultVOUtils.success("合并成功"); + } + + //更换关联ERP产品 + @PostMapping("/udi/udirel/modifyRel") + public BaseResponse modifyRel(@RequestBody CombineRequest combineRequest) { + + UdiRelevanceEntity udiRelevanceEntity = new UdiRelevanceEntity(); + udiRelevanceEntity.setId(combineRequest.getRelId()); + udiRelevanceEntity.setThirdId(combineRequest.getThirdId()); + udiRelevanceEntity.setThirdName(combineRequest.getErpName()); + udiRelevanceEntity.setUpdateTime(DateUtil.getDateTime()); + udiRelevanceService.updateUdiRelevance(udiRelevanceEntity); + return ResultVOUtils.success("更新成功"); + } + + //单独选入ERP产品 + @PostMapping("/udi/udirel/addErp") + public BaseResponse addErp(@RequestBody CombineRequest combineRequest) { + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("erp_products_query"); + if (systemParamConfigEntity == null) return ResultVOUtils.error(500, "ERP产品信息接口地址未定义"); + String url = systemParamConfigEntity.getParamValue(); + updateproductService.addProduct(combineRequest.getThirdId(), combineRequest.getErpName(), url); + return ResultVOUtils.success("添加成功"); + } + + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/info/CompanyController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/info/CompanyController.java new file mode 100644 index 00000000..bbd36a79 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/info/CompanyController.java @@ -0,0 +1,36 @@ +package com.glxp.api.admin.controller.info; + +import com.glxp.api.admin.entity.info.CompanyEntity; +import com.glxp.api.admin.service.info.CompanyService; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +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 javax.annotation.Resource; + +@RestController +public class CompanyController { + + @Resource + private CompanyService companyService; + + @GetMapping("/warehouse/info/company") + public BaseResponse getCompanyInfo() { + CompanyEntity companyEntity = companyService.findCompany(); + if (companyEntity != null) { + return ResultVOUtils.success(companyEntity); + } + return ResultVOUtils.error(500, "企业信息为空"); + } + + @PostMapping("/warehouse/info/modifyCompany") + public BaseResponse modifyCompany(@RequestBody CompanyEntity companyEntity) { + + boolean b = companyService.modifyCompany(companyEntity); + + return ResultVOUtils.success("修改成功"); + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/info/SetupController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/info/SetupController.java new file mode 100644 index 00000000..8975bf81 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/info/SetupController.java @@ -0,0 +1,39 @@ +package com.glxp.api.admin.controller.info; + +import com.glxp.api.admin.entity.info.SetupEntity; +import com.glxp.api.admin.req.info.FilterSetupRequest; +import com.glxp.api.admin.service.info.SetupService; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +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 javax.annotation.Resource; +import java.util.List; + +@RestController +public class SetupController { + + @Resource + private SetupService setupService; + + @GetMapping("/udi/info/setup") + public BaseResponse getCompanyInfo(FilterSetupRequest filterSetupRequest) { + filterSetupRequest.setId(1); + SetupEntity setupEntity = setupService.findSetup(filterSetupRequest); + if (setupEntity != null) { + return ResultVOUtils.success(setupEntity); + } + return ResultVOUtils.error(500, "设置信息为空"); + } + + @PostMapping("/udi/info/setup/modify") + public BaseResponse modifyCompany(@RequestBody SetupEntity setupEntity) { + setupEntity.setId(1); + setupService.modifySetup(setupEntity); + return ResultVOUtils.success("修改成功"); + } + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/info/SystemParamConfigController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/info/SystemParamConfigController.java new file mode 100644 index 00000000..4c2bb64e --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/info/SystemParamConfigController.java @@ -0,0 +1,105 @@ +package com.glxp.api.admin.controller.info; + +import com.github.pagehelper.PageInfo; +import com.glxp.api.admin.annotation.AuthRuleAnnotation; +import com.glxp.api.admin.entity.info.SystemParamConfigEntity; +import com.glxp.api.admin.req.info.SystemParamConfigRequest; +import com.glxp.api.admin.req.info.SystemParamConfigSaveRequest; +import com.glxp.api.admin.res.PageSimpleResponse; +import com.glxp.api.admin.res.info.SystemParamConfigResponse; +import com.glxp.api.admin.service.info.SystemParamConfigService; +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.validation.BindingResult; +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 javax.annotation.Resource; +import javax.validation.Valid; +import java.util.List; +import java.util.stream.Collectors; + +@RestController +public class SystemParamConfigController { + + @Resource + private SystemParamConfigService systemParamConfigService; + + @AuthRuleAnnotation("system/param/config/list") + @GetMapping("/system/param/config/list") + public BaseResponse list(@Valid SystemParamConfigRequest systemParamConfigRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + systemParamConfigRequest.setParamStatus(1); + List systemParamConfigEntityList = systemParamConfigService.queryPage(systemParamConfigRequest); + List systemParamConfigResponseList = systemParamConfigEntityList.stream().map(item -> { + SystemParamConfigResponse systemParamConfigResponse = new SystemParamConfigResponse(); + BeanUtils.copyProperties(item, systemParamConfigResponse); + return systemParamConfigResponse; + }).collect(Collectors.toList()); + + PageInfo pageInfo = new PageInfo<>(systemParamConfigEntityList); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(systemParamConfigResponseList); + return ResultVOUtils.success(pageSimpleResponse); + } + + @GetMapping("/udiwms/sys/config/selectByKey") + public BaseResponse selectByKey(@Valid SystemParamConfigRequest systemParamConfigRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey(systemParamConfigRequest.getParamKey()); + return ResultVOUtils.success(systemParamConfigEntity); + } + + @AuthRuleAnnotation("system/param/config/save") + @PostMapping("/system/param/config/save") + public BaseResponse save(@RequestBody @Valid SystemParamConfigSaveRequest systemParamConfigSaveRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + SystemParamConfigEntity systemParamConfigEntity = new SystemParamConfigEntity(); + BeanUtils.copyProperties(systemParamConfigSaveRequest, systemParamConfigEntity); + + boolean b = systemParamConfigService.insert(systemParamConfigEntity); + if (!b) { + return ResultVOUtils.error(ResultEnum.NOT_NETWORK); + } + + return ResultVOUtils.success(); + } + + @AuthRuleAnnotation("system/param/config/update") + @PostMapping("/system/param/config/update") + public BaseResponse update(@RequestBody SystemParamConfigSaveRequest systemParamConfigSaveRequest) { +// systemParamConfigSaveRequest.setId(1); + systemParamConfigService.updateById(systemParamConfigSaveRequest); + if (systemParamConfigSaveRequest.getParentId() == 0) { + SystemParamConfigSaveRequest systemParamConfigSaveRequest1 = new SystemParamConfigSaveRequest(); + systemParamConfigSaveRequest1.setParentId(systemParamConfigSaveRequest.getId()); + if (systemParamConfigSaveRequest.getParamValue().equals("1")) { + systemParamConfigSaveRequest1.setParamStatus(1); + } else { + systemParamConfigSaveRequest1.setParamStatus(0); + } + systemParamConfigService.updateParentId(systemParamConfigSaveRequest1); + } + return ResultVOUtils.success("修改成功"); + } + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/inout/OrderController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/inout/OrderController.java new file mode 100644 index 00000000..4c004f40 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/inout/OrderController.java @@ -0,0 +1,260 @@ +package com.glxp.api.admin.controller.inout; + +import com.github.pagehelper.PageInfo; +import com.glxp.api.admin.constant.ConstantStatus; +import com.glxp.api.admin.controller.inout.utils.ContrastErpUtil; +import com.glxp.api.admin.controller.inout.utils.InoutUtils; +import com.glxp.api.admin.entity.info.SystemParamConfigEntity; +import com.glxp.api.admin.httpclient.ErpOrderClient; +import com.glxp.api.admin.entity.inout.OrderEntity; +import com.glxp.api.admin.entity.inout.WarehouseEntity; +import com.glxp.api.admin.entity.inout.ErpOrderEntity; +import com.glxp.api.admin.entity.inout.FilterErpOrderRequest; +import com.glxp.api.admin.req.inout.*; +import com.glxp.api.admin.res.PageSimpleResponse; +import com.glxp.api.admin.service.basic.UdiInfoService; +import com.glxp.api.admin.service.basic.UdiRelevanceService; +import com.glxp.api.admin.service.info.SystemParamConfigService; +import com.glxp.api.admin.service.inout.OrderDetailService; +import com.glxp.api.admin.service.inout.OrderService; +import com.glxp.api.admin.service.inout.CodesService; +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.validation.BindingResult; +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 javax.annotation.Resource; +import javax.validation.Valid; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@RestController +public class OrderController { + + @Resource + private OrderService orderService; + @Resource + private CodesService warehouseService; + @Resource + private OrderDetailService myErpOrderService; + @Resource + private UdiInfoService udiInfoService; + @Resource + private UdiRelevanceService udiRelevanceService; + @Resource + private SystemParamConfigService systemParamConfigService; + + @Value("${UCLOD_SERVER_URL}") + private String ucloudUrl; + + + @GetMapping("udiwms/inout/order/error") + public BaseResponse listOrderError(OrderFilterRequest orderFilterRequest) { + orderFilterRequest.setStatus(ConstantStatus.ORDER_STATUS_FAIL); + List orderEntityList = orderService.filterList(orderFilterRequest); + PageInfo pageInfo; + pageInfo = new PageInfo<>(orderEntityList); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(orderEntityList); + return ResultVOUtils.success(pageSimpleResponse); + } + + @GetMapping("udiwms/inout/order/repeat") + public BaseResponse listOrderRepeat(OrderQueryRequest orderQueryRequest) { + List orderEntityList = orderService.listOrderRepeat(orderQueryRequest); + PageInfo pageInfo; + pageInfo = new PageInfo<>(orderEntityList); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(orderEntityList); + return ResultVOUtils.success(pageSimpleResponse); + } + + @PostMapping("udiwms/inout/order/delete") + public BaseResponse deleteOrder(@RequestBody DeleteRequest deleteRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + String id = deleteRequest.getId(); + + orderService.deleteById(id); + myErpOrderService.deleteByOrderId(id); + return ResultVOUtils.success("删除成功"); + } + + @PostMapping("/udiwms/inout/order/updateUnit") + public BaseResponse updateUnit(@RequestBody @Valid OrderEntity orderEntity, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + boolean b = orderService.updateUnit(orderEntity); + if (!b) { + return ResultVOUtils.error(ResultEnum.NOT_NETWORK); + } + + b = warehouseService.updateUnit(orderEntity.getId(), orderEntity.getFromCorpId(), orderEntity.getFromCorp()); + if (!b) { + return ResultVOUtils.error(ResultEnum.NOT_NETWORK); + } + return ResultVOUtils.success("添加成功"); + } + + @GetMapping("/udiwms/inout/order/filter") + public BaseResponse filterOrder(OrderFilterRequest orderFilterRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + List orderEntityList; + if (orderFilterRequest.getCode() != null && !orderFilterRequest.getCode().equals("")) { + List warehouseEntityList = warehouseService.findByCode(orderFilterRequest.getCode()); + orderEntityList = orderService.filterListByCode(warehouseEntityList); + } else { + orderEntityList = orderService.filterList(orderFilterRequest); + } + PageInfo pageInfo; + pageInfo = new PageInfo<>(orderEntityList); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(orderEntityList); + return ResultVOUtils.success(pageSimpleResponse); + } + + @GetMapping("/udiwms/inout/order/filterCode") + public BaseResponse filterOrderByCode(OrderFilterByCodeRequest orderFilterByCodeRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + List warehouseEntityList = warehouseService.findByCode(orderFilterByCodeRequest.getCode()); + List orderEntityList = orderService.filterListByCode(warehouseEntityList); + PageInfo pageInfo; + pageInfo = new PageInfo<>(orderEntityList); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(orderEntityList); + return ResultVOUtils.success(pageSimpleResponse); + } + + @PostMapping("/udiwms/inout/order/updateExportStatus") + public BaseResponse updateExportStatus(@RequestBody UpdateExportStatusRequest updateExportStatusRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + boolean b = orderService.updateExportStatus(updateExportStatusRequest.getOrderId(), updateExportStatusRequest.getExportStatus()); + if (!b) { + return ResultVOUtils.error(ResultEnum.NOT_NETWORK); + } + return ResultVOUtils.success("更新成功"); + } + + @PostMapping("/warehouse/inout/order/mergeOrder") + public BaseResponse mergeOrder(@RequestBody OrderMergeRequest orderMergeRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + List orderList = orderMergeRequest.getOrderList(); + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("forbidSameErp"); + if (systemParamConfigEntity == null || systemParamConfigEntity.getParamValue().equals("0")) { + List mergeList = new ArrayList<>(); + if (orderList != null && orderList.size() > 1) { + for (String orderId : orderList) { + FilterErpOrderRequest filterErpOrderRequest = new FilterErpOrderRequest(); + filterErpOrderRequest.setOrderId(orderId); + List erpOrderEntities = myErpOrderService.filterAllMyErpOrder(filterErpOrderRequest); + if (erpOrderEntities != null && erpOrderEntities.size() > 0) { + mergeList.addAll(erpOrderEntities); + } + myErpOrderService.deleteByOrderId(orderId); + + } + String mainOrder = orderList.get(0); + for (int i = 1; i < orderList.size(); i++) { + warehouseService.updateOrderId(orderList.get(i), mainOrder); + orderService.deleteByOrderId(orderList.get(i)); + } + OrderEntity mainOrderEntity = orderService.findById(mainOrder); + List docids = getDocids(mergeList); + String docidStr = ""; + if (docids != null && docids.size() > 0) { + for (String temp : docids) { + docidStr = docidStr + "," + temp; + } + docidStr = docidStr.substring(1); + } + mainOrderEntity.setErpFk(docidStr); + orderService.updateOrder(mainOrderEntity); + List erpOrderEntities = new ErpOrderClient(ucloudUrl).getErpOrder(docids); + if (erpOrderEntities != null && erpOrderEntities.size() > 0) { + List returnOrders = new ContrastErpUtil().transErp(erpOrderEntities, udiRelevanceService, mainOrder); + myErpOrderService.insertErpOrders(returnOrders); + List warehouseEntityList = warehouseService.findByReceiptId(mainOrder); + new ContrastErpUtil().contrastErp(udiInfoService, udiRelevanceService, myErpOrderService, orderService, warehouseEntityList, systemParamConfigService); + } else { + orderService.updateContrastStatus(mainOrder, "error"); + orderService.updateRemark(mainOrder, "U8Cloud获取ERP单失败"); + return ResultVOUtils.error(500, "U8Cloud获取ERP单失败"); + } + } else { + return ResultVOUtils.error(ResultEnum.DATA_ERROR); + } + } else { + if (orderList != null && orderList.size() > 1) { + for (String orderId : orderList) { + FilterErpOrderRequest filterErpOrderRequest = new FilterErpOrderRequest(); + filterErpOrderRequest.setOrderId(orderId); + List erpOrderEntities = myErpOrderService.filterAllMyErpOrder(filterErpOrderRequest); + if (erpOrderEntities != null && erpOrderEntities.size() > 0) { + for (ErpOrderEntity erpOrderEntity : erpOrderEntities) { + if (erpOrderEntity.getErpOrderId() != null) { + return ResultVOUtils.error(500, "已校验过订单不能合并!"); + } + } + } + myErpOrderService.deleteByOrderId(orderId); + } + String mainOrder = orderList.get(0); + for (int i = 1; i < orderList.size(); i++) { + warehouseService.updateOrderId(orderList.get(i), mainOrder); + orderService.deleteByOrderId(orderList.get(i)); + } + new Thread(() -> { + List datas = warehouseService.findByReceiptId(mainOrder); + new InoutUtils().generateConstrastDetail(udiInfoService, udiRelevanceService, myErpOrderService, datas); + }).start(); + } + } + + return ResultVOUtils.success("合并成功,后台正在数据转换,请稍后刷新重试!"); + } + + + public List getDocids(List mergeList) { + List docids = new ArrayList<>(); + Map> mapErps = mergeList.stream().collect(Collectors.groupingBy(ErpOrderEntity::getErpOrderId)); + for (String key : mapErps.keySet()) { + docids.add(key); + } + return docids; + } + + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/inout/OrderDetailController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/inout/OrderDetailController.java new file mode 100644 index 00000000..71841088 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/inout/OrderDetailController.java @@ -0,0 +1,266 @@ +package com.glxp.api.admin.controller.inout; + +import com.github.pagehelper.PageInfo; +import com.glxp.api.admin.constant.ConstantStatus; +import com.glxp.api.admin.controller.inout.utils.ContrastErpUtil; +import com.glxp.api.admin.entity.info.SystemParamConfigEntity; +import com.glxp.api.admin.entity.inout.ErpOrderEntity; +import com.glxp.api.admin.entity.inout.FilterErpOrderRequest; +import com.glxp.api.admin.httpclient.ErpOrderClient; +import com.glxp.api.admin.res.inout.PurchaseinResponse; +import com.glxp.api.admin.entity.inout.OrderEntity; +import com.glxp.api.admin.entity.inout.WarehouseEntity; +import com.glxp.api.admin.req.inout.*; +import com.glxp.api.admin.res.PageSimpleResponse; +import com.glxp.api.admin.service.basic.UdiInfoService; +import com.glxp.api.admin.service.basic.UdiRelevanceService; +import com.glxp.api.admin.service.info.SystemParamConfigService; +import com.glxp.api.admin.service.inout.OrderDetailService; +import com.glxp.api.admin.service.inout.OrderService; +import com.glxp.api.admin.service.inout.CodesService; +import com.glxp.api.admin.thread.InvDlErpStockService; +import com.glxp.api.admin.thread.IoTransInoutService; +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.BindingResult; +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 javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@RestController +public class OrderDetailController { + + @Resource + OrderDetailService myErpOrderService; + @Resource + UdiInfoService udiInfoService; + @Resource + CodesService warehouseService; + @Resource + OrderService orderService; + @Resource + private UdiRelevanceService udiRelevanceService; + @Resource + private InvDlErpStockService dlErpStockService; + + + @Resource + private IoTransInoutService transInoutService; + @Autowired + private SystemParamConfigService systemParamConfigService; + + @GetMapping("/udiwms/erpOrder/filter") + public BaseResponse filterErpOrder(FilterOrderRequest filterErpOrderRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("erp_order_query"); + if (systemParamConfigEntity == null) { + return ResultVOUtils.error(500, "ERP出入库单据接口未定义"); + } + return new ErpOrderClient(systemParamConfigEntity.getParamValue()).getErpOrderResponse(filterErpOrderRequest); +// + + } + + + @GetMapping("/warehouse/getMyErpOrders") + public BaseResponse getMyErpOrders(FilterErpOrderRequest filterErpOrderRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + if (filterErpOrderRequest.getDocid() == null || filterErpOrderRequest.getDocid().equals("")) { + filterErpOrderRequest.setDocid("null"); + } + List erpInfoEntityList = myErpOrderService.filterMyErpDetailOrder(filterErpOrderRequest); + PageInfo pageInfo; + pageInfo = new PageInfo<>(erpInfoEntityList); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(erpInfoEntityList); + return ResultVOUtils.success(pageSimpleResponse); + } + + + @PostMapping("/warehouse/deleteErpOrder") + public BaseResponse deleteErpOrder(@RequestBody DeleteRequest deleteRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + boolean b = myErpOrderService.deleteById(deleteRequest.getId()); + if (b) { + return ResultVOUtils.success("删除成功"); + } else { + return ResultVOUtils.error(500, "删除失败"); + } + } + + @GetMapping(value = "/warehouse/inout/order/detail") + public BaseResponse orderDetail(FilterErpOrderRequest filterErpOrderRequest, + BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + if (filterErpOrderRequest.getOrderId() == null || filterErpOrderRequest.getOrderId().equals("")) { + filterErpOrderRequest.setOrderId("1"); + } + filterErpOrderRequest.setPage(1); + filterErpOrderRequest.setLimit(100); + List erpOrderEntities = myErpOrderService.filterMyErpOrder(filterErpOrderRequest); + return ResultVOUtils.success(erpOrderEntities); + } + + @GetMapping(value = "/warehouse/inout/order/uploadOrder") + public BaseResponse uploadOrder(FilterErpOrderRequest filterErpOrderRequest, + BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + if (filterErpOrderRequest.getOrderId() == null || filterErpOrderRequest.getOrderId().equals("")) { + return ResultVOUtils.error(500, "上传失败"); + } + + filterErpOrderRequest.setPage(1); + filterErpOrderRequest.setLimit(100); + List erpOrderEntities = myErpOrderService.filterMyErpOrder(filterErpOrderRequest); + OrderFilterRequest orderFilterRequest = new OrderFilterRequest(); + orderFilterRequest.setId(filterErpOrderRequest.getOrderId()); + OrderEntity orderEntity = orderService.findOne(orderFilterRequest); + if (erpOrderEntities != null) { + for (int i = 0; i < erpOrderEntities.size(); i++) { + if (erpOrderEntities.get(i).getErpOrderId() == null) { + return ResultVOUtils.error(500, "批次号不匹配,请检查后修改!"); + } + + if (erpOrderEntities.get(i).getErpOrderId().contains(",")) { + return ResultVOUtils.error(500, "无法修改合并单据!"); + } + + if (erpOrderEntities.get(i).getCount() > erpOrderEntities.get(i).getErpCount()) { + return ResultVOUtils.error(500, "扫码数量大于实际数量,无法修改!"); + } + } + } + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("erp_order_modify"); + if (systemParamConfigEntity == null) + return ResultVOUtils.error(500, "ERP出入库单据修改接口未定义"); + String url = systemParamConfigEntity.getParamValue(); + Map> listMap = erpOrderEntities.stream().collect(Collectors.groupingBy(ErpOrderEntity::getErpOrderId)); + BaseResponse baseResponse = new ErpOrderClient().postBill(listMap, orderEntity.getAction(), url); + if (baseResponse != null && baseResponse.getCode() == 20000) { + orderService.updateExportStatus(orderEntity.getId(), ConstantStatus.ORDER_EXPORT_ED); + return ResultVOUtils.success("修改成功"); + } else { + if (baseResponse != null) { + return ResultVOUtils.error(500, baseResponse.getMessage()); + } + return ResultVOUtils.error(500, "修改失败"); + } + } + + + @GetMapping("/warehouse/dlErpStock1") + public BaseResponse dlErpStock() { + dlErpStockService.dlErpStock(); + return ResultVOUtils.success("后台已自动更新,请稍后刷新查看!"); + } + + @PostMapping("/warehouse/selectErpOrder") + public BaseResponse selectErpOrder(@RequestBody ImportErpOrderRequest importErpOrderRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + List docids = importErpOrderRequest.getPurchaseinResponses(); + String docidStr = ""; + if (docids != null && docids.size() > 0) { + for (PurchaseinResponse temp : docids) { + docidStr = docidStr + "," + temp.getVbillcode(); + } + docidStr = docidStr.substring(1); + } + List erpOrderEntities = new ArrayList<>(); + if (docids != null && docids.size() > 0) { + for (PurchaseinResponse purchaseinResponse : docids) { + for (PurchaseinResponse.SubPurchase subPurchase : purchaseinResponse.getSubPurchases()) { + ErpOrderEntity erpOrderEntity = new ErpOrderEntity(); + erpOrderEntity.setErpOrderId(purchaseinResponse.getVbillcode()); + erpOrderEntity.setCompanyid(purchaseinResponse.getProvider_code()); + erpOrderEntity.setCompanyname(purchaseinResponse.getProvider_name()); + erpOrderEntity.setCredate(purchaseinResponse.getDbilldate()); + erpOrderEntity.setGoodsid(subPurchase.getInventory_code()); + erpOrderEntity.setGoodsname(subPurchase.getInventory_name()); + erpOrderEntity.setBatchNo(subPurchase.getVbatchcode()); + erpOrderEntity.setErpCount(Math.abs(subPurchase.getDtlgoodsqty())); + erpOrderEntity.setReCount(Math.abs(subPurchase.getReCount())); + erpOrderEntity.setGoodsunit(subPurchase.getInvspec()); + erpOrderEntities.add(erpOrderEntity); + } + } + } + if (erpOrderEntities != null && erpOrderEntities.size() > 0) { + ErpOrderEntity temp = erpOrderEntities.get(0); + for (int i = 0; i < erpOrderEntities.size(); i++) { + if (!temp.getCompanyname().equals(erpOrderEntities.get(i).getCompanyname())) { + return ResultVOUtils.error(500, "选择Erp订单往来单位不一致!"); + } + } + + OrderFilterRequest orderFilterRequest = new OrderFilterRequest(); + orderFilterRequest.setId(importErpOrderRequest.getOrderId()); + OrderEntity orderEntity = orderService.findOne(orderFilterRequest); + ErpOrderEntity exitErp = new ContrastErpUtil().vailErpExit(myErpOrderService, erpOrderEntities, importErpOrderRequest.getOrderId()); + if (exitErp != null) { + String errMsg = "所选ERP单" + exitErp.getErpOrderId() + "已被其他出入库单" + exitErp.getOrderIdFk() + "绑定"; + orderEntity.setRemark(errMsg); + orderService.updateOrder(orderEntity); + return ResultVOUtils.error(500, errMsg); + } else { + orderEntity.setErpFk(docidStr); + orderService.updateOrder(orderEntity); + } + + myErpOrderService.deleteByOrderId(importErpOrderRequest.getOrderId()); + List returnOrders = new ContrastErpUtil().transErp(erpOrderEntities, udiRelevanceService, importErpOrderRequest.getOrderId()); + myErpOrderService.insertErpOrders(returnOrders); + List warehouseEntityList = warehouseService.findByReceiptId(importErpOrderRequest.getOrderId()); + new ContrastErpUtil().contrastErp(udiInfoService, udiRelevanceService, myErpOrderService, orderService, warehouseEntityList, systemParamConfigService); + + + } else { + return ResultVOUtils.error(500, "ERP订单不能为空"); + } + + return ResultVOUtils.success("导入成功"); + } + + + @PostMapping("/warehouse/repeatCheck") + public BaseResponse repeatCheck(@RequestBody FilterErpOrderRequest filterErpOrderRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + OrderFilterRequest orderFilterRequest = new OrderFilterRequest(); + orderFilterRequest.setId(filterErpOrderRequest.getOrderId()); + OrderEntity orderEntity = orderService.findOne(orderFilterRequest); + transInoutService.repeatCheck(orderEntity.getId()); + return ResultVOUtils.success("后台已开始校验,请稍后刷新重试!"); + } + + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/inout/UdiTraceController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/inout/UdiTraceController.java new file mode 100644 index 00000000..52a0d36c --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/inout/UdiTraceController.java @@ -0,0 +1,66 @@ +package com.glxp.api.admin.controller.inout; + +import com.github.pagehelper.PageInfo; +import com.glxp.api.admin.entity.inout.WarehouseEntity; +import com.glxp.api.admin.req.basic.FilterUdiInfoRequest; +import com.glxp.api.admin.req.inout.WarehouseQueryRequest; +import com.glxp.api.admin.res.PageSimpleResponse; +import com.glxp.api.admin.res.basic.UdiRelevanceResponse; +import com.glxp.api.admin.res.basic.UdiTraceResponse; +import com.glxp.api.admin.service.basic.UdiRelevanceService; +import com.glxp.api.admin.service.inout.CodesService; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; +import java.util.stream.Collectors; + +@RestController +public class UdiTraceController { + + @Resource + private CodesService warehouseService; + @Resource + UdiRelevanceService udiRelevanceService; + + @GetMapping("udiwarehouse/trace/filter") + public BaseResponse list(WarehouseQueryRequest warehouseQueryRequest) { + List warehouseEntityList = warehouseService.findByOrderId(warehouseQueryRequest); + if (warehouseEntityList != null && warehouseEntityList.size() > 0) { + WarehouseEntity warehouseEntity = warehouseEntityList.get(0); + String udi = warehouseEntity.getCode().substring(2, 16); + FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest(); + filterUdiInfoRequest.setNameCode(udi); + List udiRelevanceResponses = udiRelevanceService.filterUdiGp(filterUdiInfoRequest); + UdiRelevanceResponse udiRelevance = null; + if (udiRelevanceResponses != null && udiRelevanceResponses.size() > 0) { + udiRelevance = udiRelevanceResponses.get(0); + } + + UdiRelevanceResponse finalUdiRelevance = udiRelevance; + List udiTraceResponseList = warehouseEntityList.stream().map(item -> + { + UdiTraceResponse udiTraceResponse = new UdiTraceResponse(); + BeanUtils.copyProperties(item, udiTraceResponse); + if(finalUdiRelevance!=null){ + udiTraceResponse.setYlqxzcrbarmc(finalUdiRelevance.getYlqxzcrbarmc()); + udiTraceResponse.setCpmctymc(finalUdiRelevance.getCpmctymc()); + udiTraceResponse.setGgxh(finalUdiRelevance.getGgxh()); + } + return udiTraceResponse; + }).collect(Collectors.toList()); + PageInfo pageInfo; + pageInfo = new PageInfo<>(udiTraceResponseList); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(udiTraceResponseList); + return ResultVOUtils.success(pageSimpleResponse); + }else { + return ResultVOUtils.error(500,"未找到该条码!"); + } + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/inout/WareHouseController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/inout/WareHouseController.java new file mode 100644 index 00000000..b9bb925a --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/inout/WareHouseController.java @@ -0,0 +1,138 @@ +package com.glxp.api.admin.controller.inout; + +import com.github.pagehelper.PageInfo; +import com.glxp.api.admin.entity.inout.WarehouseEntity; +import com.glxp.api.admin.req.inout.*; +import com.glxp.api.admin.res.PageSimpleResponse; +import com.glxp.api.admin.res.inout.WarehouseResponse; +import com.glxp.api.admin.service.inout.CodesTempService; +import com.glxp.api.admin.service.inout.CodesService; +import com.glxp.api.admin.thread.IoTransInoutService; +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; +import java.util.stream.Collectors; + +@RestController +public class WareHouseController { + @Resource + private CodesService warehouseService; + @Resource + private IoTransInoutService transInoutService; + @Resource + private CodesTempService codesTempService; + + + @PostMapping("/warehouse/inout/code/deleteCodes") + public BaseResponse deleteCodes(@RequestBody DeleteCodeRequest deleteCodeRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + List codes = deleteCodeRequest.getCodes(); + if (codes != null && codes.size() > 0) { + codesTempService.deleteCodesTemp(codes); + } else { + return ResultVOUtils.error(ResultEnum.DATA_ERROR); + } + return ResultVOUtils.success("删除成功"); + } + + + @GetMapping("admin/warehouse/inout/findByNo") + public BaseResponse findByNo(WarehouseQueryRequest warehouseQueryRequest) { + List warehouseEntityList = warehouseService.findByNo(warehouseQueryRequest); + List warehouseResponses = warehouseEntityList.stream().map(item -> + { + WarehouseResponse warehouseResponse = new WarehouseResponse(); + BeanUtils.copyProperties(item, warehouseResponse); + return warehouseResponse; + }).collect(Collectors.toList()); + PageInfo pageInfo; + pageInfo = new PageInfo<>(warehouseEntityList); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(warehouseResponses); + return ResultVOUtils.success(pageSimpleResponse); + } + + @GetMapping("admin/warehouse/inout/findByOrderId") + public BaseResponse findByOrderId(WarehouseQueryRequest warehouseQueryRequest) { + List warehouseEntityList = warehouseService.findByOrderId(warehouseQueryRequest); + List warehouseResponses = warehouseEntityList.stream().map(item -> + { + WarehouseResponse warehouseResponse = new WarehouseResponse(); + BeanUtils.copyProperties(item, warehouseResponse); + return warehouseResponse; + }).collect(Collectors.toList()); + PageInfo pageInfo; + pageInfo = new PageInfo<>(warehouseEntityList); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(warehouseResponses); + return ResultVOUtils.success(pageSimpleResponse); + } + + @GetMapping("admin/warehouse/inout/findAllByOrderId") + public BaseResponse findAllByOrderId(WarehouseQueryRequest warehouseQueryRequest) { + List warehouseEntityList = warehouseService.findAllByOrderId(warehouseQueryRequest); + List warehouseResponses = warehouseEntityList.stream().map(item -> + { + WarehouseResponse warehouseResponse = new WarehouseResponse(); + BeanUtils.copyProperties(item, warehouseResponse); + return warehouseResponse; + }).collect(Collectors.toList()); + PageInfo pageInfo; + pageInfo = new PageInfo<>(warehouseEntityList); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(warehouseResponses); + return ResultVOUtils.success(pageSimpleResponse); + } + + + @GetMapping("admin/warehouse/inout/findErrorByOrderId") + public BaseResponse findErrorByOrderId(WarehouseQueryRequest warehouseQueryRequest) { + List warehousetempList = codesTempService.findByOrderId(warehouseQueryRequest); + PageInfo pageInfo; + pageInfo = new PageInfo<>(warehousetempList); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(warehousetempList); + return ResultVOUtils.success(pageSimpleResponse); + } + + + @PostMapping("warehouse/inout/postOrders") + public BaseResponse postOrders(@RequestBody PostOrderRequest postOrderRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + try { + transInoutService.creatOrder(postOrderRequest); + } catch (Exception e) { + return ResultVOUtils.error(ResultEnum.NOT_NETWORK); + } + + return ResultVOUtils.success("导入成功"); + } + + @PostMapping("/warehouse/inout/commit") + public BaseResponse commitOrder(@RequestBody CommitRequest commitRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + transInoutService.repeatCommit(commitRequest); + return ResultVOUtils.success("提交成功"); + } + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/inout/utils/ContrastErpUtil.java b/api-admin/src/main/java/com/glxp/api/admin/controller/inout/utils/ContrastErpUtil.java new file mode 100644 index 00000000..6f50d99f --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/inout/utils/ContrastErpUtil.java @@ -0,0 +1,260 @@ +package com.glxp.api.admin.controller.inout.utils; + +import com.glxp.api.admin.constant.ConstantStatus; +import com.glxp.api.admin.entity.basic.UdiInfoEntity; +import com.glxp.api.admin.entity.basic.UdiRelevanceEntity; +import com.glxp.api.admin.entity.info.SystemParamConfigEntity; +import com.glxp.api.admin.entity.inout.OrderEntity; +import com.glxp.api.admin.entity.inout.WarehouseEntity; +import com.glxp.api.admin.entity.inout.ErpOrderEntity; +import com.glxp.api.admin.entity.inout.FilterErpOrderRequest; +import com.glxp.api.admin.req.basic.FilterUdiInfoRequest; +import com.glxp.api.admin.req.inout.OrderFilterRequest; +import com.glxp.api.admin.res.basic.UdiRelevanceResponse; +import com.glxp.api.admin.service.basic.UdiInfoService; +import com.glxp.api.admin.service.basic.UdiRelevanceService; +import com.glxp.api.admin.service.info.SystemParamConfigService; +import com.glxp.api.admin.service.inout.OrderDetailService; +import com.glxp.api.admin.service.inout.OrderService; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ContrastErpUtil { + + int erpTotalCount; + List mErpOrderEntities; + String udiUrl = ""; + + public ContrastErpUtil() { + + } + + public ContrastErpUtil(String udiUrl) { + this.udiUrl = udiUrl; + } + + public void contrastErp(UdiInfoService udiInfoService, UdiRelevanceService udiRelevanceService, + OrderDetailService myErpOrderService, + OrderService orderService, + List warehouseEntityList, SystemParamConfigService setupService) { + String orderIdFk = warehouseEntityList.get(0).getOrderId(); + FilterErpOrderRequest filterErpOrderRequest = new FilterErpOrderRequest(); + filterErpOrderRequest.setOrderId(orderIdFk); + mErpOrderEntities = myErpOrderService.filterAllMyErpOrder(filterErpOrderRequest); + if (mErpOrderEntities != null && mErpOrderEntities.size() > 0) + for (ErpOrderEntity erpOrderEntity : mErpOrderEntities) { + erpTotalCount = erpTotalCount + erpOrderEntity.getErpCount(); + erpOrderEntity.setCount(0); + } + String errMsg = null; + String resultMsg = null; + List errorData = new ArrayList<>(); + for (WarehouseEntity warehouseEntity : warehouseEntityList) { + UdiInfoEntity udiInfoEntity = new InoutUtils(udiUrl).getUdiInfo(udiInfoService, udiRelevanceService, warehouseEntity.getCode()); + if (warehouseEntity.getCount() > 1) { + udiInfoEntity.setCount(warehouseEntity.getCount()); + } + List udiRelevanceEntities = udiRelevanceService.selectByUuid(udiInfoEntity.getUuid()); + if (udiRelevanceEntities != null && udiRelevanceEntities.size() > 0) { + UdiRelevanceEntity udiRelevanceEntity = checkGoodsId(udiRelevanceEntities); + if (udiRelevanceEntity != null) { + udiInfoEntity.setThirdId(udiRelevanceEntity.getThirdId()); + udiInfoEntity.setThirdName(udiRelevanceEntity.getThirdName()); + udiInfoEntity.setWarehouseCode(warehouseEntity.getWarehouseCode()); + errMsg = vaildErpOrder(warehouseEntityList, udiInfoEntity); + if (errMsg != null && (errMsg.equals("产品信息不匹配") || errMsg.equals("非此单产品批次号"))) { + errorData.add(warehouseEntity); + } + } else { + errMsg = "产品信息不匹配"; + errorData.add(warehouseEntity); + } + } else { + errMsg = "产品信息未维护"; + errorData.add(warehouseEntity); + } + if (resultMsg == null && errMsg != null) { + resultMsg = errMsg; + } + + } + myErpOrderService.insertErpOrders(mErpOrderEntities); + OrderFilterRequest orderFilterRequest = new OrderFilterRequest(); + orderFilterRequest.setId(orderIdFk); + OrderEntity orderEntity = orderService.findOne(orderFilterRequest); + ErpOrderEntity vailExitMsg = vailErpExit(myErpOrderService, mErpOrderEntities, orderIdFk); + SystemParamConfigEntity systemParamConfigEntity = setupService.selectByParamKey("forbidSameErp"); + if (vailExitMsg != null && systemParamConfigEntity!=null && systemParamConfigEntity.getParamValue().equals("1")) { + errMsg = "所选ERP单" + vailExitMsg.getErpOrderId() + "已被其他出入库单" + vailExitMsg.getOrderIdFk() + "绑定!"; + } + if (mErpOrderEntities != null && mErpOrderEntities.size() > 0) + for (ErpOrderEntity erpOrderEntity : mErpOrderEntities) { + if (erpOrderEntity.getErpCount() != erpOrderEntity.getCount()) { + errMsg = "所选ERP单" + erpOrderEntity.getErpOrderId() + "下" + erpOrderEntity.getGoodsname() + "数量不匹配"; + } + } + + if (errMsg != null) { + orderEntity.setContrastStatus(ConstantStatus.ORDER_CHECK_FAIL); + orderEntity.setRemark(errMsg); + } else { + orderEntity.setContrastStatus(ConstantStatus.ORDER_CHECK_SUCCESS); + } + orderService.updateOrder(orderEntity); + if (errorData.size() > 0) { + new InoutUtils(udiUrl).generateConstrastDetail(udiInfoService, udiRelevanceService, myErpOrderService, errorData); + } + } + + public UdiRelevanceEntity checkGoodsId(List udiRelevanceEntities) { + if (mErpOrderEntities.size() > 0) { + for (ErpOrderEntity erpOrderEntity : mErpOrderEntities) { + for (UdiRelevanceEntity udiRelevanceEntity : udiRelevanceEntities) { + if (erpOrderEntity.getGoodsid().equals(udiRelevanceEntity.getThirdId())) { + return udiRelevanceEntity; + } + } + } + } + return null; + } + + public int getSelectedCount(List warehouseEntityList) { + int total = 0; + for (WarehouseEntity warehouseEntity : warehouseEntityList) { + total = total + warehouseEntity.getCount(); + } + return total; + } + + //验证产品ID,批次号,仓位号 + public String vaildErpOrder(List warehouseEntityList, UdiInfoEntity udiInfoEntity) { + String errMsg = "产品信息不匹配"; + if (mErpOrderEntities.size() > 0) { + for (ErpOrderEntity erpOrderEntity : mErpOrderEntities) { + errMsg = isPass(erpOrderEntity, udiInfoEntity); + if (errMsg == null) { + int erpCount = erpOrderEntity.getCount() + udiInfoEntity.getCount(); + if (erpOrderEntity.getErpCount() != erpCount) { + erpOrderEntity.setCount(erpCount); + if (erpOrderEntity.getErpCount() != erpCount) + return "该" + udiInfoEntity.getBatchNo() + "批次号下" + udiInfoEntity.getCpmctymc() + "订单数目不匹配"; + } + erpOrderEntity.setCount(erpCount); + return null; + } + } + } + if (errMsg == null && getSelectedCount(warehouseEntityList) + udiInfoEntity.getCount() != erpTotalCount) { + return "订单数目匹配失败"; + } + return errMsg; + } + + public String isPass(ErpOrderEntity erpOrderEntity, UdiInfoEntity udiInfoEntity) { + String errMsg = null; + if (erpOrderEntity.getBatchNo().equals(udiInfoEntity.getBatchNo())) { + if (erpOrderEntity.getGoodsid().equals(udiInfoEntity.getThirdId())) { + if (erpOrderEntity.getWarehouseCode() != null && udiInfoEntity.getWarehouseCode() != null) { + if (erpOrderEntity.getWarehouseCode().equals(udiInfoEntity.getWarehouseCode())) { + return null; + } else + errMsg = "仓位号不匹配"; + } else + return null; + } else + errMsg = "产品信息不匹配"; + } else { + errMsg = "非此单产品批次号"; + } + return errMsg; + } + + public List transErp(List erpOrderEntities, UdiRelevanceService udiRelevanceService, String orderFk) { + List returnOrders = new ArrayList<>(); + Map filterMap = new HashMap<>(); + if (erpOrderEntities != null && erpOrderEntities.size() > 0) { + for (ErpOrderEntity erpOrderEntity : erpOrderEntities) { + + FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest(); + filterUdiInfoRequest.setThirdId(erpOrderEntity.getGoodsid()); + filterUdiInfoRequest.setPage(1); + filterUdiInfoRequest.setLimit(100); + List udiRelevanceResponses = udiRelevanceService.filterUdiRelevance(filterUdiInfoRequest); + + if (udiRelevanceResponses != null && udiRelevanceResponses.size() > 0) { + UdiRelevanceResponse temp = udiRelevanceResponses.get(0); + erpOrderEntity.setCoName(temp.getCpmctymc()); + erpOrderEntity.setAuthCode(temp.getZczbhhzbapzbh()); + erpOrderEntity.setPackSpec(temp.getGgxh()); + erpOrderEntity.setPackRatio(temp.getPackRatio()); + erpOrderEntity.setProductCompany(temp.getYlqxzcrbarmc()); + erpOrderEntity.setOrderIdFk(orderFk); + } + erpOrderEntity.setOrderIdFk(orderFk); + String key = erpOrderEntity.getBatchNo() + erpOrderEntity.getGoodsid() + erpOrderEntity.getWarehouseCode(); + ErpOrderEntity filterTemp = filterMap.get(key); + if (filterTemp != null) { + filterTemp.setErpCount(filterTemp.getErpCount() + erpOrderEntity.getErpCount()); + filterTemp.setErpOrderId(filterTemp.getErpOrderId() + "," + erpOrderEntity.getErpOrderId()); + } else { + filterTemp = erpOrderEntity; + } + filterMap.put(key, filterTemp); + } + for (Map.Entry entry : filterMap.entrySet()) { + returnOrders.add(entry.getValue()); + } + } + + + return returnOrders; + } + + + public List getDocids(List erpOrderEntities) { + Map filter = new HashMap<>(); + List docids = new ArrayList<>(); + for (ErpOrderEntity erpOrderEntity : erpOrderEntities) { + + if (erpOrderEntity.getErpOrderId().contains(",")) { + String[] dociArray = erpOrderEntity.getErpOrderId().split(","); + if (dociArray != null && dociArray.length > 0) { + for (int i = 0; i < dociArray.length; i++) { + filter.put(dociArray[i], dociArray[i]); + } + } + } else { + filter.put(erpOrderEntity.getErpOrderId(), erpOrderEntity.getErpOrderId()); + } + } + for (String docid : filter.keySet()) { + docids.add(docid); + } + return docids; + } + + //校验Erp单是否存在 + public ErpOrderEntity vailErpExit(OrderDetailService myErpOrderService, List erpOrderEntities, String orderId) { + if (erpOrderEntities != null && erpOrderEntities.size() > 0) { + FilterErpOrderRequest filterErpOrderRequest = new FilterErpOrderRequest(); + filterErpOrderRequest.setOrderId(orderId); + List docids = myErpOrderService.filterAllDocidE(filterErpOrderRequest); + List bDocids = getDocids(erpOrderEntities); + if (docids != null && docids.size() > 0) { + for (ErpOrderEntity docid : docids) { + for (String temp : bDocids) { + if (docid.getErpOrderId() != null && docid.getErpOrderId().contains(temp)) { + return docid; + } + } + } + } + return null; + } + return null; + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/inout/utils/DataTransUtil.java b/api-admin/src/main/java/com/glxp/api/admin/controller/inout/utils/DataTransUtil.java new file mode 100644 index 00000000..8ff98596 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/inout/utils/DataTransUtil.java @@ -0,0 +1,39 @@ +package com.glxp.api.admin.controller.inout.utils; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +public class DataTransUtil { + + public static String erpListToStr(List erpIdList) { + if (erpIdList != null && erpIdList.size() > 0) { + List erpIds = erpIdList.stream().distinct().collect(Collectors.toList()); + String str = ""; + for (String erpId : erpIds) { + str = "," + str; + } + return str.substring(1); + } else + return null; + } + + public static String[] strToErpArray(String erpFk) { + if (erpFk != null && erpFk.length() > 0) { + return erpFk.split(","); + } else + return null; + } + + public static List strToErpList(String erpFk) { + if (erpFk != null && erpFk.length() > 0) { + String[] erpArray = erpFk.split(","); + List erpList = new ArrayList<>(); + for (int i = 0; i < erpArray.length; i++) { + erpList.add(erpArray[i]); + } + return erpList; + } else + return null; + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/inout/utils/InoutUtils.java b/api-admin/src/main/java/com/glxp/api/admin/controller/inout/utils/InoutUtils.java new file mode 100644 index 00000000..2b5bb67f --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/inout/utils/InoutUtils.java @@ -0,0 +1,226 @@ +package com.glxp.api.admin.controller.inout.utils; + +import com.glxp.api.admin.constant.ConstantType; +import com.glxp.api.admin.entity.info.SystemParamConfigEntity; +import com.glxp.api.admin.httpclient.UdiDlHttpClient; +import com.glxp.api.admin.entity.basic.UdiInfoEntity; +import com.glxp.api.admin.entity.basic.UdiRelevanceEntity; +import com.glxp.api.admin.entity.inout.WarehouseEntity; +import com.glxp.api.admin.entity.basic.UdiEntity; +import com.glxp.api.admin.entity.inout.ErpOrderEntity; +import com.glxp.api.admin.service.basic.UdiInfoService; +import com.glxp.api.admin.service.basic.UdiRelevanceService; +import com.glxp.api.admin.service.info.SystemParamConfigService; +import com.glxp.api.admin.service.inout.OrderDetailService; +import com.glxp.api.admin.service.inout.CodesService; +import com.glxp.api.admin.util.DateUtil; +import com.glxp.api.admin.util.FilterUdiUtils; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class InoutUtils { + String udiUrl = ""; + + public InoutUtils() { + + } + + public InoutUtils(String udiUrl) { + this.udiUrl = udiUrl; + } + + public String filterCode(CodesService warehouseService, WarehouseEntity warehouseData, SystemParamConfigService setupService) { + List warehouseEntityList = warehouseService.findByCode(warehouseData.getCode()); + if (warehouseEntityList == null || warehouseEntityList.size() == 0) { //数据库为null,可以添加 + return nullVail(warehouseData, setupService); + } + List inList = new ArrayList<>(); + List outList = new ArrayList<>(); + if (warehouseEntityList != null && warehouseEntityList.size() > 0) { + for (int i = 0; i < warehouseEntityList.size(); i++) { + WarehouseEntity temp = warehouseEntityList.get(i); + if (temp.getAction().equals(ConstantType.TYPE_CODE_DESTORY)) { //过滤已销毁的 + return getErrMsg(temp); + } + if (temp.getAction().equals(ConstantType.TYPE_STOCK_CHECK)) { //过滤已盘点 + if (warehouseData.getAction().equals(ConstantType.TYPE_STOCK_CHECK)) { + return warehouseData.getCode() + "该码已盘点"; + } + } + if (temp.getMainAction().equals(ConstantType.TYPE_OUT)) { + outList.add(temp); + } else if (temp.getMainAction().equals(ConstantType.TYPE_PUT)) { + inList.add(temp); + } + } + //如果序列号未null则不判断是否重码 + UdiEntity udiEntity = FilterUdiUtils.getUdi(warehouseData.getCode()); + if (udiEntity.getSerialNo() == null) { + return null; + } + //如果数据库存在1个出库,则可以再录入1个入库;(同理:存在4个出库,3个入库,则可以再录入1个入库) + if (outList.size() - inList.size() == 1) { + if (warehouseData.getMainAction().equals(ConstantType.TYPE_PUT)) { + return null; + } + } else if (inList.size() - outList.size() == 1) { + if (warehouseData.getMainAction().equals(ConstantType.TYPE_OUT)) { + return null; + } + } else if (inList.size() - outList.size() == 0) { + return nullVail(warehouseData, setupService); + } else { + return "订单:" + warehouseData.getOrderId() + "已存在" + warehouseData.getCode(); + } + return warehouseData.getCode() + "条码重复"; + } + + + return null; + } + + public String nullVail(WarehouseEntity warehousetemp, SystemParamConfigService configService) { + if (warehousetemp.getAction().equals(ConstantType.TYPE_PUT_RETURN)) { + SystemParamConfigEntity systemParamConfigEntity = configService.selectByParamKey("isReturnWareHouseIn"); + if (systemParamConfigEntity==null || "0".equals(systemParamConfigEntity.getParamValue())) { + return null; + } else { + return warehousetemp.getCode() + "不允许未销售出库可以退货入库"; + } + } else if (warehousetemp.getAction().equals(ConstantType.TYPE_OUT_RETURN)) { + SystemParamConfigEntity systemParamConfigEntity = configService.selectByParamKey("isReturnWareHouseOut"); + if (systemParamConfigEntity==null || "0".equals(systemParamConfigEntity.getParamValue())) { + return null; + } else { + return warehousetemp.getCode() + "不允许零库存退货出库"; + } + } else if (warehousetemp.getAction().equals(ConstantType.TYPE_OUT_SALE)) { + SystemParamConfigEntity systemParamConfigEntity = configService.selectByParamKey("isSalesWareHouseOut"); + if (systemParamConfigEntity==null || "0".equals(systemParamConfigEntity.getParamValue())) { + return null; + } else { + return warehousetemp.getCode() + "不允许零库存销售出库"; + } + } + return null; + } + + public String getErrMsg(WarehouseEntity warehousetemp) { + if (warehousetemp.getAction().equals(ConstantType.TYPE_PUT_PRODUCT)) { + return warehousetemp.getCode() + "已生产入库"; + } else if (warehousetemp.getAction().equals(ConstantType.TYPE_PUT_PURCHASE)) { + return warehousetemp.getCode() + "已采购入库"; + } else if (warehousetemp.getAction().equals(ConstantType.TYPE_PUT_RETURN)) { + return warehousetemp.getCode() + "已退货入库"; + } else if (warehousetemp.getAction().equals(ConstantType.TYPE_PUT_ALLOT)) { + return warehousetemp.getCode() + "已调拨入库"; + } else if (warehousetemp.getAction().equals(ConstantType.TYPE_OUT_SALE)) { + return warehousetemp.getCode() + "已销售出库"; + } else if (warehousetemp.getAction().equals(ConstantType.TYPE_OUT_RETURN)) { + return warehousetemp.getCode() + "已退货出库"; + } else if (warehousetemp.getAction().equals(ConstantType.TYPE_OUT_ALLOT)) { + return warehousetemp.getCode() + "已调拨出库"; + } else if (warehousetemp.getAction().equals(ConstantType.TYPE_OUT_DESTORY)) { + return warehousetemp.getCode() + "已销毁出库"; + } else if (warehousetemp.getAction().equals(ConstantType.TYPE_OUT_STRAIGHT)) { + return warehousetemp.getCode() + "已直调出库"; + } else if (warehousetemp.getAction().equals(ConstantType.TYPE_OUT_REWORK)) { + return warehousetemp.getCode() + "已返工出库"; + } else if (warehousetemp.getAction().equals(ConstantType.TYPE_OUT_CHECK)) { + return warehousetemp.getCode() + "已抽检出库"; + } else if (warehousetemp.getAction().equals(ConstantType.TYPE_CODE_DESTORY)) { + return warehousetemp.getCode() + "已销毁"; + } + return warehousetemp.getCode() + "出错"; + } + + + public UdiInfoEntity getUdiInfo(UdiInfoService udiInfoService, UdiRelevanceService udiRelevanceService, String code) { + String prefix; + prefix = FilterUdiUtils.getDiStr(code); + UdiInfoEntity udiInfoEntity = udiInfoService.findByNameCode(prefix); + if (udiInfoEntity == null) { + List froms = new UdiDlHttpClient(udiUrl).getUdiByDi(prefix); + if (froms != null && !froms.isEmpty()) { + udiInfoService.insertUdiInfos(froms); + udiInfoEntity = udiInfoService.findByNameCode(prefix); + UdiRelevanceEntity udiRelevanceEntity = new UdiRelevanceEntity(); + udiRelevanceEntity.setUuid(udiInfoEntity.getUuid()); + udiRelevanceEntity.setUpdateTime(DateUtil.getDateTime()); + udiRelevanceService.insertUdiRelevance(udiRelevanceEntity); + } else { + udiInfoEntity = new UdiInfoEntity(); + } + } + + udiInfoEntity.setCode(code); + udiInfoEntity = FilterUdiUtils.transUdi(udiInfoEntity); + return udiInfoEntity; + } + + public void generateConstrastDetail(UdiInfoService udiInfoService, UdiRelevanceService udiRelevanceService, + OrderDetailService myErpOrderService, + List warehouseEntityList) { + if (warehouseEntityList != null && warehouseEntityList.size() > 0) { + List udiInfoEntities = new ArrayList<>(); + for (WarehouseEntity warehouseEntity : warehouseEntityList) { + UdiInfoEntity udiInfoEntity = getUdiInfo(udiInfoService, udiRelevanceService, warehouseEntity.getCode()); + if (udiInfoEntity != null) { + if (warehouseEntity.getCount() != null) + udiInfoEntity.setCount(warehouseEntity.getCount()); + else { + udiInfoEntity.setCount(getActCount(udiInfoEntity)); + } + udiInfoEntities.add(udiInfoEntity); + } + } + + List returnOrderDetail = new ArrayList<>(); + Map sortMaps = new HashMap<>(); + for (UdiInfoEntity detailCodeEntity : udiInfoEntities) { + String key = detailCodeEntity.getNameCode(); + UdiInfoEntity temp = sortMaps.get(key); + if (temp != null) { + detailCodeEntity.setCount(temp.getCount() + detailCodeEntity.getCount()); + } + sortMaps.put(key, detailCodeEntity); + } + + for (Map.Entry entry : sortMaps.entrySet()) { + System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue()); + returnOrderDetail.add(entry.getValue()); + } + + List erpOrderEntities = new ArrayList<>(); + for (UdiInfoEntity erpDetailCodeEntity : returnOrderDetail) { + ErpOrderEntity erpOrderEntity = new ErpOrderEntity(); + erpOrderEntity.setNameCode(erpDetailCodeEntity.getNameCode()); + erpOrderEntity.setPackRatio(erpDetailCodeEntity.getPackRatio()); + erpOrderEntity.setCoName(erpDetailCodeEntity.getCpmctymc()); + erpOrderEntity.setBatchNo(erpDetailCodeEntity.getBatchNo()); + erpOrderEntity.setCount(erpDetailCodeEntity.getCount()); + erpOrderEntity.setOrderIdFk(warehouseEntityList.get(0).getOrderId()); + erpOrderEntity.setProductCompany(erpDetailCodeEntity.getYlqxzcrbarmc()); + erpOrderEntity.setAuthCode(erpDetailCodeEntity.getZczbhhzbapzbh()); + erpOrderEntity.setPackSpec(erpDetailCodeEntity.getGgxh()); + erpOrderEntities.add(erpOrderEntity); + } + if (!erpOrderEntities.isEmpty()) + myErpOrderService.insertErpOrders(erpOrderEntities); + } + } + + public int getActCount(UdiInfoEntity udiInfoBean) { + if (udiInfoBean != null) { + if (udiInfoBean.getZxxsbzbhsydysl() > 1) { + return udiInfoBean.getZxxsbzbhsydysl() * udiInfoBean.getBhzxxsbzsl(); + } else { + return udiInfoBean.getBhzxxsbzsl(); + } + } + return 1; + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/inout/utils/TransInoutUtil.java b/api-admin/src/main/java/com/glxp/api/admin/controller/inout/utils/TransInoutUtil.java new file mode 100644 index 00000000..d0c51d07 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/inout/utils/TransInoutUtil.java @@ -0,0 +1,4 @@ +package com.glxp.api.admin.controller.inout.utils; + +public class TransInoutUtil { +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvCheckController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvCheckController.java new file mode 100644 index 00000000..c1ddacb7 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvCheckController.java @@ -0,0 +1,189 @@ +package com.glxp.api.admin.controller.inventory; + +import com.github.pagehelper.PageInfo; +import com.glxp.api.admin.constant.ConstantType; +import com.glxp.api.admin.entity.inout.OrderEntity; +import com.glxp.api.admin.entity.inout.StockCheckEntity; +import com.glxp.api.admin.entity.inout.ErpOrderEntity; +import com.glxp.api.admin.entity.inout.FilterErpOrderRequest; +import com.glxp.api.admin.req.inout.DeleteRequest; +import com.glxp.api.admin.req.inout.FilterStockCheckRequest; +import com.glxp.api.admin.req.inout.OrderFilterRequest; +import com.glxp.api.admin.res.PageSimpleResponse; +import com.glxp.api.admin.service.inout.OrderDetailService; +import com.glxp.api.admin.service.inout.OrderService; +import com.glxp.api.admin.service.inventory.InvOrderCheckService; +import com.glxp.api.admin.thread.InvImportStockService; +import com.glxp.api.admin.util.DateUtil; +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import org.springframework.validation.BindingResult; +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 javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@RestController +public class InvCheckController { + + @Resource + private OrderService orderService; + @Resource + private InvOrderCheckService stockCheckService; + @Resource + private InvImportStockService importStockService; + @Resource + private OrderDetailService myErpOrderService; + + + @GetMapping("/udiwarehouse/stockCheck/filter") + public BaseResponse filter(FilterStockCheckRequest filterStockCheckRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + List stockCheckEntities + = stockCheckService.filterStockCheck(filterStockCheckRequest); + PageInfo pageInfo; + pageInfo = new PageInfo<>(stockCheckEntities); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(stockCheckEntities); + return ResultVOUtils.success(pageSimpleResponse); + } + + + @GetMapping("/udiwarehouse/stockCheck/getDetail") + public BaseResponse getDetail(FilterStockCheckRequest filterStockCheckRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + List orderIds = getOrderIds(filterStockCheckRequest.getId() + ""); + List erpOrderEntities = new ArrayList<>(); + if (orderIds.size() > 0) { + FilterErpOrderRequest filterErpOrderRequest = new FilterErpOrderRequest(); + filterErpOrderRequest.setPage(1); + filterErpOrderRequest.setLimit(100); + filterErpOrderRequest.setOrderIds(orderIds); + erpOrderEntities = myErpOrderService.findByStockCheck(filterErpOrderRequest); + if (isRepeat(erpOrderEntities)) { + Map> groupBy = erpOrderEntities.stream().collect(Collectors.groupingBy(ErpOrderEntity::getNameCode)); + for (List combines : groupBy.values()) { + ErpOrderEntity erpOrderEntity = combines.get(0); + if (combines.size() > 1) { + for (int i = 1; i < combines.size(); i++) { + erpOrderEntity.setCount(erpOrderEntity.getCount() + combines.get(i).getCount()); + myErpOrderService.deleteByPrimiyId(combines.get(i).getId() + ""); + } + } + myErpOrderService.updateErpOrder(erpOrderEntity); + } + erpOrderEntities = myErpOrderService.findByStockCheck(filterErpOrderRequest); + } + } + + + PageInfo pageInfo; + pageInfo = new PageInfo<>(erpOrderEntities); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(erpOrderEntities); + return ResultVOUtils.success(pageSimpleResponse); + } + + + public List getOrderIds(String checkId) { + OrderFilterRequest orderFilterRequest = new OrderFilterRequest(); + orderFilterRequest.setAction(ConstantType.TYPE_STOCK_CHECK); + orderFilterRequest.setStockCheckFk(checkId + ""); + List orderEntities = orderService.findAllOrders(orderFilterRequest); + List orderIds = new ArrayList<>(); + if (orderEntities != null) { + for (OrderEntity orderEntity : orderEntities) { + orderIds.add(orderEntity.getId()); + } + } + return orderIds; + } + + private boolean isRepeat(List erpOrderEntities) { + List stringList = erpOrderEntities.stream().map(ErpOrderEntity::getNameCode) + .collect(Collectors.toList()); + long count = stringList.stream().distinct().count(); + if (stringList.size() == count) { + return false; + } else { + return true; + } + } + + @GetMapping("/udiwarehouse/stockCheck/checkErp") + public BaseResponse checkErp(FilterStockCheckRequest filterStockCheckRequest, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + importStockService.checkStock(filterStockCheckRequest); + + return ResultVOUtils.success("后台已开启库存盘点校验,请稍后刷新查看"); + } + + + @GetMapping("/udiwarehouse/stockCheck/create") + public BaseResponse createStockCheck() { + + FilterStockCheckRequest filterStockCheckRequest = new FilterStockCheckRequest(); + filterStockCheckRequest.setStatus("正在盘点"); + List stockCheckEntities = stockCheckService.filterStockCheck(filterStockCheckRequest); + if (stockCheckEntities != null && stockCheckEntities.size() > 0) { + return ResultVOUtils.error(500, "当前有盘点单正在进行,无法创建新盘点单!"); + } + StockCheckEntity stockCheckEntity = new StockCheckEntity(); + stockCheckEntity.setActDate(DateUtil.getDateTime()); + stockCheckEntity.setAction(ConstantType.TYPE_STOCK_CHECK); + stockCheckEntity.setStatus("正在盘点"); + stockCheckService.insertStockCheck(stockCheckEntity); + return ResultVOUtils.success("创建成功"); + } + + @PostMapping("/udiwarehouse/stockCheck/finish") + public BaseResponse finishStockCheck(@RequestBody StockCheckEntity stockCheckEntity, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + stockCheckEntity.setEndTime(DateUtil.getDateTime()); + stockCheckEntity.setStatus("盘点完成"); + stockCheckService.updateStockCheck(stockCheckEntity); + return ResultVOUtils.success("更新成功"); + } + + + @PostMapping("/udiwarehouse/stockCheck/delete") + public BaseResponse deleteStockCheck(@RequestBody DeleteRequest deleteRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + stockCheckService.deleteById(deleteRequest.getId()); + List orderIds = getOrderIds(deleteRequest.getId() + ""); + if (orderIds.size() > 0) { + for (String id : orderIds) { + orderService.deleteById(id); + myErpOrderService.deleteByOrderId(id); + } + } + + return ResultVOUtils.success("删除成功"); + } + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvErpOnhandController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvErpOnhandController.java new file mode 100644 index 00000000..101282cf --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvErpOnhandController.java @@ -0,0 +1,115 @@ +package com.glxp.api.admin.controller.inventory; + +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.TypeReference; +import com.glxp.api.admin.entity.basic.UdiRelevanceEntity; +import com.glxp.api.admin.entity.basic.UdiEntity; +import com.glxp.api.admin.req.basic.FilterUdiInfoRequest; +import com.glxp.api.admin.req.basic.UOnhandQueryRequest; +import com.glxp.api.admin.res.PageSimpleResponse; +import com.glxp.api.admin.res.basic.UOnhandQueryResponse; +import com.glxp.api.admin.res.basic.UdiRelevanceResponse; +import com.glxp.api.admin.service.basic.UdiRelevanceService; +import com.glxp.api.admin.util.FilterUdiUtils; +import com.glxp.api.admin.util.HttpClient; +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController +public class InvErpOnhandController { + + @Value("${UCLOD_SERVER_URL}") + private String ucloudUrl; + @Resource + UdiRelevanceService udiRelevanceService; + + + + @GetMapping("/warehouse/ucloud/onHand") + public BaseResponse getOnhand(UOnhandQueryRequest onhandQueryRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + if (onhandQueryRequest.getUdiCode() != null) { + UdiEntity udiEntity = FilterUdiUtils.getUdi(onhandQueryRequest.getUdiCode()); + if (udiEntity != null) { + UdiRelevanceResponse udiRelevanceResponse = findByNamecode(udiEntity.getUdi()); + if (udiRelevanceResponse != null) { + String thirdId = udiRelevanceResponse.getThirdId(); + onhandQueryRequest.setInventory(thirdId); + onhandQueryRequest.setBatchcode(udiEntity.getBatchNo()); + + } else { + return ResultVOUtils.error(500, "产品信息未维护!"); + } + + } else { + return ResultVOUtils.error(500, "无效UDI码"); + + } + } else if (onhandQueryRequest.getNameCode() != null) { + UdiRelevanceResponse udiRelevanceResponse = findByNamecode(onhandQueryRequest.getNameCode()); + onhandQueryRequest.setInventory(udiRelevanceResponse.getThirdId()); + } + + Map paramMap = new HashMap<>(16); + if (onhandQueryRequest.getBatchcode() != null && !onhandQueryRequest.getBatchcode().equals("")) + paramMap.put("batchcode", onhandQueryRequest.getBatchcode()); + if (onhandQueryRequest.getWarehouse() != null && !onhandQueryRequest.getWarehouse().equals("")) + paramMap.put("warehouse", onhandQueryRequest.getWarehouse()); + if (onhandQueryRequest.getIsGroupByBatchcode() != null && !onhandQueryRequest.getIsGroupByBatchcode().equals("")) + paramMap.put("isGroupByBatchcode", onhandQueryRequest.getIsGroupByBatchcode()); + if (onhandQueryRequest.getNumcondition() != null && !onhandQueryRequest.getNumcondition().equals("")) + paramMap.put("numcondition", onhandQueryRequest.getNumcondition()); + paramMap.put("inventory", onhandQueryRequest.getInventory()); + + + String response = HttpClient.mipsGet(ucloudUrl + "/uclooud/basic/onhandQuery", paramMap); + try { + BaseResponse> onHandsResponse = + JSONObject.parseObject(response, new TypeReference>>() { + }); + List invmandocResponses = onHandsResponse.getData().getList(); + for (UOnhandQueryResponse invmandocResponse : invmandocResponses) { + UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectByThirdId(invmandocResponse.getCinventory_code()); + if (udiRelevanceEntity != null) { + invmandocResponse.setChecked(true); + } else { + invmandocResponse.setChecked(false); + } + + } + return onHandsResponse; + } catch (Exception e) { + e.printStackTrace(); + return ResultVOUtils.error(500, "连接U8云下载服务出错!"); + } + } + + + public UdiRelevanceResponse findByNamecode(String udi) { + FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest(); + filterUdiInfoRequest.setNameCode(udi); + List udiRelevanceResponses = udiRelevanceService.filterUdiGp(filterUdiInfoRequest); + if (udiRelevanceResponses != null && udiRelevanceResponses.size() > 0) { + return udiRelevanceResponses.get(0); + } else { + return null; + } + } + + + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvPrintController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvPrintController.java new file mode 100644 index 00000000..117fec95 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvPrintController.java @@ -0,0 +1,208 @@ +package com.glxp.api.admin.controller.inventory; + +import com.github.pagehelper.PageInfo; +import com.glxp.api.admin.entity.info.SystemParamConfigEntity; +import com.glxp.api.admin.httpclient.ErpInvClient; +import com.glxp.api.admin.req.inventory.ErpOnhandRequest; +import com.glxp.api.admin.res.inout.PurchaseinResponse; +import com.glxp.api.admin.entity.basic.ErpStockEntity; +import com.glxp.api.admin.entity.basic.StockPrintEntity; +import com.glxp.api.admin.req.basic.FilterStockprintRequest; +import com.glxp.api.admin.req.basic.UpdatePrintStatusRequest; +import com.glxp.api.admin.req.inout.DeleteRequest; +import com.glxp.api.admin.req.inout.ImportErpOrderRequest; +import com.glxp.api.admin.res.PageSimpleResponse; +import com.glxp.api.admin.res.inventory.ErpOnHandResponse; +import com.glxp.api.admin.service.inventory.InvErpStockService; +import com.glxp.api.admin.service.inventory.InvStockPrintService; +import com.glxp.api.admin.service.info.SystemParamConfigService; +import com.glxp.api.admin.thread.InvDlErpStockService; +import com.glxp.api.admin.thread.InvImportStockService; +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +@RestController +public class InvPrintController { + @Resource + InvStockPrintService stockPrintService; + @Resource + InvImportStockService importStockService; + @Resource + private InvDlErpStockService dlErpStockService; + @Resource + private InvErpStockService erpStockService; + @Resource + private SystemParamConfigService systemParamConfigService; + + @PostMapping("/udiwarehouse/stockPrint/filter") + public BaseResponse filterAll(@RequestBody FilterStockprintRequest stockprintRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + List stockPrintEntities + = stockPrintService.filterStockPrint(stockprintRequest); + PageInfo pageInfo; + pageInfo = new PageInfo<>(stockPrintEntities); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(stockPrintEntities); + return ResultVOUtils.success(pageSimpleResponse); + } + + @GetMapping("/udiwarehouse/stockPrint/getFilter") + public BaseResponse getFilter(FilterStockprintRequest stockprintRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + List stockPrintEntities + = stockPrintService.filterStockPrint(stockprintRequest); + PageInfo pageInfo; + pageInfo = new PageInfo<>(stockPrintEntities); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(stockPrintEntities); + return ResultVOUtils.success(pageSimpleResponse); + } + + + @GetMapping("/udiwarehouse/stockPrint/filterNum") + public BaseResponse filterNum(FilterStockprintRequest stockprintRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("erp_onhand_query"); + String onHandUrl; + if (systemParamConfigEntity == null) + return ResultVOUtils.error(500, "ERP产品信息接口地址未定义"); + else onHandUrl = systemParamConfigEntity.getParamValue(); + + List stockPrintEntities + = stockPrintService.filterStockPrint(stockprintRequest); + if (stockPrintEntities != null) { + for (StockPrintEntity stockPrintEntity : stockPrintEntities) { + ErpOnhandRequest erpOnhandRequest = new ErpOnhandRequest(); + erpOnhandRequest.setInventoryCode(stockPrintEntity.getThirdId()); + List erpOnHandResponses = new ErpInvClient().getOnHand(erpOnhandRequest, onHandUrl); + if (erpOnHandResponses != null && erpOnHandResponses.size() > 0) { + for (ErpOnHandResponse onhandQueryResponse : erpOnHandResponses) { + if (onhandQueryResponse.getBatchNo().equals(stockPrintEntity.getBatchNo()) && onhandQueryResponse.getWarehouseCode().equals(stockPrintEntity.getWarehouseCode())) { + stockPrintEntity.setNnum(onhandQueryResponse.getCount() + ""); + break; + } + } + } + } + } + PageInfo pageInfo; + pageInfo = new PageInfo<>(stockPrintEntities); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(stockPrintEntities); + return ResultVOUtils.success(pageSimpleResponse); + } + + @GetMapping("/udiwarehouse/stockPrint/import") + public BaseResponse importStock() { + importStockService.updateStock(); + return ResultVOUtils.success("后台已开始自动更新,请稍后刷新查看"); + } + + @PostMapping("/udiwarehouse/stockPrint/update") + public BaseResponse updatePrintStatus(@RequestBody UpdatePrintStatusRequest updatePrintStatusRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + List ids = updatePrintStatusRequest.getIds(); + if (ids != null && ids.size() > 0) { + stockPrintService.updatePrintStatus(ids); + } else { + return ResultVOUtils.error(500, "更新数据不能为空"); + } + return ResultVOUtils.success("更新成功"); + } + + + @PostMapping("/udiwarehouse/stockPrint/modify") + public BaseResponse updatePrintStatus(@RequestBody StockPrintEntity stockPrintEntity, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + if (stockPrintEntity.getProduceDate() == null) { + stockPrintEntity.setProduceDate(""); + } + + if (stockPrintEntity.getExpireDate() == null) { + stockPrintEntity.setExpireDate(""); + } + + if (stockPrintEntity.getBatchNo() == null) { + stockPrintEntity.setBatchNo(""); + } + String udiCode = "#" + stockPrintEntity.getNameCode() + "#" + stockPrintEntity.getProduceDate() + "#" + stockPrintEntity.getExpireDate() + + "#" + stockPrintEntity.getBatchNo() + "#" + "#" + stockPrintEntity.getWarehouseCode(); + stockPrintEntity.setUdiCode(udiCode); + stockPrintService.updateStockPrint(stockPrintEntity); + return ResultVOUtils.success("更新成功"); + } + + @PostMapping("/udiwarehouse/stockPrint/delete") + public BaseResponse deletePrintStatus(@RequestBody DeleteRequest deleteRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + stockPrintService.deleteById(deleteRequest.getId()); + return ResultVOUtils.success("删除成功"); + } + + + @PostMapping("/warehouse/stockPrint/importErpStock") + public BaseResponse importErpStock(@RequestBody ImportErpOrderRequest importErpOrderRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + List docids = importErpOrderRequest.getPurchaseinResponses(); + if (docids != null && docids.size() > 0) { + for (PurchaseinResponse purchaseinResponse : docids) { + List stockEntities = new ArrayList<>(); + for (PurchaseinResponse.SubPurchase subPurchase : purchaseinResponse.getSubPurchases()) { + ErpStockEntity erpStockEntity = new ErpStockEntity(); + erpStockEntity.setOrderId(purchaseinResponse.getVbillcode()); + erpStockEntity.setExpirationDate(subPurchase.getDvalidate()); + erpStockEntity.setCode(subPurchase.getInventory_code()); + erpStockEntity.setBatchNo(subPurchase.getVbatchcode()); + erpStockEntity.setName(subPurchase.getInventory_name()); + erpStockEntity.setCount(subPurchase.getDtlgoodsqty() + ""); + stockEntities.add(erpStockEntity); + } + erpStockService.insertErpStocks(stockEntities); + } + } + return ResultVOUtils.success("导入成功"); + } + + + @GetMapping("/warehouse/stockPrint/dlErpStock") + public BaseResponse dlErpStock() { + dlErpStockService.dlErpStock(); + return ResultVOUtils.success("后台已自动更新,请稍后刷新查看!"); + } + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/dao/auth/AuthAdminDao.java b/api-admin/src/main/java/com/glxp/api/admin/dao/auth/AuthAdminDao.java new file mode 100644 index 00000000..e9c3471c --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/dao/auth/AuthAdminDao.java @@ -0,0 +1,60 @@ +package com.glxp.api.admin.dao.auth; + +import com.glxp.api.admin.req.auth.AuthAdminQueryRequest; +import com.glxp.api.admin.entity.auth.AuthAdmin; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface AuthAdminDao { + + /** + * 后台业务查询列表 + * @return 列表 + */ + List listAdminPage(AuthAdminQueryRequest authAdminQueryRequest); + + /** + * 根据id查询 + * @param id 传入的id + * @return + */ + AuthAdmin findById(Long id); + + /** + * 根据id查询 password + * @param id 传入的id + * @return + */ + AuthAdmin findPwdById(Long id); + + /** + * 根据Name + * @param userName 用户名 + * @return + */ + AuthAdmin findByUserName(String userName); + + /** + * 插入 + * @param authAdmin + * @return + */ + boolean insertAuthAdmin(AuthAdmin authAdmin); + + /** + * 更新 + * @param authAdmin + * @return + */ + boolean updateAuthAdmin(AuthAdmin authAdmin); + + /** + * 删除 + * @param id + * @return + */ + boolean deleteById(Long id); + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/dao/auth/AuthPermissionDao.java b/api-admin/src/main/java/com/glxp/api/admin/dao/auth/AuthPermissionDao.java new file mode 100644 index 00000000..c80f57eb --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/dao/auth/AuthPermissionDao.java @@ -0,0 +1,40 @@ +package com.glxp.api.admin.dao.auth; + +import com.glxp.api.admin.entity.auth.AuthPermission; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface AuthPermissionDao { + + /** + * 根据roleIds查询 + * @param roleIds 传入的id + * @return + */ + List listByRoleIdIn(List roleIds); + + /** + * 根据 roleId 查询 + * @param roleId 传入的id + * @return + */ + List listByRoleId(Long roleId); + + + /** + * 批量插入 + * @param authPermissionList + * @return + */ + int insertAuthPermissionAll(List authPermissionList); + + /** + * 根据角色id删除 + * @param roleId + * @return + */ + boolean deleteByRoleId(Long roleId); + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/dao/auth/AuthPermissionRuleDao.java b/api-admin/src/main/java/com/glxp/api/admin/dao/auth/AuthPermissionRuleDao.java new file mode 100644 index 00000000..fc68a70c --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/dao/auth/AuthPermissionRuleDao.java @@ -0,0 +1,61 @@ +package com.glxp.api.admin.dao.auth; + +import com.glxp.api.admin.entity.auth.AuthPermissionRule; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + + +@Mapper +public interface AuthPermissionRuleDao { + + /** + * 根据ids查询 规则名称 + * @param ids 传入的ids + * @return + */ + List listByIdIn(List ids); + + /** + * 查询所有 + * @param map + * @return + */ + List listAll(); + + /** + * 根据 父级 pid 查询 + * @param pid + * @return + */ + List listByPid(Long pid); + + /** + * 根据 规则名称查询 + * @param name + * @return + */ + AuthPermissionRule findByName(String name); + + /** + * 插入 + * @param authPermissionRule + * @return + */ + boolean insertAuthPermissionRule(AuthPermissionRule authPermissionRule); + + /** + * 更新 + * @param authPermissionRule + * @return + */ + boolean updateAuthPermissionRule(AuthPermissionRule authPermissionRule); + + /** + * 删除 + * @param id + * @return + */ + boolean deleteById(Long id); + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/dao/auth/AuthRoleAdminDao.java b/api-admin/src/main/java/com/glxp/api/admin/dao/auth/AuthRoleAdminDao.java new file mode 100644 index 00000000..1ccaacfc --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/dao/auth/AuthRoleAdminDao.java @@ -0,0 +1,47 @@ +package com.glxp.api.admin.dao.auth; + +import com.glxp.api.admin.entity.auth.AuthRoleAdmin; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + + +@Mapper +public interface AuthRoleAdminDao { + + /** + * 根据 adminId 查询 + * @param adminId 传入的 adminId + * @return + */ + List listByAdminId(Long adminId); + + /** + * 根据 多个 adminId 查询 + * @param adminIds 传入的 adminIds + * @return + */ + List listByAdminIdIn(List adminIds); + + /** + * 根据 role_id 查询 admin_id + * @param roleId 传入的 roleId + * @return + */ + List listByRoleId(Long roleId); + + /** + * 批量插入 + * @param authRoleAdminList + * @return + */ + int insertAuthRoleAdminAll(List authRoleAdminList); + + + /** + * 根据 adminId 删除 + * @param adminId + * @return + */ + boolean deleteByAdminId(Long adminId); +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/dao/auth/AuthRoleDao.java b/api-admin/src/main/java/com/glxp/api/admin/dao/auth/AuthRoleDao.java new file mode 100644 index 00000000..c97683e3 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/dao/auth/AuthRoleDao.java @@ -0,0 +1,47 @@ +package com.glxp.api.admin.dao.auth; + +import com.glxp.api.admin.req.auth.AuthRoleQueryRequest; +import com.glxp.api.admin.entity.auth.AuthRole; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface AuthRoleDao { + + /** + * 后台管理业务查询列表 + * @return 列表 + */ + List listAdminPage(AuthRoleQueryRequest authRoleQueryRequest); + + /** + * 返回id,name 字段的列表 + * @return 列表 + */ + List listAuthAdminRolePage(Integer status); + + AuthRole findByName(String name); + + /** + * 插入 + * @param authAdmin + * @return + */ + boolean insertAuthRole(AuthRole authAdmin); + + /** + * 更新 + * @param authAdmin + * @return + */ + boolean updateAuthRole(AuthRole authAdmin); + + /** + * 删除 + * @param id + * @return + */ + boolean deleteById(Long id); + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/dao/basic/BasicUnitMaintainDao.java b/api-admin/src/main/java/com/glxp/api/admin/dao/basic/BasicUnitMaintainDao.java new file mode 100644 index 00000000..aafc1bbb --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/dao/basic/BasicUnitMaintainDao.java @@ -0,0 +1,24 @@ +package com.glxp.api.admin.dao.basic; + +import com.glxp.api.admin.entity.basic.BasicUnitMaintainEntity; +import com.glxp.api.admin.req.basic.BasicUnitMaintainFilterRequest; +import com.glxp.api.admin.req.basic.BasicUnitMaintainSaveRequest; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface BasicUnitMaintainDao { + List filterList(BasicUnitMaintainFilterRequest basicUnitMaintainFilterRequest); + + boolean insertBasicUnitMaintain(BasicUnitMaintainEntity basicUnitMaintainEntity); + + boolean insert(BasicUnitMaintainEntity basicUnitMaintainEntity); + + boolean updateById(BasicUnitMaintainSaveRequest basicUnitMaintainSaveRequest); + + boolean deleteById(@Param("id") String id); + + BasicUnitMaintainEntity selectById(@Param("id") String id); +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/dao/basic/BussinessTypeDao.java b/api-admin/src/main/java/com/glxp/api/admin/dao/basic/BussinessTypeDao.java new file mode 100644 index 00000000..ba50238f --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/dao/basic/BussinessTypeDao.java @@ -0,0 +1,22 @@ +package com.glxp.api.admin.dao.basic; + +import com.glxp.api.admin.entity.basic.BussinessTypeEntity; +import com.glxp.api.admin.req.receipt.BussinessTypeFilterRequest; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface BussinessTypeDao { + + List filterList(BussinessTypeFilterRequest bussinessTypeFilterRequest); + + boolean insertBussinessType(BussinessTypeEntity bussinessTypeEntity); + + boolean updateBussinessType(BussinessTypeEntity bussinessTypeEntity); + + boolean deleteById(@Param("id") String id); + + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/dao/basic/UdiInfoDao.java b/api-admin/src/main/java/com/glxp/api/admin/dao/basic/UdiInfoDao.java new file mode 100644 index 00000000..f7752bbb --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/dao/basic/UdiInfoDao.java @@ -0,0 +1,32 @@ +package com.glxp.api.admin.dao.basic; + +import com.glxp.api.admin.entity.basic.UdiInfoEntity; +import com.glxp.api.admin.entity.inout.Unit; +import com.glxp.api.admin.req.basic.FilterUdiInfoRequest; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface UdiInfoDao { + + List filterUdiInfo(FilterUdiInfoRequest filterUdiInfoRequest); + + UdiInfoEntity findByNameCode(@Param("nameCode") String nameCode); + + UdiInfoEntity findByUuid(@Param("uuid") String uuid); + + List findByUuids(@Param("uuid") String uuid); + + boolean insertUdiInfo(UdiInfoEntity udiInfoEntity); + + boolean insertUdiInfos(@Param("udiInfoEntities") List udiInfoEntities); + + boolean updateUdiInfo(UdiInfoEntity udiInfoEntity); + + boolean deleteById(@Param("id") String id); + + boolean deleteByUuid(@Param("uuid") String uuid); + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/dao/basic/UdiRelevanceDao.java b/api-admin/src/main/java/com/glxp/api/admin/dao/basic/UdiRelevanceDao.java new file mode 100644 index 00000000..cc17c9b0 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/dao/basic/UdiRelevanceDao.java @@ -0,0 +1,35 @@ +package com.glxp.api.admin.dao.basic; + +import com.glxp.api.admin.entity.basic.UdiInfoEntity; +import com.glxp.api.admin.entity.basic.UdiRelevanceEntity; +import com.glxp.api.admin.req.basic.FilterUdiInfoRequest; +import com.glxp.api.admin.res.basic.UdiRelevanceResponse; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface UdiRelevanceDao { + + List filterUdiRelevance(FilterUdiInfoRequest filterUdiInfoRequest); + + List filterUdiGp(FilterUdiInfoRequest filterUdiInfoRequest); + + // UdiRelevanceResponse selectUdiByUUid + List selectByUuid(@Param("uuid") String uuid); + + UdiRelevanceEntity selectById(@Param("id") String id); + + UdiRelevanceEntity selectByThirdId(@Param("thirdId")String thirdId); + + boolean insertUdiRelevance(UdiRelevanceEntity udiRelevanceEntity); + + boolean updateUdiRelevance(UdiRelevanceEntity udiRelevanceEntity); + + boolean deleteById(@Param("id") String id); + + boolean deleteByIds(@Param("ids") List id); + + boolean deleteByUuid(@Param("uuid") String uuid); +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/dao/basic/UnitMaintainDao.java b/api-admin/src/main/java/com/glxp/api/admin/dao/basic/UnitMaintainDao.java new file mode 100644 index 00000000..8d135fa8 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/dao/basic/UnitMaintainDao.java @@ -0,0 +1,19 @@ +package com.glxp.api.admin.dao.basic; + +import com.glxp.api.admin.entity.basic.UnitMaintainEntity; +import com.glxp.api.admin.req.receipt.UnitMaintainFilterRequest; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface UnitMaintainDao { + List filterList(UnitMaintainFilterRequest unitMaintainFilterRequest); + + boolean insertUnitMaintain(UnitMaintainEntity unitMaintainEntity); + + boolean deleteById(@Param("id") String id); + + UnitMaintainEntity selectById(@Param("id") String id); +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/dao/info/CompanyDao.java b/api-admin/src/main/java/com/glxp/api/admin/dao/info/CompanyDao.java new file mode 100644 index 00000000..ab508d44 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/dao/info/CompanyDao.java @@ -0,0 +1,14 @@ +package com.glxp.api.admin.dao.info; + +import com.glxp.api.admin.entity.info.CompanyEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface CompanyDao { + + CompanyEntity findCompany(); + + boolean modifyCompany(CompanyEntity companyEntity); + + boolean insertCompany(CompanyEntity companyEntity); +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/dao/info/ScheduledDao.java b/api-admin/src/main/java/com/glxp/api/admin/dao/info/ScheduledDao.java new file mode 100644 index 00000000..623aa499 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/dao/info/ScheduledDao.java @@ -0,0 +1,18 @@ +package com.glxp.api.admin.dao.info; + +import com.glxp.api.admin.entity.info.ScheduledEntity; +import com.glxp.api.admin.req.udid.ScheduledRequest; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface ScheduledDao { + + ScheduledEntity findScheduled(ScheduledRequest scheduledRequest); + + boolean modifyScheduled(ScheduledEntity scheduledEntity); + + boolean insertScheduled(ScheduledEntity scheduledEntity); + + boolean deleteScheduled(String id); + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/dao/info/SetupDao.java b/api-admin/src/main/java/com/glxp/api/admin/dao/info/SetupDao.java new file mode 100644 index 00000000..35c7b15a --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/dao/info/SetupDao.java @@ -0,0 +1,18 @@ +package com.glxp.api.admin.dao.info; + +import com.glxp.api.admin.entity.info.SetupEntity; +import com.glxp.api.admin.req.info.FilterSetupRequest; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface SetupDao { + + SetupEntity findSetup(FilterSetupRequest filterSetupRequest); + + boolean modifySetup(SetupEntity setupEntity); + + boolean insertSetup(SetupEntity setupEntity); + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/dao/info/SystemParamConfigDao.java b/api-admin/src/main/java/com/glxp/api/admin/dao/info/SystemParamConfigDao.java new file mode 100644 index 00000000..15b5062f --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/dao/info/SystemParamConfigDao.java @@ -0,0 +1,27 @@ +package com.glxp.api.admin.dao.info; + +import com.glxp.api.admin.entity.info.SystemParamConfigEntity; +import com.glxp.api.admin.req.info.SystemParamConfigRequest; +import com.glxp.api.admin.req.info.SystemParamConfigSaveRequest; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface SystemParamConfigDao { + List queryPage(SystemParamConfigRequest systemParamConfigRequest); + + SystemParamConfigEntity findSystemParamConfig(SystemParamConfigRequest systemParamConfigRequest); + + SystemParamConfigEntity selectByParamName(SystemParamConfigRequest systemParamConfigRequest); + + SystemParamConfigEntity selectByParamKey(@Param("paramKey") String paramKey); + + boolean updateById(SystemParamConfigSaveRequest systemParamConfigSaveRequest); + + boolean updateParentId(SystemParamConfigSaveRequest systemParamConfigSaveRequest); + + boolean insert(SystemParamConfigEntity systemParamConfigEntity); + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/dao/inout/CodesDao.java b/api-admin/src/main/java/com/glxp/api/admin/dao/inout/CodesDao.java new file mode 100644 index 00000000..542dd5c8 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/dao/inout/CodesDao.java @@ -0,0 +1,37 @@ +package com.glxp.api.admin.dao.inout; + +import com.glxp.api.admin.entity.inout.WarehouseEntity; +import com.glxp.api.admin.req.inout.WarehouseQueryRequest; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface CodesDao { + + List listWarehouse(WarehouseQueryRequest warehouseQueryRequest); + + boolean insertWarehouse(WarehouseEntity warehouseEntity); + + boolean insertWarehouses(@Param("warehouseEntities") List warehouseEntities); + + List findByNo(WarehouseQueryRequest warehouseQueryRequest); + + Integer isExit(WarehouseEntity warehouseEntity); + + List findByOrderId(WarehouseQueryRequest warehouseQueryRequest); + + List findByReceiptId(@Param("orderId") String orderId); + + List findByCode(@Param("code") String code); + + List searchCode(@Param("code") String code); + + boolean updateOrderId(@Param("oldOrderId") String oldOrderId, @Param("newOrderId") String newOrderId); + + boolean updateUnit(@Param("orderId") String orderId, @Param("fromCorpID") String fromCorpID, @Param("fromCorp") String fromCorp); + + List findCodesById(@Param("orderId") String orderId); + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/dao/inout/CodesTempDao.java b/api-admin/src/main/java/com/glxp/api/admin/dao/inout/CodesTempDao.java new file mode 100644 index 00000000..92cfabd3 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/dao/inout/CodesTempDao.java @@ -0,0 +1,20 @@ +package com.glxp.api.admin.dao.inout; + +import com.glxp.api.admin.entity.inout.WarehouseEntity; +import com.glxp.api.admin.entity.inout.Warehousetemp; +import com.glxp.api.admin.req.inout.WarehouseQueryRequest; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface CodesTempDao { + + int insertCodesTemp(@Param("codes") List warehouseEntities); + + int deleteCodesTemp(@Param("codes") List warehouseEntities); + + List findByOrderId(WarehouseQueryRequest warehouseQueryRequest); + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/dao/inout/OrderDao.java b/api-admin/src/main/java/com/glxp/api/admin/dao/inout/OrderDao.java new file mode 100644 index 00000000..4d5eee55 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/dao/inout/OrderDao.java @@ -0,0 +1,50 @@ +package com.glxp.api.admin.dao.inout; + +import com.glxp.api.admin.entity.inout.OrderEntity; +import com.glxp.api.admin.entity.inout.WarehouseEntity; +import com.glxp.api.admin.req.inout.OrderFilterRequest; +import com.glxp.api.admin.req.inout.OrderQueryRequest; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface OrderDao { + + List listOrder(OrderQueryRequest orderQueryRequest); + + boolean insertOrder(OrderEntity orderEntity); + + boolean updateOrder(OrderEntity orderEntity); + + List listOrderError(OrderQueryRequest orderQueryRequest); + + List listOrderRepeat(OrderQueryRequest orderQueryRequest); + + boolean deleteByOrderId(@Param("orderId") String orderId); + + boolean deleteById(@Param("id") String id); + + boolean updateUnit(OrderEntity orderEntity); + + boolean updateOrderStatus(@Param("orderId") String orderId, @Param("status") Integer status); + + boolean updateExportStatus(@Param("orderId") String orderId, @Param("exportStatus") Integer exportStatus); + + boolean updateContrastStatus(@Param("orderId") String orderId, @Param("contrastStatus") String contrastStatus); + + boolean updateSignStatus(@Param("orderId") String orderId, @Param("signStatus") Integer signStatus); + + boolean updateRemark(@Param("orderId") String orderId, @Param("remark") String remark); + + List filterList(OrderFilterRequest orderFilterRequest); + + List filterNoSort(OrderFilterRequest orderFilterRequest); + + List filterListByCode(@Param("warehouseEntityList") List warehouseEntityList); + + OrderEntity findOne(OrderFilterRequest orderFilterRequest); + + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/dao/inout/OrderDetailDao.java b/api-admin/src/main/java/com/glxp/api/admin/dao/inout/OrderDetailDao.java new file mode 100644 index 00000000..9e24d68a --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/dao/inout/OrderDetailDao.java @@ -0,0 +1,43 @@ +package com.glxp.api.admin.dao.inout; + +import com.glxp.api.admin.entity.inout.ErpOrderEntity; +import com.glxp.api.admin.entity.inout.FilterErpOrderRequest; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface OrderDetailDao { + + List filterMyErpOrder(FilterErpOrderRequest filterErpOrderRequest); + + List findByStockCheck(@Param("orderids") List orderids); + + List filterMyErpMainOrder(FilterErpOrderRequest filterErpOrderRequest); + + List filterMyErpDetailOrder(FilterErpOrderRequest filterErpOrderRequest); + + List findAllByDocids(@Param("docids") List docids); + + List filterAllDocid(FilterErpOrderRequest filterErpOrderRequest); + + List filterAllDocidE(FilterErpOrderRequest filterErpOrderRequest); + + boolean insertErpOrders(@Param("erpOrderEntities") List erpOrderEntities); + + boolean insertErpOrder(ErpOrderEntity erpOrderEntity); + + boolean updateErpOrder(ErpOrderEntity erpOrderEntity); + + boolean deleteById(@Param("id") String id); + + boolean deleteByPrimiyId(@Param("id") String id); + + + Integer isExit(@Param("docid") String docid); + + List selectAllIds(@Param("docids") List docids); + + boolean deleteByOrderId(@Param("id") String id); +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/dao/inventory/InvErpStockDao.java b/api-admin/src/main/java/com/glxp/api/admin/dao/inventory/InvErpStockDao.java new file mode 100644 index 00000000..5592a15c --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/dao/inventory/InvErpStockDao.java @@ -0,0 +1,24 @@ +package com.glxp.api.admin.dao.inventory; + +import com.glxp.api.admin.entity.basic.ErpStockEntity; +import com.glxp.api.admin.req.basic.FilterStockprintRequest; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface InvErpStockDao { + + ErpStockEntity findByCode(@Param("code") String code, @Param("batchNo") String batchNo); + + boolean insertErpStock(ErpStockEntity stockPrintEntity); + + boolean insertErpStocks(@Param("erpStockEntities") List erpStockEntities); + + boolean updateErpStock(ErpStockEntity udiInfoEntity); + + boolean deleteById(@Param("id") String id); + + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/dao/inventory/InvOrderCheckDao.java b/api-admin/src/main/java/com/glxp/api/admin/dao/inventory/InvOrderCheckDao.java new file mode 100644 index 00000000..a901517d --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/dao/inventory/InvOrderCheckDao.java @@ -0,0 +1,21 @@ +package com.glxp.api.admin.dao.inventory; + +import com.glxp.api.admin.entity.basic.StockPrintEntity; +import com.glxp.api.admin.entity.inout.StockCheckEntity; +import com.glxp.api.admin.req.basic.FilterStockprintRequest; +import com.glxp.api.admin.req.inout.FilterStockCheckRequest; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface InvOrderCheckDao { + List filterStockCheck(FilterStockCheckRequest filterStockCheckRequest); + + boolean insertStockCheck(StockCheckEntity stockCheckEntity); + + boolean updateStockCheck(StockCheckEntity stockCheckEntity); + + boolean deleteById(@Param("id") String id); +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/dao/inventory/InvStockPrintDao.java b/api-admin/src/main/java/com/glxp/api/admin/dao/inventory/InvStockPrintDao.java new file mode 100644 index 00000000..e4f50e27 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/dao/inventory/InvStockPrintDao.java @@ -0,0 +1,32 @@ +package com.glxp.api.admin.dao.inventory; + +import com.glxp.api.admin.entity.basic.StockPrintEntity; +import com.glxp.api.admin.entity.basic.UdiInfoEntity; +import com.glxp.api.admin.req.basic.FilterStockprintRequest; +import com.glxp.api.admin.req.basic.FilterUdiInfoRequest; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface InvStockPrintDao { + + List filterStockPrint(FilterStockprintRequest filterStockprintRequest); + + StockPrintEntity findByNameCode(@Param("nameCode") String nameCode); + + StockPrintEntity findByRlId(FilterStockprintRequest udiRlIdFk); + + boolean insertStockPrint(StockPrintEntity stockPrintEntity); + + boolean insertStockPrints(@Param("stockPrintEntities") List stockPrintEntities); + + boolean updateStockPrint(StockPrintEntity udiInfoEntity); + + boolean deleteById(@Param("id") String id); + + boolean updatePrintStatus(@Param("ids") List ids); + + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/auth/AuthAdmin.java b/api-admin/src/main/java/com/glxp/api/admin/entity/auth/AuthAdmin.java new file mode 100644 index 00000000..3513b59d --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/auth/AuthAdmin.java @@ -0,0 +1,31 @@ +package com.glxp.api.admin.entity.auth; + +import lombok.Data; + +import java.util.Date; + +@Data +public class AuthAdmin { + + // 主键 + private Long id; + // 昵称 + private String userName; + // 登录密码 + private String passWord; + + // 最后登录ip + private String lastLoginIp; + // 最后登录时间 + private Date lastLoginTime; + // 创建时间 + private Date createTime; + // 状态 + private Integer userFlag; + + private Date lastModifyTime; + private String comments; + private String employeeName; + private Integer CustomerId; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/auth/AuthPermission.java b/api-admin/src/main/java/com/glxp/api/admin/entity/auth/AuthPermission.java new file mode 100644 index 00000000..c0ba1fe8 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/auth/AuthPermission.java @@ -0,0 +1,19 @@ +package com.glxp.api.admin.entity.auth; + +import lombok.Data; + +/** + * 权限授权表 + */ +@Data +public class AuthPermission { + + private Long id; + + private Long roleId; + + private Long permissionRuleId; + + private String type; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/auth/AuthPermissionRule.java b/api-admin/src/main/java/com/glxp/api/admin/entity/auth/AuthPermissionRule.java new file mode 100644 index 00000000..b11708cd --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/auth/AuthPermissionRule.java @@ -0,0 +1,22 @@ +package com.glxp.api.admin.entity.auth; + +import lombok.Data; + +import java.util.Date; + +/** + * 规则表 + */ +@Data +public class AuthPermissionRule { + + private Long id; + private Long pid; + private String name; + private String title; + private Integer status; + private String condition; + private Integer listorder; + private Date createTime; + private Date updateTime; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/auth/AuthRole.java b/api-admin/src/main/java/com/glxp/api/admin/entity/auth/AuthRole.java new file mode 100644 index 00000000..79dd7069 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/auth/AuthRole.java @@ -0,0 +1,21 @@ +package com.glxp.api.admin.entity.auth; + +import lombok.Data; + +import java.util.Date; + +/** + * 角色表 + */ +@Data +public class AuthRole { + + private Long id; + private String name; + private Long pid; + private Long status; + private String remark; + private Long listorder; + private Date createTime; + private Date updateTime; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/auth/AuthRoleAdmin.java b/api-admin/src/main/java/com/glxp/api/admin/entity/auth/AuthRoleAdmin.java new file mode 100644 index 00000000..f0c16429 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/auth/AuthRoleAdmin.java @@ -0,0 +1,14 @@ +package com.glxp.api.admin.entity.auth; + +import lombok.Data; + +/** + * 用户角色对应表 + */ +@Data +public class AuthRoleAdmin { + private Long id; + private Long role_id; + private Long admin_id; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/basic/BasicUnitMaintainEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/basic/BasicUnitMaintainEntity.java new file mode 100644 index 00000000..3d1066ae --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/basic/BasicUnitMaintainEntity.java @@ -0,0 +1,20 @@ +package com.glxp.api.admin.entity.basic; + +import lombok.Data; + +@Data +public class BasicUnitMaintainEntity { + + private Integer id; + private String thirdId; + private String erpId; + private String name; + private String spell; + private String addr; + private String status; + private String type; + private String creditNo; + private String contact; + private String mobile; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/basic/BussinessTypeEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/basic/BussinessTypeEntity.java new file mode 100644 index 00000000..f7253eb0 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/basic/BussinessTypeEntity.java @@ -0,0 +1,14 @@ +package com.glxp.api.admin.entity.basic; + +import lombok.Data; + +@Data +public class BussinessTypeEntity { + private Integer id; + private String action; + private String name; + private Boolean enable; + private String remark; + private String mainAction; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/basic/ErpStockEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/basic/ErpStockEntity.java new file mode 100644 index 00000000..92e4a871 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/basic/ErpStockEntity.java @@ -0,0 +1,18 @@ +package com.glxp.api.admin.entity.basic; + +import lombok.Data; + +@Data +public class ErpStockEntity { + + private String id; + private String orderId; + private String code; + private String batchNo; + private String manufacturingDate; + private String expirationDate; + private String count; + private String remark; + private String name; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/basic/StockPrintEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/basic/StockPrintEntity.java new file mode 100644 index 00000000..0eb942f1 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/basic/StockPrintEntity.java @@ -0,0 +1,27 @@ +package com.glxp.api.admin.entity.basic; + +import lombok.Data; + +@Data +public class StockPrintEntity { + private int id; + private String udiRlIdFk; + private String udiCode; + private String nameCode; + private String cpmctymc; + private String batchNo; + private String produceDate; + private String expireDate; + private String serialNo; + private String codeType; + private String thirdId; + private String thirdName; + private String printStatus; + private String ggxh; + private String ylqxzcrbarmc; + private String zczbhhzbapzbh; + private String warehouseName; + private String warehouseCode; + private String nnum; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/basic/UdiEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/basic/UdiEntity.java new file mode 100644 index 00000000..661c5ae4 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/basic/UdiEntity.java @@ -0,0 +1,65 @@ +package com.glxp.api.admin.entity.basic; + +/** + * @author 彭于晏 + * @date 2020/9/22. + */ +public class UdiEntity { + + private String batchNo; + private String produceDate; + private String expireDate; + private String serialNo; + private String udi; + + public String getBatchNo() { + return batchNo; + } + + public void setBatchNo(String batchNo) { + this.batchNo = batchNo; + } + + public String getProduceDate() { + return produceDate; + } + + public void setProduceDate(String produceDate) { + this.produceDate = produceDate; + } + + public String getExpireDate() { + return expireDate; + } + + public void setExpireDate(String expireDate) { + this.expireDate = expireDate; + } + + public String getSerialNo() { + return serialNo; + } + + public void setSerialNo(String serialNo) { + this.serialNo = serialNo; + } + + public String getUdi() { + return udi; + } + + public void setUdi(String udi) { + this.udi = udi; + } + + @Override + public String toString() { + return "UdiEntity{" + + "batchNo='" + batchNo + '\'' + + ", produceDate='" + produceDate + '\'' + + ", expireDate='" + expireDate + '\'' + + ", serialNo='" + serialNo + '\'' + + ", udi='" + udi + '\'' + + '}'; + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/basic/UdiInfoEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/basic/UdiInfoEntity.java new file mode 100644 index 00000000..5dddda0e --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/basic/UdiInfoEntity.java @@ -0,0 +1,337 @@ +package com.glxp.api.admin.entity.basic; + +import lombok.Data; + +public class UdiInfoEntity { + + private Integer id; + private String nameCode; + private String packRatio; + private String packLevel; + private Integer bhxjsl; + private Integer bhzxxsbzsl; + private Integer zxxsbzbhsydysl; + private String bhxjcpbm; + private String sjcpbm; // + private String bzcj; + private String addType; + private String deviceRecordKey; + private String cpmctymc; + private String cplb; + private String flbm; + private String ggxh; + private String qxlb; + private String tyshxydm; + private String ylqxzcrbarmc; + private String zczbhhzbapzbh; + private String ylqxzcrbarywmc; + private String sydycpbs; + private String uuid; + private int versionNumber; + private int diType; + private String thirdId; + private String thirdName; + + + //本地生成信息 + private String batchNo; + private String produceDate; + private String expireDate; + private String serialNo; + private String udi; + private String code; + private Integer count; + private String warehouseCode; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getNameCode() { + return nameCode; + } + + public void setNameCode(String nameCode) { + this.nameCode = nameCode; + } + + public String getPackRatio() { + return packRatio; + } + + public void setPackRatio(String packRatio) { + this.packRatio = packRatio; + } + + public String getPackLevel() { + return packLevel; + } + + public void setPackLevel(String packLevel) { + this.packLevel = packLevel; + } + + public Integer getBhxjsl() { + if (bhxjsl == null || bhxjsl == 0) { + return 1; + } + return bhxjsl; + } + + public void setBhxjsl(Integer bhxjsl) { + this.bhxjsl = bhxjsl; + } + + public Integer getBhzxxsbzsl() { + if (bhzxxsbzsl == null || bhzxxsbzsl == 0) { + return 1; + } + return bhzxxsbzsl; + } + + public void setBhzxxsbzsl(Integer bhzxxsbzsl) { + this.bhzxxsbzsl = bhzxxsbzsl; + } + + public Integer getZxxsbzbhsydysl() { + if (zxxsbzbhsydysl == null || zxxsbzbhsydysl == 0) { + return 1; + } + return zxxsbzbhsydysl; + } + + public void setZxxsbzbhsydysl(Integer zxxsbzbhsydysl) { + this.zxxsbzbhsydysl = zxxsbzbhsydysl; + } + + public String getBhxjcpbm() { + return bhxjcpbm; + } + + public void setBhxjcpbm(String bhxjcpbm) { + this.bhxjcpbm = bhxjcpbm; + } + + public String getSjcpbm() { + return sjcpbm; + } + + public void setSjcpbm(String sjcpbm) { + this.sjcpbm = sjcpbm; + } + + public String getBzcj() { + return bzcj; + } + + public void setBzcj(String bzcj) { + this.bzcj = bzcj; + } + + public String getAddType() { + return addType; + } + + public void setAddType(String addType) { + this.addType = addType; + } + + public String getDeviceRecordKey() { + return deviceRecordKey; + } + + public void setDeviceRecordKey(String deviceRecordKey) { + this.deviceRecordKey = deviceRecordKey; + } + + + public String getCpmctymc() { + return cpmctymc; + } + + public void setCpmctymc(String cpmctymc) { + this.cpmctymc = cpmctymc; + } + + public String getCplb() { + return cplb; + } + + public void setCplb(String cplb) { + this.cplb = cplb; + } + + public String getFlbm() { + return flbm; + } + + public void setFlbm(String flbm) { + this.flbm = flbm; + } + + public String getGgxh() { + return ggxh; + } + + public void setGgxh(String ggxh) { + this.ggxh = ggxh; + } + + public String getQxlb() { + return qxlb; + } + + public void setQxlb(String qxlb) { + this.qxlb = qxlb; + } + + public String getTyshxydm() { + return tyshxydm; + } + + public void setTyshxydm(String tyshxydm) { + this.tyshxydm = tyshxydm; + } + + public String getYlqxzcrbarmc() { + return ylqxzcrbarmc; + } + + public void setYlqxzcrbarmc(String ylqxzcrbarmc) { + this.ylqxzcrbarmc = ylqxzcrbarmc; + } + + public String getZczbhhzbapzbh() { + return zczbhhzbapzbh; + } + + public void setZczbhhzbapzbh(String zczbhhzbapzbh) { + this.zczbhhzbapzbh = zczbhhzbapzbh; + } + + public String getYlqxzcrbarywmc() { + return ylqxzcrbarywmc; + } + + public void setYlqxzcrbarywmc(String ylqxzcrbarywmc) { + this.ylqxzcrbarywmc = ylqxzcrbarywmc; + } + + public String getSydycpbs() { + return sydycpbs; + } + + public void setSydycpbs(String sydycpbs) { + this.sydycpbs = sydycpbs; + } + + public String getUuid() { + return uuid; + } + + public void setUuid(String uuid) { + this.uuid = uuid; + } + + public int getVersionNumber() { + return versionNumber; + } + + public void setVersionNumber(int versionNumber) { + this.versionNumber = versionNumber; + } + + public int getDiType() { + return diType; + } + + public void setDiType(int diType) { + this.diType = diType; + } + + public String getThirdId() { + return thirdId; + } + + public void setThirdId(String thirdId) { + this.thirdId = thirdId; + } + + public String getThirdName() { + return thirdName; + } + + public void setThirdName(String thirdName) { + this.thirdName = thirdName; + } + + public String getBatchNo() { + return batchNo; + } + + public void setBatchNo(String batchNo) { + this.batchNo = batchNo; + } + + public String getProduceDate() { + return produceDate; + } + + public void setProduceDate(String produceDate) { + this.produceDate = produceDate; + } + + public String getExpireDate() { + return expireDate; + } + + public void setExpireDate(String expireDate) { + this.expireDate = expireDate; + } + + public String getSerialNo() { + return serialNo; + } + + public void setSerialNo(String serialNo) { + this.serialNo = serialNo; + } + + public String getUdi() { + return udi; + } + + public void setUdi(String udi) { + this.udi = udi; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public Integer getCount() { + if(count ==null) + return 1; + return count; + } + + public void setCount(Integer count) { + this.count = count; + } + + public String getWarehouseCode() { + return warehouseCode; + } + + public void setWarehouseCode(String warehouseCode) { + this.warehouseCode = warehouseCode; + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/basic/UdiRelevanceEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/basic/UdiRelevanceEntity.java new file mode 100644 index 00000000..3cd47fb6 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/basic/UdiRelevanceEntity.java @@ -0,0 +1,15 @@ +package com.glxp.api.admin.entity.basic; + +import lombok.Data; + +@Data +public class UdiRelevanceEntity { + + private String id; + private String thirdId; + private String thirdName; + private String uuid; + private Boolean isUseDy; + private String updateTime; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/basic/UnitMaintainEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/basic/UnitMaintainEntity.java new file mode 100644 index 00000000..560de4b0 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/basic/UnitMaintainEntity.java @@ -0,0 +1,19 @@ +package com.glxp.api.admin.entity.basic; + +import lombok.Data; + +@Data +public class UnitMaintainEntity { + + private Integer id; + private String thirdId; + private String erpId; + private String name; + private String spell; + private String addr; + private String status; + private String type; + private String contact; + private String mobile; + private String creditNo; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/info/CompanyEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/info/CompanyEntity.java new file mode 100644 index 00000000..a1248b46 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/info/CompanyEntity.java @@ -0,0 +1,16 @@ +package com.glxp.api.admin.entity.info; + +import lombok.Data; + +@Data +public class CompanyEntity { + + private String name; //企业名称 + private String category; //企业类型 + private String creditCode; //统一社会信用代码 + private String addr; //住所地址 + private String productAddr; //生产地址 + private String classes; //企业类别 //企业类别:1.生产企业,2.流通企业,3。医疗机构 + private String appId; + private String appSecret; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/info/MipsServiceEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/info/MipsServiceEntity.java new file mode 100644 index 00000000..6f7a3f11 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/info/MipsServiceEntity.java @@ -0,0 +1,10 @@ +package com.glxp.api.admin.entity.info; + +import lombok.Data; + +@Data +public class MipsServiceEntity { + private String mipsName; + private String url; + private String remark; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/info/ScheduledEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/info/ScheduledEntity.java new file mode 100644 index 00000000..d1207f7a --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/info/ScheduledEntity.java @@ -0,0 +1,12 @@ +package com.glxp.api.admin.entity.info; + +import lombok.Data; + +@Data +public class ScheduledEntity { + + private int id; + private String cronName; + private String cron; + private String customerId; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/info/SetupEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/info/SetupEntity.java new file mode 100644 index 00000000..206e77eb --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/info/SetupEntity.java @@ -0,0 +1,30 @@ +package com.glxp.api.admin.entity.info; + +import lombok.Data; + +@Data +public class SetupEntity { + + private int id; + private boolean erpSaleOutModify; + private boolean erpGetSaleOut; + private boolean erpSaleOutSign; + private boolean filterSaleOutSign; + private int erpGetSaleOutDay; + + private boolean erpPruchaseModify; + private boolean erpGetPurchaseIn; + private boolean erpPruchaseSign; + private int erpGetPurchaseDay; + private boolean filterPurchaseSign; + private String remark; + private boolean forbidSameErp; + + private boolean returnWareHouseOut; + private boolean salesWareHouseOut; + private boolean returnWareHouseIn; + private boolean updateErpData; + + private boolean dlStockErp; + private Integer dlStockErpDay; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/info/SystemParamConfigEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/info/SystemParamConfigEntity.java new file mode 100644 index 00000000..243a4862 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/info/SystemParamConfigEntity.java @@ -0,0 +1,16 @@ +package com.glxp.api.admin.entity.info; + +import lombok.Data; + +@Data +public class SystemParamConfigEntity { + + private int id; + private int parentId; + private String paramName; + private String paramKey; + private String paramValue; + private int paramStatus; + private int paramType; + private String paramExplain; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/inout/ErpDetailCodeEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/inout/ErpDetailCodeEntity.java new file mode 100644 index 00000000..fa3ee4dc --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/inout/ErpDetailCodeEntity.java @@ -0,0 +1,21 @@ +package com.glxp.api.admin.entity.inout; + +import lombok.Data; + +@Data +public class ErpDetailCodeEntity { + private String nameCode; + private String packRatio; + private String packSpec; + private String authCode; + private String coName; + private String unit; + private int bhzxxsbzsl; + private int zxxsbzbhsydysl; + private int isUseDy; + private String batchNo; + private String code; + private int count; + private String thirdProductNo; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/inout/ErpOrderEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/inout/ErpOrderEntity.java new file mode 100644 index 00000000..24bd005d --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/inout/ErpOrderEntity.java @@ -0,0 +1,58 @@ +package com.glxp.api.admin.entity.inout; + +import lombok.Data; + +@Data +public class ErpOrderEntity { + + + /** + * companyid : 31443 + * docid : 200959 + * iodtlid : 1108752 + * inoutid : 1064084 + * credate : 2020-10-14 10:24:56.0 + * goodsunit : 瓶 + * goodsid : 26 + * lotid : 84392 + * goodsname : 川贝清肺糖浆(120ml) + * companyname : 安徽阜阳医药集团有限公司 + * lotno : 1912198 + * dtlgoodsqty : 4000 + */ + + private long id; + private String erpOrderId; + private String iodtlId; + private String inoutId; + private String companyid; + private String companyname; + private String goodsid; + private String goodsname; + private String goodsunit; + private String batchNoId; + private String batchNo; + private String credate; + private String warehouseCode; + private String productDate; + private String expireDate; + private int erpCount; + private int reCount; + + + private String nameCode; + private String productCompany; + private String coName; + private String authCode; + private String packSpec; + private String packRatio; + private int bhzxxsbzsl; + private int zxxsbzbhsydysl; + private String isDownload; + private String orderIdFk; + private String nameCodes; + private String status; + private int count; + + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/inout/FilterErpOrderRequest.java b/api-admin/src/main/java/com/glxp/api/admin/entity/inout/FilterErpOrderRequest.java new file mode 100644 index 00000000..c9699050 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/inout/FilterErpOrderRequest.java @@ -0,0 +1,23 @@ +package com.glxp.api.admin.entity.inout; + +import com.glxp.api.admin.req.ListPageRequest; +import lombok.Data; + +import java.util.List; + +@Data +public class FilterErpOrderRequest extends ListPageRequest { + + private String docid; + private String goodsname; + private String companyname; + private String orderId; + private String orderIdFk; + private String startDate; + private String endDate; + private String billAction; + private String billcode; + private String fbillflag; + List orderIds; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/inout/MipsDrugEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/inout/MipsDrugEntity.java new file mode 100644 index 00000000..b1c1bdf0 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/inout/MipsDrugEntity.java @@ -0,0 +1,20 @@ +package com.glxp.api.admin.entity.inout; + +import lombok.Data; + +@Data +public class MipsDrugEntity { + + private String AuthorizedNo; + private String Type; + private String Spec; + private String PackUnit; + private String ProductCode; + private String ProductName; + private String ProductType; + private String PackageSpec; + private String PkgRatio; + private String ResCode; + private String CodeVersion; + private String CodeLevel; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/inout/OrderDetailEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/inout/OrderDetailEntity.java new file mode 100644 index 00000000..0568b66a --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/inout/OrderDetailEntity.java @@ -0,0 +1,34 @@ +package com.glxp.api.admin.entity.inout; + +import lombok.Data; + +@Data +public class OrderDetailEntity { + + private String id; + private String nameCode; + private String packRatio; + private String packLevel; + private int bhxjsl; + private int bhzxxsbzsl; + + private String bhxjcpbm; + private String bzcj; + private String thirdProductNo; + private String addType; + private String deviceRecordKey; + private String type; + private String unit; + private String coName; + private String form; + private String formSpec; + private String packSpec; + private String authCode; + private String name; + private String uuid; + private int count; + private int zxxsbzbhsydysl; + private int isUseDy; + + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/inout/OrderEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/inout/OrderEntity.java new file mode 100644 index 00000000..928e6a5c --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/inout/OrderEntity.java @@ -0,0 +1,24 @@ +package com.glxp.api.admin.entity.inout; + +import lombok.Data; + +@Data +public class OrderEntity { + + private String id; + private String corpOrderId; + private String action; + private String actDate; + private String fromCorpId; + private String actor; + private String mainAction; + private String fromCorp; + private Integer status; + private String exportStatus; + private String fromType; + private Integer contrastStatus; + private String erpFk; + private String signStatus; + private String stockCheckFk; + private String remark; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/inout/StockCheckEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/inout/StockCheckEntity.java new file mode 100644 index 00000000..40414992 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/inout/StockCheckEntity.java @@ -0,0 +1,17 @@ +package com.glxp.api.admin.entity.inout; + +import lombok.Data; + +@Data +public class StockCheckEntity { + + private int id; + private String action; + private String actDate; + private String status; + private String remark; + private String endTime; + private String whouse; + private String houseCard; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/inout/Unit.java b/api-admin/src/main/java/com/glxp/api/admin/entity/inout/Unit.java new file mode 100644 index 00000000..66760b94 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/inout/Unit.java @@ -0,0 +1,14 @@ +package com.glxp.api.admin.entity.inout; + +import lombok.Data; + +@Data +public class Unit { + private String unitId; + private String name; + private String spell; + private String addr; + private String status; + private String type; + private Integer id; +} \ No newline at end of file diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/inout/WarehouseEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/inout/WarehouseEntity.java new file mode 100644 index 00000000..09e4fb6b --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/inout/WarehouseEntity.java @@ -0,0 +1,24 @@ +package com.glxp.api.admin.entity.inout; + +import lombok.Data; + +@Data +public class WarehouseEntity { + private Long id; + private String action; + private String mainAction; + private String code; + private String corpOrderId; + private String actor; + private String actDate; + private String fromCorpId; + private String fromCorp; + private String orderId; + private String batchNo; + private String produceDate; + private String expireDate; + private String serialNo; + private Integer count; + private String packageLevel; + private String warehouseCode; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/inout/Warehousetemp.java b/api-admin/src/main/java/com/glxp/api/admin/entity/inout/Warehousetemp.java new file mode 100644 index 00000000..af5a496a --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/inout/Warehousetemp.java @@ -0,0 +1,192 @@ +package com.glxp.api.admin.entity.inout; + +public class Warehousetemp { + private Long id; + + private String action; + + private String mainaction; + + private String code; + + private String corporderid; + + private String actor; + + private String actdate; + + private Integer wrongcode; + + private String uppercorporderid; + + private String fromcorpid; + + private String fromcorp; + + private String orderid; + + private String batchno; + + private String producedate; + + private String expiredate; + + private String serialno; + + private String udi; + + private Integer count; + private Integer type; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAction() { + return action; + } + + public void setAction(String action) { + this.action = action == null ? null : action.trim(); + } + + public String getMainaction() { + return mainaction; + } + + public void setMainaction(String mainaction) { + this.mainaction = mainaction == null ? null : mainaction.trim(); + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code == null ? null : code.trim(); + } + + public String getCorporderid() { + return corporderid; + } + + public void setCorporderid(String corporderid) { + this.corporderid = corporderid == null ? null : corporderid.trim(); + } + + public String getActor() { + return actor; + } + + public void setActor(String actor) { + this.actor = actor == null ? null : actor.trim(); + } + + public String getActdate() { + return actdate; + } + + public void setActdate(String actdate) { + this.actdate = actdate == null ? null : actdate.trim(); + } + + public Integer getWrongcode() { + return wrongcode; + } + + public void setWrongcode(Integer wrongcode) { + this.wrongcode = wrongcode; + } + + public String getUppercorporderid() { + return uppercorporderid; + } + + public void setUppercorporderid(String uppercorporderid) { + this.uppercorporderid = uppercorporderid == null ? null : uppercorporderid.trim(); + } + + public String getFromcorpid() { + return fromcorpid; + } + + public void setFromcorpid(String fromcorpid) { + this.fromcorpid = fromcorpid == null ? null : fromcorpid.trim(); + } + + public String getFromcorp() { + return fromcorp; + } + + public void setFromcorp(String fromcorp) { + this.fromcorp = fromcorp == null ? null : fromcorp.trim(); + } + + public String getOrderid() { + return orderid; + } + + public void setOrderid(String orderid) { + this.orderid = orderid == null ? null : orderid.trim(); + } + + public String getBatchno() { + return batchno; + } + + public void setBatchno(String batchno) { + this.batchno = batchno == null ? null : batchno.trim(); + } + + public String getProducedate() { + return producedate; + } + + public void setProducedate(String producedate) { + this.producedate = producedate == null ? null : producedate.trim(); + } + + public String getExpiredate() { + return expiredate; + } + + public void setExpiredate(String expiredate) { + this.expiredate = expiredate == null ? null : expiredate.trim(); + } + + public String getSerialno() { + return serialno; + } + + public void setSerialno(String serialno) { + this.serialno = serialno == null ? null : serialno.trim(); + } + + public String getUdi() { + return udi; + } + + public void setUdi(String udi) { + this.udi = udi == null ? null : udi.trim(); + } + + public Integer getCount() { + return count; + } + + public void setCount(Integer count) { + this.count = count; + } + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } +} \ No newline at end of file diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/inout/WarehousetempExample.java b/api-admin/src/main/java/com/glxp/api/admin/entity/inout/WarehousetempExample.java new file mode 100644 index 00000000..529a29cc --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/inout/WarehousetempExample.java @@ -0,0 +1,1429 @@ +package com.glxp.api.admin.entity.inout; + +import java.util.ArrayList; +import java.util.List; + +public class WarehousetempExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public WarehousetempExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andActionIsNull() { + addCriterion("action is null"); + return (Criteria) this; + } + + public Criteria andActionIsNotNull() { + addCriterion("action is not null"); + return (Criteria) this; + } + + public Criteria andActionEqualTo(String value) { + addCriterion("action =", value, "action"); + return (Criteria) this; + } + + public Criteria andActionNotEqualTo(String value) { + addCriterion("action <>", value, "action"); + return (Criteria) this; + } + + public Criteria andActionGreaterThan(String value) { + addCriterion("action >", value, "action"); + return (Criteria) this; + } + + public Criteria andActionGreaterThanOrEqualTo(String value) { + addCriterion("action >=", value, "action"); + return (Criteria) this; + } + + public Criteria andActionLessThan(String value) { + addCriterion("action <", value, "action"); + return (Criteria) this; + } + + public Criteria andActionLessThanOrEqualTo(String value) { + addCriterion("action <=", value, "action"); + return (Criteria) this; + } + + public Criteria andActionLike(String value) { + addCriterion("action like", value, "action"); + return (Criteria) this; + } + + public Criteria andActionNotLike(String value) { + addCriterion("action not like", value, "action"); + return (Criteria) this; + } + + public Criteria andActionIn(List values) { + addCriterion("action in", values, "action"); + return (Criteria) this; + } + + public Criteria andActionNotIn(List values) { + addCriterion("action not in", values, "action"); + return (Criteria) this; + } + + public Criteria andActionBetween(String value1, String value2) { + addCriterion("action between", value1, value2, "action"); + return (Criteria) this; + } + + public Criteria andActionNotBetween(String value1, String value2) { + addCriterion("action not between", value1, value2, "action"); + return (Criteria) this; + } + + public Criteria andMainactionIsNull() { + addCriterion("mainAction is null"); + return (Criteria) this; + } + + public Criteria andMainactionIsNotNull() { + addCriterion("mainAction is not null"); + return (Criteria) this; + } + + public Criteria andMainactionEqualTo(String value) { + addCriterion("mainAction =", value, "mainaction"); + return (Criteria) this; + } + + public Criteria andMainactionNotEqualTo(String value) { + addCriterion("mainAction <>", value, "mainaction"); + return (Criteria) this; + } + + public Criteria andMainactionGreaterThan(String value) { + addCriterion("mainAction >", value, "mainaction"); + return (Criteria) this; + } + + public Criteria andMainactionGreaterThanOrEqualTo(String value) { + addCriterion("mainAction >=", value, "mainaction"); + return (Criteria) this; + } + + public Criteria andMainactionLessThan(String value) { + addCriterion("mainAction <", value, "mainaction"); + return (Criteria) this; + } + + public Criteria andMainactionLessThanOrEqualTo(String value) { + addCriterion("mainAction <=", value, "mainaction"); + return (Criteria) this; + } + + public Criteria andMainactionLike(String value) { + addCriterion("mainAction like", value, "mainaction"); + return (Criteria) this; + } + + public Criteria andMainactionNotLike(String value) { + addCriterion("mainAction not like", value, "mainaction"); + return (Criteria) this; + } + + public Criteria andMainactionIn(List values) { + addCriterion("mainAction in", values, "mainaction"); + return (Criteria) this; + } + + public Criteria andMainactionNotIn(List values) { + addCriterion("mainAction not in", values, "mainaction"); + return (Criteria) this; + } + + public Criteria andMainactionBetween(String value1, String value2) { + addCriterion("mainAction between", value1, value2, "mainaction"); + return (Criteria) this; + } + + public Criteria andMainactionNotBetween(String value1, String value2) { + addCriterion("mainAction not between", value1, value2, "mainaction"); + return (Criteria) this; + } + + public Criteria andCodeIsNull() { + addCriterion("code is null"); + return (Criteria) this; + } + + public Criteria andCodeIsNotNull() { + addCriterion("code is not null"); + return (Criteria) this; + } + + public Criteria andCodeEqualTo(String value) { + addCriterion("code =", value, "code"); + return (Criteria) this; + } + + public Criteria andCodeNotEqualTo(String value) { + addCriterion("code <>", value, "code"); + return (Criteria) this; + } + + public Criteria andCodeGreaterThan(String value) { + addCriterion("code >", value, "code"); + return (Criteria) this; + } + + public Criteria andCodeGreaterThanOrEqualTo(String value) { + addCriterion("code >=", value, "code"); + return (Criteria) this; + } + + public Criteria andCodeLessThan(String value) { + addCriterion("code <", value, "code"); + return (Criteria) this; + } + + public Criteria andCodeLessThanOrEqualTo(String value) { + addCriterion("code <=", value, "code"); + return (Criteria) this; + } + + public Criteria andCodeLike(String value) { + addCriterion("code like", value, "code"); + return (Criteria) this; + } + + public Criteria andCodeNotLike(String value) { + addCriterion("code not like", value, "code"); + return (Criteria) this; + } + + public Criteria andCodeIn(List values) { + addCriterion("code in", values, "code"); + return (Criteria) this; + } + + public Criteria andCodeNotIn(List values) { + addCriterion("code not in", values, "code"); + return (Criteria) this; + } + + public Criteria andCodeBetween(String value1, String value2) { + addCriterion("code between", value1, value2, "code"); + return (Criteria) this; + } + + public Criteria andCodeNotBetween(String value1, String value2) { + addCriterion("code not between", value1, value2, "code"); + return (Criteria) this; + } + + public Criteria andCorporderidIsNull() { + addCriterion("corpOrderId is null"); + return (Criteria) this; + } + + public Criteria andCorporderidIsNotNull() { + addCriterion("corpOrderId is not null"); + return (Criteria) this; + } + + public Criteria andCorporderidEqualTo(String value) { + addCriterion("corpOrderId =", value, "corporderid"); + return (Criteria) this; + } + + public Criteria andCorporderidNotEqualTo(String value) { + addCriterion("corpOrderId <>", value, "corporderid"); + return (Criteria) this; + } + + public Criteria andCorporderidGreaterThan(String value) { + addCriterion("corpOrderId >", value, "corporderid"); + return (Criteria) this; + } + + public Criteria andCorporderidGreaterThanOrEqualTo(String value) { + addCriterion("corpOrderId >=", value, "corporderid"); + return (Criteria) this; + } + + public Criteria andCorporderidLessThan(String value) { + addCriterion("corpOrderId <", value, "corporderid"); + return (Criteria) this; + } + + public Criteria andCorporderidLessThanOrEqualTo(String value) { + addCriterion("corpOrderId <=", value, "corporderid"); + return (Criteria) this; + } + + public Criteria andCorporderidLike(String value) { + addCriterion("corpOrderId like", value, "corporderid"); + return (Criteria) this; + } + + public Criteria andCorporderidNotLike(String value) { + addCriterion("corpOrderId not like", value, "corporderid"); + return (Criteria) this; + } + + public Criteria andCorporderidIn(List values) { + addCriterion("corpOrderId in", values, "corporderid"); + return (Criteria) this; + } + + public Criteria andCorporderidNotIn(List values) { + addCriterion("corpOrderId not in", values, "corporderid"); + return (Criteria) this; + } + + public Criteria andCorporderidBetween(String value1, String value2) { + addCriterion("corpOrderId between", value1, value2, "corporderid"); + return (Criteria) this; + } + + public Criteria andCorporderidNotBetween(String value1, String value2) { + addCriterion("corpOrderId not between", value1, value2, "corporderid"); + return (Criteria) this; + } + + public Criteria andActorIsNull() { + addCriterion("actor is null"); + return (Criteria) this; + } + + public Criteria andActorIsNotNull() { + addCriterion("actor is not null"); + return (Criteria) this; + } + + public Criteria andActorEqualTo(String value) { + addCriterion("actor =", value, "actor"); + return (Criteria) this; + } + + public Criteria andActorNotEqualTo(String value) { + addCriterion("actor <>", value, "actor"); + return (Criteria) this; + } + + public Criteria andActorGreaterThan(String value) { + addCriterion("actor >", value, "actor"); + return (Criteria) this; + } + + public Criteria andActorGreaterThanOrEqualTo(String value) { + addCriterion("actor >=", value, "actor"); + return (Criteria) this; + } + + public Criteria andActorLessThan(String value) { + addCriterion("actor <", value, "actor"); + return (Criteria) this; + } + + public Criteria andActorLessThanOrEqualTo(String value) { + addCriterion("actor <=", value, "actor"); + return (Criteria) this; + } + + public Criteria andActorLike(String value) { + addCriterion("actor like", value, "actor"); + return (Criteria) this; + } + + public Criteria andActorNotLike(String value) { + addCriterion("actor not like", value, "actor"); + return (Criteria) this; + } + + public Criteria andActorIn(List values) { + addCriterion("actor in", values, "actor"); + return (Criteria) this; + } + + public Criteria andActorNotIn(List values) { + addCriterion("actor not in", values, "actor"); + return (Criteria) this; + } + + public Criteria andActorBetween(String value1, String value2) { + addCriterion("actor between", value1, value2, "actor"); + return (Criteria) this; + } + + public Criteria andActorNotBetween(String value1, String value2) { + addCriterion("actor not between", value1, value2, "actor"); + return (Criteria) this; + } + + public Criteria andActdateIsNull() { + addCriterion("actDate is null"); + return (Criteria) this; + } + + public Criteria andActdateIsNotNull() { + addCriterion("actDate is not null"); + return (Criteria) this; + } + + public Criteria andActdateEqualTo(String value) { + addCriterion("actDate =", value, "actdate"); + return (Criteria) this; + } + + public Criteria andActdateNotEqualTo(String value) { + addCriterion("actDate <>", value, "actdate"); + return (Criteria) this; + } + + public Criteria andActdateGreaterThan(String value) { + addCriterion("actDate >", value, "actdate"); + return (Criteria) this; + } + + public Criteria andActdateGreaterThanOrEqualTo(String value) { + addCriterion("actDate >=", value, "actdate"); + return (Criteria) this; + } + + public Criteria andActdateLessThan(String value) { + addCriterion("actDate <", value, "actdate"); + return (Criteria) this; + } + + public Criteria andActdateLessThanOrEqualTo(String value) { + addCriterion("actDate <=", value, "actdate"); + return (Criteria) this; + } + + public Criteria andActdateLike(String value) { + addCriterion("actDate like", value, "actdate"); + return (Criteria) this; + } + + public Criteria andActdateNotLike(String value) { + addCriterion("actDate not like", value, "actdate"); + return (Criteria) this; + } + + public Criteria andActdateIn(List values) { + addCriterion("actDate in", values, "actdate"); + return (Criteria) this; + } + + public Criteria andActdateNotIn(List values) { + addCriterion("actDate not in", values, "actdate"); + return (Criteria) this; + } + + public Criteria andActdateBetween(String value1, String value2) { + addCriterion("actDate between", value1, value2, "actdate"); + return (Criteria) this; + } + + public Criteria andActdateNotBetween(String value1, String value2) { + addCriterion("actDate not between", value1, value2, "actdate"); + return (Criteria) this; + } + + public Criteria andWrongcodeIsNull() { + addCriterion("wrongCode is null"); + return (Criteria) this; + } + + public Criteria andWrongcodeIsNotNull() { + addCriterion("wrongCode is not null"); + return (Criteria) this; + } + + public Criteria andWrongcodeEqualTo(Integer value) { + addCriterion("wrongCode =", value, "wrongcode"); + return (Criteria) this; + } + + public Criteria andWrongcodeNotEqualTo(Integer value) { + addCriterion("wrongCode <>", value, "wrongcode"); + return (Criteria) this; + } + + public Criteria andWrongcodeGreaterThan(Integer value) { + addCriterion("wrongCode >", value, "wrongcode"); + return (Criteria) this; + } + + public Criteria andWrongcodeGreaterThanOrEqualTo(Integer value) { + addCriterion("wrongCode >=", value, "wrongcode"); + return (Criteria) this; + } + + public Criteria andWrongcodeLessThan(Integer value) { + addCriterion("wrongCode <", value, "wrongcode"); + return (Criteria) this; + } + + public Criteria andWrongcodeLessThanOrEqualTo(Integer value) { + addCriterion("wrongCode <=", value, "wrongcode"); + return (Criteria) this; + } + + public Criteria andWrongcodeIn(List values) { + addCriterion("wrongCode in", values, "wrongcode"); + return (Criteria) this; + } + + public Criteria andWrongcodeNotIn(List values) { + addCriterion("wrongCode not in", values, "wrongcode"); + return (Criteria) this; + } + + public Criteria andWrongcodeBetween(Integer value1, Integer value2) { + addCriterion("wrongCode between", value1, value2, "wrongcode"); + return (Criteria) this; + } + + public Criteria andWrongcodeNotBetween(Integer value1, Integer value2) { + addCriterion("wrongCode not between", value1, value2, "wrongcode"); + return (Criteria) this; + } + + public Criteria andUppercorporderidIsNull() { + addCriterion("upperCorpOrderId is null"); + return (Criteria) this; + } + + public Criteria andUppercorporderidIsNotNull() { + addCriterion("upperCorpOrderId is not null"); + return (Criteria) this; + } + + public Criteria andUppercorporderidEqualTo(String value) { + addCriterion("upperCorpOrderId =", value, "uppercorporderid"); + return (Criteria) this; + } + + public Criteria andUppercorporderidNotEqualTo(String value) { + addCriterion("upperCorpOrderId <>", value, "uppercorporderid"); + return (Criteria) this; + } + + public Criteria andUppercorporderidGreaterThan(String value) { + addCriterion("upperCorpOrderId >", value, "uppercorporderid"); + return (Criteria) this; + } + + public Criteria andUppercorporderidGreaterThanOrEqualTo(String value) { + addCriterion("upperCorpOrderId >=", value, "uppercorporderid"); + return (Criteria) this; + } + + public Criteria andUppercorporderidLessThan(String value) { + addCriterion("upperCorpOrderId <", value, "uppercorporderid"); + return (Criteria) this; + } + + public Criteria andUppercorporderidLessThanOrEqualTo(String value) { + addCriterion("upperCorpOrderId <=", value, "uppercorporderid"); + return (Criteria) this; + } + + public Criteria andUppercorporderidLike(String value) { + addCriterion("upperCorpOrderId like", value, "uppercorporderid"); + return (Criteria) this; + } + + public Criteria andUppercorporderidNotLike(String value) { + addCriterion("upperCorpOrderId not like", value, "uppercorporderid"); + return (Criteria) this; + } + + public Criteria andUppercorporderidIn(List values) { + addCriterion("upperCorpOrderId in", values, "uppercorporderid"); + return (Criteria) this; + } + + public Criteria andUppercorporderidNotIn(List values) { + addCriterion("upperCorpOrderId not in", values, "uppercorporderid"); + return (Criteria) this; + } + + public Criteria andUppercorporderidBetween(String value1, String value2) { + addCriterion("upperCorpOrderId between", value1, value2, "uppercorporderid"); + return (Criteria) this; + } + + public Criteria andUppercorporderidNotBetween(String value1, String value2) { + addCriterion("upperCorpOrderId not between", value1, value2, "uppercorporderid"); + return (Criteria) this; + } + + public Criteria andFromcorpidIsNull() { + addCriterion("fromCorpID is null"); + return (Criteria) this; + } + + public Criteria andFromcorpidIsNotNull() { + addCriterion("fromCorpID is not null"); + return (Criteria) this; + } + + public Criteria andFromcorpidEqualTo(String value) { + addCriterion("fromCorpID =", value, "fromcorpid"); + return (Criteria) this; + } + + public Criteria andFromcorpidNotEqualTo(String value) { + addCriterion("fromCorpID <>", value, "fromcorpid"); + return (Criteria) this; + } + + public Criteria andFromcorpidGreaterThan(String value) { + addCriterion("fromCorpID >", value, "fromcorpid"); + return (Criteria) this; + } + + public Criteria andFromcorpidGreaterThanOrEqualTo(String value) { + addCriterion("fromCorpID >=", value, "fromcorpid"); + return (Criteria) this; + } + + public Criteria andFromcorpidLessThan(String value) { + addCriterion("fromCorpID <", value, "fromcorpid"); + return (Criteria) this; + } + + public Criteria andFromcorpidLessThanOrEqualTo(String value) { + addCriterion("fromCorpID <=", value, "fromcorpid"); + return (Criteria) this; + } + + public Criteria andFromcorpidLike(String value) { + addCriterion("fromCorpID like", value, "fromcorpid"); + return (Criteria) this; + } + + public Criteria andFromcorpidNotLike(String value) { + addCriterion("fromCorpID not like", value, "fromcorpid"); + return (Criteria) this; + } + + public Criteria andFromcorpidIn(List values) { + addCriterion("fromCorpID in", values, "fromcorpid"); + return (Criteria) this; + } + + public Criteria andFromcorpidNotIn(List values) { + addCriterion("fromCorpID not in", values, "fromcorpid"); + return (Criteria) this; + } + + public Criteria andFromcorpidBetween(String value1, String value2) { + addCriterion("fromCorpID between", value1, value2, "fromcorpid"); + return (Criteria) this; + } + + public Criteria andFromcorpidNotBetween(String value1, String value2) { + addCriterion("fromCorpID not between", value1, value2, "fromcorpid"); + return (Criteria) this; + } + + public Criteria andFromcorpIsNull() { + addCriterion("fromCorp is null"); + return (Criteria) this; + } + + public Criteria andFromcorpIsNotNull() { + addCriterion("fromCorp is not null"); + return (Criteria) this; + } + + public Criteria andFromcorpEqualTo(String value) { + addCriterion("fromCorp =", value, "fromcorp"); + return (Criteria) this; + } + + public Criteria andFromcorpNotEqualTo(String value) { + addCriterion("fromCorp <>", value, "fromcorp"); + return (Criteria) this; + } + + public Criteria andFromcorpGreaterThan(String value) { + addCriterion("fromCorp >", value, "fromcorp"); + return (Criteria) this; + } + + public Criteria andFromcorpGreaterThanOrEqualTo(String value) { + addCriterion("fromCorp >=", value, "fromcorp"); + return (Criteria) this; + } + + public Criteria andFromcorpLessThan(String value) { + addCriterion("fromCorp <", value, "fromcorp"); + return (Criteria) this; + } + + public Criteria andFromcorpLessThanOrEqualTo(String value) { + addCriterion("fromCorp <=", value, "fromcorp"); + return (Criteria) this; + } + + public Criteria andFromcorpLike(String value) { + addCriterion("fromCorp like", value, "fromcorp"); + return (Criteria) this; + } + + public Criteria andFromcorpNotLike(String value) { + addCriterion("fromCorp not like", value, "fromcorp"); + return (Criteria) this; + } + + public Criteria andFromcorpIn(List values) { + addCriterion("fromCorp in", values, "fromcorp"); + return (Criteria) this; + } + + public Criteria andFromcorpNotIn(List values) { + addCriterion("fromCorp not in", values, "fromcorp"); + return (Criteria) this; + } + + public Criteria andFromcorpBetween(String value1, String value2) { + addCriterion("fromCorp between", value1, value2, "fromcorp"); + return (Criteria) this; + } + + public Criteria andFromcorpNotBetween(String value1, String value2) { + addCriterion("fromCorp not between", value1, value2, "fromcorp"); + return (Criteria) this; + } + + public Criteria andOrderidIsNull() { + addCriterion("orderId is null"); + return (Criteria) this; + } + + public Criteria andOrderidIsNotNull() { + addCriterion("orderId is not null"); + return (Criteria) this; + } + + public Criteria andOrderidEqualTo(String value) { + addCriterion("orderId =", value, "orderid"); + return (Criteria) this; + } + + public Criteria andOrderidNotEqualTo(String value) { + addCriterion("orderId <>", value, "orderid"); + return (Criteria) this; + } + + public Criteria andOrderidGreaterThan(String value) { + addCriterion("orderId >", value, "orderid"); + return (Criteria) this; + } + + public Criteria andOrderidGreaterThanOrEqualTo(String value) { + addCriterion("orderId >=", value, "orderid"); + return (Criteria) this; + } + + public Criteria andOrderidLessThan(String value) { + addCriterion("orderId <", value, "orderid"); + return (Criteria) this; + } + + public Criteria andOrderidLessThanOrEqualTo(String value) { + addCriterion("orderId <=", value, "orderid"); + return (Criteria) this; + } + + public Criteria andOrderidLike(String value) { + addCriterion("orderId like", value, "orderid"); + return (Criteria) this; + } + + public Criteria andOrderidNotLike(String value) { + addCriterion("orderId not like", value, "orderid"); + return (Criteria) this; + } + + public Criteria andOrderidIn(List values) { + addCriterion("orderId in", values, "orderid"); + return (Criteria) this; + } + + public Criteria andOrderidNotIn(List values) { + addCriterion("orderId not in", values, "orderid"); + return (Criteria) this; + } + + public Criteria andOrderidBetween(String value1, String value2) { + addCriterion("orderId between", value1, value2, "orderid"); + return (Criteria) this; + } + + public Criteria andOrderidNotBetween(String value1, String value2) { + addCriterion("orderId not between", value1, value2, "orderid"); + return (Criteria) this; + } + + public Criteria andBatchnoIsNull() { + addCriterion("batchNo is null"); + return (Criteria) this; + } + + public Criteria andBatchnoIsNotNull() { + addCriterion("batchNo is not null"); + return (Criteria) this; + } + + public Criteria andBatchnoEqualTo(String value) { + addCriterion("batchNo =", value, "batchno"); + return (Criteria) this; + } + + public Criteria andBatchnoNotEqualTo(String value) { + addCriterion("batchNo <>", value, "batchno"); + return (Criteria) this; + } + + public Criteria andBatchnoGreaterThan(String value) { + addCriterion("batchNo >", value, "batchno"); + return (Criteria) this; + } + + public Criteria andBatchnoGreaterThanOrEqualTo(String value) { + addCriterion("batchNo >=", value, "batchno"); + return (Criteria) this; + } + + public Criteria andBatchnoLessThan(String value) { + addCriterion("batchNo <", value, "batchno"); + return (Criteria) this; + } + + public Criteria andBatchnoLessThanOrEqualTo(String value) { + addCriterion("batchNo <=", value, "batchno"); + return (Criteria) this; + } + + public Criteria andBatchnoLike(String value) { + addCriterion("batchNo like", value, "batchno"); + return (Criteria) this; + } + + public Criteria andBatchnoNotLike(String value) { + addCriterion("batchNo not like", value, "batchno"); + return (Criteria) this; + } + + public Criteria andBatchnoIn(List values) { + addCriterion("batchNo in", values, "batchno"); + return (Criteria) this; + } + + public Criteria andBatchnoNotIn(List values) { + addCriterion("batchNo not in", values, "batchno"); + return (Criteria) this; + } + + public Criteria andBatchnoBetween(String value1, String value2) { + addCriterion("batchNo between", value1, value2, "batchno"); + return (Criteria) this; + } + + public Criteria andBatchnoNotBetween(String value1, String value2) { + addCriterion("batchNo not between", value1, value2, "batchno"); + return (Criteria) this; + } + + public Criteria andProducedateIsNull() { + addCriterion("produceDate is null"); + return (Criteria) this; + } + + public Criteria andProducedateIsNotNull() { + addCriterion("produceDate is not null"); + return (Criteria) this; + } + + public Criteria andProducedateEqualTo(String value) { + addCriterion("produceDate =", value, "producedate"); + return (Criteria) this; + } + + public Criteria andProducedateNotEqualTo(String value) { + addCriterion("produceDate <>", value, "producedate"); + return (Criteria) this; + } + + public Criteria andProducedateGreaterThan(String value) { + addCriterion("produceDate >", value, "producedate"); + return (Criteria) this; + } + + public Criteria andProducedateGreaterThanOrEqualTo(String value) { + addCriterion("produceDate >=", value, "producedate"); + return (Criteria) this; + } + + public Criteria andProducedateLessThan(String value) { + addCriterion("produceDate <", value, "producedate"); + return (Criteria) this; + } + + public Criteria andProducedateLessThanOrEqualTo(String value) { + addCriterion("produceDate <=", value, "producedate"); + return (Criteria) this; + } + + public Criteria andProducedateLike(String value) { + addCriterion("produceDate like", value, "producedate"); + return (Criteria) this; + } + + public Criteria andProducedateNotLike(String value) { + addCriterion("produceDate not like", value, "producedate"); + return (Criteria) this; + } + + public Criteria andProducedateIn(List values) { + addCriterion("produceDate in", values, "producedate"); + return (Criteria) this; + } + + public Criteria andProducedateNotIn(List values) { + addCriterion("produceDate not in", values, "producedate"); + return (Criteria) this; + } + + public Criteria andProducedateBetween(String value1, String value2) { + addCriterion("produceDate between", value1, value2, "producedate"); + return (Criteria) this; + } + + public Criteria andProducedateNotBetween(String value1, String value2) { + addCriterion("produceDate not between", value1, value2, "producedate"); + return (Criteria) this; + } + + public Criteria andExpiredateIsNull() { + addCriterion("expireDate is null"); + return (Criteria) this; + } + + public Criteria andExpiredateIsNotNull() { + addCriterion("expireDate is not null"); + return (Criteria) this; + } + + public Criteria andExpiredateEqualTo(String value) { + addCriterion("expireDate =", value, "expiredate"); + return (Criteria) this; + } + + public Criteria andExpiredateNotEqualTo(String value) { + addCriterion("expireDate <>", value, "expiredate"); + return (Criteria) this; + } + + public Criteria andExpiredateGreaterThan(String value) { + addCriterion("expireDate >", value, "expiredate"); + return (Criteria) this; + } + + public Criteria andExpiredateGreaterThanOrEqualTo(String value) { + addCriterion("expireDate >=", value, "expiredate"); + return (Criteria) this; + } + + public Criteria andExpiredateLessThan(String value) { + addCriterion("expireDate <", value, "expiredate"); + return (Criteria) this; + } + + public Criteria andExpiredateLessThanOrEqualTo(String value) { + addCriterion("expireDate <=", value, "expiredate"); + return (Criteria) this; + } + + public Criteria andExpiredateLike(String value) { + addCriterion("expireDate like", value, "expiredate"); + return (Criteria) this; + } + + public Criteria andExpiredateNotLike(String value) { + addCriterion("expireDate not like", value, "expiredate"); + return (Criteria) this; + } + + public Criteria andExpiredateIn(List values) { + addCriterion("expireDate in", values, "expiredate"); + return (Criteria) this; + } + + public Criteria andExpiredateNotIn(List values) { + addCriterion("expireDate not in", values, "expiredate"); + return (Criteria) this; + } + + public Criteria andExpiredateBetween(String value1, String value2) { + addCriterion("expireDate between", value1, value2, "expiredate"); + return (Criteria) this; + } + + public Criteria andExpiredateNotBetween(String value1, String value2) { + addCriterion("expireDate not between", value1, value2, "expiredate"); + return (Criteria) this; + } + + public Criteria andSerialnoIsNull() { + addCriterion("serialNo is null"); + return (Criteria) this; + } + + public Criteria andSerialnoIsNotNull() { + addCriterion("serialNo is not null"); + return (Criteria) this; + } + + public Criteria andSerialnoEqualTo(String value) { + addCriterion("serialNo =", value, "serialno"); + return (Criteria) this; + } + + public Criteria andSerialnoNotEqualTo(String value) { + addCriterion("serialNo <>", value, "serialno"); + return (Criteria) this; + } + + public Criteria andSerialnoGreaterThan(String value) { + addCriterion("serialNo >", value, "serialno"); + return (Criteria) this; + } + + public Criteria andSerialnoGreaterThanOrEqualTo(String value) { + addCriterion("serialNo >=", value, "serialno"); + return (Criteria) this; + } + + public Criteria andSerialnoLessThan(String value) { + addCriterion("serialNo <", value, "serialno"); + return (Criteria) this; + } + + public Criteria andSerialnoLessThanOrEqualTo(String value) { + addCriterion("serialNo <=", value, "serialno"); + return (Criteria) this; + } + + public Criteria andSerialnoLike(String value) { + addCriterion("serialNo like", value, "serialno"); + return (Criteria) this; + } + + public Criteria andSerialnoNotLike(String value) { + addCriterion("serialNo not like", value, "serialno"); + return (Criteria) this; + } + + public Criteria andSerialnoIn(List values) { + addCriterion("serialNo in", values, "serialno"); + return (Criteria) this; + } + + public Criteria andSerialnoNotIn(List values) { + addCriterion("serialNo not in", values, "serialno"); + return (Criteria) this; + } + + public Criteria andSerialnoBetween(String value1, String value2) { + addCriterion("serialNo between", value1, value2, "serialno"); + return (Criteria) this; + } + + public Criteria andSerialnoNotBetween(String value1, String value2) { + addCriterion("serialNo not between", value1, value2, "serialno"); + return (Criteria) this; + } + + public Criteria andUdiIsNull() { + addCriterion("udi is null"); + return (Criteria) this; + } + + public Criteria andUdiIsNotNull() { + addCriterion("udi is not null"); + return (Criteria) this; + } + + public Criteria andUdiEqualTo(String value) { + addCriterion("udi =", value, "udi"); + return (Criteria) this; + } + + public Criteria andUdiNotEqualTo(String value) { + addCriterion("udi <>", value, "udi"); + return (Criteria) this; + } + + public Criteria andUdiGreaterThan(String value) { + addCriterion("udi >", value, "udi"); + return (Criteria) this; + } + + public Criteria andUdiGreaterThanOrEqualTo(String value) { + addCriterion("udi >=", value, "udi"); + return (Criteria) this; + } + + public Criteria andUdiLessThan(String value) { + addCriterion("udi <", value, "udi"); + return (Criteria) this; + } + + public Criteria andUdiLessThanOrEqualTo(String value) { + addCriterion("udi <=", value, "udi"); + return (Criteria) this; + } + + public Criteria andUdiLike(String value) { + addCriterion("udi like", value, "udi"); + return (Criteria) this; + } + + public Criteria andUdiNotLike(String value) { + addCriterion("udi not like", value, "udi"); + return (Criteria) this; + } + + public Criteria andUdiIn(List values) { + addCriterion("udi in", values, "udi"); + return (Criteria) this; + } + + public Criteria andUdiNotIn(List values) { + addCriterion("udi not in", values, "udi"); + return (Criteria) this; + } + + public Criteria andUdiBetween(String value1, String value2) { + addCriterion("udi between", value1, value2, "udi"); + return (Criteria) this; + } + + public Criteria andUdiNotBetween(String value1, String value2) { + addCriterion("udi not between", value1, value2, "udi"); + return (Criteria) this; + } + + public Criteria andCountIsNull() { + addCriterion("count is null"); + return (Criteria) this; + } + + public Criteria andCountIsNotNull() { + addCriterion("count is not null"); + return (Criteria) this; + } + + public Criteria andCountEqualTo(Integer value) { + addCriterion("count =", value, "count"); + return (Criteria) this; + } + + public Criteria andCountNotEqualTo(Integer value) { + addCriterion("count <>", value, "count"); + return (Criteria) this; + } + + public Criteria andCountGreaterThan(Integer value) { + addCriterion("count >", value, "count"); + return (Criteria) this; + } + + public Criteria andCountGreaterThanOrEqualTo(Integer value) { + addCriterion("count >=", value, "count"); + return (Criteria) this; + } + + public Criteria andCountLessThan(Integer value) { + addCriterion("count <", value, "count"); + return (Criteria) this; + } + + public Criteria andCountLessThanOrEqualTo(Integer value) { + addCriterion("count <=", value, "count"); + return (Criteria) this; + } + + public Criteria andCountIn(List values) { + addCriterion("count in", values, "count"); + return (Criteria) this; + } + + public Criteria andCountNotIn(List values) { + addCriterion("count not in", values, "count"); + return (Criteria) this; + } + + public Criteria andCountBetween(Integer value1, Integer value2) { + addCriterion("count between", value1, value2, "count"); + return (Criteria) this; + } + + public Criteria andCountNotBetween(Integer value1, Integer value2) { + addCriterion("count not between", value1, value2, "count"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/api-admin/src/main/java/com/glxp/api/admin/exception/JsonException.java b/api-admin/src/main/java/com/glxp/api/admin/exception/JsonException.java new file mode 100644 index 00000000..ef76551a --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/exception/JsonException.java @@ -0,0 +1,28 @@ +package com.glxp.api.admin.exception; + +import com.glxp.api.common.enums.ResultEnum; +import lombok.Getter; + +/** + * 错误处理类 + */ +@Getter +public class JsonException extends RuntimeException{ + + private Integer code; + + public JsonException(ResultEnum resultEnum) { + super(resultEnum.getMessage()); + this.code = resultEnum.getCode(); + } + + public JsonException(ResultEnum resultEnum, String message) { + super(message); + this.code = resultEnum.getCode(); + } + + public JsonException(Integer code, String message) { + super(message); + this.code = code; + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/handler/GlobalExceptionHandler.java b/api-admin/src/main/java/com/glxp/api/admin/handler/GlobalExceptionHandler.java new file mode 100644 index 00000000..b2dffc8a --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/handler/GlobalExceptionHandler.java @@ -0,0 +1,33 @@ +package com.glxp.api.admin.handler; + +import com.glxp.api.admin.exception.JsonException; +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RestControllerAdvice; + +/** + * 错误回调 + */ +@RestControllerAdvice +@Slf4j +public class GlobalExceptionHandler { + + // 拦截API异常 + @ExceptionHandler(value = JsonException.class) + public BaseResponse handlerJsonException(JsonException e) { + // 返回对应的错误信息 + return ResultVOUtils.error(e.getCode(), e.getMessage()); + } + + // 拦截API异常 + @ExceptionHandler(value = RuntimeException.class) + public BaseResponse handlerRuntimeException(RuntimeException e) { + log.error(e.getMessage()); + // 返回对应的错误信息 + return ResultVOUtils.error(ResultEnum.NOT_NETWORK); + } + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/httpclient/ErpBasicClient.java b/api-admin/src/main/java/com/glxp/api/admin/httpclient/ErpBasicClient.java new file mode 100644 index 00000000..4b177e49 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/httpclient/ErpBasicClient.java @@ -0,0 +1,61 @@ +package com.glxp.api.admin.httpclient; + +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.TypeReference; +import com.glxp.api.admin.res.basic.ErpProductsResponse; +import com.glxp.api.admin.res.basic.ErpUnitsResponse; +import com.glxp.api.admin.req.basic.FilterErpGoodsRequest; +import com.glxp.api.admin.req.receipt.UnitMaintainFilterRequest; +import com.glxp.api.admin.res.PageSimpleResponse; +import com.glxp.api.admin.util.HttpClient; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; + +import java.util.HashMap; +import java.util.Map; + +/** + * 获取ERP基础数据 + */ +public class ErpBasicClient { + + + //获取往来单位 + public BaseResponse> getErpCrop(UnitMaintainFilterRequest unitMaintainFilterRequest, String url) { + Map paramMap = new HashMap<>(16); + paramMap.put("unitId", unitMaintainFilterRequest.getUnitId()); + paramMap.put("name", unitMaintainFilterRequest.getName()); + paramMap.put("page", unitMaintainFilterRequest.getPage()); + paramMap.put("limit", unitMaintainFilterRequest.getLimit()); + String response = HttpClient.mipsGet(url, paramMap); + try { + BaseResponse> udiDlDeviceResponse = (BaseResponse>) JSONObject.parseObject(response, BaseResponse.class); + return udiDlDeviceResponse; + } catch (Exception e) { + e.printStackTrace(); + return ResultVOUtils.error(500, "连接ERP服务出错!"); + } + } + + //获取产品信息 + public BaseResponse> getErpProducts(FilterErpGoodsRequest filterErpGoodsRequest, String url) { + Map paramMap = new HashMap<>(16); + paramMap.put("code", filterErpGoodsRequest.getCode()); + paramMap.put("name", filterErpGoodsRequest.getName()); + paramMap.put("limit", filterErpGoodsRequest.getLimit()); + paramMap.put("page", filterErpGoodsRequest.getPage()); + + String response = HttpClient.mipsGet(url, paramMap); + try { + BaseResponse> udiDlDeviceResponse = + JSONObject.parseObject(response, new TypeReference>>() { + }); + return udiDlDeviceResponse; + } catch (Exception e) { + e.printStackTrace(); + return ResultVOUtils.error(500, "连接ERP服务出错!"); + } + } + + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/httpclient/ErpInvClient.java b/api-admin/src/main/java/com/glxp/api/admin/httpclient/ErpInvClient.java new file mode 100644 index 00000000..f74ba52b --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/httpclient/ErpInvClient.java @@ -0,0 +1,39 @@ +package com.glxp.api.admin.httpclient; + +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.TypeReference; +import com.glxp.api.admin.req.inventory.ErpOnhandRequest; +import com.glxp.api.admin.res.PageSimpleResponse; +import com.glxp.api.admin.res.inventory.ErpOnHandResponse; +import com.glxp.api.admin.util.HttpClient; +import com.glxp.api.common.res.BaseResponse; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ErpInvClient { + + + public List getOnHand(ErpOnhandRequest onhandRequest, String url) { + + Map paramMap = new HashMap<>(16); + if (onhandRequest.getBatchNo() != null && !onhandRequest.getBatchNo().equals("")) + paramMap.put("batchNo", onhandRequest.getBatchNo()); + if (onhandRequest.getWarehouseCode() != null && !onhandRequest.getWarehouseCode().equals("")) + paramMap.put("warehouseCode", onhandRequest.getWarehouseCode()); + if (onhandRequest.getInventoryCode() != null && !onhandRequest.getInventoryCode().equals("")) + paramMap.put("inventoryCode", onhandRequest.getInventoryCode()); + String response = HttpClient.mipsGet(url, paramMap); + try { + BaseResponse> onHandsResponse = + JSONObject.parseObject(response, new TypeReference>>() { + }); + List erpOnHandResponses = onHandsResponse.getData().getList(); + return erpOnHandResponses; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/httpclient/ErpOrderClient.java b/api-admin/src/main/java/com/glxp/api/admin/httpclient/ErpOrderClient.java new file mode 100644 index 00000000..b7dbf827 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/httpclient/ErpOrderClient.java @@ -0,0 +1,144 @@ +package com.glxp.api.admin.httpclient; + +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.TypeReference; +import com.glxp.api.admin.entity.inout.ErpOrderEntity; +import com.glxp.api.admin.req.inout.ERPPostBillRequest; +import com.glxp.api.admin.req.inout.FilterOrderRequest; +import com.glxp.api.admin.req.inout.USignRequest; +import com.glxp.api.admin.res.PageSimpleResponse; +import com.glxp.api.admin.res.inout.ErpOrderResponse; +import com.glxp.api.admin.util.DateUtil; +import com.glxp.api.admin.util.HttpClient; +import com.glxp.api.common.res.BaseResponse; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 获取ERP出入库单据 + */ +public class ErpOrderClient { + private String url; + + public ErpOrderClient() { + + } + + public ErpOrderClient(String url) { + this.url = url; + } + + public List getErpOrder(List billCodes) { + List erpOrderEntities = new ArrayList<>(); + if (billCodes != null && billCodes.size() > 0) { + for (int i = 0; i < billCodes.size(); i++) { + ErpOrderEntity erpOrderEntity = getErpOrder(billCodes.get(i)); + if (erpOrderEntity != null) { + erpOrderEntities.add(erpOrderEntity); + } + } + } + return erpOrderEntities; + } + + public BaseResponse> getErpOrderResponse(FilterOrderRequest filterOrderRequest) { + Map paramMap = new HashMap<>(16); + paramMap.put("billNo", filterOrderRequest.getBillNo()); + paramMap.put("page", filterOrderRequest.getPage()); + paramMap.put("limit", filterOrderRequest.getLimit()); + paramMap.put("billAction", filterOrderRequest.getBillAction()); + if (filterOrderRequest.getStartDate() == null || filterOrderRequest.getEndDate() == null) { + Map date = DateUtil.getDayTRange(); + if (filterOrderRequest.getBillNo() != null) { + date = DateUtil.getYearTRange(); + } + filterOrderRequest.setStartDate((String) date.get("startDate")); + filterOrderRequest.setEndDate((String) date.get("endDate")); + } + paramMap.put("startDate", filterOrderRequest.getStartDate()); + paramMap.put("endDate", filterOrderRequest.getEndDate()); + + String response = ""; + response = HttpClient.mipsGet(url, paramMap); + try { + BaseResponse> responseBaseResponse = + JSONObject.parseObject(response, new TypeReference>>() { + }); + return responseBaseResponse; + + } catch ( + Exception e) { + e.printStackTrace(); + } + return null; + } + + public List getErpOrder(FilterOrderRequest filterOrderRequest) { + + try { + BaseResponse> responseBaseResponse = getErpOrderResponse(filterOrderRequest); + List purchaseinResponseList = responseBaseResponse.getData().getList(); + if (purchaseinResponseList != null && purchaseinResponseList.size() > 0) { + List erpOrderEntities = new ArrayList<>(); + for (ErpOrderResponse erpOrderResponse : purchaseinResponseList) { + for (ErpOrderResponse.SubErpOrder subPurchase : erpOrderResponse.getSubErpOrders()) { + ErpOrderEntity erpOrderEntity = new ErpOrderEntity(); + erpOrderEntity.setErpOrderId(erpOrderResponse.getBillNo()); + erpOrderEntity.setCompanyid(erpOrderResponse.getCorpId()); + erpOrderEntity.setCompanyname(erpOrderResponse.getCorpName()); + erpOrderEntity.setCredate(erpOrderResponse.getBilldate()); + erpOrderEntity.setGoodsid(subPurchase.getProductId()); + erpOrderEntity.setGoodsname(subPurchase.getProductName()); + erpOrderEntity.setBatchNo(subPurchase.getBatchNo()); + erpOrderEntity.setProductDate(subPurchase.getProductDate()); + erpOrderEntity.setExpireDate(subPurchase.getExpireDate()); + erpOrderEntity.setErpCount(Math.abs(subPurchase.getCount())); + erpOrderEntity.setReCount(Math.abs(subPurchase.getReCount())); + erpOrderEntity.setGoodsunit(subPurchase.getSpec()); + erpOrderEntities.add(erpOrderEntity); + } + } + return erpOrderEntities; + } + } catch ( + Exception e) { + e.printStackTrace(); + } + return null; + } + + public ErpOrderEntity getErpOrder(String billCode) { + FilterOrderRequest filterOrderRequest = new FilterOrderRequest(); + filterOrderRequest.setPage(1); + filterOrderRequest.setLimit(1); + filterOrderRequest.setBillNo(billCode); + List erpOrderEntities = getErpOrder(filterOrderRequest); + if (erpOrderEntities != null && erpOrderEntities.size() > 0) { + return erpOrderEntities.get(0); + } + return null; + } + + public BaseResponse postBill(Map> postMap, String billAction, String uploadUrl) { + ERPPostBillRequest erpPostBillRequest = new ERPPostBillRequest(); + erpPostBillRequest.setPostMap(postMap); + erpPostBillRequest.setBillAction(billAction); + String response = HttpClient.uCloudPost(uploadUrl, erpPostBillRequest); + BaseResponse baseResponse = + JSONObject.parseObject(response, new TypeReference() { + }); + return baseResponse; + } + + public BaseResponse signBill(USignRequest signRequest, String url) { + String response = HttpClient.uCloudPost(url, signRequest); + BaseResponse baseResponse = + JSONObject.parseObject(response, new TypeReference() { + }); + return baseResponse; + } + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/httpclient/UdiDlHttpClient.java b/api-admin/src/main/java/com/glxp/api/admin/httpclient/UdiDlHttpClient.java new file mode 100644 index 00000000..8bb3f8b2 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/httpclient/UdiDlHttpClient.java @@ -0,0 +1,59 @@ +package com.glxp.api.admin.httpclient; + +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.TypeReference; +import com.glxp.api.admin.entity.basic.UdiInfoEntity; +import com.glxp.api.admin.util.HttpClient; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 获取国家UDI同步库信息 + */ +public class UdiDlHttpClient { + String udiUrl; + + public UdiDlHttpClient(String udiUrl) { + this.udiUrl = udiUrl; + } + + public List getUdiByUuid(String uuid) { + Map paramMap = new HashMap<>(16); + paramMap.put("page", 1); + paramMap.put("limit", 100); + paramMap.put("uuid", uuid); + String response = HttpClient.mipsGet(udiUrl + "/udidl/device/filterByUuid", paramMap); + try { + BaseResponse> udiDlDeviceResponse = (BaseResponse>) JSONObject.parseObject(response, BaseResponse.class); + List udiInfoEntities = udiDlDeviceResponse.getData(); + return udiInfoEntities; + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + public List getUdiByDi(String key) { + Map paramMap = new HashMap<>(16); + paramMap.put("page", 1); + paramMap.put("limit", 100); + paramMap.put("nameCode", key); + String response = HttpClient.mipsGet(udiUrl + "/udidl/device/filterByNameCode", paramMap); + try { + BaseResponse> udiDlDeviceResponse = + JSONObject.parseObject(response, new TypeReference>>() { + + }); + List udiInfoEntities = udiDlDeviceResponse.getData(); + return udiInfoEntities; + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/ListPageRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/ListPageRequest.java new file mode 100644 index 00000000..fc9e7e5d --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/ListPageRequest.java @@ -0,0 +1,23 @@ +package com.glxp.api.admin.req; + +import lombok.Data; + +import javax.validation.constraints.Max; +import javax.validation.constraints.Min; + +/** + * 分页的表单 + */ +@Data +public class ListPageRequest { + + + @Min(message = "分页参数错误", value = 1) + private Integer page; + + + @Min(value = 1, message = "分页参数不能小于1") + @Max(value = 500, message = "分页参数不能大于50") + private Integer limit; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/auth/AuthAdminQueryRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/auth/AuthAdminQueryRequest.java new file mode 100644 index 00000000..0d85a331 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/auth/AuthAdminQueryRequest.java @@ -0,0 +1,21 @@ +package com.glxp.api.admin.req.auth; + +import com.glxp.api.admin.req.ListPageRequest; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +@EqualsAndHashCode(callSuper = true) +@Data +public class AuthAdminQueryRequest extends ListPageRequest { + + private String userName; + + private Integer userFlag; + + private Long roleId; + + private List ids; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/auth/AuthAdminSaveRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/auth/AuthAdminSaveRequest.java new file mode 100644 index 00000000..58c217bf --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/auth/AuthAdminSaveRequest.java @@ -0,0 +1,38 @@ +package com.glxp.api.admin.req.auth; + +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * 管理员的提交保存表单 + */ +@Data +public class AuthAdminSaveRequest { + // id + private Long id; + // 昵称 + @NotEmpty(message = "请输入用户名") + private String userName; + // 登录密码 + private String passWord; + // 状态 + @NotNull(message = "请选择状态") + private Integer userFlag; + private String employeeName; + + + // 最后登录ip + private String lastLoginIp; + // 最后登录时间 + private String lastLoginTime; + // 创建时间 + private String createTime; + + private String lastModifyTime; + private String comments; + // 角色ids + private List roles; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/auth/AuthPermissionRuleSaveRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/auth/AuthPermissionRuleSaveRequest.java new file mode 100644 index 00000000..5b066045 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/auth/AuthPermissionRuleSaveRequest.java @@ -0,0 +1,24 @@ +package com.glxp.api.admin.req.auth; + +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +/** + * 权限规则的提交保存表单 + */ +@Data +public class AuthPermissionRuleSaveRequest { + private Long id; + private Long pid; + @NotEmpty(message = "请输入规则名称") + private String name; + @NotEmpty(message = "请输入规则标题") + private String title; + @NotNull(message = "请选择状态") + private Integer status; + private String condition; + private Integer listorder; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/auth/AuthRoleAuthRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/auth/AuthRoleAuthRequest.java new file mode 100644 index 00000000..1eaa3c2b --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/auth/AuthRoleAuthRequest.java @@ -0,0 +1,18 @@ +package com.glxp.api.admin.req.auth; + +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * 角色的授权提交表单 + */ +@Data +public class AuthRoleAuthRequest { + @NotNull(message = "请选择角色") + private Long role_id; + @NotEmpty(message = "请选择授权的权限规则") + private List auth_rules; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/auth/AuthRoleQueryRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/auth/AuthRoleQueryRequest.java new file mode 100644 index 00000000..b3011b40 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/auth/AuthRoleQueryRequest.java @@ -0,0 +1,16 @@ +package com.glxp.api.admin.req.auth; + +import com.glxp.api.admin.req.ListPageRequest; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 角色的查询表单 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class AuthRoleQueryRequest extends ListPageRequest { + private String name; + private Integer status; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/auth/AuthRoleSaveRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/auth/AuthRoleSaveRequest.java new file mode 100644 index 00000000..5c84e302 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/auth/AuthRoleSaveRequest.java @@ -0,0 +1,16 @@ +package com.glxp.api.admin.req.auth; + +import lombok.Data; + +/** + * 角色的提交保存表单 + */ +@Data +public class AuthRoleSaveRequest { + private Long id; + private String name; + private Long pid; + private Long status; + private String remark; + private Long listorder; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/auth/LoginRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/auth/LoginRequest.java new file mode 100644 index 00000000..476f6be8 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/auth/LoginRequest.java @@ -0,0 +1,19 @@ +package com.glxp.api.admin.req.auth; + +import lombok.Data; + +import javax.validation.constraints.NotEmpty; + +/** + * 登录验证 + */ +@Data +public class LoginRequest { + + @NotEmpty(message = "用户名不能为空") + private String username; + + @NotEmpty(message = "密码不能为空") + private String password; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/auth/UpdatePasswordRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/auth/UpdatePasswordRequest.java new file mode 100644 index 00000000..58b613a8 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/auth/UpdatePasswordRequest.java @@ -0,0 +1,23 @@ +package com.glxp.api.admin.req.auth; + +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +/** + * 修改密码的表单 + */ +@Data +public class UpdatePasswordRequest { + + @NotNull(message = "参数错误!") + private Long adminId; + + @NotEmpty(message = "请输入旧密码") + private String oldPassword; + + @NotEmpty(message = "请输入新密码") + private String newPassword; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/basic/BasicUnitMaintainFilterRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/basic/BasicUnitMaintainFilterRequest.java new file mode 100644 index 00000000..f262d77b --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/basic/BasicUnitMaintainFilterRequest.java @@ -0,0 +1,11 @@ +package com.glxp.api.admin.req.basic; + +import com.glxp.api.admin.req.ListPageRequest; +import lombok.Data; + +@Data +public class BasicUnitMaintainFilterRequest extends ListPageRequest { + + private String key; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/basic/BasicUnitMaintainSaveRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/basic/BasicUnitMaintainSaveRequest.java new file mode 100644 index 00000000..6f498d52 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/basic/BasicUnitMaintainSaveRequest.java @@ -0,0 +1,19 @@ +package com.glxp.api.admin.req.basic; + +import lombok.Data; + +@Data +public class BasicUnitMaintainSaveRequest { + + private int id; + private String thirdId; + private String erpId; + private String name; + private String spell; + private String addr; + private String status; + private String type; + private String creditNo; + private String contact; + private String mobile; +} \ No newline at end of file diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/basic/CombineRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/basic/CombineRequest.java new file mode 100644 index 00000000..5a6db6e8 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/basic/CombineRequest.java @@ -0,0 +1,15 @@ +package com.glxp.api.admin.req.basic; + +import lombok.Data; + +import java.util.List; + +@Data +public class CombineRequest { + + List keys; + private String thirdId; + private String erpName; + private String relId; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/basic/FilterErpGoodsRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/basic/FilterErpGoodsRequest.java new file mode 100644 index 00000000..417dccfb --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/basic/FilterErpGoodsRequest.java @@ -0,0 +1,12 @@ +package com.glxp.api.admin.req.basic; + +import com.glxp.api.admin.req.ListPageRequest; +import lombok.Data; + +@Data +public class FilterErpGoodsRequest extends ListPageRequest { + + private String name; + private String code; +} + diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/basic/FilterStockprintRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/basic/FilterStockprintRequest.java new file mode 100644 index 00000000..59e854cd --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/basic/FilterStockprintRequest.java @@ -0,0 +1,17 @@ +package com.glxp.api.admin.req.basic; + +import com.glxp.api.admin.req.ListPageRequest; +import lombok.Data; + +@Data +public class FilterStockprintRequest extends ListPageRequest { + private String nameCode; + private String printStatus; + private String udiCode; + private String cpmctymc; + private String thirdName; + private String thirdId; + private String batchNo; + private String udiRlIdFk; + private String warehouseCode; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/basic/FilterUdiInfoRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/basic/FilterUdiInfoRequest.java new file mode 100644 index 00000000..78ebdb6f --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/basic/FilterUdiInfoRequest.java @@ -0,0 +1,16 @@ +package com.glxp.api.admin.req.basic; + +import com.glxp.api.admin.req.ListPageRequest; +import lombok.Data; + +@Data +public class FilterUdiInfoRequest extends ListPageRequest { + + private String ylqxzcrbarmc; + private String cpmctymc; + private String nameCode; + private String uuid; + private String ggxh; + private String thirdId; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/basic/UOnhandQueryRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/basic/UOnhandQueryRequest.java new file mode 100644 index 00000000..9fa8be25 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/basic/UOnhandQueryRequest.java @@ -0,0 +1,21 @@ +package com.glxp.api.admin.req.basic; + +import com.glxp.api.admin.req.ListPageRequest; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +public class UOnhandQueryRequest extends ListPageRequest { + + private String batchcode; //批次号 + private String inventory; //存货 + private String warehouse; //仓库 + private String isGroupByBatchcode; // 按批次号展开 + private String numcondition; //只查询数量大于0传>,只查询数量小于0传<,只查询数量等于0传=,只查询数量不等于0传<>,其他符号不识别,u8c3.1版本 + + private String udiCode; + private String nameCode; + + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/basic/UpdatePrintStatusRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/basic/UpdatePrintStatusRequest.java new file mode 100644 index 00000000..839f1585 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/basic/UpdatePrintStatusRequest.java @@ -0,0 +1,12 @@ +package com.glxp.api.admin.req.basic; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +@Data +public class UpdatePrintStatusRequest implements Serializable { + + List ids; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/info/FilterSetupRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/info/FilterSetupRequest.java new file mode 100644 index 00000000..a03c7ed3 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/info/FilterSetupRequest.java @@ -0,0 +1,12 @@ +package com.glxp.api.admin.req.info; + +import lombok.Data; + +@Data +public class FilterSetupRequest { + + private int id; + private String erpSign; + private String erpSaleOutModify; + private String erpPruchaseModify; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/info/SystemParamConfigRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/info/SystemParamConfigRequest.java new file mode 100644 index 00000000..823ce843 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/info/SystemParamConfigRequest.java @@ -0,0 +1,19 @@ +package com.glxp.api.admin.req.info; + +import com.glxp.api.admin.req.ListPageRequest; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Data +public class SystemParamConfigRequest extends ListPageRequest { + + private int id; + private int parentId; + private String paramName; + private String paramKey; + private String paramValue; + private int paramStatus; + private int paramType; + private String paramExplain; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/info/SystemParamConfigSaveRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/info/SystemParamConfigSaveRequest.java new file mode 100644 index 00000000..8d55c999 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/info/SystemParamConfigSaveRequest.java @@ -0,0 +1,16 @@ +package com.glxp.api.admin.req.info; + +import lombok.Data; + +@Data +public class SystemParamConfigSaveRequest { + + private int id; + private int parentId; + private String paramName; + private String paramKey; + private String paramValue; + private int paramStatus; + private int paramType; + private String paramExplain; +} \ No newline at end of file diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/inout/CommitRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/inout/CommitRequest.java new file mode 100644 index 00000000..51c29642 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/inout/CommitRequest.java @@ -0,0 +1,9 @@ +package com.glxp.api.admin.req.inout; + +import lombok.Data; + +@Data +public class CommitRequest { + + private String orderId; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/inout/DeleteCodeRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/inout/DeleteCodeRequest.java new file mode 100644 index 00000000..848146f9 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/inout/DeleteCodeRequest.java @@ -0,0 +1,10 @@ +package com.glxp.api.admin.req.inout; + +import lombok.Data; + +import java.util.List; +@Data +public class DeleteCodeRequest { + List codes; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/inout/DeleteRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/inout/DeleteRequest.java new file mode 100644 index 00000000..fb8be3b0 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/inout/DeleteRequest.java @@ -0,0 +1,12 @@ +package com.glxp.api.admin.req.inout; + +import lombok.Data; + +import java.util.List; + +@Data +public class DeleteRequest { + + String id; + List ids; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/inout/ERPPostBillRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/inout/ERPPostBillRequest.java new file mode 100644 index 00000000..349cd02e --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/inout/ERPPostBillRequest.java @@ -0,0 +1,14 @@ +package com.glxp.api.admin.req.inout; + +import com.glxp.api.admin.entity.inout.ErpOrderEntity; +import lombok.Data; + +import java.util.List; +import java.util.Map; + +@Data +public class ERPPostBillRequest { + + private String billAction; + private Map> postMap; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/inout/FilterOrderRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/inout/FilterOrderRequest.java new file mode 100644 index 00000000..259dbcd7 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/inout/FilterOrderRequest.java @@ -0,0 +1,16 @@ +package com.glxp.api.admin.req.inout; + +import lombok.Data; + +@Data +public class FilterOrderRequest { + + private String startDate; //起始日期 + private String endDate; //结束日期 + private String billNo; //单据号 + private String billFlag; //单据状态,0.未签字,1.已签字 + private String billAction; + private Integer limit; + private Integer page; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/inout/FilterStockCheckRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/inout/FilterStockCheckRequest.java new file mode 100644 index 00000000..796b9d4b --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/inout/FilterStockCheckRequest.java @@ -0,0 +1,16 @@ +package com.glxp.api.admin.req.inout; + +import com.glxp.api.admin.req.ListPageRequest; +import lombok.Data; + +@Data +public class FilterStockCheckRequest extends ListPageRequest { + + private Long id; + private String action; + private String actDate; + private String endTime; + private String whouse; + private String houseCard; + private String status; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/inout/ImportErpOrderRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/inout/ImportErpOrderRequest.java new file mode 100644 index 00000000..7251d6ac --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/inout/ImportErpOrderRequest.java @@ -0,0 +1,17 @@ +package com.glxp.api.admin.req.inout; + +import com.glxp.api.admin.res.inout.PurchaseinResponse; +import lombok.Data; + +import java.util.List; + +@Data +public class ImportErpOrderRequest { + + List docids; + List purchaseinResponses; + List ids; + private String orderId; + private boolean isFilter; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/inout/OrderFilterByCodeRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/inout/OrderFilterByCodeRequest.java new file mode 100644 index 00000000..8f98b0d5 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/inout/OrderFilterByCodeRequest.java @@ -0,0 +1,10 @@ +package com.glxp.api.admin.req.inout; + +import com.glxp.api.admin.req.ListPageRequest; +import lombok.Data; + +@Data +public class OrderFilterByCodeRequest extends ListPageRequest { + + private String code; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/inout/OrderFilterRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/inout/OrderFilterRequest.java new file mode 100644 index 00000000..5b9f8494 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/inout/OrderFilterRequest.java @@ -0,0 +1,22 @@ +package com.glxp.api.admin.req.inout; + +import com.glxp.api.admin.req.ListPageRequest; +import lombok.Data; + +@Data +public class OrderFilterRequest extends ListPageRequest { + + private String id; + private String action; + private String mainAction; + private String code; + private Integer exportStatus; + private Integer status; + private String corpOrderId; + private Integer contrastStatus; + private Integer signStatus; + private String startTime; + private String endTime; + private String stockCheckFk; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/inout/OrderMergeRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/inout/OrderMergeRequest.java new file mode 100644 index 00000000..810961d3 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/inout/OrderMergeRequest.java @@ -0,0 +1,11 @@ +package com.glxp.api.admin.req.inout; + +import lombok.Data; + +import java.util.List; + +@Data +public class OrderMergeRequest { + + List orderList; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/inout/OrderQueryRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/inout/OrderQueryRequest.java new file mode 100644 index 00000000..0fef589c --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/inout/OrderQueryRequest.java @@ -0,0 +1,9 @@ +package com.glxp.api.admin.req.inout; + +import com.glxp.api.admin.req.ListPageRequest; +import lombok.Data; + +@Data +public class OrderQueryRequest extends ListPageRequest { + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/inout/PostOrderRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/inout/PostOrderRequest.java new file mode 100644 index 00000000..39ab54b8 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/inout/PostOrderRequest.java @@ -0,0 +1,69 @@ +package com.glxp.api.admin.req.inout; + +import com.glxp.api.admin.entity.inout.WarehouseEntity; +import lombok.Data; + +import java.util.List; + +@Data +public class PostOrderRequest { + List postOrders; + + public List getPostOrder() { + return postOrders; + } + + public void setPostOrder(List postOrder) { + this.postOrders = postOrder; + } + + public static class PostOrder { + public List erpOrders; + List codes; + private String billType; + private String orderId; + + public String getStockIdFk() { + return stockIdFk; + } + + public void setStockIdFk(String stockIdFk) { + this.stockIdFk = stockIdFk; + } + + private String stockIdFk; + + public String getOrderId() { + return orderId; + } + + public void setOrderId(String orderId) { + this.orderId = orderId; + } + + public String getBillType() { + return billType; + } + + public void setBillType(String billType) { + this.billType = billType; + } + + public List getErpOrders() { + return erpOrders; + } + + public void setErpOrders(List erpOrders) { + this.erpOrders = erpOrders; + } + + public List getCodes() { + return codes; + } + + public void setCodes(List codes) { + this.codes = codes; + } + } + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/inout/USignRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/inout/USignRequest.java new file mode 100644 index 00000000..89403b1c --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/inout/USignRequest.java @@ -0,0 +1,11 @@ +package com.glxp.api.admin.req.inout; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +public class USignRequest { + @NotNull(message = "单据号不能为空") + private String billcode; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/inout/UpdateExportStatusRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/inout/UpdateExportStatusRequest.java new file mode 100644 index 00000000..02799f41 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/inout/UpdateExportStatusRequest.java @@ -0,0 +1,11 @@ +package com.glxp.api.admin.req.inout; + +import lombok.Data; + +@Data +public class UpdateExportStatusRequest { + + private String orderId; + private Integer exportStatus; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/inout/WarehouseQueryRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/inout/WarehouseQueryRequest.java new file mode 100644 index 00000000..1e1ba049 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/inout/WarehouseQueryRequest.java @@ -0,0 +1,14 @@ +package com.glxp.api.admin.req.inout; + +import com.glxp.api.admin.req.ListPageRequest; +import lombok.Data; + +@Data +public class WarehouseQueryRequest extends ListPageRequest { + + private String corpOrderId; + private String code; + private String udi; + private String batchNo; + private String orderId; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/inout/WarehouseSaveRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/inout/WarehouseSaveRequest.java new file mode 100644 index 00000000..04e50a5c --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/inout/WarehouseSaveRequest.java @@ -0,0 +1,19 @@ +package com.glxp.api.admin.req.inout; + +import lombok.Data; + +@Data +public class WarehouseSaveRequest { + + private String action; + private String mainAction; + private String code; + private String corpOrderId; + private String actor; + private String actDate; + private long wrongCode; + private String upperCorpOrderId; + private String fromCorpId; + private long id; + private String fromCorp; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/inventory/ErpOnhandRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/inventory/ErpOnhandRequest.java new file mode 100644 index 00000000..86b5c44d --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/inventory/ErpOnhandRequest.java @@ -0,0 +1,14 @@ +package com.glxp.api.admin.req.inventory; + +import lombok.Data; + +import java.util.List; + +@Data +public class ErpOnhandRequest { + + private String batchNo; + private String warehouseCode; + private String inventoryCode; + private List inventoryCodes; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/receipt/AddReceiptRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/receipt/AddReceiptRequest.java new file mode 100644 index 00000000..69f8f06e --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/receipt/AddReceiptRequest.java @@ -0,0 +1,107 @@ +package com.glxp.api.admin.req.receipt; + +import lombok.Data; + +import java.util.List; + +@Data +public class AddReceiptRequest { + + + private List receipts; + + + public static class ReceiptRequest{ + private String id; + private String action; + private String corpOrderId; + private String actDate; + private String fromCorpId; + private String actor; + private String mainAction; + private String fromCorp; + private String status; + private String remark; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getAction() { + return action; + } + + public void setAction(String action) { + this.action = action; + } + + public String getCorpOrderId() { + return corpOrderId; + } + + public void setCorpOrderId(String corpOrderId) { + this.corpOrderId = corpOrderId; + } + + public String getActDate() { + return actDate; + } + + public void setActDate(String actDate) { + this.actDate = actDate; + } + + public String getFromCorpId() { + return fromCorpId; + } + + public void setFromCorpId(String fromCorpId) { + this.fromCorpId = fromCorpId; + } + + public String getActor() { + return actor; + } + + public void setActor(String actor) { + this.actor = actor; + } + + public String getMainAction() { + return mainAction; + } + + public void setMainAction(String mainAction) { + this.mainAction = mainAction; + } + + public String getFromCorp() { + return fromCorp; + } + + public void setFromCorp(String fromCorp) { + this.fromCorp = fromCorp; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + } + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/receipt/BussinessTypeFilterRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/receipt/BussinessTypeFilterRequest.java new file mode 100644 index 00000000..52a6f35e --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/receipt/BussinessTypeFilterRequest.java @@ -0,0 +1,13 @@ +package com.glxp.api.admin.req.receipt; + +import com.glxp.api.admin.req.ListPageRequest; +import lombok.Data; + +@Data +public class BussinessTypeFilterRequest extends ListPageRequest { + + private String action; + private String name; + private String mainAction; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/receipt/ClearStockRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/receipt/ClearStockRequest.java new file mode 100644 index 00000000..e4ae405e --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/receipt/ClearStockRequest.java @@ -0,0 +1,8 @@ +package com.glxp.api.admin.req.receipt; + +import lombok.Data; + +@Data +public class ClearStockRequest { + String orderId; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/receipt/CodeDetailRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/receipt/CodeDetailRequest.java new file mode 100644 index 00000000..89e90d89 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/receipt/CodeDetailRequest.java @@ -0,0 +1,9 @@ +package com.glxp.api.admin.req.receipt; + +import lombok.Data; + +@Data +public class CodeDetailRequest { + + String code; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/receipt/CombineUnitRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/receipt/CombineUnitRequest.java new file mode 100644 index 00000000..3111ad44 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/receipt/CombineUnitRequest.java @@ -0,0 +1,14 @@ +package com.glxp.api.admin.req.receipt; + +import com.glxp.api.admin.res.basic.ErpUnitsResponse; +import lombok.Data; + +import java.util.List; + +@Data +public class CombineUnitRequest { + + List keys; + private String thirdId; + List custmandocResponses; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/receipt/ManuorderFilterRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/receipt/ManuorderFilterRequest.java new file mode 100644 index 00000000..357723f1 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/receipt/ManuorderFilterRequest.java @@ -0,0 +1,14 @@ +package com.glxp.api.admin.req.receipt; + +import com.glxp.api.admin.req.ListPageRequest; +import lombok.Data; + +@Data +public class ManuorderFilterRequest extends ListPageRequest { + + private String BatchNo; + private String startTime; + private String endTime; + private String coName; + private String mipsUrl; +} \ No newline at end of file diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/receipt/ProductFilterRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/receipt/ProductFilterRequest.java new file mode 100644 index 00000000..aed1c668 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/receipt/ProductFilterRequest.java @@ -0,0 +1,16 @@ +package com.glxp.api.admin.req.receipt; + +import com.glxp.api.admin.req.ListPageRequest; +import lombok.Data; + +@Data +public class ProductFilterRequest extends ListPageRequest { + + private String closeFlag; + private String batchNo; + private String orderNo; + private String startTime; + private String endTime; + private String coName; + private String dlstaus; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/receipt/ProductInfoFilterRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/receipt/ProductInfoFilterRequest.java new file mode 100644 index 00000000..3e96346f --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/receipt/ProductInfoFilterRequest.java @@ -0,0 +1,15 @@ +package com.glxp.api.admin.req.receipt; + +import com.glxp.api.admin.req.ListPageRequest; +import lombok.Data; + +@Data +public class ProductInfoFilterRequest extends ListPageRequest { + + private String unit; + private String coName; + private String nameCode; + private int addType; + private String thirdProductNo; + private String deviceRecordKey; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/receipt/ReceiptDetailRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/receipt/ReceiptDetailRequest.java new file mode 100644 index 00000000..fa9aa340 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/receipt/ReceiptDetailRequest.java @@ -0,0 +1,10 @@ +package com.glxp.api.admin.req.receipt; + +import com.glxp.api.admin.req.ListPageRequest; +import lombok.Data; + +@Data +public class ReceiptDetailRequest extends ListPageRequest { + + private String receiptId; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/receipt/ReceiptFilterRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/receipt/ReceiptFilterRequest.java new file mode 100644 index 00000000..429b0774 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/receipt/ReceiptFilterRequest.java @@ -0,0 +1,13 @@ +package com.glxp.api.admin.req.receipt; + +import com.glxp.api.admin.req.ListPageRequest; +import lombok.Data; + +@Data +public class ReceiptFilterRequest extends ListPageRequest { + + private String id; + private String action; + private String mainAction; + private String status; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/receipt/U8Request.java b/api-admin/src/main/java/com/glxp/api/admin/req/receipt/U8Request.java new file mode 100644 index 00000000..ca243e3e --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/receipt/U8Request.java @@ -0,0 +1,139 @@ +package com.glxp.api.admin.req.receipt; + +public class U8Request { + + + /** + * forinvname : a + * invbarcode : a + * invclcode : a + * invcode : a + * invmnecode : a + * invname : a + * invshortname : a + * isprimarybarcode : a + * issecondarybarcode : a + * page_now : 1 + * page_size : 10 + * system : + * unitcode : 1001 + */ + + private String forinvname; + private String invbarcode; + private String invclcode; + private String invcode; + private String invmnecode; + private String invname; + private String invshortname; + private String isprimarybarcode; + private String issecondarybarcode; + private String page_now; + private String page_size; + private String system; + private String unitcode; + + public String getForinvname() { + return forinvname; + } + + public void setForinvname(String forinvname) { + this.forinvname = forinvname; + } + + public String getInvbarcode() { + return invbarcode; + } + + public void setInvbarcode(String invbarcode) { + this.invbarcode = invbarcode; + } + + public String getInvclcode() { + return invclcode; + } + + public void setInvclcode(String invclcode) { + this.invclcode = invclcode; + } + + public String getInvcode() { + return invcode; + } + + public void setInvcode(String invcode) { + this.invcode = invcode; + } + + public String getInvmnecode() { + return invmnecode; + } + + public void setInvmnecode(String invmnecode) { + this.invmnecode = invmnecode; + } + + public String getInvname() { + return invname; + } + + public void setInvname(String invname) { + this.invname = invname; + } + + public String getInvshortname() { + return invshortname; + } + + public void setInvshortname(String invshortname) { + this.invshortname = invshortname; + } + + public String getIsprimarybarcode() { + return isprimarybarcode; + } + + public void setIsprimarybarcode(String isprimarybarcode) { + this.isprimarybarcode = isprimarybarcode; + } + + public String getIssecondarybarcode() { + return issecondarybarcode; + } + + public void setIssecondarybarcode(String issecondarybarcode) { + this.issecondarybarcode = issecondarybarcode; + } + + public String getPage_now() { + return page_now; + } + + public void setPage_now(String page_now) { + this.page_now = page_now; + } + + public String getPage_size() { + return page_size; + } + + public void setPage_size(String page_size) { + this.page_size = page_size; + } + + public String getSystem() { + return system; + } + + public void setSystem(String system) { + this.system = system; + } + + public String getUnitcode() { + return unitcode; + } + + public void setUnitcode(String unitcode) { + this.unitcode = unitcode; + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/receipt/UnitMaintainFilterRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/receipt/UnitMaintainFilterRequest.java new file mode 100644 index 00000000..0b6d4e9d --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/receipt/UnitMaintainFilterRequest.java @@ -0,0 +1,12 @@ +package com.glxp.api.admin.req.receipt; + +import com.glxp.api.admin.req.ListPageRequest; +import lombok.Data; + +@Data +public class UnitMaintainFilterRequest extends ListPageRequest { + + private String key; + private String unitId; + private String name; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/udid/ScheduledRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/udid/ScheduledRequest.java new file mode 100644 index 00000000..8f69633b --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/udid/ScheduledRequest.java @@ -0,0 +1,9 @@ +package com.glxp.api.admin.req.udid; + +import lombok.Data; + +@Data +public class ScheduledRequest { + private String cronName; + private String customerId; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/res/PageSimpleResponse.java b/api-admin/src/main/java/com/glxp/api/admin/res/PageSimpleResponse.java new file mode 100644 index 00000000..d4e06df9 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/res/PageSimpleResponse.java @@ -0,0 +1,16 @@ +package com.glxp.api.admin.res; + +import lombok.Data; + +import java.util.List; + +/** + * 简单的分页返回对象 + */ +@Data +public class PageSimpleResponse { + // 总数 + private Long total; + // 列表 + private List list; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/res/auth/AuthAdminResponse.java b/api-admin/src/main/java/com/glxp/api/admin/res/auth/AuthAdminResponse.java new file mode 100644 index 00000000..6e5e1598 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/res/auth/AuthAdminResponse.java @@ -0,0 +1,41 @@ +package com.glxp.api.admin.res.auth; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * 后台管理的 管理员管理页面的 VO + */ +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +public class AuthAdminResponse { + + // 主键 + private Long id; + // 昵称 + private String userName; + // 登录密码 + private String passWord; + + // 最后登录ip + private String lastLoginIp; + // 最后登录时间 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date lastLoginTime; + // 创建时间 + private Date createTime; + // 状态 + private Integer userFlag; + + private Date lastModifyTime; + private String comments; + private String employeeName; + private Integer CustomerId; + // 角色ids + private List roles; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/res/auth/AuthAdminRoleResponse.java b/api-admin/src/main/java/com/glxp/api/admin/res/auth/AuthAdminRoleResponse.java new file mode 100644 index 00000000..c150b638 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/res/auth/AuthAdminRoleResponse.java @@ -0,0 +1,15 @@ +package com.glxp.api.admin.res.auth; + +import lombok.Data; + +/** + * 管理员页面的赛选的角色列表 + */ +@Data +public class AuthAdminRoleResponse { + + private Long id; + + private String name; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/res/auth/AuthPermissionRuleMergeResponse.java b/api-admin/src/main/java/com/glxp/api/admin/res/auth/AuthPermissionRuleMergeResponse.java new file mode 100644 index 00000000..ed762873 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/res/auth/AuthPermissionRuleMergeResponse.java @@ -0,0 +1,24 @@ +package com.glxp.api.admin.res.auth; + +import lombok.Data; + +import java.util.List; + +/** + * 权限列表整合为多维数组的视图 + */ +@Data +public class AuthPermissionRuleMergeResponse { + + private Long id; + private Long pid; + private String name; + private String title; + private Long status; + private String condition; + private Long listorder; + + // 一次性加载所有权限规则生成 tree 树形节点时需要 + private List children; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/res/auth/AuthRoleResponse.java b/api-admin/src/main/java/com/glxp/api/admin/res/auth/AuthRoleResponse.java new file mode 100644 index 00000000..2caba0ab --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/res/auth/AuthRoleResponse.java @@ -0,0 +1,18 @@ +package com.glxp.api.admin.res.auth; + +import lombok.Data; + +/** + * 角色视图 + */ +@Data +public class AuthRoleResponse { + + private Long id; + private String name; + private Long pid; + private Long status; + private String remark; + private Long listorder; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/res/auth/LoginUserInfoResponse.java b/api-admin/src/main/java/com/glxp/api/admin/res/auth/LoginUserInfoResponse.java new file mode 100644 index 00000000..ce5bfc8a --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/res/auth/LoginUserInfoResponse.java @@ -0,0 +1,18 @@ +package com.glxp.api.admin.res.auth; + +import lombok.Data; + +import java.util.List; + +/** + * 登录用户的信息视图 + */ +@Data +public class LoginUserInfoResponse { + + private Long id; + private String userName; + private String avatar; + // 权限列表 + private List authRules; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/res/basic/BasicUnitMaintainResponse.java b/api-admin/src/main/java/com/glxp/api/admin/res/basic/BasicUnitMaintainResponse.java new file mode 100644 index 00000000..60af0511 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/res/basic/BasicUnitMaintainResponse.java @@ -0,0 +1,20 @@ +package com.glxp.api.admin.res.basic; + +import lombok.Data; + +@Data +public class BasicUnitMaintainResponse { + + private Integer id; + private String thirdId; + private String erpId; + private String name; + private String spell; + private String addr; + private String status; + private String type; + private String creditNo; + private String contact; + private String mobile; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/res/basic/ErpProductsResponse.java b/api-admin/src/main/java/com/glxp/api/admin/res/basic/ErpProductsResponse.java new file mode 100644 index 00000000..cd10bdfe --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/res/basic/ErpProductsResponse.java @@ -0,0 +1,19 @@ +package com.glxp.api.admin.res.basic; + +import lombok.Data; + +@Data +public class ErpProductsResponse { + + private String code; //产品编码 + private String name; + private String measname; //计量单位 + private String spec; //规格型号 + private String registerNo; //注册证号 + private String manufactory; //生产厂家 + + + //辅助字段 + private boolean isChecked; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/res/basic/ErpUnitsResponse.java b/api-admin/src/main/java/com/glxp/api/admin/res/basic/ErpUnitsResponse.java new file mode 100644 index 00000000..eee9aa07 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/res/basic/ErpUnitsResponse.java @@ -0,0 +1,15 @@ +package com.glxp.api.admin.res.basic; + +import lombok.Data; + +@Data +public class ErpUnitsResponse { + + private String id; + private String name; + private String spell; + private String addr; + private String creditNo; + private String contact; + private String mobile; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/res/basic/UOnhandQueryResponse.java b/api-admin/src/main/java/com/glxp/api/admin/res/basic/UOnhandQueryResponse.java new file mode 100644 index 00000000..5144a805 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/res/basic/UOnhandQueryResponse.java @@ -0,0 +1,175 @@ +package com.glxp.api.admin.res.basic; + +public class UOnhandQueryResponse { + + + /** + * pk_corp : 1013 + * corp_code : 1110 + * corp_name : 福建片仔癀诊断技术有限公司(测试) + * ccalbodyid : 1013F8100000000002DN + * ccalbody_code : 1110 + * ccalbody_name : 福建片仔癀诊断技术有限公司 + * cinventoryid : 1013F8100000000007LU + * cinventory_code : 1100023 + * cinventory_name : KJ0001 试剂瓶 贝克曼 + * invspec : 80/30/10ml + * nnum : 777 + * nastnum : 0 + */ + + private String pk_corp; + private String corp_code; + private String corp_name; + private String ccalbodyid; + private String ccalbody_code; + private String ccalbody_name; + private String cinventoryid; + private String cinventory_code; + private String cinventory_name; + private String invspec; + private int nnum; + private int nastnum; + private String vbatchcode; + private String cwarehouse_name; + private String invtype; + private String cwarehouse_code; + + public boolean isChecked() { + return isChecked; + } + + public void setChecked(boolean checked) { + isChecked = checked; + } + + private boolean isChecked; + + public String getPk_corp() { + return pk_corp; + } + + public void setPk_corp(String pk_corp) { + this.pk_corp = pk_corp; + } + + public String getCorp_code() { + return corp_code; + } + + public void setCorp_code(String corp_code) { + this.corp_code = corp_code; + } + + public String getCorp_name() { + return corp_name; + } + + public void setCorp_name(String corp_name) { + this.corp_name = corp_name; + } + + public String getCcalbodyid() { + return ccalbodyid; + } + + public void setCcalbodyid(String ccalbodyid) { + this.ccalbodyid = ccalbodyid; + } + + public String getCcalbody_code() { + return ccalbody_code; + } + + public void setCcalbody_code(String ccalbody_code) { + this.ccalbody_code = ccalbody_code; + } + + public String getCcalbody_name() { + return ccalbody_name; + } + + public void setCcalbody_name(String ccalbody_name) { + this.ccalbody_name = ccalbody_name; + } + + public String getCinventoryid() { + return cinventoryid; + } + + public void setCinventoryid(String cinventoryid) { + this.cinventoryid = cinventoryid; + } + + public String getCinventory_code() { + return cinventory_code; + } + + public void setCinventory_code(String cinventory_code) { + this.cinventory_code = cinventory_code; + } + + public String getCinventory_name() { + return cinventory_name; + } + + public void setCinventory_name(String cinventory_name) { + this.cinventory_name = cinventory_name; + } + + public String getInvspec() { + return invspec; + } + + public void setInvspec(String invspec) { + this.invspec = invspec; + } + + public int getNnum() { + return nnum; + } + + public void setNnum(int nnum) { + this.nnum = nnum; + } + + public int getNastnum() { + return nastnum; + } + + public void setNastnum(int nastnum) { + this.nastnum = nastnum; + } + + public String getVbatchcode() { + return vbatchcode; + } + + public void setVbatchcode(String vbatchcode) { + this.vbatchcode = vbatchcode; + } + + public String getCwarehouse_name() { + return cwarehouse_name; + } + + public void setCwarehouse_name(String cwarehouse_name) { + this.cwarehouse_name = cwarehouse_name; + } + + public String getInvtype() { + return invtype; + } + + public void setInvtype(String invtype) { + this.invtype = invtype; + } + + public String getCwarehouse_code() { + return cwarehouse_code; + } + + public void setCwarehouse_code(String cwarehouse_code) { + this.cwarehouse_code = cwarehouse_code; + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/res/basic/UdiRelevanceResponse.java b/api-admin/src/main/java/com/glxp/api/admin/res/basic/UdiRelevanceResponse.java new file mode 100644 index 00000000..8b98173b --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/res/basic/UdiRelevanceResponse.java @@ -0,0 +1,39 @@ +package com.glxp.api.admin.res.basic; + +import lombok.Data; + +@Data +public class UdiRelevanceResponse { + + private int id; + private String thirdId; + private String thirdName; + private String uuid; + private String nameCode; + private String packLevel; + private String packRatio; + private Integer bhxjsl; + private Integer bhzxxsbzsl; + private Integer zxxsbzbhsydysl; + private String bhxjcpbm; + private String sjcpbm; // + private String bzcj; + private String addType; + private String deviceRecordKey; + private int isUseDy; + private String cpmctymc; + private String cplb; + private String flbm; + private String ggxh; + private String qxlb; + private String tyshxydm; + private String ylqxzcrbarmc; + private String zczbhhzbapzbh; + private String ylqxzcrbarywmc; + private String sydycpbs; + private int versionNumber; + private int diType; + private String batchNo; + private String warehouseName; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/res/basic/UdiTraceResponse.java b/api-admin/src/main/java/com/glxp/api/admin/res/basic/UdiTraceResponse.java new file mode 100644 index 00000000..15b316c9 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/res/basic/UdiTraceResponse.java @@ -0,0 +1,20 @@ +package com.glxp.api.admin.res.basic; + +import lombok.Data; + +@Data +public class UdiTraceResponse { + + private String orderId; + private String actDate; + private String mainAction; + private String action; + private String fromCorp; + private Integer count; + private String cpmctymc; + private String ylqxzcrbarmc; + private String ggxh; + private String batchNo; + private String produceDate; + private String expireDate; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/res/info/SystemParamConfigResponse.java b/api-admin/src/main/java/com/glxp/api/admin/res/info/SystemParamConfigResponse.java new file mode 100644 index 00000000..a152578f --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/res/info/SystemParamConfigResponse.java @@ -0,0 +1,16 @@ +package com.glxp.api.admin.res.info; + +import lombok.Data; + +@Data +public class SystemParamConfigResponse { + + private int id; + private int parentId; + private String paramName; + private String paramKey; + private String paramValue; + private int paramStatus; + private int paramType; + private String paramExplain; +} \ No newline at end of file diff --git a/api-admin/src/main/java/com/glxp/api/admin/res/inout/ErpOrderResponse.java b/api-admin/src/main/java/com/glxp/api/admin/res/inout/ErpOrderResponse.java new file mode 100644 index 00000000..14c73b35 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/res/inout/ErpOrderResponse.java @@ -0,0 +1,146 @@ +package com.glxp.api.admin.res.inout; + +import java.util.List; + +public class ErpOrderResponse { + + private String billNo; + private String billdate; + private String corpId; + private String corpName; + private String billType; + private boolean signFlag; + private List subErpOrders; + + public String getBillNo() { + return billNo; + } + + public void setBillNo(String billNo) { + this.billNo = billNo; + } + + public String getBilldate() { + return billdate; + } + + public void setBilldate(String billdate) { + this.billdate = billdate; + } + + public String getCorpId() { + return corpId; + } + + public void setCorpId(String corpId) { + this.corpId = corpId; + } + + public String getCorpName() { + return corpName; + } + + public void setCorpName(String corpName) { + this.corpName = corpName; + } + + public String getBillType() { + return billType; + } + + public void setBillType(String billType) { + this.billType = billType; + } + + public boolean isSignFlag() { + return signFlag; + } + + public void setSignFlag(boolean signFlag) { + this.signFlag = signFlag; + } + + public List getSubErpOrders() { + return subErpOrders; + } + + public void setSubErpOrders(List subErpOrders) { + this.subErpOrders = subErpOrders; + } + + public static class SubErpOrder { + private String productId; + private String productName; + private String spec; + private String batchNo; + private String expireDate; + private String productDate; + private int count; //账面数量 + private int reCount; //实际数量 + + public String getProductId() { + return productId; + } + + public void setProductId(String productId) { + this.productId = productId; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getSpec() { + return spec; + } + + public void setSpec(String spec) { + this.spec = spec; + } + + public String getBatchNo() { + return batchNo; + } + + public void setBatchNo(String batchNo) { + this.batchNo = batchNo; + } + + public String getExpireDate() { + return expireDate; + } + + public void setExpireDate(String expireDate) { + this.expireDate = expireDate; + } + + public String getProductDate() { + return productDate; + } + + public void setProductDate(String productDate) { + this.productDate = productDate; + } + + public int getCount() { + return count; + } + + public void setCount(int count) { + this.count = count; + } + + public int getReCount() { + return reCount; + } + + public void setReCount(int reCount) { + this.reCount = reCount; + } + } + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/res/inout/InvmandocResponse.java b/api-admin/src/main/java/com/glxp/api/admin/res/inout/InvmandocResponse.java new file mode 100644 index 00000000..34bd8d5d --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/res/inout/InvmandocResponse.java @@ -0,0 +1,16 @@ +package com.glxp.api.admin.res.inout; + +import lombok.Data; + +@Data +public class InvmandocResponse { + + private String invcode; + private String invname; + private String measname; + private String invspec; + private boolean isChecked; + private String invtype; + private String prodarea; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/res/inout/PurchaseinResponse.java b/api-admin/src/main/java/com/glxp/api/admin/res/inout/PurchaseinResponse.java new file mode 100644 index 00000000..9ca32c1c --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/res/inout/PurchaseinResponse.java @@ -0,0 +1,164 @@ +package com.glxp.api.admin.res.inout; + +import java.util.List; + +public class PurchaseinResponse { + + private String vbillcode; + private String dbilldate; + private String provider_code; + private String provider_name; + private String billType; + private boolean freplenishflag; + private List subPurchases; + + public boolean isFreplenishflag() { + return freplenishflag; + } + + public void setFreplenishflag(boolean freplenishflag) { + this.freplenishflag = freplenishflag; + } + + public String getVbillcode() { + return vbillcode; + } + + public void setVbillcode(String vbillcode) { + this.vbillcode = vbillcode; + } + + public String getDbilldate() { + return dbilldate; + } + + public void setDbilldate(String dbilldate) { + this.dbilldate = dbilldate; + } + + public String getProvider_code() { + return provider_code; + } + + public void setProvider_code(String provider_code) { + this.provider_code = provider_code; + } + + public String getProvider_name() { + return provider_name; + } + + public void setProvider_name(String provider_name) { + this.provider_name = provider_name; + } + + public List getSubPurchases() { + return subPurchases; + } + + public void setSubPurchases(List subPurchases) { + this.subPurchases = subPurchases; + } + + public String getBillType() { + return billType; + } + + public void setBillType(String billType) { + this.billType = billType; + } + + public static class SubPurchase { + private String inventory_code; + private String inventory_name; + private String invspec; + private String vbatchcode; + private int nshouldinnum; + private int ninnum; + private int noutnum; + private int reCount; + private int dtlgoodsqty; + private String dvalidate; + + public int getReCount() { + return reCount; + } + + public void setReCount(int reCount) { + this.reCount = reCount; + } + + public int getDtlgoodsqty() { + return dtlgoodsqty; + } + + public void setDtlgoodsqty(int dtlgoodsqty) { + this.dtlgoodsqty = dtlgoodsqty; + } + + public String getInventory_code() { + return inventory_code; + } + + public void setInventory_code(String inventory_code) { + this.inventory_code = inventory_code; + } + + public String getInventory_name() { + return inventory_name; + } + + public void setInventory_name(String inventory_name) { + this.inventory_name = inventory_name; + } + + public String getInvspec() { + return invspec; + } + + public void setInvspec(String invspec) { + this.invspec = invspec; + } + + public String getVbatchcode() { + return vbatchcode; + } + + public void setVbatchcode(String vbatchcode) { + this.vbatchcode = vbatchcode; + } + + public int getNshouldinnum() { + return nshouldinnum; + } + + public void setNshouldinnum(int nshouldinnum) { + this.nshouldinnum = nshouldinnum; + } + + public int getNinnum() { + return ninnum; + } + + public void setNinnum(int ninnum) { + this.ninnum = ninnum; + } + + public int getNoutnum() { + return noutnum; + } + + public void setNoutnum(int noutnum) { + this.noutnum = noutnum; + } + + public String getDvalidate() { + return dvalidate; + } + + public void setDvalidate(String dvalidate) { + this.dvalidate = dvalidate; + } + } + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/res/inout/WarehouseResponse.java b/api-admin/src/main/java/com/glxp/api/admin/res/inout/WarehouseResponse.java new file mode 100644 index 00000000..2154f0a8 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/res/inout/WarehouseResponse.java @@ -0,0 +1,19 @@ +package com.glxp.api.admin.res.inout; + +import lombok.Data; + +@Data +public class WarehouseResponse { + private String action; + private String mainAction; + private String code; + private String corpOrderId; + private String actor; + private String actDate; + private long wrongCode; + private String upperCorpOrderId; + private String fromCorpId; + private long id; + private String fromCorp; + private Integer count; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/res/inventory/ErpOnHandResponse.java b/api-admin/src/main/java/com/glxp/api/admin/res/inventory/ErpOnHandResponse.java new file mode 100644 index 00000000..1325057d --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/res/inventory/ErpOnHandResponse.java @@ -0,0 +1,16 @@ +package com.glxp.api.admin.res.inventory; + +import lombok.Data; + +@Data +public class ErpOnHandResponse { + + private String inventoryCode; + private String inventoryName; + private String spec; + private int count; + private String batchNo; + private String warehouseName; + private String warehouseCode; + private String registerCertNo; +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/auth/AuthAdminService.java b/api-admin/src/main/java/com/glxp/api/admin/service/auth/AuthAdminService.java new file mode 100644 index 00000000..6d0c6c71 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/auth/AuthAdminService.java @@ -0,0 +1,27 @@ +package com.glxp.api.admin.service.auth; + + +import com.glxp.api.admin.req.auth.AuthAdminQueryRequest; +import com.glxp.api.admin.entity.auth.AuthAdmin; + +import java.util.List; + +public interface AuthAdminService { + + List listAdminPage(AuthAdminQueryRequest authAdminQueryRequest); + + AuthAdmin findByUserName(String userName); + + + AuthAdmin findById(Long id); + + + AuthAdmin findPwdById(Long id); + + boolean insertAuthAdmin(AuthAdmin authAdmin); + + boolean updateAuthAdmin(AuthAdmin authAdmin); + + boolean deleteById(Long id); + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/auth/AuthLoginService.java b/api-admin/src/main/java/com/glxp/api/admin/service/auth/AuthLoginService.java new file mode 100644 index 00000000..cf7f4fbf --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/auth/AuthLoginService.java @@ -0,0 +1,9 @@ +package com.glxp.api.admin.service.auth; + +import java.util.List; + +public interface AuthLoginService { + + List listRuleByAdminId(Long adminId); + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/auth/AuthPermissionRuleService.java b/api-admin/src/main/java/com/glxp/api/admin/service/auth/AuthPermissionRuleService.java new file mode 100644 index 00000000..17e8ee05 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/auth/AuthPermissionRuleService.java @@ -0,0 +1,25 @@ +package com.glxp.api.admin.service.auth; + + +import com.glxp.api.admin.entity.auth.AuthPermissionRule; + +import java.util.List; + +public interface AuthPermissionRuleService { + + + List listByIdIn(List ids); + + + List listByPid(Long pid); + + List listAll(); + + boolean insertAuthPermissionRule(AuthPermissionRule authPermissionRule); + + boolean updateAuthPermissionRule(AuthPermissionRule authPermissionRule); + + boolean deleteById(Long id); + + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/auth/AuthPermissionService.java b/api-admin/src/main/java/com/glxp/api/admin/service/auth/AuthPermissionService.java new file mode 100644 index 00000000..627fd058 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/auth/AuthPermissionService.java @@ -0,0 +1,19 @@ +package com.glxp.api.admin.service.auth; + + +import com.glxp.api.admin.entity.auth.AuthPermission; + +import java.util.List; + +public interface AuthPermissionService { + + + List listByRoleIdIn(List roleIds); + + List listByRoleId(Long roleId); + + int insertAuthPermissionAll(List authPermissionList); + + boolean deleteByRoleId(Long roleId); + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/auth/AuthRoleAdminService.java b/api-admin/src/main/java/com/glxp/api/admin/service/auth/AuthRoleAdminService.java new file mode 100644 index 00000000..24d67180 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/auth/AuthRoleAdminService.java @@ -0,0 +1,22 @@ +package com.glxp.api.admin.service.auth; + + +import com.glxp.api.admin.entity.auth.AuthRoleAdmin; + +import java.util.List; + +public interface AuthRoleAdminService { + + List listByAdminId(Long adminId); + + List listByAdminIdIn(List adminIds); + + List listByRoleId(Long roleId); + + int insertAuthRoleAdminAll(List authRoleAdminList); + + int insertRolesAdminIdAll(List roles, Long adminId); + + boolean deleteByAdminId(Long adminId); + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/auth/AuthRoleService.java b/api-admin/src/main/java/com/glxp/api/admin/service/auth/AuthRoleService.java new file mode 100644 index 00000000..283fe20f --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/auth/AuthRoleService.java @@ -0,0 +1,23 @@ +package com.glxp.api.admin.service.auth; + + +import com.glxp.api.admin.req.auth.AuthRoleQueryRequest; +import com.glxp.api.admin.entity.auth.AuthRole; + +import java.util.List; + +public interface AuthRoleService { + + List listAdminPage(AuthRoleQueryRequest authRoleQueryRequest); + + List listAuthAdminRolePage(Integer page, Integer limit, Integer status); + + AuthRole findByName(String name); + + boolean insertAuthRole(AuthRole authRole); + + boolean updateAuthRole(AuthRole authRole); + + boolean deleteById(Long id); + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/auth/impl/AuthAdminServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/auth/impl/AuthAdminServiceImpl.java new file mode 100644 index 00000000..7835c01a --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/auth/impl/AuthAdminServiceImpl.java @@ -0,0 +1,110 @@ +package com.glxp.api.admin.service.auth.impl; + +import com.github.pagehelper.PageHelper; +import com.glxp.api.admin.dao.auth.AuthAdminDao; +import com.glxp.api.admin.exception.JsonException; +import com.glxp.api.admin.req.auth.AuthAdminQueryRequest; +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.admin.entity.auth.AuthAdmin; +import com.glxp.api.admin.service.auth.AuthAdminService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.Date; +import java.util.List; + +@Service +public class AuthAdminServiceImpl implements AuthAdminService { + + @Resource + private AuthAdminDao authAdminDao; + + @Override + public List listAdminPage(AuthAdminQueryRequest authAdminQueryRequest) { + if (authAdminQueryRequest == null) { + return Collections.emptyList(); + } + int offset = (authAdminQueryRequest.getPage() - 1) * authAdminQueryRequest.getLimit(); + PageHelper.offsetPage(offset, authAdminQueryRequest.getLimit()); + return authAdminDao.listAdminPage(authAdminQueryRequest); + } + + @Override + public AuthAdmin findByUserName(String userName) { + return authAdminDao.findByUserName(userName); + } + + /** + * 根据id 获取需要的info + * @param id + * @return + */ + @Override + public AuthAdmin findById(Long id) { + return authAdminDao.findById(id); + } + + /** + * 根据 id 获取密码字段 + * @param id + * @return + */ + @Override + public AuthAdmin findPwdById(Long id) { + return authAdminDao.findPwdById(id); + } + + /** + * 新增 + * @param authAdmin + * @return + */ + @Override + public boolean insertAuthAdmin(AuthAdmin authAdmin) { + + if (authAdmin.getUserName() != null) { + AuthAdmin byUserName = authAdminDao.findByUserName(authAdmin.getUserName()); + if (byUserName != null) { + throw new JsonException(ResultEnum.DATA_REPEAT, "当前管理员已存在"); + } + } + authAdmin.setCreateTime(new Date()); + return authAdminDao.insertAuthAdmin(authAdmin); + } + + /** + * 更新 + * @param authAdmin + * @return + */ + @Override + public boolean updateAuthAdmin(AuthAdmin authAdmin) { + + if (authAdmin.getId() == null) { + return false; + } + // 当用户名不为空时,检查是否存在 + if (authAdmin.getUserName() != null) { + AuthAdmin byUserName = authAdminDao.findByUserName(authAdmin.getUserName()); + // 判断是否存在,剔除自己 + if (byUserName != null && !authAdmin.getId().equals(byUserName.getId())) { + throw new JsonException(ResultEnum.DATA_REPEAT, "当前管理员已存在"); + } + } + + return authAdminDao.updateAuthAdmin(authAdmin); + } + + /** + * 根据id删除 + * @param id + * @return + */ + @Override + public boolean deleteById(Long id) { + return authAdminDao.deleteById(id); + } + + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/auth/impl/AuthLoginServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/auth/impl/AuthLoginServiceImpl.java new file mode 100644 index 00000000..97111954 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/auth/impl/AuthLoginServiceImpl.java @@ -0,0 +1,81 @@ +package com.glxp.api.admin.service.auth.impl; + +import com.glxp.api.admin.entity.auth.AuthPermission; +import com.glxp.api.admin.entity.auth.AuthPermissionRule; +import com.glxp.api.admin.entity.auth.AuthRoleAdmin; +import com.glxp.api.admin.service.auth.AuthLoginService; +import com.glxp.api.admin.service.auth.AuthPermissionRuleService; +import com.glxp.api.admin.service.auth.AuthPermissionService; +import com.glxp.api.admin.service.auth.AuthRoleAdminService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +@Service +@Slf4j +public class AuthLoginServiceImpl implements AuthLoginService { + + @Resource + private AuthRoleAdminService authRoleAdminService; + + @Resource + private AuthPermissionService authPermissionService; + + @Resource + private AuthPermissionRuleService authPermissionRuleService; + + + /** + * 根据 管理员id 获取权限 + * @param adminId + * @return + */ + @Override + public List listRuleByAdminId(Long adminId) { + + List authRules = new ArrayList<>(); + // 超级管理员 + if (adminId.equals(1L)) { + authRules.add("admin"); + return authRules; + } + + // 如果存在,先从缓存中获取权限 +// String aarKey = String.format(CacheConstant.ADMIN_AUTH_RULES, adminId); +// if (CacheUtils.hasKey(aarKey)) { +// return new ArrayList<>(CacheUtils.sGetMembers(aarKey)); +// } +// log.info("开始获取数据库中的用户的权限规则列表"); + + // 获取角色ids + List authRoleAdmins = authRoleAdminService.listByAdminId(adminId); + + List roleIds = authRoleAdmins.stream().map(AuthRoleAdmin::getRole_id).collect(Collectors.toList()); + + // 角色授权列表 + List authPermissions = authPermissionService.listByRoleIdIn(roleIds); + List permissionRuleIds = authPermissions.stream().map(AuthPermission::getPermissionRuleId).collect(Collectors.toList()); + + // 获取授权的规则 + List authPermissionRules = authPermissionRuleService.listByIdIn(permissionRuleIds); + + // 获取权限列表 + authRules = authPermissionRules.stream().map(AuthPermissionRule::getName).collect(Collectors.toList()); + + // 如果为空,则添加一个空值 + if (authRules.isEmpty()) { + authRules.add(""); + } + +// String[] strings = authRules.toArray(new String[0]); +// CacheUtils.sAdd(aarKey, strings); +// CacheUtils.expire(aarKey, 7200L); // 两小时后过期 + + return authRules; + } + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/auth/impl/AuthPermissionRuleServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/auth/impl/AuthPermissionRuleServiceImpl.java new file mode 100644 index 00000000..5557a732 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/auth/impl/AuthPermissionRuleServiceImpl.java @@ -0,0 +1,110 @@ +package com.glxp.api.admin.service.auth.impl; + +import com.glxp.api.admin.dao.auth.AuthPermissionRuleDao; +import com.glxp.api.admin.exception.JsonException; +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.admin.entity.auth.AuthPermissionRule; +import com.glxp.api.admin.service.auth.AuthPermissionRuleService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.Date; +import java.util.List; + +/** + * + */ +@Service +public class AuthPermissionRuleServiceImpl implements AuthPermissionRuleService { + + @Resource + private AuthPermissionRuleDao authPermissionRuleDao; + + /** + * 根据多个id查询 + * + * @param ids + * @return + */ + @Override + public List listByIdIn(List ids) { + if (ids.isEmpty()) { + return Collections.emptyList(); + } + return authPermissionRuleDao.listByIdIn(ids); + } + + /** + * 根据父级 pid 查询 + * + * @param pid + * @return + */ + @Override + public List listByPid(Long pid) { + return authPermissionRuleDao.listByPid(pid); + } + + /** + * 查询所有 + * @return + */ + @Override + public List listAll() { + return authPermissionRuleDao.listAll(); + } + + /** + * 插入 + * @param authPermissionRule + * @return + */ + @Override + public boolean insertAuthPermissionRule(AuthPermissionRule authPermissionRule) { + + // 查询是否存在 + AuthPermissionRule byName = authPermissionRuleDao.findByName(authPermissionRule.getName()); + if (byName != null) { + throw new JsonException(ResultEnum.DATA_REPEAT, "当前权限规则已存在"); + } + + authPermissionRule.setCreateTime(new Date()); + authPermissionRule.setUpdateTime(new Date()); + if (authPermissionRule.getListorder() == null) { + authPermissionRule.setListorder(999); + } + return authPermissionRuleDao.insertAuthPermissionRule(authPermissionRule); + } + + /** + * 更新 + * @param authPermissionRule + * @return + */ + @Override + public boolean updateAuthPermissionRule(AuthPermissionRule authPermissionRule) { + + if (authPermissionRule.getName() != null) { + // 查询是否存在 + AuthPermissionRule byName = authPermissionRuleDao.findByName(authPermissionRule.getName()); + if (byName != null && !authPermissionRule.getId().equals(byName.getId())) { + throw new JsonException(ResultEnum.DATA_REPEAT, "当前权限规则已存在"); + } + } + + authPermissionRule.setUpdateTime(new Date()); + return authPermissionRuleDao.updateAuthPermissionRule(authPermissionRule); + } + + /** + * 删除 + * + * @param id + * @return + */ + @Override + public boolean deleteById(Long id) { + return authPermissionRuleDao.deleteById(id); + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/auth/impl/AuthPermissionServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/auth/impl/AuthPermissionServiceImpl.java new file mode 100644 index 00000000..7bf61079 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/auth/impl/AuthPermissionServiceImpl.java @@ -0,0 +1,60 @@ +package com.glxp.api.admin.service.auth.impl; + +import com.glxp.api.admin.dao.auth.AuthPermissionDao; +import com.glxp.api.admin.entity.auth.AuthPermission; +import com.glxp.api.admin.service.auth.AuthPermissionService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; + +@Service +public class AuthPermissionServiceImpl implements AuthPermissionService { + + @Resource + private AuthPermissionDao authPermissionDao; + + /** + * 根据 多个角色id 查询 + * @param roleIds + * @return + */ + @Override + public List listByRoleIdIn(List roleIds) { + if (roleIds.isEmpty()) { + return Collections.emptyList(); + } + return authPermissionDao.listByRoleIdIn(roleIds); + } + + /** + * 根据某个角色id 查询 + * @param roleId + * @return + */ + @Override + public List listByRoleId(Long roleId) { + return authPermissionDao.listByRoleId(roleId); + } + + /** + * 批量插入 + * @param authPermissionList + * @return + */ + @Override + public int insertAuthPermissionAll(List authPermissionList) { + return authPermissionDao.insertAuthPermissionAll(authPermissionList); + } + + /** + * 根据角色id删除 + * @param roleId + * @return + */ + @Override + public boolean deleteByRoleId(Long roleId) { + return authPermissionDao.deleteByRoleId(roleId); + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/auth/impl/AuthRoleAdminServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/auth/impl/AuthRoleAdminServiceImpl.java new file mode 100644 index 00000000..d6a52d49 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/auth/impl/AuthRoleAdminServiceImpl.java @@ -0,0 +1,103 @@ +package com.glxp.api.admin.service.auth.impl; + +import com.glxp.api.admin.dao.auth.AuthRoleAdminDao; +import com.glxp.api.admin.entity.auth.AuthRoleAdmin; +import com.glxp.api.admin.service.auth.AuthRoleAdminService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +@Service +public class AuthRoleAdminServiceImpl implements AuthRoleAdminService { + + @Resource + private AuthRoleAdminDao authRoleAdminDao; + + /** + * 根据 adminid 获取角色id + * @param adminId + * @return + */ + @Override + public List listByAdminId(Long adminId) { + return authRoleAdminDao.listByAdminId(adminId); + } + + /** + * 根据多个 adminId 查询角色列表 + * @param adminIds + * @return + */ + @Override + public List listByAdminIdIn(List adminIds) { + if (adminIds.isEmpty()) { + return Collections.emptyList(); + } + return authRoleAdminDao.listByAdminIdIn(adminIds); + } + + /** + * 根据 roleId 获取 管理员id + * @param roleId + * @return + */ + @Override + public List listByRoleId(Long roleId) { + return authRoleAdminDao.listByRoleId(roleId); + } + + /** + * 批量插入 + * @param authRoleAdminList + * @return + */ + @Override + public int insertAuthRoleAdminAll(List authRoleAdminList) { + + if (authRoleAdminList == null || authRoleAdminList.isEmpty()) { + return 0; + } + + return authRoleAdminDao.insertAuthRoleAdminAll(authRoleAdminList); + } + + /** + * 根据 角色ids 和 管理员 adminId 批量插入 + * @param roles + * @param adminId + * @return + */ + @Override + public int insertRolesAdminIdAll(List roles, Long adminId) { + + List authRoleAdminList = roles.stream().map(aLong -> { + AuthRoleAdmin authRoleAdmin = new AuthRoleAdmin(); + authRoleAdmin.setRole_id(aLong); + authRoleAdmin.setAdmin_id(adminId); + return authRoleAdmin; + }).collect(Collectors.toList()); + if (!authRoleAdminList.isEmpty()) { + return insertAuthRoleAdminAll(authRoleAdminList); + } + + return 0; + } + + /** + * 根据 adminId 删除对应的权限 + * @param adminId + * @return + */ + @Override + public boolean deleteByAdminId(Long adminId) { + +// // 删除之前缓存权限规则 +// String aarKey = String.format(CacheConstant.ADMIN_AUTH_RULES, adminId); +// CacheUtils.delete(aarKey); + + return authRoleAdminDao.deleteByAdminId(adminId); + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/auth/impl/AuthRoleServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/auth/impl/AuthRoleServiceImpl.java new file mode 100644 index 00000000..6591b156 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/auth/impl/AuthRoleServiceImpl.java @@ -0,0 +1,93 @@ +package com.glxp.api.admin.service.auth.impl; + +import com.github.pagehelper.PageHelper; +import com.glxp.api.admin.dao.auth.AuthRoleDao; +import com.glxp.api.admin.req.auth.AuthRoleQueryRequest; +import com.glxp.api.admin.entity.auth.AuthRole; +import com.glxp.api.admin.service.auth.AuthRoleService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; + +@Service +public class AuthRoleServiceImpl implements AuthRoleService { + + @Resource + private AuthRoleDao authRoleDao; + + /** + * 查询列表 + * @return + */ + @Override + public List listAdminPage(AuthRoleQueryRequest authRoleQueryRequest) { + int offset = (authRoleQueryRequest.getPage() - 1) * authRoleQueryRequest.getLimit(); + PageHelper.offsetPage(offset, authRoleQueryRequest.getLimit()); + List list = authRoleDao.listAdminPage(authRoleQueryRequest); + return list; + } + + /** + * 查询管理员页面的列表 + * @param page + * @param limit + * @param status + * @return + */ + @Override + public List listAuthAdminRolePage(Integer page, Integer limit, Integer status) { + page = page != null && page > 0 ? page : 1; + limit = limit != null && limit > 0 && limit < 100 ? limit : 100; + int offset = (page - 1) * limit; + PageHelper.offsetPage(offset, limit); + List list = authRoleDao.listAuthAdminRolePage(status); + return list; + } + + /** + * 根据名称查询 + * @param name + * @return + */ + @Override + public AuthRole findByName(String name) { + return authRoleDao.findByName(name); + } + + /** + * 插入 + * @param authRole + * @return + */ + @Override + public boolean insertAuthRole(AuthRole authRole) { + + authRole.setCreateTime(new Date()); + authRole.setUpdateTime(new Date()); + + return authRoleDao.insertAuthRole(authRole); + } + + /** + * 修改 + * @param authRole + * @return + */ + @Override + public boolean updateAuthRole(AuthRole authRole) { + authRole.setUpdateTime(new Date()); + return authRoleDao.updateAuthRole(authRole); + } + + /** + * 删除 + * @param id + * @return + */ + @Override + public boolean deleteById(Long id) { + return authRoleDao.deleteById(id); + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/basic/BasicUnitMaintainService.java b/api-admin/src/main/java/com/glxp/api/admin/service/basic/BasicUnitMaintainService.java new file mode 100644 index 00000000..fc4699b0 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/basic/BasicUnitMaintainService.java @@ -0,0 +1,23 @@ +package com.glxp.api.admin.service.basic; + + +import com.glxp.api.admin.entity.basic.BasicUnitMaintainEntity; +import com.glxp.api.admin.req.basic.BasicUnitMaintainFilterRequest; +import com.glxp.api.admin.req.basic.BasicUnitMaintainSaveRequest; + +import java.util.List; + +public interface BasicUnitMaintainService { + + List filterList(BasicUnitMaintainFilterRequest basicUnitMaintainFilterRequest); + + boolean insertBasicUnitMaintain(BasicUnitMaintainEntity basicUnitMaintainEntity); + + boolean insert(BasicUnitMaintainEntity basicUnitMaintainEntity); + + boolean updateById(BasicUnitMaintainSaveRequest basicUnitMaintainSaveRequest); + + boolean deleteById(String id); + + BasicUnitMaintainEntity selectById(String id); +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/basic/BussinessTypeService.java b/api-admin/src/main/java/com/glxp/api/admin/service/basic/BussinessTypeService.java new file mode 100644 index 00000000..efe57269 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/basic/BussinessTypeService.java @@ -0,0 +1,21 @@ +package com.glxp.api.admin.service.basic; + +import com.glxp.api.admin.entity.basic.BussinessTypeEntity; +import com.glxp.api.admin.req.receipt.BussinessTypeFilterRequest; + +import java.util.List; + +public interface BussinessTypeService { + + List filterList(BussinessTypeFilterRequest bussinessTypeFilterRequest); + + BussinessTypeEntity findBTByAction(String action); + + BussinessTypeEntity findBTByName(String action); + + boolean insertBussinessType(BussinessTypeEntity bussinessTypeEntity); + + boolean updateBussinessType(BussinessTypeEntity bussinessTypeEntity); + + boolean deleteById(String id); +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/basic/UdiInfoService.java b/api-admin/src/main/java/com/glxp/api/admin/service/basic/UdiInfoService.java new file mode 100644 index 00000000..1f8a77ba --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/basic/UdiInfoService.java @@ -0,0 +1,31 @@ +package com.glxp.api.admin.service.basic; + +import com.glxp.api.admin.entity.basic.UdiInfoEntity; +import com.glxp.api.admin.req.basic.FilterUdiInfoRequest; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface UdiInfoService { + + List filterUdiInfo(FilterUdiInfoRequest filterUdiInfoRequest); + + List filterAllUdiInfo(FilterUdiInfoRequest filterUdiInfoRequest); + + UdiInfoEntity findByNameCode(String nameCode); + + UdiInfoEntity findByUuid(String uuid); + + List findByUuids(String uuid); + + boolean insertUdiInfo(UdiInfoEntity udiInfoEntity); + + boolean insertUdiInfos(List udiInfoEntities); + + boolean updateUdiInfo(UdiInfoEntity udiInfoEntity); + + boolean deleteById(String id); + + boolean deleteByUuid(String uuid); + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/basic/UdiRelevanceService.java b/api-admin/src/main/java/com/glxp/api/admin/service/basic/UdiRelevanceService.java new file mode 100644 index 00000000..08e577de --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/basic/UdiRelevanceService.java @@ -0,0 +1,32 @@ +package com.glxp.api.admin.service.basic; + +import com.glxp.api.admin.entity.basic.UdiInfoEntity; +import com.glxp.api.admin.entity.basic.UdiRelevanceEntity; +import com.glxp.api.admin.req.basic.FilterUdiInfoRequest; +import com.glxp.api.admin.res.basic.UdiRelevanceResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface UdiRelevanceService { + + List filterUdiRelevance(FilterUdiInfoRequest filterUdiInfoRequest); + + List filterUdiGp(FilterUdiInfoRequest filterUdiInfoRequest); + + List selectByUuid(String uuid); + + UdiRelevanceEntity selectById( String id); + UdiRelevanceEntity selectByThirdId(String thirdId); + + boolean insertUdiRelevance(UdiRelevanceEntity udiRelevanceEntity); + + boolean updateUdiRelevance(UdiRelevanceEntity udiRelevanceEntity); + + boolean deleteById(String id); + + boolean deleteByIds(List id); + + boolean deleteByUuid(String uuid); + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/basic/UnitMaintainService.java b/api-admin/src/main/java/com/glxp/api/admin/service/basic/UnitMaintainService.java new file mode 100644 index 00000000..9a2da3dc --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/basic/UnitMaintainService.java @@ -0,0 +1,17 @@ +package com.glxp.api.admin.service.basic; + +import com.glxp.api.admin.entity.basic.UnitMaintainEntity; +import com.glxp.api.admin.req.receipt.UnitMaintainFilterRequest; + +import java.util.List; + +public interface UnitMaintainService { + + List filterList(UnitMaintainFilterRequest unitMaintainFilterRequest); + + boolean insertUnitMaintain(UnitMaintainEntity unitMaintainEntity); + + boolean deleteById(String id); + + UnitMaintainEntity selectById(String id); +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/basic/impl/BasicUnitMaintainServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/basic/impl/BasicUnitMaintainServiceImpl.java new file mode 100644 index 00000000..ea8679e9 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/basic/impl/BasicUnitMaintainServiceImpl.java @@ -0,0 +1,57 @@ +package com.glxp.api.admin.service.basic.impl; + +import com.github.pagehelper.PageHelper; +import com.glxp.api.admin.dao.basic.BasicUnitMaintainDao; +import com.glxp.api.admin.entity.basic.BasicUnitMaintainEntity; +import com.glxp.api.admin.req.basic.BasicUnitMaintainFilterRequest; +import com.glxp.api.admin.req.basic.BasicUnitMaintainSaveRequest; +import com.glxp.api.admin.service.basic.BasicUnitMaintainService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; + +@Service +public class BasicUnitMaintainServiceImpl implements BasicUnitMaintainService { + + @Resource + BasicUnitMaintainDao basicUnitMaintainDao; + + @Override + public List filterList(BasicUnitMaintainFilterRequest basicUnitMaintainFilterRequest) { + if (basicUnitMaintainFilterRequest == null) { + return Collections.emptyList(); + } + int offset = (basicUnitMaintainFilterRequest.getPage() - 1) * basicUnitMaintainFilterRequest.getLimit(); + PageHelper.offsetPage(offset, basicUnitMaintainFilterRequest.getLimit()); + List data = basicUnitMaintainDao.filterList(basicUnitMaintainFilterRequest); + return data; + } + + @Override + public boolean insertBasicUnitMaintain(BasicUnitMaintainEntity basicUnitMaintainEntity) { + return basicUnitMaintainDao.insertBasicUnitMaintain(basicUnitMaintainEntity); + } + + @Override + public boolean insert(BasicUnitMaintainEntity basicUnitMaintainEntity) { + return basicUnitMaintainDao.insert(basicUnitMaintainEntity); + } + + @Override + public boolean updateById(BasicUnitMaintainSaveRequest basicUnitMaintainSaveRequest) { + + return basicUnitMaintainDao.updateById(basicUnitMaintainSaveRequest); + } + + @Override + public boolean deleteById(String id) { + return basicUnitMaintainDao.deleteById(id); + } + + @Override + public BasicUnitMaintainEntity selectById(String id) { + return basicUnitMaintainDao.selectById(id); + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/basic/impl/BussinessTypeServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/basic/impl/BussinessTypeServiceImpl.java new file mode 100644 index 00000000..a6a277fb --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/basic/impl/BussinessTypeServiceImpl.java @@ -0,0 +1,67 @@ +package com.glxp.api.admin.service.basic.impl; + +import com.github.pagehelper.PageHelper; +import com.glxp.api.admin.dao.basic.BussinessTypeDao; +import com.glxp.api.admin.entity.basic.BussinessTypeEntity; +import com.glxp.api.admin.req.receipt.BussinessTypeFilterRequest; +import com.glxp.api.admin.service.basic.BussinessTypeService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; + +@Service +public class BussinessTypeServiceImpl implements BussinessTypeService { + + @Resource + BussinessTypeDao bussinessTypeDao; + + @Override + public List filterList(BussinessTypeFilterRequest bussinessTypeFilterRequest) { + if (bussinessTypeFilterRequest == null) { + return Collections.emptyList(); + } + int offset = (bussinessTypeFilterRequest.getPage() - 1) * bussinessTypeFilterRequest.getLimit(); + PageHelper.offsetPage(offset, bussinessTypeFilterRequest.getLimit()); + List data = bussinessTypeDao.filterList(bussinessTypeFilterRequest); + return data; + } + + @Override + public BussinessTypeEntity findBTByAction(String action) { + BussinessTypeFilterRequest bussinessTypeFilterRequest = new BussinessTypeFilterRequest(); + bussinessTypeFilterRequest.setAction(action); + List data = bussinessTypeDao.filterList(bussinessTypeFilterRequest); + if (data != null && data.size() > 0) { + return data.get(0); + } + return null; + } + + @Override + public BussinessTypeEntity findBTByName(String action) { + BussinessTypeFilterRequest bussinessTypeFilterRequest = new BussinessTypeFilterRequest(); + bussinessTypeFilterRequest.setName(action); + List data = bussinessTypeDao.filterList(bussinessTypeFilterRequest); + if (data != null && data.size() > 0) { + return data.get(0); + } + return null; + } + + @Override + public boolean insertBussinessType(BussinessTypeEntity bussinessTypeEntity) { + return bussinessTypeDao.insertBussinessType(bussinessTypeEntity); + } + + @Override + public boolean updateBussinessType(BussinessTypeEntity bussinessTypeEntity) { + return bussinessTypeDao.updateBussinessType(bussinessTypeEntity); + } + + @Override + public boolean deleteById(String id) { + return bussinessTypeDao.deleteById(id); + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/basic/impl/UdiInfoServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/basic/impl/UdiInfoServiceImpl.java new file mode 100644 index 00000000..67e217f3 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/basic/impl/UdiInfoServiceImpl.java @@ -0,0 +1,81 @@ +package com.glxp.api.admin.service.basic.impl; + +import com.github.pagehelper.PageHelper; +import com.glxp.api.admin.dao.basic.UdiInfoDao; +import com.glxp.api.admin.entity.basic.UdiInfoEntity; +import com.glxp.api.admin.req.basic.FilterUdiInfoRequest; +import com.glxp.api.admin.service.basic.UdiInfoService; +import com.glxp.api.admin.util.FilterUdiUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; + +@Service +public class UdiInfoServiceImpl implements UdiInfoService { + + @Resource + UdiInfoDao udiInfoDao; + + @Override + public List filterUdiInfo(FilterUdiInfoRequest filterUdiInfoRequest) { + if (filterUdiInfoRequest == null) { + return Collections.emptyList(); + } + int offset = (filterUdiInfoRequest.getPage() - 1) * filterUdiInfoRequest.getLimit(); + PageHelper.offsetPage(offset, filterUdiInfoRequest.getLimit()); + List data = udiInfoDao.filterUdiInfo(filterUdiInfoRequest); + return data; + } + + @Override + public List filterAllUdiInfo(FilterUdiInfoRequest filterUdiInfoRequest) { + if (filterUdiInfoRequest == null) { + return Collections.emptyList(); + } + List data = udiInfoDao.filterUdiInfo(filterUdiInfoRequest); + return data; + } + + @Override + public UdiInfoEntity findByNameCode(String nameCode) { + String prefix = FilterUdiUtils.getDiStr(nameCode); + return udiInfoDao.findByNameCode(prefix); + } + + @Override + public UdiInfoEntity findByUuid(String uuid) { + return udiInfoDao.findByUuid(uuid); + } + + @Override + public List findByUuids(String uuid) { + return udiInfoDao.findByUuids(uuid); + } + + @Override + public boolean insertUdiInfo(UdiInfoEntity udiInfoEntity) { + return udiInfoDao.insertUdiInfo(udiInfoEntity); + } + + @Override + public boolean insertUdiInfos(List udiInfoEntities) { + return udiInfoDao.insertUdiInfos(udiInfoEntities); + } + + @Override + public boolean updateUdiInfo(UdiInfoEntity udiInfoEntity) { + return udiInfoDao.updateUdiInfo(udiInfoEntity); + } + + @Override + public boolean deleteById(String id) { + return udiInfoDao.deleteById(id); + } + + @Override + public boolean deleteByUuid(String uuid) { + return udiInfoDao.deleteByUuid(uuid); + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/basic/impl/UdiRelevanceServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/basic/impl/UdiRelevanceServiceImpl.java new file mode 100644 index 00000000..a5c76ece --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/basic/impl/UdiRelevanceServiceImpl.java @@ -0,0 +1,85 @@ +package com.glxp.api.admin.service.basic.impl; + +import com.github.pagehelper.PageHelper; +import com.glxp.api.admin.dao.basic.UdiRelevanceDao; +import com.glxp.api.admin.entity.basic.UdiInfoEntity; +import com.glxp.api.admin.entity.basic.UdiRelevanceEntity; +import com.glxp.api.admin.req.basic.FilterUdiInfoRequest; +import com.glxp.api.admin.res.basic.UdiRelevanceResponse; +import com.glxp.api.admin.service.basic.UdiRelevanceService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; + +@Service +public class UdiRelevanceServiceImpl implements UdiRelevanceService { + @Resource + UdiRelevanceDao udiRelevanceDao; + + @Override + public List filterUdiRelevance(FilterUdiInfoRequest filterUdiInfoRequest) { + if (filterUdiInfoRequest == null) { + return Collections.emptyList(); + } + int offset = (filterUdiInfoRequest.getPage() - 1) * filterUdiInfoRequest.getLimit(); + PageHelper.offsetPage(offset, filterUdiInfoRequest.getLimit()); + List data = udiRelevanceDao.filterUdiRelevance(filterUdiInfoRequest); + return data; + } + + @Override + public List filterUdiGp(FilterUdiInfoRequest filterUdiInfoRequest) { + if (filterUdiInfoRequest == null) { + return Collections.emptyList(); + } + if (filterUdiInfoRequest.getPage() != null) { + int offset = (filterUdiInfoRequest.getPage() - 1) * filterUdiInfoRequest.getLimit(); + PageHelper.offsetPage(offset, filterUdiInfoRequest.getLimit()); + } + + List data = udiRelevanceDao.filterUdiGp(filterUdiInfoRequest); + return data; + } + + @Override + public List selectByUuid(String uuid) { + return udiRelevanceDao.selectByUuid(uuid); + } + + @Override + public UdiRelevanceEntity selectById(String id) { + return udiRelevanceDao.selectById(id); + } + + @Override + public UdiRelevanceEntity selectByThirdId(String thirdId) { + return udiRelevanceDao.selectByThirdId(thirdId); + } + + @Override + public boolean insertUdiRelevance(UdiRelevanceEntity udiRelevanceEntity) { + return udiRelevanceDao.insertUdiRelevance(udiRelevanceEntity); + } + + @Override + public boolean updateUdiRelevance(UdiRelevanceEntity udiRelevanceEntity) { + return udiRelevanceDao.updateUdiRelevance(udiRelevanceEntity); + } + + @Override + public boolean deleteById(String id) { + return udiRelevanceDao.deleteById(id); + } + + @Override + public boolean deleteByIds(List ids) { + return udiRelevanceDao.deleteByIds(ids); + } + + @Override + public boolean deleteByUuid(String uuid) { + return udiRelevanceDao.deleteByUuid(uuid); + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/basic/impl/UnitMaintainServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/basic/impl/UnitMaintainServiceImpl.java new file mode 100644 index 00000000..e7e1c04a --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/basic/impl/UnitMaintainServiceImpl.java @@ -0,0 +1,45 @@ +package com.glxp.api.admin.service.basic.impl; + +import com.github.pagehelper.PageHelper; +import com.glxp.api.admin.dao.basic.UnitMaintainDao; +import com.glxp.api.admin.entity.basic.UnitMaintainEntity; +import com.glxp.api.admin.req.receipt.UnitMaintainFilterRequest; +import com.glxp.api.admin.service.basic.UnitMaintainService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; + +@Service +public class UnitMaintainServiceImpl implements UnitMaintainService { + + @Resource + UnitMaintainDao unitMaintainDao; + + @Override + public List filterList(UnitMaintainFilterRequest unitMaintainFilterRequest) { + if (unitMaintainFilterRequest == null) { + return Collections.emptyList(); + } + int offset = (unitMaintainFilterRequest.getPage() - 1) * unitMaintainFilterRequest.getLimit(); + PageHelper.offsetPage(offset, unitMaintainFilterRequest.getLimit()); + List data = unitMaintainDao.filterList(unitMaintainFilterRequest); + return data; + } + + @Override + public boolean insertUnitMaintain(UnitMaintainEntity unitMaintainEntity) { + return unitMaintainDao.insertUnitMaintain(unitMaintainEntity); + } + + @Override + public boolean deleteById(String id) { + return unitMaintainDao.deleteById(id); + } + + @Override + public UnitMaintainEntity selectById(String id) { + return unitMaintainDao.selectById(id); + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/info/CompanyService.java b/api-admin/src/main/java/com/glxp/api/admin/service/info/CompanyService.java new file mode 100644 index 00000000..8ee903e1 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/info/CompanyService.java @@ -0,0 +1,11 @@ +package com.glxp.api.admin.service.info; + +import com.glxp.api.admin.entity.info.CompanyEntity; + +public interface CompanyService { + + CompanyEntity findCompany(); + + boolean modifyCompany(CompanyEntity companyEntity); + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/info/SetupService.java b/api-admin/src/main/java/com/glxp/api/admin/service/info/SetupService.java new file mode 100644 index 00000000..94175d66 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/info/SetupService.java @@ -0,0 +1,19 @@ +package com.glxp.api.admin.service.info; + +import com.glxp.api.admin.entity.info.SetupEntity; +import com.glxp.api.admin.req.info.FilterSetupRequest; +import lombok.Data; + +import java.util.List; + + +public interface SetupService { + + SetupEntity selectSetup(); + + SetupEntity findSetup(FilterSetupRequest filterSetupRequest); + + boolean modifySetup(SetupEntity setupEntity); + + boolean insertSetup(SetupEntity setupEntity); +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/info/SystemParamConfigService.java b/api-admin/src/main/java/com/glxp/api/admin/service/info/SystemParamConfigService.java new file mode 100644 index 00000000..868c3361 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/info/SystemParamConfigService.java @@ -0,0 +1,28 @@ +package com.glxp.api.admin.service.info; + + +import com.glxp.api.admin.entity.info.SystemParamConfigEntity; +import com.glxp.api.admin.req.info.SystemParamConfigRequest; +import com.glxp.api.admin.req.info.SystemParamConfigSaveRequest; + +import java.util.List; + + +public interface SystemParamConfigService { + + List queryPage(SystemParamConfigRequest SystemParamConfigRequest); + + SystemParamConfigEntity selectSystemParamConfig(); + + SystemParamConfigEntity findSystemParamConfig(SystemParamConfigRequest SystemParamConfigRequest); + + SystemParamConfigEntity selectByParamName(SystemParamConfigRequest systemParamConfigRequest); + + SystemParamConfigEntity selectByParamKey(String key); + + boolean updateById(SystemParamConfigSaveRequest systemParamConfigSaveRequest); + + boolean updateParentId(SystemParamConfigSaveRequest systemParamConfigSaveRequest); + + boolean insert(SystemParamConfigEntity systemParamConfigEntity); +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/info/impl/CompanyServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/info/impl/CompanyServiceImpl.java new file mode 100644 index 00000000..8da2e9a3 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/info/impl/CompanyServiceImpl.java @@ -0,0 +1,29 @@ +package com.glxp.api.admin.service.info.impl; + +import com.glxp.api.admin.dao.info.CompanyDao; +import com.glxp.api.admin.entity.info.CompanyEntity; +import com.glxp.api.admin.service.info.CompanyService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +public class CompanyServiceImpl implements CompanyService { + + @Resource + CompanyDao companyDao; + + @Override + public CompanyEntity findCompany() { + return companyDao.findCompany(); + } + + @Override + public boolean modifyCompany(CompanyEntity companyEntity) { + + if (findCompany() == null) { + return companyDao.insertCompany(companyEntity); + } else + return companyDao.modifyCompany(companyEntity); + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/info/impl/SetupServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/info/impl/SetupServiceImpl.java new file mode 100644 index 00000000..a1044c57 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/info/impl/SetupServiceImpl.java @@ -0,0 +1,40 @@ +package com.glxp.api.admin.service.info.impl; + +import com.glxp.api.admin.dao.info.SetupDao; +import com.glxp.api.admin.entity.info.SetupEntity; +import com.glxp.api.admin.req.info.FilterSetupRequest; +import com.glxp.api.admin.service.info.SetupService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +@Service +public class SetupServiceImpl implements SetupService { + @Resource + SetupDao setupDao; + + + @Override + public SetupEntity selectSetup() { + FilterSetupRequest filterSetupRequest = new FilterSetupRequest(); + filterSetupRequest.setId(1); + return setupDao.findSetup(filterSetupRequest); + } + + @Override + public SetupEntity findSetup(FilterSetupRequest filterSetupRequest) { + return setupDao.findSetup(filterSetupRequest); + } + + @Override + public boolean modifySetup(SetupEntity setupEntity) { + + return setupDao.modifySetup(setupEntity); + } + + @Override + public boolean insertSetup(SetupEntity setupEntity) { + return setupDao.insertSetup(setupEntity); + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/info/impl/SystemParamConfigServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/info/impl/SystemParamConfigServiceImpl.java new file mode 100644 index 00000000..9cfab419 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/info/impl/SystemParamConfigServiceImpl.java @@ -0,0 +1,65 @@ +package com.glxp.api.admin.service.info.impl; + +import com.github.pagehelper.PageHelper; +import com.glxp.api.admin.dao.info.SystemParamConfigDao; +import com.glxp.api.admin.entity.info.SystemParamConfigEntity; +import com.glxp.api.admin.req.info.SystemParamConfigRequest; +import com.glxp.api.admin.req.info.SystemParamConfigSaveRequest; +import com.glxp.api.admin.service.info.SystemParamConfigService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +@Service +public class SystemParamConfigServiceImpl implements SystemParamConfigService { + @Resource + SystemParamConfigDao systemParamConfigDao; + + @Override + public List queryPage(SystemParamConfigRequest SystemParamConfigRequest) { + int offset = (SystemParamConfigRequest.getPage() - 1) * SystemParamConfigRequest.getLimit(); + PageHelper.offsetPage(offset, SystemParamConfigRequest.getLimit()); + List list = systemParamConfigDao.queryPage(SystemParamConfigRequest); + return list; + } + + @Override + public SystemParamConfigEntity selectSystemParamConfig() { + SystemParamConfigRequest systemParamConfigRequest = new SystemParamConfigRequest(); + systemParamConfigRequest.setId(1); + return systemParamConfigDao.findSystemParamConfig(systemParamConfigRequest); + } + + @Override + public SystemParamConfigEntity findSystemParamConfig(SystemParamConfigRequest systemParamConfigRequest) { + return systemParamConfigDao.findSystemParamConfig(systemParamConfigRequest); + } + + @Override + public SystemParamConfigEntity selectByParamName(SystemParamConfigRequest systemParamConfigRequest) { + return systemParamConfigDao.selectByParamName(systemParamConfigRequest); + } + + @Override + public SystemParamConfigEntity selectByParamKey(String key) { + return systemParamConfigDao.selectByParamKey(key); + } + + @Override + public boolean updateById(SystemParamConfigSaveRequest systemParamConfigSaveRequest) { + + return systemParamConfigDao.updateById(systemParamConfigSaveRequest); + } + + @Override + public boolean updateParentId(SystemParamConfigSaveRequest systemParamConfigSaveRequest) { + + return systemParamConfigDao.updateParentId(systemParamConfigSaveRequest); + } + + @Override + public boolean insert(SystemParamConfigEntity systemParamConfigEntity) { + return systemParamConfigDao.insert(systemParamConfigEntity); + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/inout/CodesService.java b/api-admin/src/main/java/com/glxp/api/admin/service/inout/CodesService.java new file mode 100644 index 00000000..579b8c59 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/inout/CodesService.java @@ -0,0 +1,37 @@ +package com.glxp.api.admin.service.inout; + +import com.glxp.api.admin.entity.inout.WarehouseEntity; +import com.glxp.api.admin.entity.inout.Warehousetemp; +import com.glxp.api.admin.req.inout.CommitRequest; +import com.glxp.api.admin.req.inout.WarehouseQueryRequest; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface CodesService { + List listWarehouse(WarehouseQueryRequest warehouseQueryRequest); + + boolean insertWarehouse(WarehouseEntity warehouseEntity); + + boolean insertWarehouses(List warehouseEntities); + + + List findByNo(WarehouseQueryRequest warehouseQueryRequest); + + boolean isExits(WarehouseEntity warehouseEntity); + + List findByOrderId(WarehouseQueryRequest warehouseQueryRequest); + + + List findAllByOrderId(WarehouseQueryRequest warehouseQueryRequest); + + List findByReceiptId(String orderId); + + List findByCode(String code); + + boolean updateOrderId(String oldOrderId, String newOrderId); + + List searchCode(String code); + + boolean updateUnit(String orderId, String fromCorpID, String fromCorp); +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/inout/CodesTempService.java b/api-admin/src/main/java/com/glxp/api/admin/service/inout/CodesTempService.java new file mode 100644 index 00000000..c1be67f1 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/inout/CodesTempService.java @@ -0,0 +1,16 @@ +package com.glxp.api.admin.service.inout; + +import com.glxp.api.admin.entity.inout.WarehouseEntity; +import com.glxp.api.admin.req.inout.WarehouseQueryRequest; + +import java.util.List; + +public interface CodesTempService { + + int insertCodesTemp(List warehouseEntities); + + int deleteCodesTemp(List warehouseEntities); + + List findByOrderId(WarehouseQueryRequest warehouseQueryRequest); + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/inout/OrderDetailService.java b/api-admin/src/main/java/com/glxp/api/admin/service/inout/OrderDetailService.java new file mode 100644 index 00000000..d9c779d3 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/inout/OrderDetailService.java @@ -0,0 +1,39 @@ +package com.glxp.api.admin.service.inout; + +import com.glxp.api.admin.entity.inout.ErpOrderEntity; +import com.glxp.api.admin.entity.inout.FilterErpOrderRequest; + +import java.util.List; + +public interface OrderDetailService { + + List filterAllMyErpOrder(FilterErpOrderRequest filterErpOrderRequest); + + List findByStockCheck(FilterErpOrderRequest filterErpOrderRequest); + + List filterMyErpOrder(FilterErpOrderRequest filterErpOrderRequest); + + List filterMyErpMainOrder(FilterErpOrderRequest filterErpOrderRequest); + + List filterMyErpDetailOrder(FilterErpOrderRequest filterErpOrderRequest); + + List findAllByDocids(List docids); + + List filterAllDocid(FilterErpOrderRequest filterErpOrderRequest); + + List filterAllDocidE(FilterErpOrderRequest filterErpOrderRequest); + + boolean insertErpOrders(List erpOrderEntities); + + boolean insertErpOrder(ErpOrderEntity erpOrderEntity); + + boolean updateErpOrder(ErpOrderEntity erpOrderEntity); + + List selectAllIds(List docids); + + boolean deleteById(String id); + + boolean deleteByPrimiyId( String id); + + boolean deleteByOrderId(String id); +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/inout/OrderService.java b/api-admin/src/main/java/com/glxp/api/admin/service/inout/OrderService.java new file mode 100644 index 00000000..35e73e06 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/inout/OrderService.java @@ -0,0 +1,48 @@ +package com.glxp.api.admin.service.inout; + +import com.glxp.api.admin.entity.inout.OrderEntity; +import com.glxp.api.admin.entity.inout.WarehouseEntity; +import com.glxp.api.admin.req.inout.OrderFilterRequest; +import com.glxp.api.admin.req.inout.OrderQueryRequest; + +import java.util.List; + +public interface OrderService { + + List listOrders(OrderQueryRequest orderQueryRequest); + + boolean insertOrder(OrderEntity orderEntity); + + boolean updateOrder(OrderEntity orderEntity); + + + List listOrderRepeat(OrderQueryRequest orderQueryRequest); + + boolean deleteByOrderId(String orderId); + + boolean deleteById(String id); + + boolean updateUnit(OrderEntity orderEntity); + + boolean updateOrderStatus(String orderId, Integer status); + + boolean updateExportStatus(String orderId, Integer exportStatus); + + boolean updateSignStatus(String orderId, Integer signStatus); + + boolean updateContrastStatus(String orderId, String contrastStatus); + + boolean updateRemark(String orderId, String remark); + + List findAllOrders(OrderFilterRequest orderFilterRequest); + + List filterList(OrderFilterRequest orderFilterRequest); + + OrderEntity findOne(OrderFilterRequest orderFilterRequest); + + OrderEntity findById(String orderId); + + List findCodesById(String orderId); + + List filterListByCode(List warehouseEntityList); +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/inout/impl/CodesServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/inout/impl/CodesServiceImpl.java new file mode 100644 index 00000000..d60fc713 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/inout/impl/CodesServiceImpl.java @@ -0,0 +1,112 @@ +package com.glxp.api.admin.service.inout.impl; + +import com.github.pagehelper.PageHelper; +import com.glxp.api.admin.dao.inout.CodesDao; +import com.glxp.api.admin.entity.inout.WarehouseEntity; +import com.glxp.api.admin.req.inout.WarehouseQueryRequest; +import com.glxp.api.admin.service.inout.CodesService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; + +@Service +public class CodesServiceImpl implements CodesService { + + @Resource + CodesDao warehouseDao; + + @Override + public List listWarehouse(WarehouseQueryRequest warehouseQueryRequest) { + if (warehouseQueryRequest == null) { + return Collections.emptyList(); + } + int offset = (warehouseQueryRequest.getPage() - 1) * warehouseQueryRequest.getLimit(); + PageHelper.offsetPage(offset, warehouseQueryRequest.getLimit()); + return warehouseDao.listWarehouse(warehouseQueryRequest); + } + + + @Override + public boolean insertWarehouse(WarehouseEntity warehouseEntity) { + return warehouseDao.insertWarehouse(warehouseEntity); + } + + @Override + public boolean insertWarehouses(List warehouseEntities) { + return warehouseDao.insertWarehouses(warehouseEntities); + } + + + @Override + public List findByNo(WarehouseQueryRequest warehouseQueryRequest) { + if (warehouseQueryRequest == null) { + return Collections.emptyList(); + } + int offset = (warehouseQueryRequest.getPage() - 1) * warehouseQueryRequest.getLimit(); + PageHelper.offsetPage(offset, warehouseQueryRequest.getLimit()); + return warehouseDao.findByNo(warehouseQueryRequest); + } + + @Override + public boolean isExits(WarehouseEntity warehouseEntity) { + + int result = warehouseDao.isExit(warehouseEntity); + if (result == 1) + return true; + else + return false; + } + + @Override + public List findByOrderId(WarehouseQueryRequest warehouseQueryRequest) { + if (warehouseQueryRequest == null) { + return Collections.emptyList(); + } + if (warehouseQueryRequest.getPage() != null) { + int offset = (warehouseQueryRequest.getPage() - 1) * warehouseQueryRequest.getLimit(); + PageHelper.offsetPage(offset, warehouseQueryRequest.getLimit()); + } + + return warehouseDao.findByOrderId(warehouseQueryRequest); + } + + @Override + public List findAllByOrderId(WarehouseQueryRequest warehouseQueryRequest) { + if (warehouseQueryRequest == null) { + return Collections.emptyList(); + } + return warehouseDao.findByOrderId(warehouseQueryRequest); + } + + @Override + public List findByReceiptId(String orderId) { + return warehouseDao.findByReceiptId(orderId); + } + + + @Override + public List findByCode(String code) { + + return warehouseDao.findByCode(code); + } + + @Override + public boolean updateOrderId(String oldOrderId, String newOrderId) { + + + return warehouseDao.updateOrderId(oldOrderId, newOrderId); + } + + @Override + public List searchCode(String code) { + return warehouseDao.searchCode(code); + } + + + @Override + public boolean updateUnit(String orderId, String fromCorpID, String fromCorp) { + return warehouseDao.updateUnit(orderId, fromCorpID, fromCorp); + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/inout/impl/CodesTempServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/inout/impl/CodesTempServiceImpl.java new file mode 100644 index 00000000..80cbf090 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/inout/impl/CodesTempServiceImpl.java @@ -0,0 +1,43 @@ +package com.glxp.api.admin.service.inout.impl; + +import com.github.pagehelper.PageHelper; +import com.glxp.api.admin.dao.inout.CodesDao; +import com.glxp.api.admin.dao.inout.CodesTempDao; +import com.glxp.api.admin.entity.inout.WarehouseEntity; +import com.glxp.api.admin.req.inout.WarehouseQueryRequest; +import com.glxp.api.admin.service.inout.CodesTempService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; + +@Service +public class CodesTempServiceImpl implements CodesTempService { + + + @Resource + CodesTempDao codesTempDao; + + @Override + public int insertCodesTemp(List warehouseEntities) { + return codesTempDao.insertCodesTemp(warehouseEntities); + } + + @Override + public int deleteCodesTemp(List ids) { + return codesTempDao.deleteCodesTemp(ids); + } + + @Override + public List findByOrderId(WarehouseQueryRequest warehouseQueryRequest) { + if (warehouseQueryRequest == null) { + return Collections.emptyList(); + } + if (warehouseQueryRequest.getPage() != null) { + int offset = (warehouseQueryRequest.getPage() - 1) * warehouseQueryRequest.getLimit(); + PageHelper.offsetPage(offset, warehouseQueryRequest.getLimit()); + } + return codesTempDao.findByOrderId(warehouseQueryRequest); + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/inout/impl/OrderDetailServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/inout/impl/OrderDetailServiceImpl.java new file mode 100644 index 00000000..952d2c29 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/inout/impl/OrderDetailServiceImpl.java @@ -0,0 +1,125 @@ +package com.glxp.api.admin.service.inout.impl; + +import com.github.pagehelper.PageHelper; +import com.glxp.api.admin.dao.inout.OrderDetailDao; +import com.glxp.api.admin.entity.inout.ErpOrderEntity; +import com.glxp.api.admin.entity.inout.FilterErpOrderRequest; +import com.glxp.api.admin.service.inout.OrderDetailService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; + +@Service +public class OrderDetailServiceImpl implements OrderDetailService { + + @Resource + OrderDetailDao myErpOrderDao; + + @Override + public List filterAllMyErpOrder(FilterErpOrderRequest filterErpOrderRequest) { + if (filterErpOrderRequest == null) { + return Collections.emptyList(); + } + + return myErpOrderDao.filterMyErpOrder(filterErpOrderRequest); + } + + @Override + public List findByStockCheck(FilterErpOrderRequest filterErpOrderRequest) { + + if (filterErpOrderRequest == null) { + return Collections.emptyList(); + } + int offset = (filterErpOrderRequest.getPage() - 1) * filterErpOrderRequest.getLimit(); + PageHelper.offsetPage(offset, filterErpOrderRequest.getLimit()); + return myErpOrderDao.findByStockCheck(filterErpOrderRequest.getOrderIds()); + } + + @Override + public List filterMyErpOrder(FilterErpOrderRequest filterErpOrderRequest) { + if (filterErpOrderRequest == null) { + return Collections.emptyList(); + } + if (filterErpOrderRequest.getPage() != null) { + int offset = (filterErpOrderRequest.getPage() - 1) * filterErpOrderRequest.getLimit(); + PageHelper.offsetPage(offset, filterErpOrderRequest.getLimit()); + } + return myErpOrderDao.filterMyErpOrder(filterErpOrderRequest); + } + + @Override + public List filterMyErpMainOrder(FilterErpOrderRequest filterErpOrderRequest) { + if (filterErpOrderRequest == null) { + return Collections.emptyList(); + } + int offset = (filterErpOrderRequest.getPage() - 1) * filterErpOrderRequest.getLimit(); + PageHelper.offsetPage(offset, filterErpOrderRequest.getLimit()); + return myErpOrderDao.filterMyErpMainOrder(filterErpOrderRequest); + } + + @Override + public List filterMyErpDetailOrder(FilterErpOrderRequest filterErpOrderRequest) { + if (filterErpOrderRequest == null) { + return Collections.emptyList(); + } + if (filterErpOrderRequest.getPage() != null && filterErpOrderRequest.getLimit() != null) { + int offset = (filterErpOrderRequest.getPage() - 1) * filterErpOrderRequest.getLimit(); + PageHelper.offsetPage(offset, filterErpOrderRequest.getLimit()); + } + + return myErpOrderDao.filterMyErpDetailOrder(filterErpOrderRequest); + } + + @Override + public List findAllByDocids(List docids) { + return myErpOrderDao.findAllByDocids(docids); + } + + @Override + public List filterAllDocid(FilterErpOrderRequest filterErpOrderRequest) { + return myErpOrderDao.filterAllDocid(filterErpOrderRequest); + } + + @Override + public List filterAllDocidE(FilterErpOrderRequest filterErpOrderRequest) { + return myErpOrderDao.filterAllDocidE(filterErpOrderRequest); + } + + @Override + public boolean insertErpOrders(List erpOrderEntities) { + return myErpOrderDao.insertErpOrders(erpOrderEntities); + } + + @Override + public boolean insertErpOrder(ErpOrderEntity erpOrderEntity) { + return myErpOrderDao.insertErpOrder(erpOrderEntity); + } + + @Override + public boolean updateErpOrder(ErpOrderEntity erpOrderEntity) { + return myErpOrderDao.updateErpOrder(erpOrderEntity); + } + + @Override + public List selectAllIds(List docids) { + return myErpOrderDao.selectAllIds(docids); + } + + @Override + public boolean deleteById(String id) { + return myErpOrderDao.deleteById(id); + } + + @Override + public boolean deleteByPrimiyId(String id) { + return myErpOrderDao.deleteByPrimiyId(id); + } + + @Override + public boolean deleteByOrderId(String id) { + return myErpOrderDao.deleteByOrderId(id); + } + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/inout/impl/OrderServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/inout/impl/OrderServiceImpl.java new file mode 100644 index 00000000..778be379 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/inout/impl/OrderServiceImpl.java @@ -0,0 +1,138 @@ +package com.glxp.api.admin.service.inout.impl; + +import com.github.pagehelper.PageHelper; +import com.glxp.api.admin.dao.inout.OrderDao; +import com.glxp.api.admin.dao.inout.CodesDao; +import com.glxp.api.admin.entity.inout.OrderEntity; +import com.glxp.api.admin.entity.inout.WarehouseEntity; +import com.glxp.api.admin.req.inout.OrderFilterRequest; +import com.glxp.api.admin.req.inout.OrderQueryRequest; +import com.glxp.api.admin.service.inout.OrderService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; + +@Service +public class OrderServiceImpl implements OrderService { + + @Resource + OrderDao orderDao; + @Resource + CodesDao warehouseDao; + + @Override + public List listOrders(OrderQueryRequest orderQueryRequest) { + if (orderQueryRequest == null) { + return Collections.emptyList(); + } + int offset = (orderQueryRequest.getPage() - 1) * orderQueryRequest.getLimit(); + PageHelper.offsetPage(offset, orderQueryRequest.getLimit()); + return orderDao.listOrder(orderQueryRequest); + } + + + @Override + public boolean insertOrder(OrderEntity orderEntity) { + return orderDao.insertOrder(orderEntity); + } + + @Override + public boolean updateOrder(OrderEntity orderEntity) { + return orderDao.updateOrder(orderEntity); + } + + + @Override + public List listOrderRepeat(OrderQueryRequest orderQueryRequest) { + if (orderQueryRequest == null) { + return Collections.emptyList(); + } + int offset = (orderQueryRequest.getPage() - 1) * orderQueryRequest.getLimit(); + PageHelper.offsetPage(offset, orderQueryRequest.getLimit()); + return orderDao.listOrderRepeat(orderQueryRequest); + } + + @Override + public boolean deleteByOrderId(String orderId) { + return orderDao.deleteByOrderId(orderId); + } + + @Override + public boolean deleteById(String id) { + return orderDao.deleteById(id); + } + + @Override + public boolean updateUnit(OrderEntity orderEntity) { + return orderDao.updateUnit(orderEntity); + } + + @Override + public boolean updateOrderStatus(String orderId, Integer status) { + return orderDao.updateOrderStatus(orderId, status); + } + + @Override + public boolean updateExportStatus(String orderId, Integer exportStatus) { + return orderDao.updateExportStatus(orderId, exportStatus); + } + + @Override + public boolean updateSignStatus(String orderId, Integer signStatus) { + return orderDao.updateSignStatus(orderId, signStatus); + } + + @Override + public boolean updateContrastStatus(String orderId, String contrastStatus) { + return orderDao.updateContrastStatus(orderId, contrastStatus); + } + + @Override + public boolean updateRemark(String orderId, String remark) { + return orderDao.updateRemark(orderId, remark); + } + + @Override + public List findAllOrders(OrderFilterRequest orderFilterRequest) { + return orderDao.filterNoSort(orderFilterRequest); + } + + @Override + public List filterList(OrderFilterRequest orderFilterRequest) { + if (orderFilterRequest == null) { + return Collections.emptyList(); + } + int offset = (orderFilterRequest.getPage() - 1) * orderFilterRequest.getLimit(); + PageHelper.offsetPage(offset, orderFilterRequest.getLimit()); + return orderDao.filterList(orderFilterRequest); + } + + @Override + public OrderEntity findOne(OrderFilterRequest orderFilterRequest) { + return orderDao.findOne(orderFilterRequest); + } + + @Override + public OrderEntity findById(String orderId) { + OrderFilterRequest orderFilterRequest = new OrderFilterRequest(); + orderFilterRequest.setId(orderId); + return orderDao.findOne(orderFilterRequest); + } + + @Override + public List findCodesById(String orderId) { + return warehouseDao.findCodesById(orderId); + } + + @Override + public List filterListByCode(List warehouseEntityList) { + if (warehouseEntityList == null) { + return Collections.emptyList(); + } + return orderDao.filterListByCode(warehouseEntityList); + } + + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/inventory/InvErpStockService.java b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/InvErpStockService.java new file mode 100644 index 00000000..ba79febd --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/InvErpStockService.java @@ -0,0 +1,21 @@ +package com.glxp.api.admin.service.inventory; + +import com.glxp.api.admin.entity.basic.ErpStockEntity; +import com.glxp.api.admin.req.basic.FilterStockprintRequest; + +import java.util.List; + +public interface InvErpStockService { + + + ErpStockEntity findByCode(String nameCode,String batchNo); + + boolean insertErpStock(ErpStockEntity stockPrintEntity); + + boolean insertErpStocks(List stockPrintEntities); + + boolean updateErpStock(ErpStockEntity udiInfoEntity); + + boolean deleteById(String id); + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/inventory/InvOrderCheckService.java b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/InvOrderCheckService.java new file mode 100644 index 00000000..6b63680f --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/InvOrderCheckService.java @@ -0,0 +1,19 @@ +package com.glxp.api.admin.service.inventory; + +import com.glxp.api.admin.entity.inout.StockCheckEntity; +import com.glxp.api.admin.req.basic.FilterStockprintRequest; +import com.glxp.api.admin.req.inout.FilterStockCheckRequest; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface InvOrderCheckService { + List filterStockCheck(FilterStockCheckRequest filterStockCheckRequest); + + boolean insertStockCheck(StockCheckEntity stockCheckEntity); + + boolean updateStockCheck(StockCheckEntity stockCheckEntity); + + boolean deleteById(String id); + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/inventory/InvStockPrintService.java b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/InvStockPrintService.java new file mode 100644 index 00000000..29d33614 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/InvStockPrintService.java @@ -0,0 +1,25 @@ +package com.glxp.api.admin.service.inventory; + +import com.glxp.api.admin.entity.basic.StockPrintEntity; +import com.glxp.api.admin.req.basic.FilterStockprintRequest; +import java.util.List; + +public interface InvStockPrintService { + + List filterStockPrint(FilterStockprintRequest filterStockprintRequest); + + StockPrintEntity findByNameCode(String nameCode); + + StockPrintEntity findByRlId(FilterStockprintRequest filterStockprintRequest); + + boolean insertStockPrint(StockPrintEntity stockPrintEntity); + + boolean insertStockPrints(List stockPrintEntities); + + boolean updateStockPrint(StockPrintEntity udiInfoEntity); + + boolean deleteById(String id); + + boolean updatePrintStatus(List ids); + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvErpStockServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvErpStockServiceImpl.java new file mode 100644 index 00000000..9830b05b --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvErpStockServiceImpl.java @@ -0,0 +1,41 @@ +package com.glxp.api.admin.service.inventory.impl; + +import com.glxp.api.admin.dao.inventory.InvErpStockDao; +import com.glxp.api.admin.entity.basic.ErpStockEntity; +import com.glxp.api.admin.service.inventory.InvErpStockService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +@Service +public class InvErpStockServiceImpl implements InvErpStockService { + + @Resource + InvErpStockDao erpStockDao; + + @Override + public ErpStockEntity findByCode(String nameCode, String batchNo) { + return erpStockDao.findByCode(nameCode, batchNo); + } + + @Override + public boolean insertErpStock(ErpStockEntity erpStockEntity) { + return erpStockDao.insertErpStock(erpStockEntity); + } + + @Override + public boolean insertErpStocks(List erpStockEntities) { + return erpStockDao.insertErpStocks(erpStockEntities); + } + + @Override + public boolean updateErpStock(ErpStockEntity erpStockEntity) { + return erpStockDao.updateErpStock(erpStockEntity); + } + + @Override + public boolean deleteById(String id) { + return erpStockDao.deleteById(id); + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvOrderCheckServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvOrderCheckServiceImpl.java new file mode 100644 index 00000000..c24db6a5 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvOrderCheckServiceImpl.java @@ -0,0 +1,49 @@ +package com.glxp.api.admin.service.inventory.impl; + +import com.github.pagehelper.PageHelper; +import com.glxp.api.admin.dao.inventory.InvOrderCheckDao; +import com.glxp.api.admin.entity.inout.StockCheckEntity; +import com.glxp.api.admin.req.inout.FilterStockCheckRequest; +import com.glxp.api.admin.service.inventory.InvOrderCheckService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; + +@Service +public class InvOrderCheckServiceImpl implements InvOrderCheckService { + + @Resource + InvOrderCheckDao stockCheckDao; + + + @Override + public List filterStockCheck(FilterStockCheckRequest filterStockCheckRequest) { + if (filterStockCheckRequest == null) { + return Collections.emptyList(); + } + if(filterStockCheckRequest.getPage()!=null){ + int offset = (filterStockCheckRequest.getPage() - 1) * filterStockCheckRequest.getLimit(); + PageHelper.offsetPage(offset, filterStockCheckRequest.getLimit()); + } + + List data = stockCheckDao.filterStockCheck(filterStockCheckRequest); + return data; + } + + @Override + public boolean insertStockCheck(StockCheckEntity stockCheckEntity) { + return stockCheckDao.insertStockCheck(stockCheckEntity); + } + + @Override + public boolean updateStockCheck(StockCheckEntity stockCheckEntity) { + return stockCheckDao.updateStockCheck(stockCheckEntity); + } + + @Override + public boolean deleteById(String id) { + return stockCheckDao.deleteById(id); + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvStockPrintServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvStockPrintServiceImpl.java new file mode 100644 index 00000000..8a057d9b --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvStockPrintServiceImpl.java @@ -0,0 +1,67 @@ +package com.glxp.api.admin.service.inventory.impl; + +import com.github.pagehelper.PageHelper; +import com.glxp.api.admin.dao.inventory.InvStockPrintDao; +import com.glxp.api.admin.entity.basic.StockPrintEntity; +import com.glxp.api.admin.req.basic.FilterStockprintRequest; +import com.glxp.api.admin.service.inventory.InvStockPrintService; +import com.glxp.api.admin.util.FilterUdiUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; + +@Service +public class InvStockPrintServiceImpl implements InvStockPrintService { + + @Resource + InvStockPrintDao stockPrintDao; + + @Override + public List filterStockPrint(FilterStockprintRequest filterStockprintRequest) { + if (filterStockprintRequest == null) { + return Collections.emptyList(); + } + int offset = (filterStockprintRequest.getPage() - 1) * filterStockprintRequest.getLimit(); + PageHelper.offsetPage(offset, filterStockprintRequest.getLimit()); + List data = stockPrintDao.filterStockPrint(filterStockprintRequest); + return data; + } + + @Override + public StockPrintEntity findByNameCode(String nameCode) { + String prefix = FilterUdiUtils.getDiStr(nameCode); + return stockPrintDao.findByNameCode(prefix); + } + + @Override + public StockPrintEntity findByRlId(FilterStockprintRequest udiRlIdFk) { + return stockPrintDao.findByRlId(udiRlIdFk); + } + + @Override + public boolean insertStockPrint(StockPrintEntity stockPrintEntity) { + return stockPrintDao.insertStockPrint(stockPrintEntity); + } + + @Override + public boolean insertStockPrints(List stockPrintEntities) { + return stockPrintDao.insertStockPrints(stockPrintEntities); + } + + @Override + public boolean updateStockPrint(StockPrintEntity stockPrintEntity) { + return stockPrintDao.updateStockPrint(stockPrintEntity); + } + + @Override + public boolean deleteById(String id) { + return stockPrintDao.deleteById(id); + } + + @Override + public boolean updatePrintStatus(List ids) { + return stockPrintDao.updatePrintStatus(ids); + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/thread/BasicUpdateErpDataTask.java b/api-admin/src/main/java/com/glxp/api/admin/thread/BasicUpdateErpDataTask.java new file mode 100644 index 00000000..6d6f05b0 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/thread/BasicUpdateErpDataTask.java @@ -0,0 +1,62 @@ +package com.glxp.api.admin.thread; + +import com.glxp.api.admin.dao.info.ScheduledDao; +import com.glxp.api.admin.entity.info.ScheduledEntity; +import com.glxp.api.admin.entity.info.SetupEntity; +import com.glxp.api.admin.entity.info.SystemParamConfigEntity; +import com.glxp.api.admin.req.udid.ScheduledRequest; +import com.glxp.api.admin.service.info.SetupService; +import com.glxp.api.admin.service.info.SystemParamConfigService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.support.CronTrigger; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +@Component +@EnableScheduling +public class BasicUpdateErpDataTask implements SchedulingConfigurer { + + final Logger logger = LoggerFactory.getLogger(IoModifyErpTask.class); + + @Resource + private BasicUpdateproductService updateproductService; + @Resource + protected ScheduledDao scheduledDao; + @Resource + SystemParamConfigService systemParamConfigService; + + @Override + public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { + scheduledTaskRegistrar.addTriggerTask(() -> process(), + triggerContext -> { + ScheduledRequest scheduledRequest = new ScheduledRequest(); + scheduledRequest.setCronName("updateErpData"); + ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest); + String cron = scheduledEntity.getCron(); + if (cron.isEmpty()) { + logger.error("cron is null"); + } + return new CronTrigger(cron).nextExecutionTime(triggerContext); + }); + } + + + private void process() { + logger.info("定时更新下载ERP产品信息"); + SystemParamConfigEntity isUpdate = systemParamConfigService.selectByParamKey("updateErpData"); + if (isUpdate != null && "1".equals(isUpdate.getParamValue())) { + SystemParamConfigEntity product = systemParamConfigService.selectByParamKey("erp_products_query"); + SystemParamConfigEntity onHand = systemParamConfigService.selectByParamKey("erp_onhand_query"); + if (product != null && onHand != null) + updateproductService.updateProduct(product.getParamValue(), onHand.getParamValue()); + } else { + logger.info("暂未设置,不更新"); + } + + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/thread/BasicUpdateproductService.java b/api-admin/src/main/java/com/glxp/api/admin/thread/BasicUpdateproductService.java new file mode 100644 index 00000000..1ca2388d --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/thread/BasicUpdateproductService.java @@ -0,0 +1,155 @@ +package com.glxp.api.admin.thread; + +import com.glxp.api.admin.entity.basic.UdiInfoEntity; +import com.glxp.api.admin.entity.basic.UdiRelevanceEntity; +import com.glxp.api.admin.httpclient.ErpBasicClient; +import com.glxp.api.admin.httpclient.ErpInvClient; +import com.glxp.api.admin.req.basic.FilterErpGoodsRequest; +import com.glxp.api.admin.req.inventory.ErpOnhandRequest; +import com.glxp.api.admin.res.PageSimpleResponse; +import com.glxp.api.admin.res.basic.ErpProductsResponse; +import com.glxp.api.admin.res.inventory.ErpOnHandResponse; +import com.glxp.api.admin.service.basic.UdiInfoService; +import com.glxp.api.admin.service.basic.UdiRelevanceService; +import com.glxp.api.admin.util.CustomUtil; +import com.glxp.api.admin.util.DateUtil; +import com.glxp.api.common.res.BaseResponse; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Service +public class BasicUpdateproductService { + @Resource + UdiRelevanceService udiRelevanceService; + @Resource + UdiInfoService udiInfoService; + + + @Async + public void updateProduct(String productUrl, String onHandUrl) { + int page = 1; + int limit = 100; + while (page != -1) { + page = getInvmandoc(null, page, limit, productUrl, onHandUrl); + } + } + + public void addProduct(String code, String name, String url) { + List inventoryCodes = new ArrayList<>(); + inventoryCodes.add(code); + if (inventoryCodes.size() > 0) { + UdiRelevanceEntity udiRelevanceEntity1 = new UdiRelevanceEntity(); + udiRelevanceEntity1.setThirdId(code); + udiRelevanceEntity1.setThirdName(name); + udiRelevanceEntity1.setUpdateTime(DateUtil.getDateTime()); + + FilterErpGoodsRequest filterErpGoodsRequest = new FilterErpGoodsRequest(); + filterErpGoodsRequest.setCode(code); + filterErpGoodsRequest.setPage(1); + filterErpGoodsRequest.setLimit(1); + BaseResponse> erpProducts = new ErpBasicClient().getErpProducts(filterErpGoodsRequest, url); + List erpProductsResponses = erpProducts.getData().getList(); + if (erpProductsResponses != null & erpProductsResponses.size() > 0) { + ErpProductsResponse erpProductsResponse = erpProductsResponses.get(0); + UdiInfoEntity udiInfoEntity = new UdiInfoEntity(); + udiInfoEntity.setNameCode(erpProductsResponse.getCode()); + udiInfoEntity.setCpmctymc(erpProductsResponse.getName()); + udiInfoEntity.setGgxh(erpProductsResponse.getSpec()); + udiInfoEntity.setZczbhhzbapzbh(erpProductsResponse.getRegisterNo()); + udiInfoEntity.setYlqxzcrbarmc(erpProductsResponse.getManufactory()); + udiInfoEntity.setUuid(CustomUtil.getUUId()); + udiInfoService.insertUdiInfo(udiInfoEntity); + udiRelevanceEntity1.setUuid(udiInfoEntity.getUuid()); + udiRelevanceEntity1.setThirdId(udiInfoEntity.getNameCode()); + udiRelevanceEntity1.setThirdName(udiInfoEntity.getCpmctymc()); + udiRelevanceEntity1.setUpdateTime(DateUtil.getDateTime()); + + } + udiRelevanceService.insertUdiRelevance(udiRelevanceEntity1); + } + + + } + + + public int getInvmandoc(String invcode, int page, int limit, String productUrl, String onHandUrl) { + + FilterErpGoodsRequest filterErpGoodsRequest = new FilterErpGoodsRequest(); + + filterErpGoodsRequest.setPage(page); + filterErpGoodsRequest.setLimit(limit); + if (invcode != null) { + filterErpGoodsRequest.setCode(invcode); + } + BaseResponse> erpProducts = new ErpBasicClient().getErpProducts(filterErpGoodsRequest, productUrl); + List invmandocResponses = erpProducts.getData().getList(); + if (invmandocResponses != null && invmandocResponses.size() > 0) { + List inventoryCodes = new ArrayList<>(); + if (invcode != null) { + inventoryCodes.add(invcode); + } else { + for (ErpProductsResponse invmandocResponse : invmandocResponses) { + UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectByThirdId(invmandocResponse.getCode()); + if (udiRelevanceEntity == null) { + inventoryCodes.add(invmandocResponse.getCode()); + } + } + } + + if (inventoryCodes.size() > 0) { + + ErpOnhandRequest erpOnhandRequest = new ErpOnhandRequest(); + erpOnhandRequest.setInventoryCodes(inventoryCodes); + List erpOnHandResponses = new ErpInvClient().getOnHand(erpOnhandRequest, onHandUrl); + if (erpOnHandResponses != null) { + Map> map = erpOnHandResponses.stream().collect(Collectors.groupingBy(ErpOnHandResponse::getInventoryCode)); + for (List onHandResponses : map.values()) { + if (onHandResponses != null && onHandResponses.size() > 0) { + ErpOnHandResponse onhandQueryResponse = onHandResponses.get(0); + if (onhandQueryResponse.getCount() > 0) { + UdiInfoEntity udiInfoEntity = new UdiInfoEntity(); + udiInfoEntity.setNameCode(onhandQueryResponse.getInventoryCode()); + udiInfoEntity.setCpmctymc(onhandQueryResponse.getInventoryName()); + udiInfoEntity.setGgxh(onhandQueryResponse.getSpec()); + udiInfoEntity.setUuid(CustomUtil.getUUId()); + udiInfoEntity.setYlqxzcrbarmc(invmandocResponses.get(0).getManufactory()); + udiInfoEntity.setZczbhhzbapzbh(invmandocResponses.get(0).getRegisterNo()); + udiInfoService.insertUdiInfo(udiInfoEntity); + UdiRelevanceEntity udiRelevanceEntity1 = new UdiRelevanceEntity(); + udiRelevanceEntity1.setUuid(udiInfoEntity.getUuid()); + udiRelevanceEntity1.setThirdId(onhandQueryResponse.getInventoryCode()); + udiRelevanceEntity1.setThirdName(onhandQueryResponse.getInventoryName()); + udiRelevanceEntity1.setUpdateTime(DateUtil.getDateTime()); + udiRelevanceService.insertUdiRelevance(udiRelevanceEntity1); + } + +// } + + } + } + } else { + UdiRelevanceEntity udiRelevanceEntity1 = new UdiRelevanceEntity(); + udiRelevanceEntity1.setThirdId(invcode); + udiRelevanceEntity1.setThirdName(invmandocResponses.get(0).getName()); + udiRelevanceEntity1.setUpdateTime(DateUtil.getDateTime()); + udiRelevanceService.insertUdiRelevance(udiRelevanceEntity1); + } + } + page++; + if (page * limit < erpProducts.getData().getTotal()) { + return page; + } + } else { + return -1; + } + + return -1; + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/thread/InvDlErpStockService.java b/api-admin/src/main/java/com/glxp/api/admin/thread/InvDlErpStockService.java new file mode 100644 index 00000000..84b1d5cf --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/thread/InvDlErpStockService.java @@ -0,0 +1,108 @@ +package com.glxp.api.admin.thread; + +import com.glxp.api.admin.entity.info.SystemParamConfigEntity; +import com.glxp.api.admin.entity.inout.ErpOrderEntity; +import com.glxp.api.admin.httpclient.ErpOrderClient; +import com.glxp.api.admin.req.inout.FilterOrderRequest; +import com.glxp.api.admin.entity.basic.ErpStockEntity; +import com.glxp.api.admin.entity.basic.UdiInfoEntity; +import com.glxp.api.admin.entity.basic.UdiRelevanceEntity; +import com.glxp.api.admin.entity.info.SetupEntity; +import com.glxp.api.admin.entity.inout.WarehouseEntity; +import com.glxp.api.admin.req.inout.WarehouseQueryRequest; +import com.glxp.api.admin.service.info.SystemParamConfigService; +import com.glxp.api.admin.service.inventory.InvErpStockService; +import com.glxp.api.admin.service.basic.UdiInfoService; +import com.glxp.api.admin.service.basic.UdiRelevanceService; +import com.glxp.api.admin.service.info.SetupService; +import com.glxp.api.admin.service.inout.CodesService; +import com.glxp.api.admin.util.DateUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Service +public class InvDlErpStockService { + @Resource + SetupService setupService; + @Resource + InvErpStockService erpStockService; + @Resource + UdiRelevanceService udiRelevanceService; + @Resource + UdiInfoService udiInfoService; + @Resource + CodesService warehouseService; + @Resource + SystemParamConfigService systemParamConfigService; + final Logger logger = LoggerFactory.getLogger(InvDlErpStockService.class); + + /** + * 下载ERP采购入库单所有产品信息到ERP库存表 + */ + @Async + public void dlErpStock() { + SetupEntity setupEntity = setupService.selectSetup(); + Integer day = setupEntity.getDlStockErpDay(); + Map date = DateUtil.getDayRange(day); + Integer page = 1; + Integer limit = 20; + + while (true) { + + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("erp_order_query"); + if (systemParamConfigEntity == null) { + logger.error("ERP出入库单据接口未定义"); + return; + } + FilterOrderRequest filterOrderRequest = new FilterOrderRequest(); + filterOrderRequest.setPage(page); + filterOrderRequest.setLimit(limit); + filterOrderRequest.setStartDate((String)date.get("startDate")); + filterOrderRequest.setEndDate((String)date.get("endDate")); + filterOrderRequest.setBillAction("PurchaseWareHouseIn"); + List erpOrderEntities = new ErpOrderClient(systemParamConfigEntity.getParamValue()).getErpOrder(filterOrderRequest); + List erpStockEntities = new ArrayList<>(); + if (erpOrderEntities != null && erpOrderEntities.size() > 0) { + page++; + for (ErpOrderEntity erpOrderEntity : erpOrderEntities) { + //ERP数据更新 + ErpStockEntity erpStockEntity = new ErpStockEntity(); + erpStockEntity.setOrderId(erpOrderEntity.getErpOrderId()); + erpStockEntity.setCode(erpOrderEntity.getGoodsid()); + erpStockEntity.setBatchNo(erpOrderEntity.getBatchNo()); + erpStockEntity.setExpirationDate(erpOrderEntity.getExpireDate()); + erpStockEntity.setName(erpOrderEntity.getGoodsname()); + erpStockEntity.setCount(erpOrderEntity.getCount() + ""); + + //本地数据更新 + UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectByThirdId(erpStockEntity.getCode()); + if (udiRelevanceEntity != null) { + UdiInfoEntity udiInfoEntity = udiInfoService.findByUuid(udiRelevanceEntity.getUuid()); + WarehouseQueryRequest warehouseQueryRequest = new WarehouseQueryRequest(); + warehouseQueryRequest.setUdi(udiInfoEntity.getNameCode()); + warehouseQueryRequest.setBatchNo(erpStockEntity.getBatchNo()); + List warehouseEntities = warehouseService.findByOrderId(warehouseQueryRequest); + if (warehouseEntities != null && warehouseEntities.size() > 0) { + erpStockEntity.setManufacturingDate(warehouseEntities.get(0).getProduceDate()); + erpStockEntity.setExpirationDate(warehouseEntities.get(0).getExpireDate()); + } + } + erpStockEntities.add(erpStockEntity); + erpStockService.insertErpStocks(erpStockEntities); + } + } else { + break; + } + } + + } + + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/thread/InvDlErpStockTask.java b/api-admin/src/main/java/com/glxp/api/admin/thread/InvDlErpStockTask.java new file mode 100644 index 00000000..2d87eded --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/thread/InvDlErpStockTask.java @@ -0,0 +1,45 @@ +package com.glxp.api.admin.thread; + +import com.glxp.api.admin.dao.info.ScheduledDao; +import com.glxp.api.admin.entity.info.ScheduledEntity; +import com.glxp.api.admin.req.udid.ScheduledRequest; +import com.glxp.api.admin.service.info.SetupService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.support.CronTrigger; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +@Component +@EnableScheduling +public class InvDlErpStockTask implements SchedulingConfigurer { + @Resource + protected ScheduledDao scheduledDao; + @Resource + InvDlErpStockService dlErpStockService; + final Logger logger = LoggerFactory.getLogger(IoModifyErpTask.class); + + @Override + public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { + scheduledTaskRegistrar.addTriggerTask(() -> process(), + triggerContext -> { + ScheduledRequest scheduledRequest = new ScheduledRequest(); + scheduledRequest.setCronName("dlStockEr"); + ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest); + String cron = scheduledEntity.getCron(); + if (cron.isEmpty()) { + logger.error("cron is null"); + } + return new CronTrigger(cron).nextExecutionTime(triggerContext); + }); + } + + private void process() { + logger.info("定时下载ERP采购订单到入库存"); + dlErpStockService.dlErpStock(); + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/thread/InvImportStockService.java b/api-admin/src/main/java/com/glxp/api/admin/thread/InvImportStockService.java new file mode 100644 index 00000000..a3257adc --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/thread/InvImportStockService.java @@ -0,0 +1,332 @@ +package com.glxp.api.admin.thread; + +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.TypeReference; +import com.glxp.api.admin.constant.ConstantType; +import com.glxp.api.admin.entity.basic.ErpStockEntity; +import com.glxp.api.admin.entity.basic.StockPrintEntity; +import com.glxp.api.admin.entity.basic.UdiInfoEntity; +import com.glxp.api.admin.entity.basic.UdiRelevanceEntity; +import com.glxp.api.admin.entity.inout.OrderEntity; +import com.glxp.api.admin.entity.inout.ErpOrderEntity; +import com.glxp.api.admin.entity.inout.FilterErpOrderRequest; +import com.glxp.api.admin.req.basic.FilterStockprintRequest; +import com.glxp.api.admin.req.basic.FilterUdiInfoRequest; +import com.glxp.api.admin.req.inout.FilterStockCheckRequest; +import com.glxp.api.admin.req.inout.OrderFilterRequest; +import com.glxp.api.admin.res.PageSimpleResponse; +import com.glxp.api.admin.res.basic.UOnhandQueryResponse; +import com.glxp.api.admin.res.basic.UdiRelevanceResponse; +import com.glxp.api.admin.service.inventory.InvErpStockService; +import com.glxp.api.admin.service.inventory.InvStockPrintService; +import com.glxp.api.admin.service.basic.UdiInfoService; +import com.glxp.api.admin.service.basic.UdiRelevanceService; +import com.glxp.api.admin.service.inout.OrderDetailService; +import com.glxp.api.admin.service.inout.OrderService; +import com.glxp.api.admin.util.HttpClient; +import com.glxp.api.common.res.BaseResponse; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Service +public class InvImportStockService { + + @Value("${UCLOD_SERVER_URL}") + private String ucloudUrl; + @Resource + private OrderService orderService; + @Resource + InvStockPrintService stockPrintService; + @Resource + UdiRelevanceService udiRelevanceService; + @Resource + private OrderDetailService myErpOrderService; + @Resource + private UdiInfoService productInfoService; + @Resource + private InvErpStockService erpStockService; + + @Async + public void updateStock() { + + int page = 1; + int limit = 1000; + FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest(); + while (true) { + filterUdiInfoRequest.setPage(page); + filterUdiInfoRequest.setLimit(limit); + List udiRelevanceResponses = udiRelevanceService.filterUdiRelevance(filterUdiInfoRequest); + if (udiRelevanceResponses != null && udiRelevanceResponses.size() > 0) { + List stockPrintEntities = new ArrayList<>(); + for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) { + + Map paramMap = new HashMap<>(16); + paramMap.put("inventory", udiRelevanceResponse.getThirdId()); + String response = HttpClient.mipsGet(ucloudUrl + "/uclooud/basic/onhandQuery", paramMap); + try { + BaseResponse> onHandsResponse = + JSONObject.parseObject(response, new TypeReference>>() { + }); + List uOnhandQueryResponses = onHandsResponse.getData().getList(); + if (uOnhandQueryResponses != null && uOnhandQueryResponses.size() > 0) { + + for (UOnhandQueryResponse onhandQueryResponse : uOnhandQueryResponses) { + StockPrintEntity stockPrintEntity = new StockPrintEntity(); + stockPrintEntity.setBatchNo(onhandQueryResponse.getVbatchcode()); + stockPrintEntity.setNnum(onhandQueryResponse.getNnum() + ""); + stockPrintEntity.setWarehouseName(onhandQueryResponse.getCwarehouse_name()); + stockPrintEntity.setWarehouseCode(onhandQueryResponse.getCwarehouse_code()); + ErpStockEntity erpStockEntity = erpStockService.findByCode(udiRelevanceResponse.getThirdId(), stockPrintEntity.getBatchNo()); + if (erpStockEntity != null) { + stockPrintEntity.setExpireDate(erpStockEntity.getExpirationDate()); + stockPrintEntity.setProduceDate(erpStockEntity.getManufacturingDate()); + } + setCommonparams(stockPrintEntity, udiRelevanceResponse, stockPrintEntities); + } + + } else { + StockPrintEntity stockPrintEntity = new StockPrintEntity(); + setCommonparams(stockPrintEntity, udiRelevanceResponse, stockPrintEntities); + } + } catch (Exception e) { + e.printStackTrace(); + StockPrintEntity stockPrintEntity = new StockPrintEntity(); + setCommonparams(stockPrintEntity, udiRelevanceResponse, stockPrintEntities); + } + + + } + stockPrintService.insertStockPrints(stockPrintEntities); + if (udiRelevanceResponses.size() < limit) { + break; + } else { + page++; + } + } else { + break; + } + } + } + + @Async + public void updateByCode(String code) { + UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectByThirdId(code); + UdiRelevanceResponse udiRelevanceResponse = new UdiRelevanceResponse(); + BeanUtils.copyProperties(udiRelevanceEntity, udiRelevanceResponse); + List stockPrintEntities = new ArrayList<>(); + Map paramMap = new HashMap<>(16); + paramMap.put("inventory", code); + String response = HttpClient.mipsGet(ucloudUrl + "/uclooud/basic/onhandQuery", paramMap); + try { + BaseResponse> onHandsResponse = + JSONObject.parseObject(response, new TypeReference>>() { + }); + List uOnhandQueryResponses = onHandsResponse.getData().getList(); + if (uOnhandQueryResponses != null && uOnhandQueryResponses.size() > 0) { + + for (UOnhandQueryResponse onhandQueryResponse : uOnhandQueryResponses) { + StockPrintEntity stockPrintEntity = new StockPrintEntity(); + stockPrintEntity.setBatchNo(onhandQueryResponse.getVbatchcode()); + stockPrintEntity.setNnum(onhandQueryResponse.getNnum() + ""); + stockPrintEntity.setWarehouseName(onhandQueryResponse.getCwarehouse_name()); + stockPrintEntity.setWarehouseCode(onhandQueryResponse.getCwarehouse_code()); + ErpStockEntity erpStockEntity = erpStockService.findByCode(udiRelevanceResponse.getThirdId(), stockPrintEntity.getBatchNo()); + if (erpStockEntity != null) { + stockPrintEntity.setExpireDate(erpStockEntity.getExpirationDate()); + stockPrintEntity.setProduceDate(erpStockEntity.getManufacturingDate()); + } + setCommonparams(stockPrintEntity, udiRelevanceResponse, stockPrintEntities); + } + + } else { + StockPrintEntity stockPrintEntity = new StockPrintEntity(); + setCommonparams(stockPrintEntity, udiRelevanceResponse, stockPrintEntities); + } + } catch (Exception e) { + e.printStackTrace(); + StockPrintEntity stockPrintEntity = new StockPrintEntity(); + setCommonparams(stockPrintEntity, udiRelevanceResponse, stockPrintEntities); + } + } + + public void setCommonparams(StockPrintEntity stockPrintEntity, UdiRelevanceResponse udiRelevanceResponse, List stockPrintEntities) { + + + stockPrintEntity.setCpmctymc(udiRelevanceResponse.getCpmctymc()); + stockPrintEntity.setThirdName(udiRelevanceResponse.getThirdName()); + stockPrintEntity.setGgxh(udiRelevanceResponse.getGgxh()); + stockPrintEntity.setNameCode(udiRelevanceResponse.getNameCode()); + stockPrintEntity.setThirdId(udiRelevanceResponse.getThirdId()); + stockPrintEntity.setUdiRlIdFk(udiRelevanceResponse.getId() + ""); + stockPrintEntity.setYlqxzcrbarmc(udiRelevanceResponse.getYlqxzcrbarmc()); + stockPrintEntity.setZczbhhzbapzbh(udiRelevanceResponse.getZczbhhzbapzbh()); + + stockPrintEntity.setCodeType("3"); +// if (udiRelevanceResponse.getTyshxydm() != null && !udiRelevanceResponse.getTyshxydm().equals("")) { +// +// if (udiRelevanceResponse.getNameCode().contains("MA")) { +// stockPrintEntity.setCodeType("2"); +// +// udiCode = udiRelevanceResponse.getNameCode(); +// if (udiRelevanceResponse.getBatchNo() != null && !udiRelevanceResponse.getBatchNo().equals("null")) +// udiCode = udiCode + ".L" + udiRelevanceResponse.getBatchNo(); +// } else { +// stockPrintEntity.setCodeType("1"); +// udiCode = "01" + udiRelevanceResponse.getNameCode(); +// +// if (udiRelevanceResponse.getBatchNo() != null && !udiRelevanceResponse.getBatchNo().equals("null")) +// udiCode = udiCode + "10" + udiRelevanceResponse.getBatchNo(); +// } +// } else { +// +// } + stockPrintEntity.setUdiCode(generateUdiCode(stockPrintEntity)); + FilterStockprintRequest filterStockprintRequest = new FilterStockprintRequest(); + filterStockprintRequest.setUdiRlIdFk(stockPrintEntity.getUdiRlIdFk() + ""); + filterStockprintRequest.setBatchNo(stockPrintEntity.getBatchNo()); + filterStockprintRequest.setWarehouseCode(stockPrintEntity.getWarehouseCode()); + StockPrintEntity temp = stockPrintService.findByRlId(filterStockprintRequest); + if (temp != null) { + + //如果生产日期与失效日期都有则更新 + if (stockPrintEntity.getProduceDate() != null && !stockPrintEntity.getProduceDate().equals("") && stockPrintEntity.getExpireDate() != null && !stockPrintEntity.getExpireDate().equals("")) { + temp.setProduceDate(stockPrintEntity.getProduceDate()); + temp.setExpireDate(stockPrintEntity.getExpireDate()); + } + if (temp.getProduceDate() == null) { + temp.setProduceDate(stockPrintEntity.getProduceDate()); + } + if (temp.getExpireDate() == null) { + temp.setExpireDate(stockPrintEntity.getExpireDate()); + } + temp.setUdiCode(generateUdiCode(temp)); + stockPrintEntity = temp; + } + if (udiRelevanceResponse.getTyshxydm() != null && !udiRelevanceResponse.getTyshxydm().equals("")) { + if (udiRelevanceResponse.getDiType() == 1) { + stockPrintEntity.setNameCode(udiRelevanceResponse.getNameCode()); + stockPrintEntities.add(stockPrintEntity); + } + } else + stockPrintEntities.add(stockPrintEntity); + } + + + public String generateUdiCode(StockPrintEntity stockPrintEntity) { + String udiCode = ""; + if (stockPrintEntity.getProduceDate() == null) { + stockPrintEntity.setProduceDate(""); + } + + if (stockPrintEntity.getExpireDate() == null) { + stockPrintEntity.setExpireDate(""); + } + + if (stockPrintEntity.getBatchNo() == null) { + stockPrintEntity.setBatchNo(""); + } + if (stockPrintEntity.getWarehouseCode() == null) { + stockPrintEntity.setWarehouseCode(""); + } + //货位码类型 + udiCode = "#" + stockPrintEntity.getNameCode() + "#" + stockPrintEntity.getProduceDate() + "#" + stockPrintEntity.getExpireDate() + + "#" + stockPrintEntity.getBatchNo() + "#" + "#" + stockPrintEntity.getWarehouseCode(); + return udiCode; + } + + @Async + public void checkStock(FilterStockCheckRequest filterStockCheckRequest) { + List erpOrderEntitie = getErpOrders(filterStockCheckRequest.getId() + ""); + if (erpOrderEntitie != null && erpOrderEntitie.size() > 0) { + for (ErpOrderEntity erpOrderEntity : erpOrderEntitie) { + //获取UUID + FilterUdiInfoRequest productFilterRequest = new FilterUdiInfoRequest(); + productFilterRequest.setNameCode(erpOrderEntity.getNameCode()); + List productInfoEntities = productInfoService.filterAllUdiInfo(productFilterRequest); + Map> groupBy = productInfoEntities.stream().collect(Collectors.groupingBy(UdiInfoEntity::getUuid)); + List uuids = new ArrayList<>(); + for (String uuid : groupBy.keySet()) { + uuids.add(uuid); + } + if (uuids.size() == 1) { + List udiRelevanceEntities = udiRelevanceService.selectByUuid(uuids.get(0)); + if (udiRelevanceEntities != null && udiRelevanceEntities.size() == 1) { + Map paramMap = new HashMap<>(16); + paramMap.put("inventory", udiRelevanceEntities.get(0).getThirdId()); + String response = HttpClient.mipsGet(ucloudUrl + "/uclooud/basic/onhandQuery", paramMap); + try { + BaseResponse> onHandsResponse = + JSONObject.parseObject(response, new TypeReference>>() { + }); + List uOnhandQueryResponses = onHandsResponse.getData().getList(); + if (uOnhandQueryResponses != null && uOnhandQueryResponses.size() > 0) { + for (int i = 0; i < uOnhandQueryResponses.size(); i++) { + if (uOnhandQueryResponses.get(i).getVbatchcode().equals(erpOrderEntity.getBatchNo()) + ) { + if (erpOrderEntity.getWarehouseCode() != null && uOnhandQueryResponses.get(i).getCwarehouse_code().equals(erpOrderEntity.getWarehouseCode())) + erpOrderEntity.setReCount(uOnhandQueryResponses.get(i).getNnum()); + else { + erpOrderEntity.setReCount(uOnhandQueryResponses.get(i).getNnum()); + } + myErpOrderService.updateErpOrder(erpOrderEntity); + } + } + + } + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + } + } + } + + private List getErpOrders(String id) { + List orderIds = getOrderIds(id + ""); + List erpOrderEntities = new ArrayList<>(); + if (orderIds.size() > 0) { + FilterErpOrderRequest filterErpOrderRequest = new FilterErpOrderRequest(); + filterErpOrderRequest.setPage(1); + filterErpOrderRequest.setLimit(10000); + filterErpOrderRequest.setOrderIds(orderIds); + erpOrderEntities = myErpOrderService.findByStockCheck(filterErpOrderRequest); + } + return erpOrderEntities; + } + + public List getOrderIds(String checkId) { + OrderFilterRequest orderFilterRequest = new OrderFilterRequest(); + orderFilterRequest.setAction(ConstantType.TYPE_STOCK_CHECK); + orderFilterRequest.setStockCheckFk(checkId + ""); + List orderEntities = orderService.findAllOrders(orderFilterRequest); + List orderIds = new ArrayList<>(); + if (orderEntities != null) { + for (OrderEntity orderEntity : orderEntities) { + orderIds.add(orderEntity.getId()); + } + } + return orderIds; + } + + private boolean isRepeat(List erpOrderEntities) { + List stringList = erpOrderEntities.stream().map(ErpOrderEntity::getNameCode) + .collect(Collectors.toList()); + long count = stringList.stream().distinct().count(); + if (stringList.size() == count) { + return false; + } else { + return true; + } + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/thread/InvUpdateStock1Task.java b/api-admin/src/main/java/com/glxp/api/admin/thread/InvUpdateStock1Task.java new file mode 100644 index 00000000..83e37f3e --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/thread/InvUpdateStock1Task.java @@ -0,0 +1,50 @@ +package com.glxp.api.admin.thread; + +import com.glxp.api.admin.dao.info.ScheduledDao; +import com.glxp.api.admin.entity.info.ScheduledEntity; +import com.glxp.api.admin.req.udid.ScheduledRequest; +import com.glxp.api.admin.service.info.SetupService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.support.CronTrigger; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +@Component +@EnableScheduling +public class InvUpdateStock1Task implements SchedulingConfigurer { + + final Logger logger = LoggerFactory.getLogger(IoModifyErpTask.class); + + @Resource + private InvImportStockService importStockService; + @Resource + protected ScheduledDao scheduledDao; + @Resource + SetupService setupService; + + @Override + public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { + scheduledTaskRegistrar.addTriggerTask(() -> process(), + triggerContext -> { + ScheduledRequest scheduledRequest = new ScheduledRequest(); + scheduledRequest.setCronName("updateStock1"); + ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest); + String cron = scheduledEntity.getCron(); + if (cron.isEmpty()) { + logger.error("cron is null"); + } + return new CronTrigger(cron).nextExecutionTime(triggerContext); + }); + } + + + private void process() { + logger.info("定时更新下载电子货位卡"); + importStockService.updateStock(); + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/thread/InvUpdateStock2Task.java b/api-admin/src/main/java/com/glxp/api/admin/thread/InvUpdateStock2Task.java new file mode 100644 index 00000000..90ddf5d7 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/thread/InvUpdateStock2Task.java @@ -0,0 +1,51 @@ +package com.glxp.api.admin.thread; + +import com.glxp.api.admin.dao.info.ScheduledDao; +import com.glxp.api.admin.entity.info.ScheduledEntity; +import com.glxp.api.admin.req.udid.ScheduledRequest; +import com.glxp.api.admin.service.info.SetupService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.support.CronTrigger; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +@Component +@EnableScheduling +public class InvUpdateStock2Task implements SchedulingConfigurer { + + final Logger logger = LoggerFactory.getLogger(IoModifyErpTask.class); + + @Resource + private InvImportStockService importStockService; + @Resource + protected ScheduledDao scheduledDao; + @Resource + SetupService setupService; + + @Override + public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { + scheduledTaskRegistrar.addTriggerTask(() -> process(), + triggerContext -> { + ScheduledRequest scheduledRequest = new ScheduledRequest(); + scheduledRequest.setCronName("updateStock2"); + ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest); + String cron = scheduledEntity.getCron(); + if (cron.isEmpty()) { + logger.error("cron is null"); + } + return new CronTrigger(cron).nextExecutionTime(triggerContext); + }); + } + + + private void process() { + logger.info("定时更新下载电子货位卡"); + importStockService.updateStock(); + } +} + diff --git a/api-admin/src/main/java/com/glxp/api/admin/thread/IoModifyErpTask.java b/api-admin/src/main/java/com/glxp/api/admin/thread/IoModifyErpTask.java new file mode 100644 index 00000000..b753e024 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/thread/IoModifyErpTask.java @@ -0,0 +1,176 @@ +package com.glxp.api.admin.thread; + +import com.glxp.api.admin.constant.ConstantStatus; +import com.glxp.api.admin.constant.ConstantType; +import com.glxp.api.admin.entity.info.SystemParamConfigEntity; +import com.glxp.api.admin.httpclient.ErpOrderClient; +import com.glxp.api.admin.dao.info.ScheduledDao; +import com.glxp.api.admin.entity.info.ScheduledEntity; +import com.glxp.api.admin.entity.info.SetupEntity; +import com.glxp.api.admin.entity.inout.OrderEntity; +import com.glxp.api.admin.entity.inout.ErpOrderEntity; +import com.glxp.api.admin.entity.inout.FilterErpOrderRequest; +import com.glxp.api.admin.req.inout.OrderFilterRequest; +import com.glxp.api.admin.req.inout.USignRequest; +import com.glxp.api.admin.req.udid.ScheduledRequest; +import com.glxp.api.admin.service.info.SetupService; +import com.glxp.api.admin.service.info.SystemParamConfigService; +import com.glxp.api.admin.service.inout.OrderDetailService; +import com.glxp.api.admin.service.inout.OrderService; +import com.glxp.api.common.res.BaseResponse; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.support.CronTrigger; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 定时上传到ali接口 + */ + +@Component +@EnableScheduling +public class IoModifyErpTask implements SchedulingConfigurer { + + final Logger logger = LoggerFactory.getLogger(IoModifyErpTask.class); + + @Resource + protected ScheduledDao scheduledDao; + @Resource + SetupService setupService; + @Resource + private OrderService orderService; + @Resource + OrderDetailService myErpOrderService; + @Resource + private SystemParamConfigService systemParamConfigService; + + @Override + public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { + scheduledTaskRegistrar.addTriggerTask(() -> process(), + triggerContext -> { + ScheduledRequest scheduledRequest = new ScheduledRequest(); + scheduledRequest.setCronName("modifyErp"); + ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest); + String cron = scheduledEntity.getCron(); + if (cron.isEmpty()) { + logger.error("cron is null"); + } + return new CronTrigger(cron).nextExecutionTime(triggerContext); + }); + } + + private void process() { + logger.info("定时修改ERP单,定时签字"); + modifyErp(); + } + + public void modifyErp() { + SetupEntity setupEntity = setupService.selectSetup(); + if (setupEntity.isErpPruchaseModify() || setupEntity.isErpSaleOutModify()) { + OrderFilterRequest orderFilterRequest = new OrderFilterRequest(); + orderFilterRequest.setExportStatus(ConstantStatus.ORDER_EXPORT_UN); + orderFilterRequest.setContrastStatus(ConstantStatus.ORDER_CHECK_SUCCESS); + List orderEntities = orderService.findAllOrders(orderFilterRequest); + if (orderEntities != null && orderEntities.size() > 0) { + for (OrderEntity orderEntity : orderEntities) { + FilterErpOrderRequest filterErpOrderRequest = new FilterErpOrderRequest(); + filterErpOrderRequest.setPage(1); + filterErpOrderRequest.setLimit(100); + filterErpOrderRequest.setOrderId(orderEntity.getId()); + List erpOrderEntities = myErpOrderService.filterMyErpOrder(filterErpOrderRequest); + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("erp_order_modify"); + + if (systemParamConfigEntity != null) { + String url = systemParamConfigEntity.getParamValue(); + if (erpOrderEntities != null && !erpOrderEntities.isEmpty()) { + Map> listMap = erpOrderEntities.stream().collect(Collectors.groupingBy(ErpOrderEntity::getErpOrderId)); + if (orderEntity.getMainAction().equals(ConstantType.TYPE_OUT)) { + if (setupEntity.isErpSaleOutModify()) { + BaseResponse baseResponse = new ErpOrderClient().postBill(listMap, orderEntity.getAction(), url); + if (baseResponse != null && baseResponse.getCode() == 20000) { + orderService.updateExportStatus(orderEntity.getId(), ConstantStatus.ORDER_EXPORT_ED); + } + } + } else { + if (setupEntity.isErpPruchaseModify()) { + BaseResponse baseResponse = new ErpOrderClient().postBill(listMap, orderEntity.getAction(), url); + if (baseResponse != null && baseResponse.getCode() == 20000) { + orderService.updateExportStatus(orderEntity.getId(), ConstantStatus.ORDER_EXPORT_ED); + } + } + } + } + } else { + logger.error("ERP单据修改接口地址未定义"); + } + + } + } + + + OrderFilterRequest signFilterRequest = new OrderFilterRequest(); + signFilterRequest.setSignStatus(ConstantStatus.ORDER_SIGN_UN); + signFilterRequest.setContrastStatus(ConstantStatus.ORDER_CHECK_SUCCESS); + List signsOrderEntities = orderService.findAllOrders(signFilterRequest); + if (signsOrderEntities != null && signsOrderEntities.size() > 0) { + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("erp_order_sign"); + if(systemParamConfigEntity!=null){ + String url = systemParamConfigEntity.getParamValue(); + for (OrderEntity orderEntity : signsOrderEntities) { + FilterErpOrderRequest filterErpOrderRequest = new FilterErpOrderRequest(); + filterErpOrderRequest.setOrderId(orderEntity.getId()); + List erpOrderEntities = myErpOrderService.filterMyErpOrder(filterErpOrderRequest); + if (erpOrderEntities != null && !erpOrderEntities.isEmpty()) { + Map> listMap = erpOrderEntities.stream().collect(Collectors.groupingBy(ErpOrderEntity::getErpOrderId)); + if (orderEntity.getMainAction().equals(ConstantType.TYPE_OUT)) { + if (setupEntity.isErpSaleOutSign()) { + if (listMap != null && listMap.size() > 0) { + for (String key : listMap.keySet()) { + USignRequest signRequest = new USignRequest(); + signRequest.setBillcode(key); + signRequest.setBillcode(orderEntity.getAction()); + BaseResponse baseResponse = new ErpOrderClient().signBill(signRequest, url); + if (baseResponse != null && baseResponse.getCode() == 20000) { + orderService.updateSignStatus(orderEntity.getId(), ConstantStatus.ORDER_SIGN_ED); + } + } + } + } + } else { + if (setupEntity.isErpPruchaseSign()) { + if (listMap != null && listMap.size() > 0) { + for (String key : listMap.keySet()) { + USignRequest signRequest = new USignRequest(); + signRequest.setBillcode(key); + signRequest.setBillcode(orderEntity.getAction()); + BaseResponse baseResponse = new ErpOrderClient().signBill(signRequest, url); + if (baseResponse != null && baseResponse.getCode() == 20000) { + orderService.updateSignStatus(orderEntity.getId(), ConstantStatus.ORDER_SIGN_ED); + } + } + } + } + } + } + } + }else { + logger.error("ERP单据签字接口地址未定义"); + } + + } + } + + + } + + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/thread/IoTransInoutService.java b/api-admin/src/main/java/com/glxp/api/admin/thread/IoTransInoutService.java new file mode 100644 index 00000000..366cdfa0 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/thread/IoTransInoutService.java @@ -0,0 +1,238 @@ +package com.glxp.api.admin.thread; + +import com.glxp.api.admin.constant.ConstantStatus; +import com.glxp.api.admin.controller.inout.utils.DataTransUtil; +import com.glxp.api.admin.entity.info.SystemParamConfigEntity; +import com.glxp.api.admin.httpclient.ErpOrderClient; +import com.glxp.api.admin.controller.inout.utils.ContrastErpUtil; +import com.glxp.api.admin.controller.inout.utils.InoutUtils; +import com.glxp.api.admin.entity.inout.OrderEntity; +import com.glxp.api.admin.entity.inout.WarehouseEntity; +import com.glxp.api.admin.entity.inout.ErpOrderEntity; +import com.glxp.api.admin.req.inout.CommitRequest; +import com.glxp.api.admin.req.inout.OrderFilterRequest; +import com.glxp.api.admin.req.inout.PostOrderRequest; +import com.glxp.api.admin.req.inout.WarehouseQueryRequest; +import com.glxp.api.admin.service.basic.UdiInfoService; +import com.glxp.api.admin.service.basic.UdiRelevanceService; +import com.glxp.api.admin.service.info.SystemParamConfigService; +import com.glxp.api.admin.service.inout.CodesTempService; +import com.glxp.api.admin.service.inout.OrderDetailService; +import com.glxp.api.admin.service.inout.OrderService; +import com.glxp.api.admin.service.inout.CodesService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +@Service +public class IoTransInoutService { + + private static final Logger logger = LoggerFactory.getLogger(IoTransInoutService.class); + @Resource + private CodesService warehouseService; + @Resource + private OrderService orderService; + @Resource + private OrderDetailService myErpOrderService; + @Resource + UdiRelevanceService udiRelevanceService; + @Resource + private UdiInfoService udiInfoService; + @Value("${UDI_SERVER_URL}") + private String udiUrl; + + + @Resource + private CodesTempService codesTempService; + @Autowired + private SystemParamConfigService systemParamConfigService; + + //生成订单,插入零时表 + @Async + public void creatOrder(PostOrderRequest postOrderRequest) { + List postOrders = postOrderRequest.getPostOrder(); + if (postOrders != null && postOrders.size() > 0) { + for (int i = 0; i < postOrders.size(); i++) { + PostOrderRequest.PostOrder postOrder = postOrders.get(i); + List warehouseEntityList = postOrder.getCodes(); + if (warehouseEntityList != null && warehouseEntityList.size() > 0) { + WarehouseEntity warehouseEntity = warehouseEntityList.get(0); + String orderId = System.currentTimeMillis() + i + ""; + OrderEntity orderSaveRequest = new OrderEntity(); + orderSaveRequest.setId(orderId); + if (warehouseEntity.getActDate() != null) { + orderSaveRequest.setActDate(warehouseEntity.getActDate()); + } + orderSaveRequest.setAction(warehouseEntity.getAction()); + orderSaveRequest.setActor(warehouseEntity.getActor()); + orderSaveRequest.setCorpOrderId(warehouseEntity.getCorpOrderId()); + orderSaveRequest.setFromCorpId(warehouseEntity.getFromCorpId()); + orderSaveRequest.setMainAction(warehouseEntity.getMainAction()); + orderSaveRequest.setFromCorp(warehouseEntity.getFromCorp()); + orderSaveRequest.setFromType("手持终端"); + orderSaveRequest.setStatus(ConstantStatus.ORDER_STATUS_PROCESS); + orderSaveRequest.setExportStatus("未上传"); + orderSaveRequest.setStockCheckFk(postOrder.getStockIdFk()); + orderSaveRequest.setSignStatus("0"); + List docidsList = postOrder.getErpOrders(); + String docidStr = ""; + if (docidsList != null) { + for (String key : docidsList) { + docidStr = docidStr + "," + key; + } + if (docidStr.length() > 1) { + docidStr = docidStr.substring(1); + orderSaveRequest.setErpFk(docidStr); + } + } + orderService.insertOrder(orderSaveRequest); + for (int index = 0; index < warehouseEntityList.size(); index++) { + warehouseEntityList.get(index).setOrderId(orderId); + } + codesTempService.insertCodesTemp(warehouseEntityList); + } + } + } + } + + //查找等待处理单据,转入正式表 + @Async + public void transInout() { + OrderFilterRequest orderFilterRequest = new OrderFilterRequest(); + orderFilterRequest.setStatus(ConstantStatus.ORDER_STATUS_PROCESS); + List orderEntities = orderService.findAllOrders(orderFilterRequest); + for (int i = 0; i < orderEntities.size(); i++) { + OrderEntity orderEntity = orderEntities.get(i); + orderEntity = orderService.findById(orderEntity.getId()); + if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_PROCESS) { + transInout(orderEntity); + } + + } + } + + public void transInout(OrderEntity orderEntity) { + + WarehouseQueryRequest warehouseQueryRequest = new WarehouseQueryRequest(); + warehouseQueryRequest.setOrderId(orderEntity.getId()); + List filterList = codesTempService.findByOrderId(warehouseQueryRequest); + List insertList = new ArrayList<>(); + + for (int j = 0; j < filterList.size(); j++) { + WarehouseEntity warehouseEntity = filterList.get(j); + String result = new InoutUtils().filterCode(warehouseService, warehouseEntity, systemParamConfigService); + if (result == null) { + insertList.add(warehouseEntity); + } else { + orderService.updateOrderStatus(warehouseEntity.getOrderId(), ConstantStatus.ORDER_STATUS_FAIL); + orderService.updateRemark(orderEntity.getId(), result); + insertList.clear(); + return; + } + } + + if (insertList.size() > 0) { + warehouseService.insertWarehouses(insertList); + WarehouseQueryRequest tempQuery = new WarehouseQueryRequest(); + tempQuery.setOrderId(orderEntity.getId()); + List temps = codesTempService.findByOrderId(tempQuery); + if (orderEntity.getErpFk() != null) { + orderService.updateOrderStatus(orderEntity.getId(), ConstantStatus.ORDER_STATUS_CHECK); + } else { + //因为只需用到条码,所以不需要重新读取 + new InoutUtils(udiUrl).generateConstrastDetail(udiInfoService, udiRelevanceService, myErpOrderService, insertList); + orderService.updateOrderStatus(orderEntity.getId(), ConstantStatus.ORDER_STATUS_SUCCESS); + } + + List ids = new ArrayList<>(); + for (WarehouseEntity w : temps) { + ids.add(w.getId()); + } + codesTempService.deleteCodesTemp(ids); + insertList.clear(); + } + } + + //校验ERP单 + @Async + public void checkOrder() { + + OrderFilterRequest orderFilterRequest = new OrderFilterRequest(); + orderFilterRequest.setStatus(ConstantStatus.ORDER_STATUS_CHECK); + List orderEntities = orderService.findAllOrders(orderFilterRequest); + for (int i = 0; i < orderEntities.size(); i++) { + OrderEntity orderEntity = orderEntities.get(i); + checkOrder(orderEntity); + } + } + + public void checkOrder(OrderEntity orderEntity) { + orderEntity = orderService.findById(orderEntity.getId()); + List erpIds = DataTransUtil.strToErpList(orderEntity.getErpFk()); + List transData = warehouseService.findByReceiptId(orderEntity.getId()); + if (erpIds != null && erpIds.size() > 0) { + SystemParamConfigEntity systemParamConfigEntityBUMErpQuery = systemParamConfigService.selectByParamKey("erp_order_query"); + if (systemParamConfigEntityBUMErpQuery == null) { + orderEntity.setContrastStatus(ConstantStatus.ORDER_CHECK_FAIL); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_SUCCESS); + orderEntity.setRemark("获取ERP出入库单据接口地址未定义"); + orderService.updateOrder(orderEntity); + } else { + String erpOrderUrl = systemParamConfigEntityBUMErpQuery.getParamValue(); + List cloudErps = new ErpOrderClient(erpOrderUrl).getErpOrder(erpIds); + if (cloudErps != null && cloudErps.size() > 0) { + List returnOrders = new ContrastErpUtil().transErp(cloudErps, udiRelevanceService, orderEntity.getId()); + ErpOrderEntity temp = returnOrders.get(0); + for (int i = 0; i < returnOrders.size(); i++) { + if (!temp.getCompanyname().equals(returnOrders.get(i).getCompanyname())) { + orderEntity.setContrastStatus(ConstantStatus.ORDER_CHECK_FAIL); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_SUCCESS); + orderEntity.setRemark("选择Erp订单往来单位不一致"); + orderService.updateOrder(orderEntity); + return; + } + } + myErpOrderService.insertErpOrders(returnOrders); + new ContrastErpUtil(udiUrl).contrastErp(udiInfoService, udiRelevanceService, myErpOrderService, orderService, transData, systemParamConfigService); + } else { + orderEntity.setContrastStatus(ConstantStatus.ORDER_CHECK_FAIL); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_SUCCESS); + orderEntity.setRemark("获取ERP出入库单据失败"); + orderService.updateOrder(orderEntity); + new InoutUtils(udiUrl).generateConstrastDetail(udiInfoService, udiRelevanceService, myErpOrderService, transData); + } + } + + } else { + orderEntity.setContrastStatus(ConstantStatus.ORDER_CHECK_FAIL); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_SUCCESS); + orderEntity.setRemark("未选入ERP单据进行校验,请手动选择"); + orderService.updateOrder(orderEntity); + } + } + + //重码校验错误重新提交 + @Async + public void repeatCommit(CommitRequest commitRequest) { + OrderEntity orderEntity = orderService.findById(commitRequest.getOrderId()); + if (orderEntity != null) { + transInout(orderEntity); + } + } + + //重新校验 + @Async + public void repeatCheck(String orderId) { + OrderEntity orderEntity = orderService.findById(orderId); + checkOrder(orderEntity); + } + + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/thread/IoTransInoutTask.java b/api-admin/src/main/java/com/glxp/api/admin/thread/IoTransInoutTask.java new file mode 100644 index 00000000..b0077bd0 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/thread/IoTransInoutTask.java @@ -0,0 +1,45 @@ +package com.glxp.api.admin.thread; + +import com.glxp.api.admin.dao.info.ScheduledDao; +import com.glxp.api.admin.entity.info.ScheduledEntity; +import com.glxp.api.admin.req.udid.ScheduledRequest; +import com.glxp.api.admin.service.info.SetupService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.support.CronTrigger; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +@Component +@EnableScheduling +public class IoTransInoutTask implements SchedulingConfigurer { + + final Logger logger = LoggerFactory.getLogger(IoTransInoutTask.class); + @Resource + protected ScheduledDao scheduledDao; + @Resource + SetupService setupService; + + @Override + public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { + scheduledTaskRegistrar.addTriggerTask(() -> process(), + triggerContext -> { + ScheduledRequest scheduledRequest = new ScheduledRequest(); + scheduledRequest.setCronName("transInout"); + ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest); + String cron = scheduledEntity.getCron(); + if (cron.isEmpty()) { + logger.error("cron is null"); + } + return new CronTrigger(cron).nextExecutionTime(triggerContext); + }); + } + + + private void process() { + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/thread/TaskExecutorConfig.java b/api-admin/src/main/java/com/glxp/api/admin/thread/TaskExecutorConfig.java new file mode 100644 index 00000000..6b0729e1 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/thread/TaskExecutorConfig.java @@ -0,0 +1,57 @@ +package com.glxp.api.admin.thread; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.AsyncConfigurer; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; + +import java.lang.reflect.Method; +import java.util.concurrent.Executor; + +@EnableAsync +@Configuration +public class TaskExecutorConfig implements AsyncConfigurer { + + private static final Logger log = LoggerFactory.getLogger(TaskExecutorConfig.class); + + + @Override + public Executor getAsyncExecutor() { + ThreadPoolTaskExecutor threadPool = new ThreadPoolTaskExecutor(); + threadPool.setCorePoolSize(5);//当前线程数 + threadPool.setMaxPoolSize(120);// 最大线程数 + threadPool.setQueueCapacity(5);//线程池所使用的缓冲队列 + threadPool.setWaitForTasksToCompleteOnShutdown(true);//等待任务在关机时完成--表明等待所有线程执行完 + threadPool.setAwaitTerminationSeconds(60 * 15);// 等待时间 (默认为0,此时立即停止),并没等待xx秒后强制停止 + threadPool.setThreadNamePrefix("MyAsync-");// 线程名称前缀 + threadPool.initialize(); // 初始化 + return threadPool; + } + + public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() { + + return new MyAsyncExceptionHandler(); + } + + /** + * 自定义异常处理类 + * + * @author hry + */ + class MyAsyncExceptionHandler implements AsyncUncaughtExceptionHandler { + + //手动处理捕获的异常 + @Override + public void handleUncaughtException(Throwable throwable, Method method, Object... obj) { + log.info("Exception message - " + throwable.getMessage()); + log.info("Method name - " + method.getName()); + for (Object param : obj) { + log.info("Parameter value - " + param); + } + } + + } +} \ No newline at end of file diff --git a/api-admin/src/main/java/com/glxp/api/admin/util/CacheUtils.java b/api-admin/src/main/java/com/glxp/api/admin/util/CacheUtils.java new file mode 100644 index 00000000..8c1c0f44 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/util/CacheUtils.java @@ -0,0 +1,129 @@ +package com.glxp.api.admin.util; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; + +import java.util.Collection; +import java.util.Set; +import java.util.concurrent.TimeUnit; + +/** + * 缓存操作类 + */ +//@Component +public class CacheUtils { + @Autowired + private RedisTemplate redisTemplate; + + // 维护一个本类的静态变量 + private static CacheUtils cacheUtils; + +// @PostConstruct + public void init() { + cacheUtils = this; + cacheUtils.redisTemplate = this.redisTemplate; + } + + /** + * 将参数中的字符串值设置为键的值,不设置过期时间 + * @param key + * @param value 必须要实现 Serializable 接口 + */ + public static void set(String key, String value) { + cacheUtils.redisTemplate.opsForValue().set(key, value); + } + + /** + * 将参数中的字符串值设置为键的值,设置过期时间 + * @param key + * @param value 必须要实现 Serializable 接口 + * @param timeout + */ + public static void set(String key, String value, Long timeout) { + cacheUtils.redisTemplate.opsForValue().set(key, value, timeout, TimeUnit.SECONDS); + } + + /** + * 获取与指定键相关的值 + * @param key + * @return + */ + public static Object get(String key) { + return cacheUtils.redisTemplate.opsForValue().get(key); + } + + /** + * 设置某个键的过期时间 + * @param key 键值 + * @param ttl 过期秒数 + */ + public static boolean expire(String key, Long ttl) { + return cacheUtils.redisTemplate.expire(key, ttl, TimeUnit.SECONDS); + } + + /** + * 判断某个键是否存在 + * @param key 键值 + */ + public static boolean hasKey(String key) { + return cacheUtils.redisTemplate.hasKey(key); + } + + /** + * 向集合添加元素 + * @param key + * @param value + * @return 返回值为设置成功的value数 + */ + public static Long sAdd(String key, String... value) { + return cacheUtils.redisTemplate.opsForSet().add(key, value); + } + + /** + * 获取集合中的某个元素 + * @param key + * @return 返回值为redis中键值为key的value的Set集合 + */ + public static Set sGetMembers(String key) { + return cacheUtils.redisTemplate.opsForSet().members(key); + } + + /** + * 将给定分数的指定成员添加到键中存储的排序集合中 + * @param key + * @param value + * @param score + * @return + */ + public static Boolean zAdd(String key, String value, double score) { + return cacheUtils.redisTemplate.opsForZSet().add(key, value, score); + } + + /** + * 返回指定排序集中给定成员的分数 + * @param key + * @param value + * @return + */ + public static Double zScore(String key, String value) { + return cacheUtils.redisTemplate.opsForZSet().score(key, value); + } + + /** + * 删除指定的键 + * @param key + * @return + */ + public static Boolean delete(String key) { + return cacheUtils.redisTemplate.delete(key); + } + + /** + * 删除多个键 + * @param keys + * @return + */ + public static Long delete(Collection keys) { + return cacheUtils.redisTemplate.delete(keys); + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/util/CheckUtils.java b/api-admin/src/main/java/com/glxp/api/admin/util/CheckUtils.java new file mode 100644 index 00000000..3620c1ff --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/util/CheckUtils.java @@ -0,0 +1,34 @@ +package com.glxp.api.admin.util; + +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +public class CheckUtils { + + + public static Boolean checkCode(List list) { + + Set set = new HashSet(list); + boolean result = list.size() == set.size() ? true : false; + + return result; + } + + + public static String getRepeatIdCard(List list) { + StringBuffer buffer = new StringBuffer(); + buffer.append("重复值是:"); + String temp = ""; + for (int i = 0; i < list.size() - 1; i++) { + temp = list.get(i); + for (int j = i + 1; j < list.size(); j++) { + if (temp.equals(list.get(j))) { + System.out.println("第" + (i + 1) + "个跟第" + (j + 1) + "个重复,值是:" + temp); + buffer.append(temp + ","); + } + } + } + return buffer.toString(); + } +} \ No newline at end of file diff --git a/api-admin/src/main/java/com/glxp/api/admin/util/CustomUtil.java b/api-admin/src/main/java/com/glxp/api/admin/util/CustomUtil.java new file mode 100644 index 00000000..b93dfe6f --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/util/CustomUtil.java @@ -0,0 +1,11 @@ +package com.glxp.api.admin.util; + +import java.util.UUID; + +public class CustomUtil { + + public static String getUUId() { + UUID uuid = UUID.randomUUID(); + return uuid.toString().replace("-", ""); + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/util/DateUtil.java b/api-admin/src/main/java/com/glxp/api/admin/util/DateUtil.java new file mode 100644 index 00000000..f5d7cf40 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/util/DateUtil.java @@ -0,0 +1,481 @@ +package com.glxp.api.admin.util; + +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.time.DateUtils; +import org.apache.commons.lang3.time.FastDateFormat; + +import java.lang.management.ManagementFactory; +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; + +public class DateUtil extends org.apache.commons.lang3.time.DateUtils { + + private static String[] parsePatterns = { + "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM-dd HH", "yyyy-MM", + "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM/dd HH", "yyyy/MM", + "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM.dd HH", "yyyy.MM", + "yyyy年MM月dd日", "yyyy年MM月dd日 HH时mm分ss秒", "yyyy年MM月dd日 HH时mm分", "yyyy年MM月dd日 HH时", "yyyy年MM月", + "yyyy"}; + + /** + * 得到日期字符串 ,转换格式(yyyy-MM-dd) + */ + public static String formatDate(Date date) { + return formatDate(date, "yyyy-MM-dd"); + } + + /** + * 得到日期字符串 默认格式(yyyy-MM-dd) pattern可以为:"yyyy-MM-dd" "HH:mm:ss" "E" + */ + public static String formatDate(long dateTime, String pattern) { + return formatDate(new Date(dateTime), pattern); + } + + /** + * 得到日期字符串 默认格式(yyyy-MM-dd) pattern可以为:"yyyy-MM-dd" "HH:mm:ss" "E" + */ + public static String formatDate(Date date, String pattern) { + String formatDate = null; + if (date != null) { +// if (StringUtils.isNotBlank(pattern)) { +// formatDate = DateFormatUtils.format(date, pattern); +// } else { +// formatDate = DateFormatUtils.format(date, "yyyy-MM-dd"); +// } + if (StringUtils.isBlank(pattern)) { + pattern = "yyyy-MM-dd"; + } + formatDate = FastDateFormat.getInstance(pattern).format(date); + } + return formatDate; + } + + /** + * 得到日期时间字符串,转换格式(yyyy-MM-dd HH:mm:ss) + */ + public static String formatDateTime(Date date) { + Date currentTime = new Date(); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String dateString = formatter.format(currentTime); + return dateString; + } + + /** + * 得到当前日期字符串 格式(yyyy-MM-dd) + */ + public static String getDate() { + return getDate("yyyy-MM-dd"); + } + + /** + * 得到当前日期字符串 格式(yyyy-MM-dd) pattern可以为:"yyyy-MM-dd" "HH:mm:ss" "E" + */ + public static String getDate(String pattern) { +// return DateFormatUtils.format(new Date(), pattern); + return FastDateFormat.getInstance(pattern).format(new Date()); + } + + /** + * 得到当前日期前后多少天,月,年的日期字符串 + * + * @param pattern 格式(yyyy-MM-dd) pattern可以为:"yyyy-MM-dd" "HH:mm:ss" "E" + * @param amont 数量,前为负数,后为正数 + * @param type 类型,可参考Calendar的常量(如:Calendar.HOUR、Calendar.MINUTE、Calendar.SECOND) + * @return + */ + public static String getDate(String pattern, int amont, int type) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(new Date()); + calendar.add(type, amont); +// return DateFormatUtils.format(calendar.getTime(), pattern); + return FastDateFormat.getInstance(pattern).format(calendar.getTime()); + } + + /** + * 得到当前时间字符串 格式(HH:mm:ss) + */ + public static String getTime() { + return formatDate(new Date(), "HH:mm:ss"); + } + + /** + * 得到当前日期和时间字符串 格式(yyyy-MM-dd HH:mm:ss) + */ + public static String getDateTime() { + return formatDate(new Date(), "yyyy-MM-dd HH:mm:ss"); + } + + /** + * 得到当前年份字符串 格式(yyyy) + */ + public static String getYear() { + return formatDate(new Date(), "yyyy"); + } + + /** + * 得到当前月份字符串 格式(MM) + */ + public static String getMonth() { + return formatDate(new Date(), "MM"); + } + + /** + * 得到当天字符串 格式(dd) + */ + public static String getDay() { + return formatDate(new Date(), "dd"); + } + + /** + * 得到当前星期字符串 格式(E)星期几 + */ + public static String getWeek() { + return formatDate(new Date(), "E"); + } + + /** + * 日期型字符串转化为日期 格式 see to DateUtils#parsePatterns + */ + public static Date parseDate(Object str) { + if (str == null) { + return null; + } + try { + return parseDate(str.toString(), parsePatterns); + } catch (ParseException e) { + return null; + } + } + + + /** + * 获取过去的天数 + * + * @param date + * @return + */ + public static long pastDays(Date date) { + long t = System.currentTimeMillis() - date.getTime(); + return t / (24 * 60 * 60 * 1000); + } + + + /** + * 获取过去的小时 + * + * @param date + * @return + */ + public static long pastHour(Date date) { + long t = System.currentTimeMillis() - date.getTime(); + return t / (60 * 60 * 1000); + } + + /** + * 获取过去的分钟 + * + * @param date + * @return + */ + public static long pastMinutes(Date date) { + long t = System.currentTimeMillis() - date.getTime(); + return t / (60 * 1000); + } + + /** + * 获取过去的秒 + * + * @param date + * @return + */ + public static long pastSecnod(Date date) { + long t = System.currentTimeMillis() - date.getTime(); + return t / (1000); + } + + /** + * 获取两个日期之间的天数 + * + * @param before + * @param after + * @return + */ + public static double getDistanceOfTwoDate(Date before, Date after) { + long beforeTime = before.getTime(); + long afterTime = after.getTime(); + return (afterTime - beforeTime) / (1000 * 60 * 60 * 24); + } + + /** + * 获取某月有几天 + * + * @param date 日期 + * @return 天数 + */ + public static int getMonthHasDays(Date date) { +// String yyyyMM = new SimpleDateFormat("yyyyMM").format(date); + String yyyyMM = FastDateFormat.getInstance("yyyyMM").format(date); + String year = yyyyMM.substring(0, 4); + String month = yyyyMM.substring(4, 6); + String day31 = ",01,03,05,07,08,10,12,"; + String day30 = "04,06,09,11"; + int day = 0; + if (day31.contains(month)) { + day = 31; + } else if (day30.contains(month)) { + day = 30; + } else { + int y = Integer.parseInt(year); + if ((y % 4 == 0 && (y % 100 != 0)) || y % 400 == 0) { + day = 29; + } else { + day = 28; + } + } + return day; + } + + /** + * 获取日期是当年的第几周 + * + * @param date + * @return + */ + public static int getWeekOfYear(Date date) { + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + return cal.get(Calendar.WEEK_OF_YEAR); + } + + /** + * 获取一天的开始时间(如:2015-11-3 00:00:00.000) + * + * @param date 日期 + * @return + */ + public static Date getOfDayFirst(Date date) { + if (date == null) { + return null; + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.set(Calendar.HOUR, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + calendar.set(Calendar.MILLISECOND, 0); + return calendar.getTime(); + } + + /** + * 获取一天的最后时间(如:2015-11-3 23:59:59.999) + * + * @param date 日期 + * @return + */ + public static Date getOfDayLast(Date date) { + if (date == null) { + return null; + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.set(Calendar.HOUR, 23); + calendar.set(Calendar.MINUTE, 59); + calendar.set(Calendar.SECOND, 59); + calendar.set(Calendar.MILLISECOND, 999); + return calendar.getTime(); + } + + /** + * 获取服务器启动时间 + * + * @param + * @return + */ + public static Date getServerStartDate() { + long time = ManagementFactory.getRuntimeMXBean().getStartTime(); + return new Date(time); + } + + + /** + * 解析日期范围字符串为日期对象 + * + * @param dateString 2018-01-01 ~ 2018-01-31 + * @return new Date[]{2018-01-01, 2018-01-31} + */ + public static Date[] parseDateBetweenString(String dateString) { + Date beginDate = null; + Date endDate = null; + if (StringUtils.isNotBlank(dateString)) { + String[] ss = StringUtils.split(dateString, "~"); + if (ss != null && ss.length == 2) { + String begin = StringUtils.trim(ss[0]); + String end = StringUtils.trim(ss[1]); + if (StringUtils.isNoneBlank(begin, end)) { + try { + beginDate = DateUtils.parseDate(begin); + endDate = DateUtils.parseDate(end); + } catch (ParseException e) { + e.printStackTrace(); + } + + } + } + } + return new Date[]{beginDate, endDate}; + } + + public static final int SECONDS_IN_DAY = 60 * 60 * 24; + public static final long MILLIS_IN_DAY = 1000L * SECONDS_IN_DAY; + + public static boolean isSameDayOfMillis(final long ms1, final long ms2) { + final long interval = ms1 - ms2; + return interval < MILLIS_IN_DAY + && interval > -1L * MILLIS_IN_DAY + && toDay(ms1) == toDay(ms2); + } + + private static long toDay(long millis) { + return (millis + TimeZone.getDefault().getOffset(millis)) / MILLIS_IN_DAY; + } + + /** + * 给时间加上几个小时 + * + * @param date 时间 + * @param hour 需要加的时间 + * @return + */ + public static String addDateMinut(Date date, int hour) { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + cal.add(Calendar.HOUR, hour);// 24小时制 + date = cal.getTime(); + cal = null; + return format.format(date); + } + + /** + * 给时间加上几个小时 + * + * @param date 时间 + * @param hour 需要加的时间 + * @return DATE + */ + public static Date addDate(Date date, int hour) { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + cal.add(Calendar.HOUR, hour);// 24小时制 + date = cal.getTime(); + cal = null; + return date; + } + + /** + * 日期比较 + * + * @param date1 日期参数1 + * @param date2 日期参数2 + * @return 1 date1>date2;-1 date1 dt2.getTime()) { + return 1; + } else if (dt1.getTime() < dt2.getTime()) { + return -1; + } else { + return 0; + } + } catch (Exception exception) { + exception.printStackTrace(); + } + return 0; + } + + /** + * 获取昨天开始时间和结束时间 + * @return + */ + public static Map getYesterdayRange() { + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + Map condition=new HashMap(); + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.MILLISECOND,0); + calendar.set(Calendar.SECOND,0); + calendar.set(Calendar.MINUTE,0); + calendar.set(Calendar.HOUR_OF_DAY,0); + condition.put("endDate",df.format(calendar.getTime())); + calendar.set(Calendar.HOUR_OF_DAY,-24); + condition.put("startDate",df.format(calendar.getTime())); + return condition; + } + + /** + * 获得近一周的开始时间和结束时间 + * @return + */ + public static Map getDaySevenRange(){ + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + Map condition=new HashMap(); + Calendar calendar = Calendar.getInstance(); + calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0); + calendar.set(Calendar.HOUR_OF_DAY,24); + condition.put("endDate",df.format(calendar.getTime())); + calendar.set(Calendar.HOUR_OF_DAY,-168); + condition.put("startDate",df.format(calendar.getTime())); + return condition; + } + + /** + * 获得近一月的开始时间和结束时间 + * @return + */ + public static Map getDayTRange(){ + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + Map condition=new HashMap(); + Calendar calendar = Calendar.getInstance(); + calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0); + calendar.set(Calendar.HOUR_OF_DAY,24); + condition.put("endDate",df.format(calendar.getTime())); + calendar.set(Calendar.HOUR_OF_DAY,-720); + condition.put("startDate",df.format(calendar.getTime())); + return condition; + } + + /** + * 获得近一年的开始时间和结束时间 + * @return + */ + public static Map getYearTRange(){ + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + Map condition=new HashMap(); + Calendar calendar = Calendar.getInstance(); + calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0); + calendar.set(Calendar.HOUR_OF_DAY,24); + condition.put("endDate",df.format(calendar.getTime())); + calendar.set(Calendar.HOUR_OF_DAY,-8640); + condition.put("startDate",df.format(calendar.getTime())); + return condition; + } + + + public static Map getDayRange(int day){ + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + Map condition=new HashMap(); + Calendar calendar = Calendar.getInstance(); + calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0); + calendar.set(Calendar.HOUR_OF_DAY,24); + condition.put("endDate",df.format(calendar.getTime())); + calendar.set(Calendar.HOUR_OF_DAY,-(24*day)); + condition.put("startDate",df.format(calendar.getTime())); + return condition; + } +} \ No newline at end of file diff --git a/api-admin/src/main/java/com/glxp/api/admin/util/FastJsonUtils.java b/api-admin/src/main/java/com/glxp/api/admin/util/FastJsonUtils.java new file mode 100644 index 00000000..f5889f2b --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/util/FastJsonUtils.java @@ -0,0 +1,55 @@ +package com.glxp.api.admin.util; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.TypeReference; + +import java.util.List; +import java.util.Map; + +/** + * @author 彭于晏 + * @date 2020/8/11. + */ +public class FastJsonUtils { + + + /** + * 功能描述:把JSON数据转换成指定的java对象 + * @param jsonData JSON数据 + * @param clazz 指定的java对象 + * @return 指定的java对象 + */ + public static T getJsonToBean(String jsonData, Class clazz) { + return JSON.parseObject(jsonData, clazz); + } + + /** + * 功能描述:把java对象转换成JSON数据 + * @param object java对象 + * @return JSON数据 + */ + public static String getBeanToJson(Object object) { + return JSON.toJSONString(object); + } + + /** + * 功能描述:把JSON数据转换成指定的java对象列表 + * @param jsonData JSON数据 + * @param clazz 指定的java对象 + * @return List + */ + public static List getJsonToList(String jsonData, Class clazz) { + return JSON.parseArray(jsonData, clazz); + } + + /** + * 功能描述:把JSON数据转换成较为复杂的List> + * @param jsonData JSON数据 + * @return List> + */ + public static List> getJsonToListMap(String jsonData) { + return JSON.parseObject(jsonData, new TypeReference>>() { + }); + } + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/util/FilterUdiUtils.java b/api-admin/src/main/java/com/glxp/api/admin/util/FilterUdiUtils.java new file mode 100644 index 00000000..49d2f4d1 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/util/FilterUdiUtils.java @@ -0,0 +1,256 @@ +package com.glxp.api.admin.util; + + +import com.glxp.api.admin.entity.basic.UdiInfoEntity; +import com.glxp.api.admin.entity.basic.UdiEntity; + +/** + * @author 彭于晏 + * @date 2020/9/22. + */ +public class FilterUdiUtils { + private static final String TAG = "FilterUdiUtils"; + + public static UdiEntity getUdi(String data) { + if (data != null && data.length() > 2) { + if (data.substring(0, 2).equals("MA")) { + return getZGCUdi(data); + } else if (data.substring(0, 2).equals("01")) { + return getGS1Udi(data); + } else if (data.substring(0, 1).equals("#")) { + return getGLXPUdi(data); + } + } + return null; + } + + public static UdiEntity getGS1Udi(String data) { + String batchNo = ""; + String produceDate = ""; + String expireDate = ""; + String serialNo = null; + String udi = ""; + UdiEntity udiEntity = null; + if (data.length() >= 16) { + udi = data.substring(2, 16); + if (data.length() >= 18 && data.substring(16, 18).equals("10")) { + if (data.contains("\u001D")) { + String[] splits = data.split("\u001D"); + String front = splits[0]; + batchNo = front.substring(18, front.length()); + String last = splits[1]; + boolean b = last.length() >= 18 && last.substring(16, 18).equals("21"); + if ((last != null && last.length() >= 2) && last.substring(0, 2).equals("11")) { + produceDate = last.substring(2, 8); + if (last.length() >= 10 && last.substring(8, 10).equals("17")) { + expireDate = last.substring(10, 16); + if (b) { + serialNo = last.substring(18, last.length()); + } else { + serialNo = null; + } + } + } else if ((last != null && last.length() >= 2) && last.substring(0, 2).equals("17")) { + expireDate = last.substring(2, 8); + if (last.length() >= 10 && last.substring(8, 10).equals("11")) { + produceDate = last.substring(10, 16); + if (b) { + serialNo = last.substring(18, last.length()); + } else { + serialNo = null; + } + } + } else if ((last != null && last.length() >= 2) && last.substring(0, 2).equals("21")) { + serialNo = last.substring(2, last.length()); + } + } else { + batchNo = data.substring(18); + } + + + } else if (data.length() >= 18 && data.substring(16, 18).equals("11")) { + produceDate = data.substring(18, 24); + if (data.length() >= 26 && data.substring(24, 26).equals("17")) { + expireDate = data.substring(26, 32); + if (data.length() >= 34 && data.substring(32, 34).equals("10")) { + if (data.contains("\u001D")) { + String[] splits = data.split("\u001D"); + batchNo = splits[0].substring(34, splits[0].length()); + serialNo = splits[1].substring(2); + } else { + batchNo = data.substring(34, data.length()); + } + + } + } else if (data.length() >= 26 && data.substring(24, 26).equals("10")) { + if (data.contains("\u001D")) { + String[] splits = data.split("\u001D"); + batchNo = splits[0].substring(26, splits[0].length()); + String last = splits[1]; + if (last.substring(0, 2).equals("17")) { + expireDate = last.substring(2, 8); + if (last.length() >= 10) { + serialNo = last.substring(10, last.length()); + } + } else if (last.substring(0, 2).equals("21")) { + serialNo = last.substring(2, last.length()); + } + } else { + batchNo = data.substring(26, data.length()); + } + + } else if (data.length() >= 26 && data.substring(24, 26).equals("21")) { + + serialNo = data.substring(26); + } + } else if (data.length() >= 18 && data.substring(16, 18).equals("17")) { + expireDate = data.substring(18, 24); + if (data.length() >= 26 && data.substring(24, 26).equals("11")) { + produceDate = data.substring(26, 32); + if (data.length() >= 34 && data.substring(32, 34).equals("10")) { + if (data.contains("\u001D")) { + String[] splits = data.split("\u001D"); + batchNo = splits[0].substring(34, splits[0].length()); + serialNo = splits[1].substring(2); + } else { + batchNo = data.substring(34, data.length()); + } + + } + } else if (data.length() >= 26 && data.substring(24, 26).equals("10")) { + if (data.contains("\u001D")) { + String[] splits = data.split("\u001D"); + batchNo = splits[0].substring(26); + String last = splits[1]; + if (last.substring(0, 2).equals("11")) { + produceDate = last.substring(2, 8); + if (last.length() > 8 && last.substring(8, 10).equals("21")) { + serialNo = last.substring(10); + } + } else if (last.substring(0, 2).equals("21")) { + serialNo = last.substring(2); + } + } else { + batchNo = data.substring(26, data.length()); + } + } else if (data.length() >= 26 && data.substring(24, 26).equals("21")) { + + serialNo = data.substring(26); + } + + } else if (data.length() >= 18 && data.substring(16, 18).equals("21")) { + serialNo = data.substring(18); + } + udiEntity = new UdiEntity(); + udiEntity.setUdi(udi); + udiEntity.setBatchNo(batchNo); + udiEntity.setExpireDate(expireDate); + udiEntity.setProduceDate(produceDate); + udiEntity.setSerialNo(serialNo); + } + return udiEntity; + } + + public static UdiEntity getZGCUdi(String data) { + String batchNo = ""; + String produceDate = ""; + String expireDate = ""; + String serialNo = null; + String udi = data; + String[] spilts = data.split("[.]"); + if (spilts != null && spilts.length >= 5) { + for (int i = 0; i < 5; i++) { + udi = udi + "." + spilts[i]; + } + udi = udi.substring(1); + for (int i = 0; i < spilts.length; i++) { + String tempStr = spilts[i]; + if (tempStr != null && tempStr.length() > 1 && tempStr.substring(0, 1).equals("P")) { + produceDate = tempStr.substring(1); + } else if (tempStr != null && tempStr.length() > 1 && tempStr.substring(0, 1).equals("L")) { + batchNo = tempStr.substring(1); + } else if (tempStr != null && tempStr.length() > 1 && tempStr.substring(0, 1).equals("E")) { + expireDate = tempStr.substring(1); + } else if (tempStr != null && tempStr.length() > 1 && tempStr.substring(0, 1).equals("S")) { + serialNo = tempStr.substring(1); + } + } + } + + UdiEntity udiEntity = new UdiEntity(); + udiEntity.setBatchNo(batchNo); + udiEntity.setExpireDate(expireDate); + udiEntity.setProduceDate(produceDate); + udiEntity.setUdi(udi); + udiEntity.setSerialNo(serialNo); + return udiEntity; + + } + + public static UdiEntity getGLXPUdi(String data) { + String batchNo = ""; + String produceDate = ""; + String expireDate = ""; + String serialNo = null; + String udi = ""; + String[] spilts = data.split("#"); + if (spilts != null && spilts.length >= 5) { + udi = spilts[1]; + produceDate = spilts[2]; + expireDate = spilts[3]; + batchNo = spilts[4]; + if (spilts.length > 6) { + serialNo = spilts[5]; + if (serialNo != null && serialNo.equals("")) { + serialNo = null; + } + } + + } + UdiEntity udiEntity = new UdiEntity(); + udiEntity.setBatchNo(batchNo); + udiEntity.setExpireDate(expireDate); + udiEntity.setProduceDate(produceDate); + udiEntity.setUdi(udi); + udiEntity.setSerialNo(serialNo); + return udiEntity; + } + + public static String getDiStr(String data) { + String prefix = ""; + if (data != null && data.length() > 2) { + if (data.substring(0, 2).equals("MA")) { + String[] spilts = data.split("[.]"); + if (spilts != null && spilts.length >= 5) { + for (int i = 0; i < 5; i++) { + prefix = prefix + "." + spilts[i]; + } + prefix = prefix.substring(1); + } + } else if (data.substring(0, 2).equals("01") && data.length() >= 16) { + prefix = data.substring(2, 16); + } else if (data.substring(0, 1).equals("#")) { + String[] spilts = data.split("#"); + if (spilts != null && spilts.length >= 1) + prefix = spilts[1]; + } + } + if (prefix.equals("")) + return data; + return prefix; + } + + + public static UdiInfoEntity transUdi(UdiInfoEntity data) { + UdiEntity udiEntity = getUdi(data.getCode()); + if (udiEntity != null) { + data.setBatchNo(udiEntity.getBatchNo()); + data.setProduceDate(udiEntity.getProduceDate()); + data.setExpireDate(udiEntity.getExpireDate()); + data.setSerialNo(udiEntity.getSerialNo()); + data.setUdi(udiEntity.getUdi()); + } + return data; + } + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/util/HttpClient.java b/api-admin/src/main/java/com/glxp/api/admin/util/HttpClient.java new file mode 100644 index 00000000..46172c28 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/util/HttpClient.java @@ -0,0 +1,100 @@ +package com.glxp.api.admin.util; + +import com.alibaba.fastjson.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; +import org.springframework.web.client.RestTemplate; + +import java.util.Iterator; +import java.util.Map; + +public class HttpClient { + private static final Logger logger = LoggerFactory.getLogger(HttpClient.class); + + public static String post(String url, Object object) { + RestTemplate restTemplate = new RestTemplate(); + String json = JSONObject.toJSON(object).toString(); + logger.info(url+"\n"+json); + MultiValueMap postParameters = new LinkedMultiValueMap<>(); + postParameters.add("params", json); + HttpHeaders headers = new HttpHeaders(); + headers.add("Content-Type", "application/x-www-form-urlencoded"); + HttpEntity> httpEntity = new HttpEntity<>(postParameters, headers); + String response = restTemplate.postForObject(UdidConfig.apiUrl + url, httpEntity, String.class); + System.out.println(response); + + return response; + } + + public static String postU8(String url, Object object) { + RestTemplate restTemplate = new RestTemplate(); + String json = JSONObject.toJSON(object).toString(); +// MultiValueMap postParameters = new LinkedMultiValueMap<>(); +// postParameters.add("params", json); + logger.info(url+"\n"+json); + HttpHeaders headers = new HttpHeaders(); + headers.add("Content-Type", "application/json"); + headers.add("system", "1"); + headers.add("apicode", "1b723931cca84aee8ced6b607fc7dabb"); + HttpEntity httpEntity = new HttpEntity<>(json, headers); + String response = restTemplate.postForObject(url, httpEntity, String.class); + System.out.println(response); + return response; + } + + public static String uCloudPost(String url, Object object) { + RestTemplate restTemplate = new RestTemplate(); + String json = JSONObject.toJSON(object).toString(); +// MultiValueMap postParameters = new LinkedMultiValueMap<>(); +// postParameters.add("params", json); + logger.info(url+"\n"+json); + HttpHeaders headers = new HttpHeaders(); + headers.add("Content-Type", "application/json"); + HttpEntity httpEntity = new HttpEntity<>(json, headers); + logger.info(httpEntity.toString()); + String response = restTemplate.postForObject(url, httpEntity, String.class); + System.out.println(response); + return response; + } + + + public static String mipsGet(String url) { + RestTemplate restTemplate = new RestTemplate(); + String accessTokenRequestUrl = url;//"http://127.0.0.1:9997/mips/druginfo/list"; + String response = restTemplate.getForObject(accessTokenRequestUrl, String.class); + return response; + } + + public static String mipsGet(String url, Map params) { + StringBuffer stringBuffer = new StringBuffer(url); + if (params instanceof Map) { + Iterator iterator = ((Map) params).entrySet().iterator(); + if (iterator.hasNext()) { + stringBuffer.append("?"); + Object element; + while (iterator.hasNext()) { + element = iterator.next(); + Map.Entry entry = (Map.Entry) element; + //过滤value为null,value为null时进行拼接字符串会变成 "null"字符串 + if (entry.getValue() != null) { + stringBuffer.append(element).append("&"); + } + url = stringBuffer.substring(0, stringBuffer.length() - 1); + } + } + } else { + throw new RuntimeException("url请求:" + url + "请求参数有误不是map类型"); + } + RestTemplate restTemplate = new RestTemplate(); + String accessTokenRequestUrl = url;//"http://127.0.0.1:9997/mips/druginfo/list"; + logger.info(accessTokenRequestUrl); + String response = restTemplate.getForObject(accessTokenRequestUrl, String.class); + return response; + } + + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/util/IpUtils.java b/api-admin/src/main/java/com/glxp/api/admin/util/IpUtils.java new file mode 100644 index 00000000..3b4599f7 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/util/IpUtils.java @@ -0,0 +1,57 @@ +package com.glxp.api.admin.util; + +import org.springframework.scheduling.annotation.Async; + +import javax.servlet.http.HttpServletRequest; +import java.net.InetAddress; + +public class IpUtils { + + /** + * 获取客户端IP地址 + * + * @param request + * @return + */ + public static String getIpAddr(HttpServletRequest request) { + String ip = request.getHeader("x-forwarded-for"); + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("Proxy-Client-IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("WL-Proxy-Client-IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getRemoteAddr(); + if (ip.equals("127.0.0.1")) { + //根据网卡取本机配置的IP + InetAddress inet = null; + try { + inet = InetAddress.getLocalHost(); + ip = inet.getHostAddress(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + // 多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割 + if (ip != null && ip.length() > 15) { + if (ip.indexOf(",") > 0) { + ip = ip.substring(0, ip.indexOf(",")); + } + } + return ip; + } + + @Async + public void asyncOrder() { + System.out.println("执行异步任务: "); + System.out.println("线程名称:" + Thread.currentThread().getName() + " be ready to read data!"); + try { + Thread.sleep(1000 * 5); + System.out.println("---------------------》》》无返回值延迟3秒:"); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/util/JwtUtils.java b/api-admin/src/main/java/com/glxp/api/admin/util/JwtUtils.java new file mode 100644 index 00000000..7d6aa624 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/util/JwtUtils.java @@ -0,0 +1,104 @@ +package com.glxp.api.admin.util; + +import io.jsonwebtoken.*; + +import javax.crypto.SecretKey; +import javax.crypto.spec.SecretKeySpec; +import java.security.Key; +import java.util.Base64; +import java.util.Date; +import java.util.Map; + +/** + * jwt + */ +public class JwtUtils { + + /** + * 生成 token + * + * @param claims 自定义的 map + * @param ttl 过期时间 + * @return + */ + public static String createToken(Map claims, Long ttl) { + Key key = generateKey(); + SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256; + Long nowMillis = System.currentTimeMillis(); //生成JWT的时间 + JwtBuilder builder = Jwts.builder() + .setHeaderParam("typ", "JWT") //设置header + .setHeaderParam("alg", "HS256") + .setClaims(claims) //设置payload的键值对 + // .setIssuedAt(now) //设置iat + // .setIssuer("vue-api") + .signWith(signatureAlgorithm, key); //签名,需要算法和key + if (ttl != null && ttl >= 0) { + Long expMillis = nowMillis + ttl * 1000; + Date exp = new Date(expMillis); + builder.setExpiration(exp); //设置过期时间 + } + + String token = builder.compact(); + + return token; + } + + public static String createJWT(String id, long ttlMillis) { + SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256; + long nowMillis = System.currentTimeMillis(); + Date now = new Date(nowMillis); + SecretKey secretKey = generateKey(); + JwtBuilder builder = Jwts.builder().setId(id) // 主题 + .setIssuer("user") // 签发者 + .setIssuedAt(now) // 签发时间 + .signWith(signatureAlgorithm, secretKey); // 签名算法以及密匙 + if (ttlMillis >= 0) { + long expMillis = nowMillis + ttlMillis; + Date expDate = new Date(expMillis); + builder.setExpiration(expDate); // 过期时间 + } + return builder.compact(); + } + + /** + * 生成 token ,没有过期时间 + * + * @param claims 自定义的 map + * @return + */ + public static String createToken(Map claims) { + return createToken(claims, null); + } + + /** + * 解密 jwt + * @param jwt 创建的 jwt 字符串 + * @return + */ + public static Claims parse(String jwt) { + + if (jwt == null) { + return null; + } + + try { + return Jwts.parser() + .setSigningKey(generateKey()) //此处的key要与之前创建的key一致 + .parseClaimsJws(jwt) + .getBody(); + }catch (ExpiredJwtException e){ + return null; + } + } + + /** + * 获取 key + * + * @return + */ + private static SecretKey generateKey() { + String stringKey = "udicapi"; + byte[] encodedKey = Base64.getDecoder().decode(stringKey); + return new SecretKeySpec(encodedKey, 0, encodedKey.length, "AES"); + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/util/Md5Utils.java b/api-admin/src/main/java/com/glxp/api/admin/util/Md5Utils.java new file mode 100644 index 00000000..c28c0897 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/util/Md5Utils.java @@ -0,0 +1,23 @@ +package com.glxp.api.admin.util; + +import java.math.BigInteger; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + +public class Md5Utils { + + public static String stringToMD5(String plainText) { + byte[] secretBytes = null; + try { + secretBytes = MessageDigest.getInstance("md5").digest( + plainText.getBytes()); + } catch (NoSuchAlgorithmException e) { + throw new RuntimeException("没有这个md5算法!"); + } + String md5code = new BigInteger(1, secretBytes).toString(16); + for (int i = 0; i < 32 - md5code.length(); i++) { + md5code = "0" + md5code; + } + return md5code; + } +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/util/PasswordUtils.java b/api-admin/src/main/java/com/glxp/api/admin/util/PasswordUtils.java new file mode 100644 index 00000000..1700b7af --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/util/PasswordUtils.java @@ -0,0 +1,13 @@ +package com.glxp.api.admin.util; + +/** + * 密码相关的工具类 + */ +public class PasswordUtils { + + public static String authAdminPwd(String pwd) { +// return DigestUtils.md5DigestAsHex(DigestUtils.md5DigestAsHex(pwd.getBytes()).getBytes()).toLowerCase(); + return pwd; + } + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/util/PermissionRuleTreeUtils.java b/api-admin/src/main/java/com/glxp/api/admin/util/PermissionRuleTreeUtils.java new file mode 100644 index 00000000..bab16019 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/util/PermissionRuleTreeUtils.java @@ -0,0 +1,36 @@ +package com.glxp.api.admin.util; + +import com.glxp.api.admin.entity.auth.AuthPermissionRule; +import com.glxp.api.admin.res.auth.AuthPermissionRuleMergeResponse; +import org.springframework.beans.BeanUtils; + +import java.util.ArrayList; +import java.util.List; + +/** + * 权限规则生成树形节点工具类 + */ +public class PermissionRuleTreeUtils { + + /** + * 多维数组 + */ + public static List merge(List authPermissionRuleList, + Long pid) { + + List authPermissionRuleMergeResponseList = new ArrayList<>(); + for (AuthPermissionRule v : authPermissionRuleList) { + AuthPermissionRuleMergeResponse authPermissionRuleMergeResponse = new AuthPermissionRuleMergeResponse(); + BeanUtils.copyProperties(v, authPermissionRuleMergeResponse); + if (pid.equals(v.getPid())) { + authPermissionRuleMergeResponse.setChildren(merge(authPermissionRuleList, v.getId())); + authPermissionRuleMergeResponseList.add(authPermissionRuleMergeResponse); + } + } + + return authPermissionRuleMergeResponseList; + } + + + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/util/PublicFileUtils.java b/api-admin/src/main/java/com/glxp/api/admin/util/PublicFileUtils.java new file mode 100644 index 00000000..c735f36f --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/util/PublicFileUtils.java @@ -0,0 +1,23 @@ +package com.glxp.api.admin.util; + +import com.glxp.api.admin.config.PublicFileUrlConfig; + +/** + * 公共文件管理工具 + */ +public class PublicFileUtils { + + public static String createUploadUrl(String filePath) { + + if (filePath == null || filePath.isEmpty()) { + return ""; + } + + if (filePath.indexOf("http") == 0 || filePath.indexOf("/") == 0) { + return filePath; + } + + return PublicFileUrlConfig.getDomain() + "/" + filePath; + } + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/util/TreeUtils.java b/api-admin/src/main/java/com/glxp/api/admin/util/TreeUtils.java new file mode 100644 index 00000000..30fdf087 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/util/TreeUtils.java @@ -0,0 +1,12 @@ +package com.glxp.api.admin.util; + +/** + * 树形结构工具类 + */ +public class TreeUtils { + + public static void Merge() { + + } + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/util/UdidConfig.java b/api-admin/src/main/java/com/glxp/api/admin/util/UdidConfig.java new file mode 100644 index 00000000..ff36bc0c --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/util/UdidConfig.java @@ -0,0 +1,12 @@ +package com.glxp.api.admin.util; + +public class UdidConfig { + + public static final String betaUrl = "https://udid.nmpa.gov.cn/api/beta/v1/"; + + public static final String apiUrl = "https://udid.nmpa.gov.cn/api/v1/"; + + public static final String AppId = "371ced236e844272ad14bbe9051fd25a"; + public static final String AppSecret = "592e7a00a7304f52a86a82e7fac9d2c0"; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/util/serializer/Date2LongSerializer.java b/api-admin/src/main/java/com/glxp/api/admin/util/serializer/Date2LongSerializer.java new file mode 100644 index 00000000..bc2ed5e6 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/util/serializer/Date2LongSerializer.java @@ -0,0 +1,21 @@ +package com.glxp.api.admin.util.serializer; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; +import java.util.Date; + +/** + * 毫秒转成秒 + * 只需要在需要序列化的属性上面加上这个注解 | @JsonSerialize(using = Date2LongSerializer.class) + */ +public class Date2LongSerializer extends JsonSerializer { + + @Override + public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException { + jsonGenerator.writeNumber(date.getTime() / 1000); + } +} diff --git a/api-admin/src/main/resources/application-dev.properties b/api-admin/src/main/resources/application-dev.properties new file mode 100644 index 00000000..6e77cf8a --- /dev/null +++ b/api-admin/src/main/resources/application-dev.properties @@ -0,0 +1,26 @@ +# 本地环境 +server.port=9991 +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +spring.datasource.jdbc-url=jdbc:mysql://127.0.0.1:3306/udiwms?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true +spring.datasource.username=root +spring.datasource.password=123456 +#spring.datasource.password=mysql80 +server.servlet.context-path= + +logging.level.com.glxp.api.admin.dao=debug +logging.level.com.glxp.api.admin.erp.second=debug + +#logback配置 + +logging.path=output/logs +# 不指定的情况下默认生成在项目根目录,按照配置生成所需的日志名称 +logging.file=D:/udi.log +#UDI数据下载 +UDI_SERVER_URL=https://www.udims.com/UDI_DL_Server +#UDI_SERVER_URL=http://139.9.178.73:8080/UDI_DL_Server +#UCLOD服务 +#UCLOD_SERVER_URL=http://127.0.0.1:9997 +UCLOD_SERVER_URL=http://127.0.0.1:8080/UDIC_UCLOUD_SERVER + + + diff --git a/api-admin/src/main/resources/application.properties b/api-admin/src/main/resources/application.properties new file mode 100644 index 00000000..e487e916 --- /dev/null +++ b/api-admin/src/main/resources/application.properties @@ -0,0 +1,8 @@ +spring.profiles.active=dev + +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver + +mybatis.config-location=classpath:mybatis/mybatis-config.xml +mybatis.mapper-locations=classpath:mybatis/mapper/*/*.xml + +spring.jmx.enabled=false \ No newline at end of file diff --git a/api-admin/src/main/resources/logback-spring.xml b/api-admin/src/main/resources/logback-spring.xml new file mode 100644 index 00000000..daa05617 --- /dev/null +++ b/api-admin/src/main/resources/logback-spring.xml @@ -0,0 +1,145 @@ + + + logback + + + + + + %d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n + + + + + + + + + + ${log.path}/web_debug.log + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + UTF-8 + + + + + ${log.path}/web-debug-%d{yyyy-MM-dd}.%i.log + + 40MB + + + 15 + + + + debug + ACCEPT + DENY + + + + + + + ${log.path}/web_info.log + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + UTF-8 + + + + + ${log.path}/web-info-%d{yyyy-MM-dd}.%i.log + + 40MB + + + 15 + + + + info + ACCEPT + DENY + + + + + + + ${log.path}/web_warn.log + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + UTF-8 + + + + ${log.path}/web-warn-%d{yyyy-MM-dd}.%i.log + + 40MB + + + 15 + + + + warn + ACCEPT + DENY + + + + + + + ${log.path}/web_error.log + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + UTF-8 + + + + ${log.path}/web-error-%d{yyyy-MM-dd}.%i.log + + 40MB + + + 15 + + + + ERROR + ACCEPT + DENY + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/api-admin/src/main/resources/mybatis/configuration.xml b/api-admin/src/main/resources/mybatis/configuration.xml new file mode 100644 index 00000000..771e01b3 --- /dev/null +++ b/api-admin/src/main/resources/mybatis/configuration.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
\ No newline at end of file diff --git a/api-admin/src/main/resources/mybatis/db.properties b/api-admin/src/main/resources/mybatis/db.properties new file mode 100644 index 00000000..8caaaaff --- /dev/null +++ b/api-admin/src/main/resources/mybatis/db.properties @@ -0,0 +1,5 @@ +jdbc.jar.path=D:/Program Files/maven/maven-repository/mysql/mysql-connector-java/8.0.21/mysql-connector-java-8.0.21.jar +jdbc.driver=com.mysql.cj.jdbc.Driver +jdbc.url=jdbc:mysql://127.0.0.1:3306/warehouse?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false +jdbc.username=root +jdbc.password=123456 \ No newline at end of file diff --git a/api-admin/src/main/resources/mybatis/mapper/auth/AuthAdminDao.xml b/api-admin/src/main/resources/mybatis/mapper/auth/AuthAdminDao.xml new file mode 100644 index 00000000..38549386 --- /dev/null +++ b/api-admin/src/main/resources/mybatis/mapper/auth/AuthAdminDao.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + INSERT INTO auth_user(userName,passWord,lastLoginIp,lastLoginTime,createTime,userFlag,employeeName) + values + (#{userName}, + + + #{passWord}, + + + '', + + + + + + + #{lastLoginIp}, + + + '', + + + + + #{lastLoginTime}, + + + '0001-01-01 00:00:00', + + + #{createTime}, + #{userFlag,jdbcType=INTEGER}, + #{employeeName}) + + + + UPDATE auth_user + + userName=#{userName}, + passWord=#{passWord}, + lastLoginIp=#{lastLoginIp}, + lastLoginTime=#{lastLoginTime}, + userFlag=#{userFlag}, + employeeName=#{employeeName} + + WHERE id=#{id} + + + + delete from auth_user where id = #{id} + + + \ No newline at end of file diff --git a/api-admin/src/main/resources/mybatis/mapper/auth/AuthPermissionDao.xml b/api-admin/src/main/resources/mybatis/mapper/auth/AuthPermissionDao.xml new file mode 100644 index 00000000..199cd862 --- /dev/null +++ b/api-admin/src/main/resources/mybatis/mapper/auth/AuthPermissionDao.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + INSERT INTO auth_permission + (roleId, permissionRuleId,`type`) + VALUES + + + (#{item.roleId}, #{item.permissionRuleId}, #{item.type}) + + + + + + + delete from auth_permission where roleId = #{roleId} + + + \ No newline at end of file diff --git a/api-admin/src/main/resources/mybatis/mapper/auth/AuthPermissionRuleDao.xml b/api-admin/src/main/resources/mybatis/mapper/auth/AuthPermissionRuleDao.xml new file mode 100644 index 00000000..192b5680 --- /dev/null +++ b/api-admin/src/main/resources/mybatis/mapper/auth/AuthPermissionRuleDao.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + INSERT INTO auth_permission_rule(pid,`name`,`title`,`status`,`condition`,`listorder`,create_time,update_time) + values + (#{pid}, + #{name}, + #{title}, + #{status}, + + + #{condition}, + + + '', + + + #{listorder}, + #{createTime}, + #{updateTime}) + + + + UPDATE auth_permission_rule + + pid=#{pid}, + `name`=#{name}, + title=#{title}, + `status`=#{status}, + `condition`=#{condition}, + `listorder`=#{listorder}, + update_time=#{updateTime}, + + WHERE id=#{id} + + + + delete from auth_permission_rule where id = #{id} + + + \ No newline at end of file diff --git a/api-admin/src/main/resources/mybatis/mapper/auth/AuthRoleAdminDao.xml b/api-admin/src/main/resources/mybatis/mapper/auth/AuthRoleAdminDao.xml new file mode 100644 index 00000000..91f75dcc --- /dev/null +++ b/api-admin/src/main/resources/mybatis/mapper/auth/AuthRoleAdminDao.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + INSERT INTO auth_role_admin + (role_id, admin_id) + VALUES + + + (#{item.role_id}, #{item.admin_id}) + + + + + + delete from auth_role_admin where admin_id = #{adminId} + + + \ No newline at end of file diff --git a/api-admin/src/main/resources/mybatis/mapper/auth/AuthRoleDao.xml b/api-admin/src/main/resources/mybatis/mapper/auth/AuthRoleDao.xml new file mode 100644 index 00000000..ca9ed9cb --- /dev/null +++ b/api-admin/src/main/resources/mybatis/mapper/auth/AuthRoleDao.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + INSERT INTO auth_role(`name`,pid,`status`,`remark`,`listorder`,create_time,update_time) + values + ( + #{name}, + + + #{pid}, + + + 0, + + + #{status}, + + + #{remark}, + + + '', + + + + + #{listorder}, + + + 999, + + + #{createTime}, + #{updateTime} + ) + + + + UPDATE auth_role + + `name`=#{name}, + pid=#{pid}, + `status`=#{status}, + remark=#{remark}, + `listorder`=#{listorder}, + update_time=#{updateTime}, + + WHERE id=#{id} + + + + delete from auth_role where id = #{id} + + + \ No newline at end of file diff --git a/api-admin/src/main/resources/mybatis/mapper/basic/BasicUnitMaintainDao.xml b/api-admin/src/main/resources/mybatis/mapper/basic/BasicUnitMaintainDao.xml new file mode 100644 index 00000000..7e52c3a6 --- /dev/null +++ b/api-admin/src/main/resources/mybatis/mapper/basic/BasicUnitMaintainDao.xml @@ -0,0 +1,85 @@ + + + + + + + + + + INSERT INTO basic_corp + (thirdId,erpId,name,spell, + addr,status,type,creditNo,contact,mobile) + values + ( + #{thirdId}, + #{erpId}, + #{name}, + #{spell}, + #{addr}, + #{status}, + #{type}, + #{creditNo}, + #{contact}, + #{mobile} + ) + + + + insert INTO basic_corp( + thirdId,erpId,name,spell,addr, + status,type,creditNo,contact,mobile + ) values + ( + #{thirdId}, + #{erpId}, + #{name}, + #{spell}, + #{addr}, + #{status}, + #{type}, + #{creditNo}, + #{contact}, + #{mobile} + ) + + + + UPDATE basic_corp + + thirdId=#{thirdId}, + erpId=#{erpId}, + name=#{name}, + spell=#{spell}, + addr=#{addr}, + status=#{status}, + type=#{type}, + creditNo=#{creditNo}, + contact=#{contact}, + mobile=#{mobile}, + + WHERE id=#{id} + + + + DELETE FROM basic_corp WHERE id = #{id} + + + + + diff --git a/api-admin/src/main/resources/mybatis/mapper/basic/BussinessTypeDao.xml b/api-admin/src/main/resources/mybatis/mapper/basic/BussinessTypeDao.xml new file mode 100644 index 00000000..7e9ec433 --- /dev/null +++ b/api-admin/src/main/resources/mybatis/mapper/basic/BussinessTypeDao.xml @@ -0,0 +1,56 @@ + + + + + + + + + + INSERT INTO basic_bussiness_type + (action,name,enable,remark,mainAction) + values + ( + #{action}, + #{name}, + #{enable}, + #{remark}, + #{mainAction} + ) + + + + UPDATE basic_bussiness_type SET + action = #{action}, + name = #{name}, + enable = #{enable}, + remark = #{remark} + mainAction = #{mainAction} + WHERE id = #{id} + + + + DELETE FROM basic_bussiness_type WHERE id = #{id} + + + + + diff --git a/api-admin/src/main/resources/mybatis/mapper/basic/UdiInfoDao.xml b/api-admin/src/main/resources/mybatis/mapper/basic/UdiInfoDao.xml new file mode 100644 index 00000000..18e30a35 --- /dev/null +++ b/api-admin/src/main/resources/mybatis/mapper/basic/UdiInfoDao.xml @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + replace INTO basic_products + ( + nameCode,packRatio,packLevel,bhxjsl, + bhzxxsbzsl,zxxsbzbhsydysl,bhxjcpbm,bzcj,addType,deviceRecordKey, + cpmctymc,cplb,flbm,ggxh,qxlb,tyshxydm,ylqxzcrbarmc,zczbhhzbapzbh,ylqxzcrbarywmc,uuid,sjcpbm,versionNumber + ,diType + ) + values + ( + #{nameCode}, + #{packRatio}, + #{packLevel}, + #{bhxjsl}, + #{bhzxxsbzsl}, + #{zxxsbzbhsydysl}, + #{bhxjcpbm}, + #{bzcj}, + #{addType}, + #{deviceRecordKey}, + #{cpmctymc}, + #{cplb}, + #{flbm}, + #{ggxh}, + #{qxlb}, + #{tyshxydm}, + #{ylqxzcrbarmc}, + #{zczbhhzbapzbh}, + #{ylqxzcrbarywmc}, + #{uuid}, + #{sjcpbm}, + #{versionNumber}, + #{diType} + ) + + + + replace INTO basic_products + ( + nameCode,packRatio,packLevel,bhxjsl, + bhzxxsbzsl,zxxsbzbhsydysl,bhxjcpbm,bzcj,addType,deviceRecordKey, + cpmctymc,cplb,flbm,ggxh,qxlb,tyshxydm,ylqxzcrbarmc,zczbhhzbapzbh,ylqxzcrbarywmc,uuid,sjcpbm,versionNumber + ,diType + ) + values + + + ( + #{item.nameCode}, + #{item.packRatio}, + #{item.packLevel}, + #{item.bhxjsl}, + #{item.bhzxxsbzsl}, + #{item.zxxsbzbhsydysl}, + #{item.bhxjcpbm}, + #{item.bzcj}, + #{item.addType}, + #{item.deviceRecordKey}, + #{item.cpmctymc}, + #{item.cplb}, + #{item.flbm}, + #{item.ggxh}, + #{item.qxlb}, + #{item.tyshxydm}, + #{item.ylqxzcrbarmc}, + #{item.zczbhhzbapzbh}, + #{item.ylqxzcrbarywmc}, + #{item.uuid}, + #{item.sjcpbm}, + #{item.versionNumber}, + #{item.diType} + ) + + + + + DELETE FROM basic_products WHERE id = #{id} + + + + DELETE FROM basic_products WHERE uuid = #{uuid} + + + + UPDATE basic_products + + packRatio=#{packRatio}, + packLevel=#{packLevel}, + bhxjsl=#{bhxjsl}, + bhzxxsbzsl=#{bhzxxsbzsl}, + zxxsbzbhsydysl=#{zxxsbzbhsydysl}, + bhxjcpbm=#{bhxjcpbm}, + bzcj=#{bzcj}, + addType=#{addType}, + deviceRecordKey=#{deviceRecordKey}, + cpmctymc=#{cpmctymc}, + cplb=#{cplb}, + flbm=#{flbm}, + ggxh=#{ggxh}, + qxlb=#{qxlb}, + tyshxydm=#{tyshxydm}, + ylqxzcrbarmc=#{ylqxzcrbarmc}, + ylqxzcrbarywmc=#{ylqxzcrbarywmc}, + uuid=#{uuid}, + sjcpbm=#{sjcpbm}, + versionNumber=#{versionNumber}, + diType=#{diType}, + + WHERE nameCode = #{nameCode} + + \ No newline at end of file diff --git a/api-admin/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml b/api-admin/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml new file mode 100644 index 00000000..cbf199b0 --- /dev/null +++ b/api-admin/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + replace INTO basic_udirel + ( + thirdId,thirdName,uuid,isUseDy,updateTime,batchNo,warehouseName + ) + values + ( + #{thirdId}, + #{thirdName}, + #{uuid}, + #{isUseDy}, + #{updateTime}, + #{batchNo}, + #{warehouseName} + ) + + + + + DELETE FROM basic_udirel WHERE id = #{id} + + + DELETE FROM basic_udirel WHERE id in + + #{item} + + + + DELETE FROM basic_udirel WHERE uuid = #{uuid} + + + + UPDATE basic_udirel + + thirdId=#{thirdId}, + thirdName=#{thirdName}, + uuid=#{uuid}, + isUseDy=#{isUseDy}, + updateTime=#{updateTime}, + batchNo=#{batchNo}, + warehouseName=#{warehouseName}, + + WHERE id = #{id} + + \ No newline at end of file diff --git a/api-admin/src/main/resources/mybatis/mapper/basic/UnitMaintainDao.xml b/api-admin/src/main/resources/mybatis/mapper/basic/UnitMaintainDao.xml new file mode 100644 index 00000000..36ab4d15 --- /dev/null +++ b/api-admin/src/main/resources/mybatis/mapper/basic/UnitMaintainDao.xml @@ -0,0 +1,49 @@ + + + + + + + + + + INSERT INTO basic_corp + (thirdId,erpId,name,spell, + addr,status,type,contact,mobile,creditNo) + values + ( + #{thirdId}, + #{erpId}, + #{name}, + #{spell}, + #{addr}, + #{status}, + #{type}, + #{contact}, + #{mobile}, + #{creditNo} + ) + + + + DELETE FROM basic_corp WHERE id = #{id} + + + + + diff --git a/api-admin/src/main/resources/mybatis/mapper/info/CompanyDao.xml b/api-admin/src/main/resources/mybatis/mapper/info/CompanyDao.xml new file mode 100644 index 00000000..cb0ba302 --- /dev/null +++ b/api-admin/src/main/resources/mybatis/mapper/info/CompanyDao.xml @@ -0,0 +1,37 @@ + + + + + + + + + + UPDATE company SET + name = #{name}, + category = #{category}, + creditCode = #{creditCode}, + addr = #{addr}, + productAddr = #{productAddr}, + classes = #{classes}, + appId = #{appId}, + appSecret = #{appSecret} + + + + INSERT INTO company(name,category,creditCode,addr,productAddr,classes,appId,appSecret) values + ( #{name}, + #{category}, + #{creditCode}, + #{addr}, + #{productAddr}, + #{classes}, + #{appId}, + #{appSecret}) + + + + \ No newline at end of file diff --git a/api-admin/src/main/resources/mybatis/mapper/info/ScheduleDao.xml b/api-admin/src/main/resources/mybatis/mapper/info/ScheduleDao.xml new file mode 100644 index 00000000..951ad044 --- /dev/null +++ b/api-admin/src/main/resources/mybatis/mapper/info/ScheduleDao.xml @@ -0,0 +1,40 @@ + + + + + + + + insert INTO scheduled + (cronName,cron,customerId) + values + ( + #{cronName}, + #{cron}, + #{customerId} + ) + + + + + delete from scheduled where id = #{id} + + + + + + + diff --git a/api-admin/src/main/resources/mybatis/mapper/info/SetupDao.xml b/api-admin/src/main/resources/mybatis/mapper/info/SetupDao.xml new file mode 100644 index 00000000..49fbdb3e --- /dev/null +++ b/api-admin/src/main/resources/mybatis/mapper/info/SetupDao.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + UPDATE system_config + + erpSaleOutModify=#{erpSaleOutModify}, + erpGetSaleOut=#{erpGetSaleOut}, + erpSaleOutSign=#{erpSaleOutSign}, + filterSaleOutSign=#{filterSaleOutSign}, + erpGetSaleOutDay=#{erpGetSaleOutDay}, + + erpPruchaseModify=#{erpPruchaseModify}, + erpGetPurchaseIn=#{erpGetPurchaseIn}, + erpPruchaseSign=#{erpPruchaseSign}, + erpGetPurchaseDay=#{erpGetPurchaseDay}, + filterPurchaseSign=#{filterPurchaseSign}, + remark=#{remark}, + forbidSameErp=#{forbidSameErp}, + returnWareHouseOut=#{returnWareHouseOut}, + salesWareHouseOut=#{salesWareHouseOut}, + returnWareHouseIn=#{returnWareHouseIn}, + updateErpData=#{updateErpData}, + dlStockErp=#{dlStockErp}, + dlStockErpDay=#{dlStockErpDay}, + + WHERE id=#{id} + + + + + + insert INTO system_config(erpSaleOutModify, + erpGetSaleOut,erpSaleOutSign,filterSaleOutSign,erpGetSaleOutDay,erpPruchaseModify, + erpGetPurchaseIn,erpPruchaseSign, + erpGetPurchaseDay,filterPurchaseSign,remark,forbidSameErp, + returnWareHouseOut,salesWareHouseOut,returnWareHouseIn,updateErpData,dlStockErp,dlStockErpDay + ) values + ( + #{erpSaleOutModify},#{erpGetSaleOut}, #{erpSaleOutSign}, + #{filterSaleOutSign}, #{erpGetSaleOutDay},#{erpPruchaseModify}, #{erpGetPurchaseIn}, + #{erpPruchaseSign}, + #{erpGetPurchaseDay}, #{filterPurchaseSign}, + #{remark},#{forbidSameErp} + ,#{returnWareHouseOut},#{salesWareHouseOut},#{returnWareHouseIn},#{updateErpData},#{dlStockErp},#{dlStockErpDay}) + + + + \ No newline at end of file diff --git a/api-admin/src/main/resources/mybatis/mapper/info/SystemParamConfigDao.xml b/api-admin/src/main/resources/mybatis/mapper/info/SystemParamConfigDao.xml new file mode 100644 index 00000000..0b8fd2c6 --- /dev/null +++ b/api-admin/src/main/resources/mybatis/mapper/info/SystemParamConfigDao.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + UPDATE system_param_config + + paramName=#{paramName}, + paramKey=#{paramKey}, + paramValue=#{paramValue}, + paramStatus=#{paramStatus}, + paramType=#{paramType}, + paramExplain=#{paramExplain}, + + WHERE id=#{id} + + + + UPDATE system_param_config + + paramStatus=#{paramStatus}, + + WHERE parentId=#{parentId} + + + + insert INTO system_param_config(paramName, + paramKey,paramValue,paramStatus,paramType,paramExplain + ) values + ( + #{paramName}, + #{paramKey}, + #{paramValue}, + #{paramStatus}, + #{paramType}, + #{paramExplain} + ) + + + + \ No newline at end of file diff --git a/api-admin/src/main/resources/mybatis/mapper/inout/CodesDao.xml b/api-admin/src/main/resources/mybatis/mapper/inout/CodesDao.xml new file mode 100644 index 00000000..b8d2405a --- /dev/null +++ b/api-admin/src/main/resources/mybatis/mapper/inout/CodesDao.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + INSERT INTO io_codes(action,mainAction,code,corpOrderId,actor,actDate,wrongCode,upperCorpOrderId,fromCorpId,fromCorp,type) + values( + #{action}, + #{mainAction}, + #{code}, + #{corpOrderId}, + #{actor}, + #{actDate}, + #{wrongCode}, + #{upperCorpOrderId}, + #{fromCorpId}, + #{fromCorp},#{orderId},#{type}) + + + + INSERT INTO io_codes + (action, + mainAction, + code, + corpOrderId, + actor, + actDate, + wrongCode, + upperCorpOrderId, + fromCorpId,fromCorp,orderId,batchNo,produceDate,expireDate,serialNo,udi,count,type) + VALUES + + ( + #{item.action}, + #{item.mainAction}, + #{item.code}, + #{item.corpOrderId}, + #{item.actor}, + #{item.actDate}, + #{item.wrongCode}, + #{item.upperCorpOrderId}, + #{item.fromCorpId}, + #{ + item.fromCorp + },#{item.orderId},#{item.batchNo} + ,#{item.produceDate} + ,#{item.expireDate} + ,#{item.serialNo} + ,#{item.udi} + ,#{item.count} + ,#{item.type}) + + + + + + + + + + + UPDATE io_codes SET orderId = #{newOrderId} where orderId = #{oldOrderId} + + + + + UPDATE io_codes SET fromCorpID = #{fromCorpID}, fromCorp = #{fromCorp} + WHERE orderId = #{orderId} + + \ No newline at end of file diff --git a/api-admin/src/main/resources/mybatis/mapper/inout/CodesTempDao.xml b/api-admin/src/main/resources/mybatis/mapper/inout/CodesTempDao.xml new file mode 100644 index 00000000..9802f3d4 --- /dev/null +++ b/api-admin/src/main/resources/mybatis/mapper/inout/CodesTempDao.xml @@ -0,0 +1,46 @@ + + + + + + + + INSERT INTO io_codes_temp + (action, mainAction,code, corpOrderId, actor,actDate, + fromCorpID, fromCorp, orderId,batchNo,produceDate,expireDate,serialNo,udi,count) + VALUES + + ( + #{item.action}, + #{item.mainAction}, + #{item.code}, + #{item.corpOrderId}, + #{item.actor}, + #{item.actDate}, + #{item.fromCorpID}, + #{item.fromCorp}, + #{item.orderId} + ,#{item.batchNo} + ,#{item.produceDate} + ,#{item.expireDate} + ,#{item.serialNo} + ,#{item.udi} + ,#{item.count} + ) + + + + + + DELETE FROM io_codes_temp WHERE id IN + + #{item} + + + \ No newline at end of file diff --git a/api-admin/src/main/resources/mybatis/mapper/inout/OrderDao.xml b/api-admin/src/main/resources/mybatis/mapper/inout/OrderDao.xml new file mode 100644 index 00000000..9affeb6c --- /dev/null +++ b/api-admin/src/main/resources/mybatis/mapper/inout/OrderDao.xml @@ -0,0 +1,210 @@ + + + + + + + + + + + + + insert INTO io_order(id,action,corpOrderId,actDate,fromCorpId,actor,mainAction, + fromCorp,status,remark,exportStatus,fromType,contrastStatus,signStatus,erpFk,stockCheckFk) + values( + #{id}, + #{action}, + #{corpOrderId}, + #{actDate}, + #{fromCorpId}, + #{actor}, + #{mainAction}, + #{fromCorp}, + #{status}, + #{remark}, + #{exportStatus}, + #{fromType}, + #{contrastStatus}, + #{signStatus}, + #{erpFk}, + #{stockCheckFk}) + + + UPDATE io_order + + action=#{action}, + corpOrderId=#{corpOrderId}, + actDate=#{actDate}, + fromCorpId=#{fromCorpId}, + actor=#{actor}, + mainAction=#{mainAction}, + fromCorp=#{fromCorp}, + status=#{status}, + remark=#{remark}, + exportStatus=#{exportStatus}, + fromType=#{fromType}, + contrastStatus=#{contrastStatus}, + erpFk=#{erpFk}, + signStatus=#{signStatus} + stockCheckFk=#{stockCheckFk} + + WHERE id = #{id} + + + + + DELETE FROM io_order WHERE id = #{orderId} + + + + DELETE FROM io_order WHERE id = #{id} + + + + UPDATE io_order SET fromCorpId = #{fromCorpId},fromCorp = #{fromCorp} where id = #{id} + + + + UPDATE io_order SET `status` = #{status} where id = #{orderId} + + + UPDATE io_order SET `exportStatus` = #{exportStatus} where id = #{orderId} + + + UPDATE io_order SET `contrastStatus` = #{contrastStatus} where id = #{orderId} + + + UPDATE io_order SET `signStatus` = #{signStatus} where id = #{orderId} + + + UPDATE io_order SET `remark` = #{remark} where id = #{orderId} + + + + + + + + + + \ No newline at end of file diff --git a/api-admin/src/main/resources/mybatis/mapper/inout/OrderDetail.xml b/api-admin/src/main/resources/mybatis/mapper/inout/OrderDetail.xml new file mode 100644 index 00000000..9d33e0b0 --- /dev/null +++ b/api-admin/src/main/resources/mybatis/mapper/inout/OrderDetail.xml @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + replace INTO io_order_detail(id, + companyid,erpOrderId,iodtlId,inoutId,goodsunit,goodsid, + batchNoId,goodsname,companyname, + batchNo,erpCount,credate,nameCode,productCompany, + coName,authCode,packSpec,packRatio,bhzxxsbzsl, + zxxsbzbhsydysl,orderIdFk,count,reCount) + values( + #{id}, + #{companyid}, + #{erpOrderId}, + #{iodtlId}, + #{inoutId}, + #{goodsunit}, + #{goodsid}, + #{batchNoId}, + #{goodsname}, + #{companyname}, + #{batchNo}, + #{erpCount}, + #{credate}, + #{nameCode},#{productCompany},#{coName},#{authCode},#{packSpec},#{packRatio}, + #{bhzxxsbzsl},#{zxxsbzbhsydysl},#{orderIdFk},#{count},#{reCount} + ) + + + + replace INTO io_order_detail(id, + companyid,erpOrderId,iodtlId,inoutId,goodsunit,goodsid,batchNoId,goodsname,companyname, + batchNo,erpCount,credate,nameCode,productCompany, + coName,authCode,packSpec,packRatio,bhzxxsbzsl,zxxsbzbhsydysl,orderIdFk,count,reCount) + values + + + ( + #{item.id}, + #{item.companyid}, + #{item.erpOrderId}, + #{item.iodtlId}, + #{item.inoutId}, + #{item.goodsunit}, + #{item.goodsid}, + #{item.batchNoId}, + #{item.goodsname}, + #{item.companyname}, + #{item.batchNo}, + #{item.erpCount}, #{item.credate}, + #{item.nameCode}, #{item.productCompany}, #{item.coName}, #{item.authCode}, #{item.packSpec}, + #{item.packRatio}, #{item.bhzxxsbzsl}, + #{item.zxxsbzbhsydysl}, #{item.orderIdFk}, #{item.count},#{item.reCount}) + + + + + UPDATE io_order_detail + + count=#{count}, + reCount=#{reCount}, + + WHERE id = #{id} + + + DELETE FROM io_order_detail WHERE docid = #{id} + + + + DELETE FROM io_order_detail WHERE id = #{id} + + + + DELETE FROM io_order_detail WHERE orderIdFk = #{id} + + + + \ No newline at end of file diff --git a/api-admin/src/main/resources/mybatis/mapper/inventory/InvErpStockDao.xml b/api-admin/src/main/resources/mybatis/mapper/inventory/InvErpStockDao.xml new file mode 100644 index 00000000..0c07cb75 --- /dev/null +++ b/api-admin/src/main/resources/mybatis/mapper/inventory/InvErpStockDao.xml @@ -0,0 +1,71 @@ + + + + + + + + + replace INTO erpstock + ( + orderId,code,batchNo,manufacturingDate,expirationDate,count,remark,name + ) + values + ( + #{orderId}, + #{code}, + #{batchNo}, + #{manufacturingDate}, + #{count}, + #{remark}, + #{name} + ) + + + + replace INTO erpstock + ( + orderId,code,batchNo,manufacturingDate,expirationDate,count,remark,name + ) + values + + + ( + #{item.orderId}, + #{item.code}, + #{item.batchNo}, + #{item.manufacturingDate}, + #{item.expirationDate}, + #{item.count}, + #{item.remark}, + #{item.name} + ) + + + + + DELETE FROM erpstock WHERE id = #{id} + + + + UPDATE erpstock + + orderId=#{orderId}, + code=#{code}, + batchNo=#{batchNo}, + manufacturingDate=#{manufacturingDate}, + expirationDate=#{expirationDate}, + count=#{count}, + remark=#{remark}, + name=#{name}, + + WHERE id = #{id} + + + + \ No newline at end of file diff --git a/api-admin/src/main/resources/mybatis/mapper/inventory/InvOrderCheckDao.xml b/api-admin/src/main/resources/mybatis/mapper/inventory/InvOrderCheckDao.xml new file mode 100644 index 00000000..fb6ad438 --- /dev/null +++ b/api-admin/src/main/resources/mybatis/mapper/inventory/InvOrderCheckDao.xml @@ -0,0 +1,66 @@ + + + + + + + + + + insert INTO stockcheck + ( + action,actDate,status,remark,endTime,whouse,houseCard + ) + values + ( + #{action}, + #{actDate}, + #{status}, + #{remark},#{endTime},#{whouse},#{houseCard} + ) + + + + + DELETE FROM stockcheck WHERE id = #{id} + + + + UPDATE stockcheck + + action=#{action}, + actDate=#{actDate}, + status=#{status}, + remark=#{remark}, + endTime=#{endTime}, + whouse=#{whouse}, + houseCard=#{houseCard}, + + WHERE id = #{id} + + + \ No newline at end of file diff --git a/api-admin/src/main/resources/mybatis/mapper/inventory/InvStockPrintDao.xml b/api-admin/src/main/resources/mybatis/mapper/inventory/InvStockPrintDao.xml new file mode 100644 index 00000000..baddf9a6 --- /dev/null +++ b/api-admin/src/main/resources/mybatis/mapper/inventory/InvStockPrintDao.xml @@ -0,0 +1,142 @@ + + + + + + + + + + + + replace INTO stockprint + ( + udiCode,udiRlIdFk,nameCode,cpmctymc,batchNo, + produceDate,expireDate,serialNo,codeType,thirdId,thirdName, + ggxh,ylqxzcrbarmc,zczbhhzbapzbh,warehouseName,warehouseCode + ) + values + ( + #{udiCode}, + #{udiRlIdFk}, + #{nameCode}, + #{cpmctymc}, + #{batchNo}, + #{produceDate}, + #{expireDate}, + #{serialNo}, + #{codeType}, + #{thirdId}, + #{thirdName}, + #{ggxh}, + #{ylqxzcrbarmc}, + #{zczbhhzbapzbh}, + #{warehouseName}, + #{warehouseCode} + ) + + + + replace INTO stockprint + ( + udiCode,udiRlIdFk,nameCode,cpmctymc,batchNo, + produceDate,expireDate,serialNo,codeType,thirdId,thirdName, + ggxh,ylqxzcrbarmc,zczbhhzbapzbh,warehouseName,warehouseCode + ) + values + + + ( + #{item.udiCode}, + #{item.udiRlIdFk}, + #{item.nameCode}, + #{item.cpmctymc}, + #{item.batchNo}, + #{item.produceDate}, + #{item.expireDate}, + #{item.serialNo}, + #{item.codeType}, + #{item.thirdId}, + #{item.thirdName}, + #{item.ggxh}, + #{item.ylqxzcrbarmc}, + #{item.zczbhhzbapzbh}, + #{item.warehouseName}, + #{item.warehouseCode} + ) + + + + + DELETE FROM stockprint WHERE id = #{id} + + + + UPDATE stockprint + + udiCode=#{udiCode}, + udiRlIdFk=#{udiRlIdFk}, + nameCode=#{nameCode}, + cpmctymc=#{cpmctymc}, + batchNo=#{batchNo}, + produceDate=#{produceDate}, + expireDate=#{expireDate}, + serialNo=#{serialNo}, + codeType=#{codeType}, + thirdId=#{thirdId}, + thirdName=#{thirdName}, + printStatus=#{printStatus}, + ggxh=#{ggxh}, + ylqxzcrbarmc=#{ylqxzcrbarmc}, + zczbhhzbapzbh=#{zczbhhzbapzbh}, + warehouseName=#{warehouseName}, + warehouseCode=#{warehouseCode}, + + + WHERE id = #{id} + + + + + update stockprint + set printStatus = 1 + WHERE id in + + #{item} + + + \ No newline at end of file diff --git a/api-admin/src/main/resources/mybatis/mybatis-config.xml b/api-admin/src/main/resources/mybatis/mybatis-config.xml new file mode 100644 index 00000000..a72d9782 --- /dev/null +++ b/api-admin/src/main/resources/mybatis/mybatis-config.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/api-admin/src/main/resources/static/.gitignore b/api-admin/src/main/resources/static/.gitignore new file mode 100644 index 00000000..c96a04f0 --- /dev/null +++ b/api-admin/src/main/resources/static/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore \ No newline at end of file diff --git a/api-admin/src/main/resources/templates/.gitignore b/api-admin/src/main/resources/templates/.gitignore new file mode 100644 index 00000000..c96a04f0 --- /dev/null +++ b/api-admin/src/main/resources/templates/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore \ No newline at end of file diff --git a/api-admin/src/test/java/com/glxp/api/BaseApiAdminApplicationTest.java b/api-admin/src/test/java/com/glxp/api/BaseApiAdminApplicationTest.java new file mode 100644 index 00000000..fa474fb7 --- /dev/null +++ b/api-admin/src/test/java/com/glxp/api/BaseApiAdminApplicationTest.java @@ -0,0 +1,10 @@ +package com.glxp.api; + +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class BaseApiAdminApplicationTest { +} diff --git a/api-admin/src/test/java/com/glxp/api/admin/service/auth/impl/AuthAdminServiceImplTest.java b/api-admin/src/test/java/com/glxp/api/admin/service/auth/impl/AuthAdminServiceImplTest.java new file mode 100644 index 00000000..3ba92ba3 --- /dev/null +++ b/api-admin/src/test/java/com/glxp/api/admin/service/auth/impl/AuthAdminServiceImplTest.java @@ -0,0 +1,70 @@ +package com.glxp.api.admin.service.auth.impl; + +import com.github.pagehelper.PageInfo; +import com.glxp.api.admin.req.auth.AuthAdminQueryRequest; +import com.glxp.api.BaseApiAdminApplicationTest; +import com.glxp.api.admin.entity.auth.AuthAdmin; +import com.glxp.api.admin.service.auth.AuthAdminService; +import org.junit.Test; + +import javax.annotation.Resource; + +import java.util.*; + +import static org.junit.Assert.*; + +public class AuthAdminServiceImplTest extends BaseApiAdminApplicationTest { + + @Resource + private AuthAdminService authAdminService; + + @Test + public void listAdminPage() { + + Integer page = 1; + Integer limit = 20; + Integer status = 1; + String username = "api"; + Long roleId = 1L; + + AuthAdminQueryRequest authAdminQueryForm = new AuthAdminQueryRequest(); + authAdminQueryForm.setPage(page); + authAdminQueryForm.setLimit(limit); + authAdminQueryForm.setUserFlag(status); + authAdminQueryForm.setUserName(username); + + List authAdminList = authAdminService.listAdminPage(authAdminQueryForm); + PageInfo authAdminPageInfo = new PageInfo<>(authAdminList); + System.out.println(authAdminPageInfo.getList()); + assertTrue(authAdminPageInfo.getList().size() > 0); + } + + @Test + public void findByUserName() { + } + + @Test + public void findById() { + } + + @Test + public void findPwdById() { + } + + @Test + public void insertAuthAdmin() { + + AuthAdmin authAdmin = new AuthAdmin(); + authAdmin.setUserName("sssfff4"); + authAdmin.setCreateTime(new Date()); + authAdmin.setUserFlag(1); + + boolean b = authAdminService.insertAuthAdmin(authAdmin); + assertTrue(b); + } + + @Test + public void updateAuthAdmin() { + } + +} \ No newline at end of file diff --git a/api-admin/src/test/java/com/glxp/api/admin/service/auth/impl/AuthLoginServiceImplTest.java b/api-admin/src/test/java/com/glxp/api/admin/service/auth/impl/AuthLoginServiceImplTest.java new file mode 100644 index 00000000..b37c4b9b --- /dev/null +++ b/api-admin/src/test/java/com/glxp/api/admin/service/auth/impl/AuthLoginServiceImplTest.java @@ -0,0 +1,26 @@ +package com.glxp.api.admin.service.auth.impl; + +import com.glxp.api.BaseApiAdminApplicationTest; +import com.glxp.api.admin.service.auth.AuthLoginService; +import org.junit.Test; + +import javax.annotation.Resource; + + +import java.util.List; + +public class AuthLoginServiceImplTest extends BaseApiAdminApplicationTest { + + @Resource + private AuthLoginService authLoginService; + + @Test + public void listRuleByAdminId() { + + Long adminId = 2L; + + List strings = authLoginService.listRuleByAdminId(adminId); + + + } +} \ No newline at end of file diff --git a/api-admin/src/test/java/com/glxp/api/admin/service/auth/impl/AuthPermissionRuleServiceImplTest.java b/api-admin/src/test/java/com/glxp/api/admin/service/auth/impl/AuthPermissionRuleServiceImplTest.java new file mode 100644 index 00000000..5da51dd2 --- /dev/null +++ b/api-admin/src/test/java/com/glxp/api/admin/service/auth/impl/AuthPermissionRuleServiceImplTest.java @@ -0,0 +1,37 @@ +package com.glxp.api.admin.service.auth.impl; + +import com.glxp.api.BaseApiAdminApplicationTest; +import com.glxp.api.admin.entity.auth.AuthPermissionRule; +import com.glxp.api.admin.service.auth.AuthPermissionRuleService; +import org.junit.Test; + +import javax.annotation.Resource; + +import java.util.List; + +import static org.junit.Assert.*; + +public class AuthPermissionRuleServiceImplTest extends BaseApiAdminApplicationTest { + + @Resource + private AuthPermissionRuleService authPermissionRuleService; + + @Test + public void listByIdIn() { + } + + @Test + public void listByPid() { + List authPermissionRuleList = authPermissionRuleService.listByPid(0L); + + assertTrue(authPermissionRuleList.size() > 0); + } + + @Test + public void listAll() { + + List authPermissionRuleList = authPermissionRuleService.listAll(); + + assertTrue(authPermissionRuleList.size() > 0); + } +} \ No newline at end of file diff --git a/api-admin/src/test/java/com/glxp/api/admin/service/auth/impl/AuthRoleAdminServiceImplTest.java b/api-admin/src/test/java/com/glxp/api/admin/service/auth/impl/AuthRoleAdminServiceImplTest.java new file mode 100644 index 00000000..bc395516 --- /dev/null +++ b/api-admin/src/test/java/com/glxp/api/admin/service/auth/impl/AuthRoleAdminServiceImplTest.java @@ -0,0 +1,46 @@ +package com.glxp.api.admin.service.auth.impl; + +import com.glxp.api.BaseApiAdminApplicationTest; +import com.glxp.api.admin.entity.auth.AuthRoleAdmin; +import com.glxp.api.admin.service.auth.AuthRoleAdminService; +import org.junit.Test; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +import static org.junit.Assert.*; + +public class AuthRoleAdminServiceImplTest extends BaseApiAdminApplicationTest { + + @Resource + private AuthRoleAdminService authRoleAdminService; + + @Test + public void listByAdminId() { + } + + @Test + public void listByRoleId() { + } + + @Test + public void insertAuthRoleAdminAll() { + + List authRoleAdminList = new ArrayList<>(); + + long len = 3; + for (long i = 1; i <= len; i++) { + AuthRoleAdmin authRoleAdmin = new AuthRoleAdmin(); + if (i % 2 == 0) { + authRoleAdmin.setRole_id(i); + } + authRoleAdmin.setAdmin_id(i + 1); + authRoleAdminList.add(authRoleAdmin); + } + int i = authRoleAdminService.insertAuthRoleAdminAll(authRoleAdminList); + + System.out.println(i); + assertEquals(1, i); + } +} \ No newline at end of file diff --git a/api-admin/src/test/java/com/glxp/api/admin/service/auth/impl/AuthRoleServiceImplTest.java b/api-admin/src/test/java/com/glxp/api/admin/service/auth/impl/AuthRoleServiceImplTest.java new file mode 100644 index 00000000..774797cd --- /dev/null +++ b/api-admin/src/test/java/com/glxp/api/admin/service/auth/impl/AuthRoleServiceImplTest.java @@ -0,0 +1,32 @@ +package com.glxp.api.admin.service.auth.impl; + +import com.glxp.api.BaseApiAdminApplicationTest; +import com.glxp.api.admin.entity.auth.AuthRole; +import com.glxp.api.admin.service.auth.AuthRoleService; +import org.junit.Test; + +import javax.annotation.Resource; + +import java.util.List; + +import static org.junit.Assert.*; + +public class AuthRoleServiceImplTest extends BaseApiAdminApplicationTest { + + @Resource + private AuthRoleService authRoleService; + + @Test + public void listAdminPage() { + } + + @Test + public void listAuthAdminRolePage() { + + Integer page = 1; + Integer limit = 20; + + List authRoleList = authRoleService.listAuthAdminRolePage(page, limit, null); + assertTrue(authRoleList.size() > 0); + } +} \ No newline at end of file diff --git a/api-admin/src/test/java/com/glxp/api/admin/service/auth/impl/MmpaTest.java b/api-admin/src/test/java/com/glxp/api/admin/service/auth/impl/MmpaTest.java new file mode 100644 index 00000000..b065eebf --- /dev/null +++ b/api-admin/src/test/java/com/glxp/api/admin/service/auth/impl/MmpaTest.java @@ -0,0 +1,24 @@ +package com.glxp.api.admin.service.auth.impl; + +import com.alibaba.fastjson.JSONObject; +import com.glxp.api.BaseApiAdminApplicationTest; +import org.junit.Test; +import org.springframework.http.ResponseEntity; +import org.springframework.web.client.RestTemplate; + +import javax.annotation.Resource; + +public class MmpaTest extends BaseApiAdminApplicationTest { + RestTemplate restTemplate = new RestTemplate(); + + @Test + public void testConnect() { + ResponseEntity response = restTemplate.postForEntity("https://udid.nmpa.gov.cn/api/beta/v1/connection/erp", "", String.class); + System.out.println(response.getBody()); + } + + + + + +} diff --git a/api-admin/src/test/java/com/glxp/api/admin/util/DlDeviceTest.java b/api-admin/src/test/java/com/glxp/api/admin/util/DlDeviceTest.java new file mode 100644 index 00000000..0e5df2ab --- /dev/null +++ b/api-admin/src/test/java/com/glxp/api/admin/util/DlDeviceTest.java @@ -0,0 +1,34 @@ +package com.glxp.api.admin.util; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.glxp.api.admin.httpclient.UdiDlHttpClient; +import com.glxp.api.admin.entity.basic.UdiInfoEntity; +import com.glxp.api.admin.entity.udid.*; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class DlDeviceTest { + + private static final Logger log = LoggerFactory.getLogger(JwtUtilsTest.class); + + + @Test + public void testDonwload() { +// downDevice(); + } + + + @Test + public void getDi(){ + List udiInfoEntityList = new UdiDlHttpClient("http://127.0.0.1:9994").getUdiByDi("08714729834663"); + log.info("rrr"); + } + +} diff --git a/api-admin/src/test/java/com/glxp/api/admin/util/JwtUtilsTest.java b/api-admin/src/test/java/com/glxp/api/admin/util/JwtUtilsTest.java new file mode 100644 index 00000000..1b8660b3 --- /dev/null +++ b/api-admin/src/test/java/com/glxp/api/admin/util/JwtUtilsTest.java @@ -0,0 +1,65 @@ +package com.glxp.api.admin.util; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.TypeReference; +import com.glxp.api.BaseApiAdminApplicationTest; +import io.jsonwebtoken.Claims; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +import static org.junit.Assert.assertNotNull; + +public class JwtUtilsTest extends BaseApiAdminApplicationTest { + + private static final Logger log = LoggerFactory.getLogger(JwtUtilsTest.class); + + @Test + public void createToken() { + Map claims = new HashMap<>(); + claims.put("admin_id", 12222222); + String token = JwtUtils.createToken(claims, 86400L); + System.out.println(token); + System.out.println(token.length()); + assertNotNull(token); + } + + @Test + public void createToken1() { + Map claims = new HashMap<>(); + String token = JwtUtils.createToken(claims); + System.out.println(token); + assertNotNull(token); + } + + @Test + public void parse() { + Map claims = new HashMap<>(); + claims.put("admin_id", 1); + String token = JwtUtils.createToken(claims, 1000L); + System.out.println(token); + System.out.println(token.length()); + Claims claim = JwtUtils.parse(token); + System.out.println(claim); + assertNotNull(claim); + System.out.println(claim.get("admin_id")); + } + + + + + + + + @Test + public void tetsArray(){ + String data = "121212"; + String[] datas = data.split(","); + System.out.println(datas[0]); + } +} diff --git a/api-admin/src/test/java/com/glxp/api/admin/util/NormalTest.java b/api-admin/src/test/java/com/glxp/api/admin/util/NormalTest.java new file mode 100644 index 00000000..a8bfcf47 --- /dev/null +++ b/api-admin/src/test/java/com/glxp/api/admin/util/NormalTest.java @@ -0,0 +1,24 @@ +package com.glxp.api.admin.util; + +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.HashMap; +import java.util.Map; + +import static org.junit.Assert.assertNotNull; + +public class NormalTest { + private static final Logger log = LoggerFactory.getLogger(NormalTest.class); + + @Test + public void testMA() { + String data = "MA.156.M0.100334.0FPN95-06E6"; + log.info(FilterUdiUtils.getDiStr(data)); + + + String data2 = "#32543535#5454#45#5453#"; + log.info(FilterUdiUtils.getUdi(data2).toString()); + } +} diff --git a/api-admin/src/test/java/com/glxp/api/admin/util/PermissionRuleTreeUtilsTest.java b/api-admin/src/test/java/com/glxp/api/admin/util/PermissionRuleTreeUtilsTest.java new file mode 100644 index 00000000..7b8809de --- /dev/null +++ b/api-admin/src/test/java/com/glxp/api/admin/util/PermissionRuleTreeUtilsTest.java @@ -0,0 +1,26 @@ +package com.glxp.api.admin.util; + +import com.glxp.api.BaseApiAdminApplicationTest; +import com.glxp.api.admin.entity.auth.AuthPermissionRule; +import com.glxp.api.admin.service.auth.AuthPermissionRuleService; +import com.glxp.api.admin.res.auth.AuthPermissionRuleMergeResponse; +import org.junit.Test; + +import javax.annotation.Resource; + +import java.util.List; + +public class PermissionRuleTreeUtilsTest extends BaseApiAdminApplicationTest { + + @Resource + private AuthPermissionRuleService authPermissionRuleService; + + @Test + public void merge() { + + List authPermissionRules = authPermissionRuleService.listAll(); + List merge = PermissionRuleTreeUtils.merge(authPermissionRules,0L); + System.out.println(merge); + + } +} \ No newline at end of file diff --git a/api-admin/target/classes/META-INF/api-admin.kotlin_module b/api-admin/target/classes/META-INF/api-admin.kotlin_module new file mode 100644 index 0000000000000000000000000000000000000000..8fb60192d378759239a3ecbf60eac8c8de446e9c GIT binary patch literal 16 RcmZQzU|?ooU|@t|UH|}6022TJ literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/META-INF/spring-configuration-metadata.json b/api-admin/target/classes/META-INF/spring-configuration-metadata.json new file mode 100644 index 00000000..c5335ca9 --- /dev/null +++ b/api-admin/target/classes/META-INF/spring-configuration-metadata.json @@ -0,0 +1,38 @@ +{ + "groups": [ + { + "name": "cors", + "type": "com.glxp.api.admin.config.CorsConfig", + "sourceType": "com.glxp.api.admin.config.CorsConfig" + }, + { + "name": "public-file", + "type": "com.glxp.api.admin.config.PublicFileUrlConfig", + "sourceType": "com.glxp.api.admin.config.PublicFileUrlConfig" + }, + { + "name": "spring.datasource", + "type": "javax.sql.DataSource", + "sourceType": "com.glxp.api.admin.config.MasterDataSourceConfig", + "sourceMethod": "masterDataSource()" + } + ], + "properties": [ + { + "name": "cors.allowed-headers", + "type": "java.lang.String", + "sourceType": "com.glxp.api.admin.config.CorsConfig" + }, + { + "name": "cors.allowed-methods", + "type": "java.lang.String", + "sourceType": "com.glxp.api.admin.config.CorsConfig" + }, + { + "name": "cors.allowed-origins", + "type": "java.lang.String", + "sourceType": "com.glxp.api.admin.config.CorsConfig" + } + ], + "hints": [] +} \ No newline at end of file diff --git a/api-admin/target/classes/application-dev.properties b/api-admin/target/classes/application-dev.properties new file mode 100644 index 00000000..6e77cf8a --- /dev/null +++ b/api-admin/target/classes/application-dev.properties @@ -0,0 +1,26 @@ +# 本地环境 +server.port=9991 +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +spring.datasource.jdbc-url=jdbc:mysql://127.0.0.1:3306/udiwms?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true +spring.datasource.username=root +spring.datasource.password=123456 +#spring.datasource.password=mysql80 +server.servlet.context-path= + +logging.level.com.glxp.api.admin.dao=debug +logging.level.com.glxp.api.admin.erp.second=debug + +#logback配置 + +logging.path=output/logs +# 不指定的情况下默认生成在项目根目录,按照配置生成所需的日志名称 +logging.file=D:/udi.log +#UDI数据下载 +UDI_SERVER_URL=https://www.udims.com/UDI_DL_Server +#UDI_SERVER_URL=http://139.9.178.73:8080/UDI_DL_Server +#UCLOD服务 +#UCLOD_SERVER_URL=http://127.0.0.1:9997 +UCLOD_SERVER_URL=http://127.0.0.1:8080/UDIC_UCLOUD_SERVER + + + diff --git a/api-admin/target/classes/application.properties b/api-admin/target/classes/application.properties new file mode 100644 index 00000000..e487e916 --- /dev/null +++ b/api-admin/target/classes/application.properties @@ -0,0 +1,8 @@ +spring.profiles.active=dev + +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver + +mybatis.config-location=classpath:mybatis/mybatis-config.xml +mybatis.mapper-locations=classpath:mybatis/mapper/*/*.xml + +spring.jmx.enabled=false \ No newline at end of file diff --git a/api-admin/target/classes/com/glxp/api/ApiAdminApplication.class b/api-admin/target/classes/com/glxp/api/ApiAdminApplication.class new file mode 100644 index 0000000000000000000000000000000000000000..d2c9e8eac7e8a74d0cc7476373796505b075534f GIT binary patch literal 1344 zcmbtUU279T6g`uq-89CwrZ%>I*7}u3a9%`^NFfafh4_Jyi1;)~rs?SJ%rZOM7Jrq# zs0jK4{88fF&0<$ftk8X!yL0E>J7>>5cYpl+`W?W1G%J|LWe-;>xQc5YHY&J|O%FF1 z<{v4o+%`k8vDIfNb<9XIEOnKZPvc-9?MpH6$y4i^q44{{s$`!zOKx9944d7d3HaDQ z3b_asZ-=Tq3Y2b#p|6I*DWh9dIS@)S)EjTQZ^eP&zR+Xdb5`kbE4^9RG1Xd`a?G&& zM7n)5dM>O8q?48c7luafsc~!x+)<-z?3hPkQf)7ZIW+bi9~k5KAXffJTHZ?!bC`A} z2d%ABQs6rwnO85cW5PmT}j(LX-nP!4z`?SU^H?@esS1fkJVyWUXfRuvw~3>zm&!NbieZs9hG z>{tgKUqq3IJ5@BW#jrcGn|T;f9EQdcoV2sa*JQwUNzqF9>btZb%A!AEF(MD{0#PyUJ9ttI-feLI79E%NdVciv|GR;mMAJoen2)! zF4qdpFDSk`&aco3aE>mjV=Eqz1jb+K0HeZt%a mipqnkrv>Yi$P5$+)GF!(CM&&~CS6F^HLR0O5M3mD3HSxTw|;m4 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/annotation/AuthRuleAnnotation.class b/api-admin/target/classes/com/glxp/api/admin/annotation/AuthRuleAnnotation.class new file mode 100644 index 0000000000000000000000000000000000000000..cd34f89b1468f73d0b016bdbe6cbba890dac6044 GIT binary patch literal 450 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 C*4jq^ literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/config/DruidStatFilter.class b/api-admin/target/classes/com/glxp/api/admin/config/DruidStatFilter.class new file mode 100644 index 0000000000000000000000000000000000000000..283ac219b36ef4eb2fc5304e85e44a267c0f5ce4 GIT binary patch literal 650 zcma)4U27CE6g}DQN4s6Et@Weoiy*WemkkBq6sahJu#{qDeemhdY<8O^lMG2_*}vse z!H50;f0TGLRu_B_CvcK`&*hwxFyDWCy9V$APx{!vK@X35cr4I;rLB&y1vZY3Cj#xa zZmI-!#@ed0y3CdTM7iP4-q;mnCggRhZ<_6Rse{1tap6iiH>*lgr6o;EZDrx?OwZ*z zU+d{br1)N&sQgQT{)MZ3p}1z*{lECpf|ew3@Uga0mujMeX1h1mI+oDRvfHz9npw%9 z{L-i>=?^JCt9)%UYYfk*OzEd72Gi>#0^7AW=M*_rl5NS1v!%y4Cr>4J4*zNN;rAq8 zscjpVzFHNg4!>e{mSk$SKFLOlFw91CJ!4!{bH==^7%Q93MM$hJ+)y?lWi~(?9f9Nj zepG>BnkA!i%IQWX)K%qtl$SA9>0#D4$5XWU7f7Gr#b%6Mu4GdKo$LzYD>qu`F?P8P x>|&E~(40HiLcig+8yw&k?}yCYX5pQHJJ|gK5wM55yq{v9rS1jX$Af@}KLKC4t&0Ev literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/config/DruidStatViewServlet.class b/api-admin/target/classes/com/glxp/api/admin/config/DruidStatViewServlet.class new file mode 100644 index 0000000000000000000000000000000000000000..f91038811df06cebf09f174a2e774caeb234a843 GIT binary patch literal 797 zcmb7CTWb?R6#k~kCg#@GdTqV6YQ6L!(=Fl!MU+;dB}g!K1q;F?JEl{1XTr>EQh$TL z#wWoCefLMHXVWyIh#;SRkq0}E)7t&i^kW-&MR&yVd%@&a$kcZy_B?}0g-!Pz|oPjHTy d^A3wxa=0*s7jt-N3NPpI$`mgD4p(w`^(Pvg%1{6R literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/config/MasterDataSourceConfig.class b/api-admin/target/classes/com/glxp/api/admin/config/MasterDataSourceConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..c99250ff16bd71ca094b21b5af4af60c1a273641 GIT binary patch literal 2437 zcmbtWYjfK~6g``lQlqquTawU18%m+JlX%k>Lfe#5=SiuZxN!({`hi)?Ye%Upxzai~ z{|df144L5v@S_;+N{%0m!i3?2rQOxN_uPB-++F|m_aA=(_!2)QFp1>^p5hz*cxK?+ z1WY_nU<5e>D+w6-vw>9uYY8NYUPdH6Ej>imF3b|r&edp)=_G)hT#r77%*i+lJ)iZ|SRC zU)eI?QQl2I1TA*gDco4YmsPvPFd3zgtx&N+SS-V0EJ#dlMc=Lq|A^wvM8xd+!VQF_ zYb*#?)TGa_Mg+yxdQd4_ya(Gy-PtIFFdZS3-Z>>11O%`_IG%q*oTTD6Ac7SQVeLz9 zmx+Xc2azv76NV6`;=?dp?s#<(GhspXqfX3l6VHb1>|A2KWywak?FL?wh6+;cdzGTl zyG}AAG29sxO83)%Vjjh^SSEP{yc%)QubWp*;n-DM`c&EIp>8IIL?q`8TQ|qec$H^$ zQ!*^YqQz)nKx2dz%T1r23!*{tELowd&9Vq&QCM$DD#XJSwPaSeWR_Yo8@40~(_^?! zy*0S)JF;qG8Z!p+CJNXxv5ngd&;PH|Ox(h49l6Mm(!nmW%O+lF`^`9T%kxQn9uJz0 zhUY6@6l%X9l(kQdzayiTqcswOtEbMP?wQ5^dNwi4T8;>U21S2znsPm)nrC<>+p0Sz zc2F|0iyutv;YSi;@A%y=A4p3vTI%=Cu!nnR-b&MUDmwo$%a=lt$R3{4 z{Qu&u^;*_}=m0&hv+2;E2&C#EGnh50PWdD$Ek~{cw@doXIiiks=+v7MNK)`fsQL!! z9NC%F1^xA%bcxbAWtDeGxad)YPw8@mLGf3hZr~$&+hcut+n@`aFOD7|(5?5rw z>CNapnmGphEp)j-&#`dvI&RX~j12HGKA{=YY9|=&e4l38+4vnpZ4CcP!y)wCZ}qtw z9rszXxrt%Qm(H*^U;%~ujK+5Ze2y>ZBf~wUI`NmtP{%hG@kvYIEmA+krf0UV1o8r5V1v-BHGHyx&X npVm#y@B{ii)JzT0KP%1gSE0`|jh1NsHN78&Tt3E=0O@}KC>W*q literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/config/PageHelperConfig.class b/api-admin/target/classes/com/glxp/api/admin/config/PageHelperConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..9bba844e114149e0fca27d59d64cc656906ef967 GIT binary patch literal 1647 zcma)7%W@k<6g@3JG?B-NGk!(kWda1tRx&(-2{;dI2a|vtn<&Uhc5SI8cNlf6dV2DJ zV#zW~Hmq5v0t=-I7kmK!K`4rUptwCFTMoD=YtfH8_uPBW>D#T}{{Hz_0OxS0fEN+w z@m2vjH@{uLAVLrCczD+>&v|&y!-9wRJ)HOOfrk%0EPA-$;o=co!sR?ZDq!3}mfXDT zKr3!_rGSsI>cW1K$JIQpF$`ajO4>^d1GA+X!{CZ;2!>-7sl@f9y(P>|z7>%rsOUP6 zYTQV-?->W}wu~9dmAY<+t>{4~=d_nBT-hi zMNP(%s4Xd_Ew@rD0-dR7(+cB`k*d`+ye;l)^QEI^#RD7iJ=btqaOG;O>crH=s&tY~ z_DN>k&$c$r}))%t&=VwgCHDIKbAHe+FzVpkU(F2hihN3rnn zDL$hUHv0auPE;e_r06TOvJAcxy(+&FcZAW@9@ZqptY8F>waPkUI!-zrZS0z`+qw}i znO4#k%946Vjj)MPF5NZNba15=!AE#v^%cn@QKuAv+x5<%XUwDGV-43Crc){rSFNyW z-6HZYY=|jK~cg?a!r;<+}3QaK2>MRoV5nar_6q%Jg##7t# zg)-#bC9#nrCI_XWw`H`iVR|ErJ->fn$x;ok;stsG-7g2``kuyDXcyAVXdaq-3if0A zd4|T})L0-G;Aajvh1Y0DuM6IwAP)Q&J%a-@f3t(!?WY*1>|l`Qp|x@_9OS$3Hp{`0 z-9;f7$t?b^WpsCOG&q)h8r$_bo-KYtu!C_5IT1{DF;xzZcQH+iE>3h&oG*8Aa{dVw zki!g(3mBzw93CbxhDj7LMMY0z9w+Eepooh&iB-~Jos_sm8r&llz9u4$A%m%UHA)x}R01>6xPn?N6#r9a^G32v&ERb06 z0elqVj1v;I4GX-O`_Mi2oO^wL{r>Tjh#t}%pXzkWqZ)0y=XR5JnzYNvE3#ON@sWuc zt@lsFN5Nx}M*Pqkl}3*lHO4v-DuwezrOG~IRPF5z8PyK-STbt$RVv>U$w->_ViY5@ z-q)dshr%cq&yzKKta3)YAL@ih@igNiQ(TM_mGV%h6BY46F^X0AO2ral4$2(pgIwC9 zrNmC}yhf+y@@r|2^>`qRNTihpTtRdS+3xL~hhl#8e=(oX1LCjmAL_z{(#c`eU7_uP z+ZChDcSUMdB8Mth825RaYAdYLDHJ^FYZLK2bDNwvVV|`5;KsFbYPndH^4YY7DS;UJ zMZ7ArJ4K`*)^9D|VQ-rg0P^<*TqpQ?L%5~j>bzki( zRX)SwZt%_&brE$|@>kFDyAACAgWqjp!M}#?9&N1Rub$<ldQCBDhQSgB;a9fn|foM`g#3quMA_feIewucNWpKOOOs9Z9%P%!C z(I4QCGTzx1Ert((*bg&vXLimx_uSk0@$>6<0CRYn#d%C-a6O9~xS7VS3~pyJg=st7 zv4fkW59v3Uvr!?9Vj44P++|2TQ=u{o4E=6logq<S`=<6pKr+O@@}mh2PFa)o>z`^b6GSR zD)i}c*{wv{=go$ucuR}A+>7)_z9*}^DfMn3%>k4M!^jAuqL5pNRq3my(Vt3IcSd(3 zhUfo^$Bl&ahYlWL z&cS25n#U7{>El)A5bR2IN7f9(i<8%-*O!)-nqlGOAic#Ula;mfBz2w$h;GS!e@1p3WYYO3 z5Ok_8_7{C>{w4R-nQ+is<91$jl&dini;uo;b@o}EURJ=KW5n4N) z4={=g6fun9B7xY;8cA9K#hH9x8~urINNo1!lWT3H5^bb=;>;)p+BmoIhhc&^=#`A6 sj3AFm!k;4S0-;;hu?}*Vl{jz-kOKFW$7J_5c6? literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/constant/BussinessTypeUtils.class b/api-admin/target/classes/com/glxp/api/admin/constant/BussinessTypeUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..cca5b1333432ff294dbfee65e0e49dde317ca665 GIT binary patch literal 2102 zcma)->r)$L6vm%T3V8|Pw&BuZr5CUUR8qCIRVbBl6}s3&pCVE-+SKh=RaG2 z05}EBj}tiO!+;+i>v>+_O*NQ{XLuw*_wap!hH+p}Jp7Y36_gZ>W1( z!hzv*T$Rue(NgNQ?BblNPbzasdgMqtrX;5oU9;?h^ME<884^xLV(GtYoyX z5?|C(;aEClm`chF4`mI5)eK{DDWguATGHraxrAz33&j=Ikwe{)o60REoMluvq8TP5 zt4yYGv9WTgwX`S375eHbi|u#pq>@U6qo%H<5`6-|3n1>i;{_A5CZVn0i684zaEBEP5^A0X&J2gkTZ= zpsp)R)(J=mJ?e0W3#V+IEe~*9Psg({bw<(E(R9{OFQt5l1rP@pgX3&uUNQErlG}vJ z14!-3VB}yj$!Rl7BjvKlu`HVlj;My2)|YnkZEyRCrmHctqKv)BI`5|Sh0=_s;dwPy z=Bu^t!i1VhDlxWiTZOkt@JG#bY{5?A9->N8HA)LM@Bi|qBH~fSn72nKu)X%}Ut2%s zKDv|J`qGDY0!Uz9Lg4S!)t!x>9JggIFYjy=qG;~i`!N66-SXAdE!MDt*Ov3YtmIsC zdwqlPyXMZrwcO^NT{Hjb@A>bSU9)EUyOsRL$W`}I?ZHfs>~n>1MU5-`uBdfIz!i0_sCPw!D;izV zd>naLCLu>YE|ZZXJ7iLF>Cn0TSCn8ytqs3B~t9O+4cVm##T22 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/constant/ConstantStatus.class b/api-admin/target/classes/com/glxp/api/admin/constant/ConstantStatus.class new file mode 100644 index 0000000000000000000000000000000000000000..66e611a7a072b887a34283914c9d8e1a6c8ad3f9 GIT binary patch literal 1041 zcma)4U2hUW6g^Wu7I0}PwAK1uKLKmk)~eMKO|u0hA~Y;CzLABlxXrROur&S^e}?fv zS2z&1)LWROpxfMOC0c)+mE@Q`7H!C-jA zu*tB+@R(tn;R(Z24bL>}2rM<4`{icGYVEb!R_CDEFw2%DkgFZrr?%nQe&4A2fzx+J zy8_vnWb;kgd@HaxBUbjRwZBib+GcpFN|lA3shT;js`>>bmERvUnypT|E-eFFHgkh-K*x35(C}Qx3+(DxL{>+RVToaxVTIu$!zG4QhRY0B7_Ks0 zLsp>p|4j;H&aS`FJ$8Bl&HGFWUxa{mYI_r>@j+lEUoHIO&0vilTZSGkH%8slYLyL0 zCJ&OyhGcRgnaoHgKa$CkWO5~$j7cVMlF1(N90U)G@FqnDu^^5Wzd?MF+iQezDMoOM z*1Af-ZQP+KfxFY<&vFN7N55n4DC{jfMVi_sO>Bp}y`r58-Sa!TW`TQDGl%i_@% literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/constant/ConstantType.class b/api-admin/target/classes/com/glxp/api/admin/constant/ConstantType.class new file mode 100644 index 0000000000000000000000000000000000000000..9e50edade482c9a19d048dcadfeaf63851d0a0f9 GIT binary patch literal 1065 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 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/controller/auth/AuthPermissionRuleController.class b/api-admin/target/classes/com/glxp/api/admin/controller/auth/AuthPermissionRuleController.class new file mode 100644 index 0000000000000000000000000000000000000000..8f3c9a509f045a3dd276b7dff10cca64f34f648e GIT binary patch literal 4981 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 E1sTjvN&o-= literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/controller/auth/LoginController.class b/api-admin/target/classes/com/glxp/api/admin/controller/auth/LoginController.class new file mode 100644 index 0000000000000000000000000000000000000000..97ec6890ede8a7e6c2dc6cc3ceef38027fd44daa GIT binary patch literal 6935 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 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/controller/basic/BasicUnitMaintainController.class b/api-admin/target/classes/com/glxp/api/admin/controller/basic/BasicUnitMaintainController.class new file mode 100644 index 0000000000000000000000000000000000000000..3076ed168d5023f17df14741699e3e11bb106d46 GIT binary patch literal 11380 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 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/controller/basic/BussinessTypeController.class b/api-admin/target/classes/com/glxp/api/admin/controller/basic/BussinessTypeController.class new file mode 100644 index 0000000000000000000000000000000000000000..9de1144249ef6901b6e4c08b5b6e5c39011c8bf4 GIT binary patch literal 4650 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 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/controller/basic/UdiRelevanceController.class b/api-admin/target/classes/com/glxp/api/admin/controller/basic/UdiRelevanceController.class new file mode 100644 index 0000000000000000000000000000000000000000..b89b73d856c2795de749f08a4a25574991d1cc0d GIT binary patch literal 10686 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 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/controller/info/CompanyController.class b/api-admin/target/classes/com/glxp/api/admin/controller/info/CompanyController.class new file mode 100644 index 0000000000000000000000000000000000000000..f57dcdda8e6e2809e2aa9925b016f92639c25162 GIT binary patch literal 1972 zcmb7F&vO%H7=FGa?S^D2G-v@8sZ}v;u?t!dDWJ3h)0xyVjpl%-FPksvLb4n8M@x^~ z98VrRd2u{?QJitcw8O~FgMUY?|A0rw@%c7ONjg=+VfX#M_j`Xm?>_IhzyGuID}Z_2 z${~-lhmgbDdCbAe;T+EA@DAS1VqR}9X!XS`-ZOB?!21GYw%2M)cdM-Y4aZgj=StLA zjpqHfCEJcAYc0pMg5Ig+xOLB38t_;UIJp+Nq0>?oCvd7wb=`HnP==1@1_Cda?#c~$ z-;#SuYfS}S%#v4Q2}eqft3HleRpoyo8Bm~5@@(0xNZ--> zM41WK9cH+AP{Fq6hQ8NqDu1Bnr9Cy1k2O@7U|A+EfnsrbFcv$}@?6VTfwd?D#lqVJ zr3*jIBi*(e1Rib)%ndsBx~Ag8fdYE=IzTy;_PrI^j=>nXEHGd4{Du{@eaCIoec4i* zo`28UR8_0$xV8Qc-clhw+q7e(kqz05*rVgtru5ai7X_-9GAWU{T3*emZzWg-D#hok zcId8%s(`p7aCAk5>t5}))F?vb^DA8#8r*F!=tFmEKdOCLrUtpUmvVrF!zW);pGPVP z7rojRTbnD#M7`-~4o)Qfd&;3XO>KcoLqj8h$harWTrhDI<0ecTHo(mlTs3gb#0U7$ zz;zRgSR(Vgj~;Y8-*g{;xBKA7ZfEDu?{`dmgc~L%aZ|wTKK^0%>+RhyzWU?KZ%HA3 z^Zm2?%u(R?(m<@HbQ{)c^{%o*fwKoh`cFQS{|A`=&!r)duanbBM|tV&pS))e(3ydZ z+~`S-LZ_+km#7(5RzKy2%rk<>wpGB@|>CgS-xX+^;>aicbob%5+!*}o+e+zm3CInKNbChG;jZz+=OjDAM zd>6R0Cago9?zO^xE{sP}-&j2rCf;-+nI6*7z+@efTo}T#`scobMO0&Nq zJKI6#;kfv#gOS2$2gXC1q~ov!WVoJSeaBhT3F=;oQ%v;2Bq?%~Cwao33azscf8&^e zS7H=n)Slw=>SquEPIEO$yqUP1GNYvFF|Ny*-9|QrtA#_l7%F?Xa&e+bwr46%JlS(d x64NzFoM#87@H(yEpzjEOeH6NjI{%w{`On}j>I~h&A{Qx4$M2cgRQGTe_!kKEFIE5m literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/controller/info/SetupController.class b/api-admin/target/classes/com/glxp/api/admin/controller/info/SetupController.class new file mode 100644 index 0000000000000000000000000000000000000000..c1541e2a0e367a32fa5b0be2f1698d789050ad10 GIT binary patch literal 2220 zcma)7OH&+G6#niE(8JIWz&M6PG?ItILmFeEF~mo}B#sV&Vj@~vWmPkCXVOVe_oN>r zEVHv*xo~f}bc0EirG%;^yDa=2Nc;gVEz9qA4`jdwXVLe09^d)yIj4XBXX7z|vslQY z7n4~SnCga(H+ygfZ)JILE{nJEP6p@I=G`nVU`pLhXK+!&dm7#s(0v(%jgs_Mtg;lC zESBB6QM2zh46|VwW~FX9h9BP=mQ!_&Qj7ewz|dmo1Xf)xS-!Pw%S(>q24-NnjxTVm zc+*@l?;7ULp|L1^H}uMqnq3zy#|j7`ogZBi=$LgY1aPQmIr3UqUzXl=lLiF_i*DJp zmrT!6`{rRsaKoa9vq^Bvt`m5!ZA-5O@$AkaUH8>wFzePErn6dLOafozlMH$Cc5LB_ zWe3uWB43oZL+J<8qq`NzTHSRFPx{7;=}U&$AO$MS!RmjM1*Udu$21@0PM{}xsLLcf zSQVH^G9aVNmY`#4g6J&;X8G2f*@)=V@PR=8oD6Qbl?Br?>ypt$Y`R{}@Ee}x)T-+E zj_chr?#N|h*>Wna&v;b^G}fRTjd!k?cBr1t2rE|XJ;F-2b+=+wSDRD|Tu-EVKiF+k ze6H9o?giIx0iN3f*off@jOWZ0%t zGv=3X%5oqumSAU}Bw$BM5I&$%n2t=oLWK<_Ur>EzB0+!Oh9=NmWvWMyBJg!$x*p(s zZ&!%xdY{mk3a58r<3{z6FtBXZCqp|}n*WR&R;K2M<+Aj-x{!~WYAd08y*BM6^rC_1 zZ&7dpS(6@3N7XxD708jW7UN9`Rp8R|T#C-M`rf{7(I^F~bF>eqC$6_9+eRYW`;j;L zC0^sdu9rVRfs{&g&i&kVaUS5D=FD2)c$hnbv*6r0_8Y_lE>d`rqY?(ia~$>AU*yN9VyIBJVj<=9i8_F#9!;^8r0U2xlh4#WITsX zu8(jWBC?}2b&RXw$l3AOVAB~*^X_Fj?Wg82UZKNRshffL8$%k7Gge~fAC;2|vX7!8 z{7!rY;o~G%r*Ik_5!yv6rzn$CXuF$evnhN&*rTBGCXT%?f-pjOCus9z1S=P7?!d}L hV8pij;THF=@3_xnl;@fvcr3C$9*q+bQpNBaz`p>seF6Xg literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/controller/info/SystemParamConfigController.class b/api-admin/target/classes/com/glxp/api/admin/controller/info/SystemParamConfigController.class new file mode 100644 index 0000000000000000000000000000000000000000..3a8d5d38bb1bb3a1bd13068f2941f842ec1ca8f2 GIT binary patch literal 7031 zcmcIpd3+S*8GgRaCKEOjh*80SB0_+K1O_dlB?u-+B(OP5Vk~&zWOtH`?CvZ(v%&PX zr?s}Vtv$4dz3pky+CYS=y<2PV+WW5B%i8<0YWsXMv&n3BV%DF({*j&ej`w=r<9ol! zeNWzXH-Jqd62qAoufZW)y#Nzr!1OKR{^ysQR`@bY>R zzPbk2<25n77O#_UHz;_$f;Yrahc_y?F@}1K%fXvscr)H2hi{cXH%Xp1OP+6&?B1^6 z9WgAETi=OWt&O-<{(MmWe5e{9j^QKts2p4) zcYmxJw<-8|3>z@6;IM+*1x~RiY{y9V={Y^U!^(`9qXR~6+)Nk(TjB{Tt&OIx&T4wr z)bwQ9%xJc^s+pM)OBf=^IPYvlgQ;z+~ zs553#!uesUC#;NuiW0f-w&cUPKIG8tVr!8*fMm0N| zGc%(jgw{A@xYo`Q5FQk5+bE^09A?t#;mK9N$mO+f9$cQ0qRB8TrD78GV(>!clxail zfTJf4bn96^dF#3jXUs~vwa9Rc925DhFiiq=qdo78_2+~2g*aC-&+@DgezGuZn1LG8 zpVdwC(t1;9j2|+FHJJ>-%5pA(1{p*}RqqtP>II6xkgNw} zyRw*c8h|4D8rw)238!OXk1-*zq$GvBKodAO46<@URA9N5Pnw6)wzRT_vfagTy~ReTzs zQE?WYrQowFK8Me%_yWEtP}gBuj_u_1tXHn>MOFAx9lp%ReRZ%@d^C0)Wg@_@X&R)2%H@% zX}*XS*cL*^1G3!ym{H)mGNormwcg>YcrFRFhJ|I|v@2?P1s06y_Rd_+lE*w-{e1$B zMM`lXn_wf8=YhmXW}m#1?*b?EwfDDo?;qOP-_^Nye`k9zkTG(JP%Y=V_%O+B!*M$pc6Uym zDo2~T_`i6^b zG5iDnq=T9QNO}=pU>QgP?%s%h(M#+YQ|!`CFJe5B&m`m(SnKp(sKb&Ot%~F_C(?SB zsQGeT%}N;rttz4?>t!XZcgWjs!f{is%CWr5*7719eJ0a8$wx_eWC9z5%9QL32DXoo zz==T;DX>k(LNzmEkRJq6ZtCwYoD43KaVs-Qp-jNM(K{kJ><)64%T%hGQRZ_fh?u5! zMJU|h8K~I#M1uLpE-=)IMPWX7I@C~SH?H0OyROg|&rHRG+y}hOo|SA~u$FPs(85(= zm1fw`GfY(e`t@L8!pctcf2|i)=u-$y>eK>>F`%Hep6^O{jm(NWcRq=VY|6~Kr(YYLHdh`Wbf)ln>9z*@!BRFwORYO%n zCUWBpQJ2INvqXMmstPLNj(_2QHw2omh{Ze2bFPDvmCs@q4k9Ji3VKZgN}4 zHE;i(>HYEP{oT|1d$_-s`zs(C$P5yZ?R>QJPkLwx0_u*2S_EZKgq^>h|T{f>>m*WaA(ik5Rz5yL`+I0-e7&52! zw9ur}q>&7@R-o*cayu{&`3QLH$86lci5@vL2mYQFEHwOzC}&a~-f2=y{t`j{RU z5z|4}`c0nXY3n<%A6L>6YU5jf25CL(&*FbXbPN+Oi9-yLh9}UdAR!9=-p}a}eq!gLL$GK9$XWY-Tl@VOhGKp0;l7a2fx-b2$V53algo8;HSXTH1yr zlVZe0Y6bOJ$~d`-YZ0l@G-h!hGl`0dipQ~8!GY*wL`ddArQmW&4x|E@q}`x*&jW%` z7n27HMM(4a@F|5YI))82R*SD|VFa{DKYO)op^Hu{y}cf_)LTaMVvht_S_ZBtIEWlQ r;A@kulhws`Svb?xGtco8{EKnpfAC*C&aim}$Fe}al0vR!`d#-wCBQR{ literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/controller/inout/OrderController.class b/api-admin/target/classes/com/glxp/api/admin/controller/inout/OrderController.class new file mode 100644 index 0000000000000000000000000000000000000000..5b967bc9d816c182837eade0ec730d315220136f GIT binary patch literal 15249 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 HbMk)yBBZ&= literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/controller/inout/OrderDetailController.class b/api-admin/target/classes/com/glxp/api/admin/controller/inout/OrderDetailController.class new file mode 100644 index 0000000000000000000000000000000000000000..2130f8a2712e2fa292c53ce7186dc4f929e4a8c5 GIT binary patch literal 14765 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 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/controller/inout/UdiTraceController.class b/api-admin/target/classes/com/glxp/api/admin/controller/inout/UdiTraceController.class new file mode 100644 index 0000000000000000000000000000000000000000..119b3136a8ea5860dfc36ea615322351c0bdaaec GIT binary patch literal 5558 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 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/controller/inout/utils/DataTransUtil.class b/api-admin/target/classes/com/glxp/api/admin/controller/inout/utils/DataTransUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..d2e49160d1176e52327306bf8dd60be8da061f8c GIT binary patch literal 2273 zcmbVNTUQ%Z6#h;UGPw+wh5)u)+9DMQfmA@+0%8j-iY8FyQlZ*9Bx4vFX5wVh)%xt8 z@TCvF^tHZFW7q2P!R3R$z(3&+XkDxIJ2MH8kmZB0&Ta2~_Wt&F_MZIt=GT`1rtvU> zv$!6Gf*W#LjA98lBe;cSx%*hbCn2mz&8Ja(hP0eA3RV@YMbL`tA>5Yh=W_ZY0u}3W z+K|(xf~^R;Jm+^5e5qhtAUJQBhO;2x9~s>e2rOASU7$T}nEGn@U{|*{wA}(Fv9y)d z3R{|O$a7T~aQ2Lnz_oPNI!NUUkBTX+Xr#2mNt2u6Hs-#m^MnzhPCe40z)I|eeI#<8mFXuZqySLG&7%~iDBk>tA)2#auStm zU9SwfO5*Bh^u;VoGD_IBknRP#>l1ritR*+paC`oAtOY`8U3awXgN#;mIpO=bud&1E z8Qs~la}Ebxkk71Z2Lin#)k2a@nDV5uo2cZwdU>8!@uhRb zZkRG!?{T#1{UzDmSw>}L2OY~RrGaLVjw~5W$$HlWE}!gxMxS+k?`6!(A>$~~?z%uV z0%U+at+c8?B4m=lJ`9-dAzrh0>+r~9P%9R7lb@3DW=(XehpH7Ip*Zr3#m|vIy=zZO zi*TvD%d}jRu920dtsE@qX5QIjXO@ZuLt@r)1k-gAOcm?s4ld#y{yNCN0EDc4&V4+k zxU#I#l6VgBGdDi;a}K&f1q0lxo&nC|0#9MO8ie1y{12^LDAN*u;9jBvpTHAra^n}M zARzDyS}F+o@EeqLER-3mAS|#tUO`0QM_l42DyURv1253J{Tywv_Cs_eISz3q^Yras z$-p6E&%`qZ3An%p5#nC{Mny41Xv5qsq77SU$2K}}A2Anng7%Au<6T+>IOcE(?=g{K zT;&)daKgq2Wxyy$Hzl4`!cAA|5|oc|#NmH~2?a?7;|eBTBk_u9r>JQWGy^Vk`0zft znZy)#lGrt_lGr%8Ig>a<=MzK{GQGH$j^9nEjZDhmQS=b_*%N%n`HMb8odn>Ah}Ggv z^Bl$pn5n+O?_2|v%`ncC7boe(NxwiBIqlB)7y8Fu{)EotSpQ@NJwDv|!7rY^{X2P@ z*nT1zAd>Sekqdn1i%4>vB#qM~P*#H^wvULfkVro*2XPIv%=8@p=SZg{cBYD55-Y36 k(rRa8}w;KD8{ z;)*RQDj#yf8e7P^o2_Ql26O&OCR~E!%qk4D?c5g!#>RYUZH>WkxF04 z%-0J2o8bIGp+Bnh?>;i{a0F_Tr`9zgZQu!w;pR96;%BQG2P~}rq9;EVVDh~#GKHbklc&Ng| zd{o7y@)!>3c!W%kRJhDX)uKcVj{?MJ`1njdOQ6wyKAX=`_*{Im5XK0(pUUELKab^c z@;DFX;PIl_1fg-h3@7@yf-4oS^3fI6%1M5n%u@tmf_$4Q!)ke4;O7guT;XZ?Je_B# zJkw7)*C>3E%CiKlg;n`tAJ67X6rSUwh|r7hr9x`1K$i)0xjVBy%#*pG zKy?Cz1gaNE7pTF{joc(dLmt;CJYV53Q(jBGF*^>Rc-l3=g~76LFw$67n~WQg#XvZ7&l~WPv#_>j0Dp; z(?Zeavc~YDSXnS;lm+XXjYwH28cD{Z;jkVrGa}KJWLZnn2q(&_1)eP+nD-shT_lmB z_jEnk6s@lb#)HjzQjdd&ufYfdvc%gt#EWA>k1sSry3I~76SdaVSTA%vk~EU7Hujug zTyKiDB=kw{f1~+ZEGT_H=7bxMk5VIqr+-wca>mP;KrEF_|bAOv4NjzrhK^3 z5{{{~2Re1Zgb^y6?I6R-y{~nYvt?u|^CFPePu$hXeoO@}k*Z)a$fPCoWJ}B?Sl%!Lgt= z84S&z9*mh0uW&O;sKOB@HPRABIvB{SC7#jPBWW*L(&q2UTAtx`e4=YKI*~HQi<2vw z7b9z>sP1~j3f=-_bUMxzjv^)-_2i^@e0rjhY0{6kf~PJ%&_wiBM;gFjyC+e{Qf{aV zvK@*&X0E$nmLAp@1|uQeUDd5L4(-8mE*)X)8mt%@>JoMwF#3m(>9PvO&uxfDn^E?9 zfo6tw-%&z(Gzju5Q!rcO@2J|{D7m6JmO?QLnR`TDEUq^gix4QbjE>5l#YMNOt+(YS z{)k-lqA-3e_E_xgOvg9s5j`GE>L|*IWIUKiR_RGIOLzUBg_6f+=$O^o31`OZ^|&RM zW7RGO7%RJAp__n?WwYn&ttgE3rb<$voe#M%ZycX;F(GfQIs!9PhJ%TOjwtGzK_0bi zkcovT>!rtIrZ5hjQ9VSfCHtgKD?p z3p;VQ8`6*7yDUnPV!;xnm_sVhS%X`@*=w35BuC=GPjHksv&S9`B3)Pbu>K`p>-h#WYaRu~me9({ zE{bY=BQInc;;{@{cp@2$NOxxe7o%Z=7kpTy;d@n>1d{H>0!C_!e1_e`x3CjyzSW!n;f|-)cWihZ1eqVerQc-WWw)^@B~c4+6mgB!LVUbnPk z-Oi5H`#bjE({abHFWa{sUb^(qo^2hgwqgdSpe{tA4%2bnc$w2baS0!OFeUV!T5l6G z$wThiU|3JMVw;N~x5um(sSHUWS4})x-xAVYV$}%DLh;4AN50(eir=ROk=hhYbjLfq zdi9|_PdRGJ%Fc@SnHUb^0GRB)^3d)T2iH8_X=NwTGHBU)AJ>hRsk$KA#B9Vqc1XHf zxp?r?!ClKNKQRrcGU9qD`Q2o{dTPj=+ z-)j7b$hDC-X}p;q#a5#67Lji&Kc>+x+O6?6eq7@xc)LcQ((e?0QsW)`6v8}R*`@{) zP1x==-YIo(fz-EM8t+CC)=JLbWUWoW{=+vVY`v8`G=D(f9??{6#U~O9H(t&?^GHD$p+k zdV*im_<%sK%iJ3Ry(!RJ0=+HJJ7RoPzjygQjo%Ynz0W9SqdlZSneO@Sq?6h+>#jlc zqnk?`+BzE#^&s8V!&b21H1OTH1`avh?>n4@#c8h9xS$DQ55bWjJqZVTZ(&Z4)~Snf z+d40^bX(zuyu0iy4>g=+mUA;2P?cK2Xq=&CnMi=W`FDbew@$&y zI6$X`HX=zo?6YIiF^|cV%SP+IFtawLX(5#3t+i4eiyQ-(#>AAQS$g9!aWcCD^Ntj8 z9TgGmD-k1FR)gP!B$0@Euo(oTRGIlNmbQiNR5(2p?OHgkvs`D=uy0Hlg;BEo@KD-} z8W`2!l6h7T1>L$>&lpO*tBf^=lC8}l6n?C%jLKRoZ7YJwP?K2*@xdMBz<+SET+!Rb zaWc+tg`hMyykODdP`oY}7ivX7unrC&+8hf;koCQRby;X}T~pKIx?l`%OWcVq$tEjz zB-5ufF0$uE(%P5~Vue<+I+qTp6h%U6(V|2hs3cnJTN6llDT5VFi_O_Ym`=fOA6MWv znK&WK0U1vfFpkW4-i*mFaeT%Vi9N z(H(TB#VG4Dh?S42Ri(pIl+#AJSyY}A$T>g-0gUpP9w6Va;UiL{>~1G@?q13-&vk%2 z;PG@D?_sXYK1b=R*u%|qTOg;e(nh{4dWrnyYCuhqR@^H^h4+J^jC$|3=8DX@!QihI zTkwE(Dh8`QB2tQuEAER&iu#%O#~1fE@p}jI0%{utvS`jW8X%O8FCJiiDG1~`Usfu- z?N~&}?4uLPm4K3>6JLiJb_eoIhkPzMC-i;b5?u$WKmhLC9{Q}*JM zAT((HL=-sLf<+n8ql}sI-8!RbLa&+m)@o^^bv4Bp>gyjg7a${Pk*3^%v8YzRLO-j zi3ieT9!XPp6n^PkK^Jf}P2(`l;1%E?(bRxgokuNn7u}6upG^1CJ+zJ#(0c^%&j2BG zoLB>NAFY>|26R7GAc6rsKo26wG;XC0^bqtb<;&<{K)LvnfQvxqAR4#!_f z7tmEyOIK3}4%MlSuBUpG8Xc}}piR_BkKzw3_EXq&`*;|;FT(9{dICN!OxNURVKHHuxCPgEmRqtycuVxOn}&r0 zP&J&Y;Mjg-ruE7^QATB=SkCQA<%~>}Gd-!Cm5E}xsVkMynJ88qbVWHk6XhIFM(1Xt zjPXSIX(md!C(77NlyROY=VhXd_e7bHiDH%Qt{R3u>meZ>1f5>%wlS%>*zzo=kMqS`U~BNg0+PE(^4Kp%XlpQ z#$^hv;HzjQUqh>S8QsKdacR8;@$YVb-0s9CAS*Vdbo3(a)Pd=L&Xy?g$8srT#U4m! zqt+4KGGZT9l;@Pnj#i0nF*lI=IyJUa)!bowD0?qW3ZMi`F3$_(9iS<)QB0BD^1M<3 zr(#=5FKnl3Y-bn91{BCm(S<3R7Et!l^c2k)9>5+s)7-?gcB%o|MZyRXKP!;Ck7{L* z-WIIcg+wehKy`QnO%Y+dlNEU ztTYP>&cep>G(Ce7emdZvn`IbEJC*~qhn_XF`W8yjUP(vH?L*&_4gM>r4NwlGXhqd% zN15J;@6ym%)Sd&5*u03czNMH#&nxr-O7#&imQDl}c@JJG{OrRI(~Ia5vZeLO83U>s zx+Xumi!9acF1~fTj$E0#m`M!ZMza}eUL+8DNNF^bVWqICS)S)e*KvSG$?(zx)H|S> zP>SYmqoROnHX)boqsuXoZW*>6d(z>Q*G^Z!Ay>k0=mvx(=(#KbnJjC{^8@)Qx~kj< z@A}&4YH4_C%KZWV0Xi{|AMmGWUW$T(Bky@OL*NGT+o&!Z{mZc@B?{1%wo!d2F0+K6 z$we>Ee})?DOe=0gipgs9wJ(u@LGd;A3|i+Dh0$cBs2Lp+a4=)HNyoN3nyF$iQ3#^j z3at^yR>;>*5hxxNB?3O^mZF#iEl5$^f)Xi8T2M=h7Fv+#m!fMi$jNp(KeGc`WPNW< z(P9g_E=AW{&ZAVrC-ijEH!bIz=^Zm+*YFa0m);`?8*C0sRumCU{mywh=bPmT&X_5C;N_*K;l}NoR}KuUuZgws~zpQOPlr z{RS%dhE6e?vX8!@ap=jA^#y;U{3B8Y2ACf{R_LQ|X{uQcq$nIiSymPL2ZjDoq2DO< zTN6v#It8}GpKumn!4bOj8!EC0AECRB;moR9Ff)*^?~hLa=a`fjVZXpZfiWS!)>elb!sz&9K}c`iQW3_rw(4Q%8s+D* zF>I!_Yo%F8uOt7;G(78`a9Ovm6D#w&5ptu2Tz1-u*4f~lG0F>V-4MhOwCTm%OWWT^ z@x**ZC?DP6TXm=7mczf#XKVQ)E2PK>7ysQsn8Y!{NV^iVX06(QBP9F@@ep60&zUoc gEd$xBLR*i1ePrc838sX7)IJb8d&X$JpehE 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 xe|3q17M!Pu@MSgBb$n(~VDIzZ;*%U2d$#XWXd6 z0XcEE9J@#MKI_K4xX*?A<)(u!JRk=@r{F<1CgSt*sUp{`I;D?gXkK9;-9~a>n{6zMCs^DjCRO9C^{6fJm z-M9cZ%g3+eieF0-zmbpMD)^m(-z)fofZ7lY>XEvDW}3PwP#E`Lo+uLeIj9_<-fTtxIw2WT8-7t;LfW9gi3|X3Ggo50>xG@yz_L^b2v@4?Z>N`V` z?cPpZ3!2_8&1Z!oeO@iG!P~9{qB=?D?~omV3A3(lt7~jt-O*a#(q7-v(bm#<4M(GX zqeTzsJG7urZ`C6^3?J7nZS;kDz1@LbVXqc8yqdq)2zpIt*4wF>hR@qJavzzM+K1Ye zDo2ZMhN2Ol6s2If5j3n70=eZC?E-mqAwQXoZ8U;j`~QrIoP8G{dI{26r-?Px13>tJ>}Wx zMf5A<$8;869MvOzE&7#F-Lz`5+JRa&{I;pQwMNiS8}Z=LfK^kG&VY*T4F$as-SpOK zrp`rST32dE;Q=H52EV|>RHMXK2rNpck4n%QPrLNe5FuY&w0AyFn(7m38XF3(BOx3mu#6!aOzcB&fO5L%7`A5#OimA{zHmIG_N0qFisF{1uZkbe^lsF;^;V-d z97uTas7qrWn$4msYF1F(`ji7mEBtSi1eT=Gp(2*2STP2&DI?9D+jO60^B>b{X};~; zVWW+LKiVMvtc~N(DLAg+1apRhVFk}KJ1BU8$$-wYLAQEB{*BTQx}`@(h3TDor&roL z6&cs+78!;eY zyN^G4_weqAhW9`C{L#mTZ@Bm6$9I#k$YJ>~eEWgn+xE1rZg~E{ZdK&s6@l@|NMEO! zJ@g=oD)Lm3FK0nVRYieN2>hLzn|8nKevp)ClEpXr;1`RR$!X#&n$al zDJBI#RWXiw6XR7;A|^1mXQ?_)Bel<3AT=>jV5X$QeB7yZYAlURYn#cGOSEJO<6Wa` zRy3k3Vv;H*izx!L(zuQSf~uG*JOUMIYm-4X5(-r@O_UNZRB?uwPS8-rnRrPRWs=H* zQK*cLk}5W!Nfk4sw$4(;*s2YvVsR|Q;6p+3I*$VQ}3c)mi9ndDUCxwt%kD-_x zXdonOj5U@QSwzb`Rz}IiSnbiw`bZ=sa}w+At)n=)&ImWX1V7fQ_3RU1Hm+(}wV{J| zgoZU+I@YXeY!t{|VrA|n`j264y~fZ3ew(#GRe42L1WwUXayj=`yn{-Uizz61t=79V zO1?oiO;#gJW#pIii^RQZcA5tHB5QEFT5?X_-rUCekDAKYrOE`Z$ha58wv0IONM;#{ zIJPk|vfg)7e5PFI5|l2W11z?Di7Xovu)x_Ru=3p&0hyjsZwCZ*Ed|&VzjLUjZZVT` zG0~k_JR5c1+2kHONi>C+9k?fvG2)rYzR)%VExlW(9u@oc+1$k{w7enJG_e&FV?!#d z`0)Rs*CL82Yb8gqd1Onu)wtYF1y#VSoF?s^cFtHmC}Slz9Az{vOBF3Pn<80!{m3DQ z;pTWnM?U1=Fe1ycaF@cS}gw3@&drPu#a*k+wB+-(W+DyjeSeFqq4x`h+^crcYGAZncri4uE67^Sy8LRH~lyOyerDV)kp`llqhKo`ym(i{UJO?W^Y( z&K&-;a)m$x--_6-=kFpDjeKPZ7Mmzw+su(%w!9|r*}^w3TUOx6uRIL#FgrPD2W?Vud+?;y=d2n;+=-ffD^1lNU9zibqc>?{&A3(vOIsH(Eut_!p za5Ys8;rz;~eiZh@U7hF28$zikuOCI#`Exw^{ZQv{ZcIOl4`S?i@!9~!mW&&~_(RFp z66dv)1Sbq(Vx??Jt4VGwB7virxMke9!naM*qLpCK-`Z4uRjH@c~$k#zk%f)8) zN}c)AqWD zvrEq9qaWo}1E`Q%IEuU)8CH@nz<5%m;(>0FoWNm%jqX``OSGL7N72rkN3jM&bkb+IYnX2OD%OhvTqGu-QOrQISkBsi zJz7KyHi-_jiEGg=_F}WxhfBnMY!&z5GI1X+r<5JyL0lmof@ZtsUKCT7Vr(JZe9BUR zt+cM9t0Mh(kA=pnD|)%2^+wOeR<980UEl z=PR%jMBhMBj{Hq|6BP<}l$Dj8t09x z8^}3Haq=@(LnwG3j}H{)P#>ItOvN;Mk4{ZVeMab6k eFGxco+ei7#!A{qho-+uuyKk1(U literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/controller/inventory/InvPrintController.class b/api-admin/target/classes/com/glxp/api/admin/controller/inventory/InvPrintController.class new file mode 100644 index 0000000000000000000000000000000000000000..557e2bcc865b4c129bbf556e92ab635f0a8b2ca2 GIT binary patch literal 11176 zcmd5?3w%^%c0VVtJDJ?@2!f6e$(F0e6-uu?XI@nw%cyo?VAL)EwvBZTHTfY&wb1zxf9~<&;I)3 z$GzwK?)lDl-sgPZBlAXNA$e?~v`(x1~`6jLkx zWeNR^{z{?0_EItZjY5Cxr4stF4F1kbe^37)!?W_}l_h<$tH3E(G@U>nZ$Kw^ApzuU5)d~+Q zd6L4D6`tayHP-k#Ks?n;bv#X==>p9VXr@5r0*w)9mOy@iW(#yZ1m_!s@i`?tm*;tS zz6=(4c_As=B)aTLRns zfz+hGQHw_tv7m;PWqM~Z@*TlNA>C7ISPIdnk zATwO+Ph^oB5m(Lh+aJ`fhgt+OEz3v@1vM%wiDl#CUFlWmLon{uoL-J->ML^qZ& zIL!3;R5w~NZL_~M5Z8nLrDo(2%w@8r$UG5(w)d(|P<=dL)EzaF;~bsGOF)3H-G)8u7=pxW6h8*MQUo ze-odw{5x|eruo^6E&skWhfJldnM^Rv`g}~o2JuwD)F4OG-F z{Am~QTVcgCAv>j}HqXkfLubPdxvFTW8*CJ}Ylan+Oml}U$_gz*k_kB_$e?W}3FIWE zQPD_8AQHMIp~bqLV3pln>W;*8y5=CQu8pk3QfCze7=bjs)}&_(#x%#B(&qk@gb61B zA&yK!nbajZ)Aq3Zndt^M>VwAs)8zxwze8@}Amnu9fPu;14lLL%YAR!W42ieQiqvo* z((Z3EB#%Nj%ZC!ams0T(vSx!LZFhV-^>Y4)@*GI5sq zA8-{#l&VLf3BzA)F8P9OUTQIxGW5(`hIZp=FoRiinTA;r;Ix`dyDuSjt=TL~4vmGh z*cUARFl1A+7jW{NYX_d?UXCQG{8kcAv^L;$(1E6osiY}$q}E0vT5MT35RXe2b)&m> zrFe+N9V&XnsT`9ss3AT|%{*`JY<6X3UG~1|6-=&&5i5PVZvw)jQ&!5g~*@+N^zKgEaZ3XU{bQ1o`7?A`ecUI)_qMTinqx; z9HKvg{V&IP&kXbQ;bWHMI;MrLdC08=gY}K{@=BGuXftY=%FDP~;Tn~f^9q$$a;?Iv zR9?+>3a?SQp4X}rB2D22m2crjrm?27b9UvR%S}wvTudU`l;%CV2UmF=uUEKPupV+!A^@_l^2N-y(v+z?pUeNP?l+wK{c`x73 ztX)=TxnFjrQ2DDO+>;{ieu2Iw&{G0EEzmOpeO(?0WcaMu^f`eJ!UHHwoeCdP`FXK{ z+WXp>-iMD`x>4zF+NAJdmEIQ<&rX?mD8~Kp%nqgs7eR)2uY!P2d*#~JyS1Q!s|y!; zwqgc5DrC{J4hLu-($*8h;RKPMsKwDXfLlJ4DVH53tOvc#VVe1Qu5)mZL4~i0#iDYa z#y!?;NM%|3VjvehS|rgKmn%cu0o4FT_t&trap{_t=9`Pswfta;%k_ zZyryzaLC-6sT{|WOYps1chIqZ+K`dKDE6w>+5+HwjTVoi05DyK{n9p09onY2iEc)j zC3*AO^|&j7rV2Gt8Pi?;`o3He58Q0X$FN0NJbj)kVfdbP4osH}rj`9T9_k&Ot*^|x zvQbm}^)Quk4eEiq*WuzBIT8M}%JFvdR8$v@v@5eq_L^1GVLIrVO&o0iV9Bv4Jsnyo7{kDkg; zW1JW=eZt9G;6Xu3sn@n4uN6ehS9Y}7#z9Lep3T1{&i$^gGB2Fm^pVcM_Dyg>T)zjI0zO=8v04={f*ti}2a9lV9*``M z#h~MJ$e<&@;0EVf(UL`?Vp$Zw&tN(3A+-oZzB=28mV|cy12vYri9dk#G``1(S|nfr zD6`(o(r&HAV87wutY_Uy*vE!>E|HNgLbx6YWn@HgqhBXbb zXebfXs&TD^35bz3A>LTCtxJ#D2&F*C9D6ZNnW+TG_4qx*GJt$q@7!&S$dJ)&rE!<+ z>PT6wPdbg(nAh%=!n9laY&G8lt~*dROs&Xa%)ADv>K4z>@*>C0LD{{-9`uxo#2`8x zaDIjzhT}uVxf?SoW|~{|a5!lGZY2sb&&k4*e5DoSxp6Oi$z2H z&QiBns<~An#`=0tS@vD0w{^KZ0Ol^RQ@NUPOGIm0dr_~2h8Do z*>BE^F^rQIQ<0iw*ll)98cMtXdD@MsultzXbVP6TWK2=n2SH9d|(na z%tk`WvLo=pj!Y)t{!~jpZlETTyVDN;aM#wW82h=qpH4 z=}8)vq~X58@+6J$VcE#zpjlw@F$I53Kr|cA>&ZuRXe`a8Ni?5k(E|KiNY%86R#An? z=Msw-n@?~>-E@!1djox$z5>Z6(M-CR?gQ7eXae0&+p)_6(A_}~K=}`1r*ZgZVLg<> zdN_sk2(WenE1%d$y8smDVGjazGEFuNyFH5kyKg6s(_{3wg@Q|K0HV4lpt}73Q`Ien z>Z%}OHB?sv(N;k8l@PiXGpq1#_5UN)?MWYejv?Ge!y-O#3g+1g$TUX>O>Y*#ed5;Qo71KL(b%k=8 zu7Qt^t?>9fJ|#)lCTZMh8jq<7n1ItxtSI&sze^EcaSu&mdY(c82|=&VYZJUhAd}$a ziV|N*lBNi$>yk9}0No(tX)>N}jwkrA1%49VzYq@quedOo8tGcK;=E^IW;&l4!d(-5zc zE$)G-&d^QtB<;ta{us2IzD7@x2ei8AX;3Z34*TgD`Z_6MQYTsg+0hEfiq^^aGoAzV zER0`CAJKDk5OKJI&YKZjh`lG85nKcgt~4W9F(Y_7u&lifVJ{2+A#(5^CI|l!>@Tt0 zLW=Jfbd^HSe@53TbXcJy3cYX<*`q|E-%#iq3VjnFQ(qK1s?cv*SOjgXyNJZ1xS|q$ zf^RwUMB3Sp!P#G=Zvj;jawSHRdrRT5bCNW-Y@TgOD=~Y4Mu-dr>Pjc)Qd^BuHzWzA ziNA!=%k*1NiV*(*s|)a6oimbVBx!zq`MY#wx$V~@C2}xWkVhMir6OygL{{0NEH4`? z7KKfUkym}lsAFM|8T1e`^dm?;yG(Y)I@sQ^I-pnRRa4&8w$;Z{IlX4)XvxP?d#st` z@B^`zm-1mRSn5cLquN(6?Vf_aJun5oOs`wY;PJLH4h^P^iub5^hJ<1zG_%+l+=#(- z&R~fhxMepXVDaH*yd1b9174f~BMHndTZ#wpkpLvl>t`V9tL!|r4BAeqH{UFU^Qjba z?uB~yLA_6+RPCoJ2&r-e(;S3J1w!OzgzIJ`qn&gZk{`jB7c$g-D5ds8W&nzt9kSKF zlg7|@5Mq{+i>Sb-s;Z;lXL2g|je!dOE^5E!ZQG&Xd@L=`sbEvuBvtoNjR?Hl_9si= zGSgR%LEsl5@Jn2N!FJ(rM*Cwd}kS9sEB&pGYnv%56g4QRg*@8AC=~iE{Q%ZooF{_l^<|~pqb-M)f z#Ydt3FGuD5(e;xY&4)p(B#9Vm{hsa2W2w;hOY&JM z`!kxZ&<`#66YBmL>C#Tn-v@E`Eb^m)PV&BMzHUjD=qky}eDv{|nu}*Czk~ literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/dao/auth/AuthAdminDao.class b/api-admin/target/classes/com/glxp/api/admin/dao/auth/AuthAdminDao.class new file mode 100644 index 0000000000000000000000000000000000000000..1c4e8a03722ce702878733132e10cad22e6c58a2 GIT binary patch literal 931 zcmb_aO-~y!5FJxULih-jj{@zv3WwGgZb3*vfP}O_N(2XPlkBiD+SnVfO`E^Qfgiw+ zLd%(&G?Pyy?J?kdIo?4_)&(vGJF@X606iT!@kljj7Y#~J?NUgjN*TZ z#6(HVLekPeqIW&nJvv|)m3+j!fhGZk}h>*Kp8XntoiAz=5~v+{kqRjKO4 z)YRHIbjoO+h@XM65sw*mdn8qd;Z))zL0({zkY$VN1tx@OKDfz6dGPX4%niKiJW$t_ z1h6wa^#J900bgLAPYZln5KziM{^p>U(GjfT87CXa!a$S+zWC4b~^n*BsiI Yg*IVplEw5~bvs|b!4CgR9NYzX1EWv^)c^nh literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/dao/auth/AuthPermissionDao.class b/api-admin/target/classes/com/glxp/api/admin/dao/auth/AuthPermissionDao.class new file mode 100644 index 0000000000000000000000000000000000000000..b864e1a61444fd4ca7e8b3575b7495fa7afd210c GIT binary patch literal 849 zcmbVKy-ve07(AEK@>@#F@5+E+055DsNJSM=r63TM7}(s#N{t*lavVfoje!T?p%7nM zAW+HxL+sf1`F!X5US6M`0i0mBitQ?P7;0Lj{(N*}wd{sn!?1S{+=~anGp{rc2y7ir zZ!pv^r61bxS~w9)FI~z|bz=(pTkNUG2%kC0Ag9?*CuCZfhzHh0t+OBer@_F+JkpN| z7m4B`jFsWic;!c2WPZroG+av;t29;C5Cg-?R~vrB|+Km2i8Rtn-~lwSAE(}xhM+wrAQL#D6pd$ z8Hd8o3Yc!DjvF`SSngH-UJiVPfuTgr43x_Zb12hlo>ub=6`HE_m9Rk2B9;nh`4d_p hXce^rTKk0R1g)b%7rYbZr%Gs!#|>=KTp@4^cmv%!^p*es literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/dao/auth/AuthPermissionRuleDao.class b/api-admin/target/classes/com/glxp/api/admin/dao/auth/AuthPermissionRuleDao.class new file mode 100644 index 0000000000000000000000000000000000000000..48d351227abf19129a68aadb6dd428b21dd7e8af GIT binary patch literal 1089 zcmbVL%We}f6g_U!gbc4fc%QbJV9~l>!=0c|0a%F=Kb1sT7<3l<|%BMQdwX^4iQN+T~DW5PjhGDzE0StTZUY&ea!ICMqe{N{yqjEBsV_(1w)Q zYcjnT?p0}RhTZdmES0LyI@c4UhSs_u0{Mv?d=NXIkom-PrnsIEoO4kZ@H3HR%9G_@ zFLA0A?k1a3ciNk3wJH;Qnp~)9Xfx35X&r%1iheQUTysV*WaUBtI3 zzJt4U>AioY_bIiBEh@ca*#-#O!GjulSV51P&|~!Ks@3wp)RAvf%BF(O zvrw*#Ff+=0Goo#L^|a)3!bS_L7dDVPDuRv}cR;6?ga~UdvBLP~_N7}tuKf?t+yXS9 z4_cdamp@gZJnou}o3*7RP~PTh)H?)9K_9{v1Qrmu+m8G*UXZz9bBX?~*}o!Kv;T!a zwy%A6$RC76Pb(YT_e@_014E$J^U<~me-@q?pkGR9!;H`h8-8JF*Fl5XaKxz?;I>Cu z6hOOdI^`~Ud$nU4Y^HaN0v5(WjAr$5Fy=#(BtRgBBMy*=6WD_|t`flt`;VU#J~2q6 wl!0s{?T1nhrTqG-gHQ@i6`&ZMDuvP^N@Y00+H199P?=Y&!ZCi6D4qa(1NqMR1^@s6 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/dao/auth/AuthRoleDao.class b/api-admin/target/classes/com/glxp/api/admin/dao/auth/AuthRoleDao.class new file mode 100644 index 0000000000000000000000000000000000000000..3926186322f0985523ab8056f039a32e72d6960a GIT binary patch literal 970 zcmb_bO>Yx15FM9vLjz4izo2{^p{<1QrMCc5stT#n7D6I%;O1n9jjN5l^?DKcYaI9i z{ZSQfUCOp)4+* zJ-b5CW(9D&R?x~=r$+hGp}GAJ&0jb1XXCYB+#I3*7Cg7Y_#hS}sMuY~@O_bB)zWID^@Ti{nJl#&yE6t>~hDNh8%6+tN+>oz5^= z@2dVt*;my&60|ca;n$o$=|WF39vEYxvbF{~zlg0%@iNtP#!^oZE~Kh2$P<<4uu9Nw zgEon>H{Sqyf2E#@V-fCx>p~-B|(A~3vzrauO zzz^U@8Q;tpRx-0kOOu)kcavAtI@v4+IZMe@%ThtWXk!@cK4h|EHkfTnFDqN&G(c) zOTsT~d8okS1Z@^r6Hx@s_H|^~XI2Ti{=XUR)zznr*Zyi!iJuB@XCK9^YU7mkl`aU{ zt4;HtfVaN`xYCl6RZz2}gicu+vR8*!pF=_WwRC^csm~*IrxFM^DujPTfGkuo)GEoA zw@O)KHj(Umt4-9&lb+JZiuh8Gdh~o^Rw;kvMU()yL=pQX3!23yN1BJ;2(|SeAkDTn}Qw-nz((YCC{(*{m zoTkd6qz^Uw6ml|Y*uajRDYmF+_wnEyjc5u&yRo-K%^5+{G=ozErv?TDzZPtYp1?Ir zZG`@IJte}`T=nW1Js(HCD5B}U~CE42DR5Zr4;GVAmT|0dqP GCi(@008sA$ literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/dao/basic/BussinessTypeDao.class b/api-admin/target/classes/com/glxp/api/admin/dao/basic/BussinessTypeDao.class new file mode 100644 index 0000000000000000000000000000000000000000..c1df76cc8436e6882f348d92aa8a901308f186f5 GIT binary patch literal 865 zcmb_aO>fgc5S=agAR*9{5NJ3ef!ag6mmVqwAvG#UNQtN#)I)D$dvK?+*Us)bB6ofj z2YvuQs_NLSs7!-;;V@e5e7raFW`1A&`~?69FlxiAHf$^Ce&fWGowD-^W;@d`OLd%l z&o$<(F-qBJOAE1(IQM!|ILC&Z`?|{MQ&oCOi-MdV?@ljqiMsHd=n`(Mpg$vjkwqtH zF(qMf3SI~QL{QL~b8OHTmK6N>pS`?aHy0Vtex(C+9M%W>SVhJkWP|}5N7mQoR&cns zxd#Dv&jqk1zzvgli#$S4f6;U!N<_EG>T{%ExN{?Lf+p5;Z`s7-5^#eh_~x{bo>Mww z$3a4W6hAU1^XNGdq>vSK=UHLHa?SD?)_Oa} zY`E8hM)>Xl!Wrf{Sz+8;b9NDC>vki|a#+==RZ4sbE-Caa1)_wUHbA4H;1M+B z*OXsVK}(*t*ake7PzSn_dK-Eo=?Z%HT~FcJ9l)j(_r-c8$(Go22b&TeRG=?lC~r&L HF9EIr3ef`% literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/dao/basic/UdiInfoDao.class b/api-admin/target/classes/com/glxp/api/admin/dao/basic/UdiInfoDao.class new file mode 100644 index 0000000000000000000000000000000000000000..459325a0ab80e15be67366a44fdfcd4acff417f0 GIT binary patch literal 1407 zcmb_c+iuf95SHy~UJl(w`ltb}+gLZTO>N-3a5;eoe}y>Yj4)~UUY$glCh z2k=pdMZp!X7HkeR<9MB2X58I}5*%*P#r|;X&t0j0F#ka(PD~z^HXD&82655WW~n z6bKk?%#}*GjH+GbXkkKMG8+Gn>aX%TklH9SNt#HyJ)Oo5UqkN7KxzAE@(yB;JsV1n z_v4;ip&i~ezS0ib%o)uMi5V^FG~xC|h;l>uQ3a~+%5*SqwDycJ%F`IpZpZT-%w1TQ zlB+(#0T&s7Pg#Vfgs%33VD7b=@kF`QoYEQX9bxqU3GtM>=6f0=7T=|K7>wbzT> z1>Z2kgHP~i7`rpx7nU`b6iu!t>N5jIwB{^LN#IU?#r=Itv7V7Fj7*!V+0uo_k0xi> z!e-tip{5Y6X!$2H-dL^cg}x>6O<|YKB;Sefo=5v()SkD@oKyCGOqW<}9d{18M=ZN^2;T6p27_k@ba)5qN_(kv;+6CPL^A-Oc#zlz(r5-v;>p jBL4wB%sSc15xE84qghaHC&=*_C literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/dao/basic/UdiRelevanceDao.class b/api-admin/target/classes/com/glxp/api/admin/dao/basic/UdiRelevanceDao.class new file mode 100644 index 0000000000000000000000000000000000000000..5f6d9436836dfbac65755986431e1895abc86b63 GIT binary patch literal 1454 zcmb_c%Wl&^6ulGjpoyU+51_m$eM*SgAhAeQiHZW1Qh^f6qPvMbb*6G`*B(cNPh-Ic z@KK0k=j9|uVZp+(=gygX&bjxFfBpXPlZal^UWs-}w9BY^sT?hXb4#_QBL~7YC8Lx5 zmg)7m?R@jO@D&$UU%5Px*Ssr2W%BovGpFvQ*Ou3j40ZFMbtMLZM_M_&r4V4WaVB-o zvp$PJ^d(qAM)fIQ>MWzRje%2eM6pOF!w zD5gFho=3`Jw7oy_=m^*59UUmw&a$1467MLj41s?h2zfnRBp;?cf4K9i_&3RJ1tgTSCiujt7TQ{rNw4fV9fcfxxW zUo1wO^DUq2^zMpIp9$ZW0b2bsqk)$2GKLMrxWUPtPUihn_X<~`$O!$!KZK~9hZ)La zRlusisEAhyPmXS4Ywhn_Wvbxh_>?g{b&GD}+lU#~@oa=-AkQ7D&M0aCEP`qP)zhFx z2B-nhUAl*~W7_*f2yHHh9?-+pe2?hy%t0(_5Un=*p&K=7G{zhSMM2UR!NW=*Aqff0qPQf7+-hgq*^=3wvAaj~nxBzZG`fBYn(V|vx5mu=cn)VY)_7#E2TilT!k&PO`U zZVSzYXii3AwKLa<*hmrd7b~I1Vgur1Re52qOXEZLFuLL!)@6`PkGpjht@TV8=E*rb z9vP5$MLXsH8Yo)oOKLfk&M5l+h?AVwi83}wxYGmn63?jmP$jx=F#m>FZ(Nwxtmve6 zvU%+ezoFf<_6ZIAPfP}H-rapp6m1<$Ow8D(x*wd_v^%a`5F~dmN{lu#U&YHHGyhzD zYi%AlNN(ZpUX;5OZ^!Y_Xc^$M*L)AqRTZQ)Z#XOAbH{@|4ioxMb@UH04}JT2>0*Nw z0mC@T!mOYf9s6^1^tdRDgOH<|g-tlGc~}r*C95T^{5>07L3v9N{KY>( z)MzMrLJi!SxHT2EaI_H%w20IabpZXFdJ4FrWm>sMuLAiDu{`d$hFJHs3eW~Up94aA Pv!dCe7dTs}-6r}2s*DxK literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/dao/info/CompanyDao.class b/api-admin/target/classes/com/glxp/api/admin/dao/info/CompanyDao.class new file mode 100644 index 0000000000000000000000000000000000000000..3ba2281516eb22fce98660b31fa574d4d63bddac GIT binary patch literal 440 zcmb7=O-{ow5QU%n7icN%mJ3wv27|r3Iq}hc9X`DKIoH)mgohIG_GcVfG?0UZ}8i=>vH(DkxvEEXQav{rK=(+e-Pcv*|y% zwNKQYE|kD%i*LxCuIQBnP9E1B(5Po!>9|l=*1AAJJIm6Ox$`-1N6Au29W$;Z{SL?l zm8J5$+JrOgpCTpq=MHSi`5RMNkj>?Nyi!T%2?(_K(m=Z-&_)N~+C`6f#I!4LutA4= Rh=29D-@*V#T$}kJ@C^b!doch2 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/dao/info/ScheduledDao.class b/api-admin/target/classes/com/glxp/api/admin/dao/info/ScheduledDao.class new file mode 100644 index 0000000000000000000000000000000000000000..645f9355888e6e1bcc670e0d56ac901491ed0cee GIT binary patch literal 598 zcmaKp&rZTX5XNVbKZ+vYpMx)8;Nl+i#>qrIK{Swf@Z{1R%8+)qY_~*S&4Ul%Lm3Cu zmMHPkW`8^L%{Sk^f4sf{z!jX-;HU=20vZ!CdK64iXAx=v&z*i?V;M#-iBt(mrDHPE z;ap~#w9G4qIL|Qkz3#ShG@krYl9|||<8}>u0$Ky~Q>!18Q!#pUDWmkq!MCn}W^6T0 zmia&dms_p>-^I=S?h0VZTpbbdp*sWDqIRRmO-38=wtf%ev@{uk}T VK~dG<{t_InzfEZIzsi?wfKO&Cr``Yn literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/dao/info/SetupDao.class b/api-admin/target/classes/com/glxp/api/admin/dao/info/SetupDao.class new file mode 100644 index 0000000000000000000000000000000000000000..2c508ecc2447f50be36e024fb542fe603cc801c3 GIT binary patch literal 504 zcmZ`$%TB^T6g|VE2#BIP_r}P^*|=k6qOKqsNL;uu8QR-2q@5|#sgYlE;RpCp#!Df= zD6S^=S3+QyQ5 zWBunccxHaFK4@dhlQso8zg6o@ZRtYdV@RM^fw#(DE!3+LIGdE5HKQk8=vhiP##pbs zwuX~ljI2wz7ZuJ)>KVg@RJ#Q^R(Vd2uRPyVVx;VkLfDYYSX;_enM6L!78LqGK%mCo o1JoM=bu@Tx^3)Uv0ESvP*g@?I>imLOpv#mR4$fgc5S=Ye(v}j^LTL+yN=Tsg(&fM{fJFHa2p6ha;=pYaPu#8SwYy$N_{z`X zzz^U@A)XznCUPQ5#bFcq&CI@;H_!h0>-!HPdP=(;y5FG(f|k#7w#BguSW)<#-Bm)eXH=@*&f_*hvLze>zVhbN5U%=P!ZGc{H+cRG@u1|X<+#O^c+ zs$_O-GeKL~oO(3j>(D5dTQu?QKQ-}e)+}tCcEy}=-c-T<3$(v6(k5ukD=58kb2Eg! zOf!PkGLCrY4zVK$|53%zs5gau;6jkMH(5fYOelS4wF$A8E3+=8C0lj#!;>7s#Qa%j zdJyr&N?#h2IOTL=u-r#pVndil4NqC>0pLukIzd)d5Vkc|QH}{#@-$G64~zGKpy&Un zs;|a;;k_?{b{fw5BSTPk!i5%~c*)n+CS&Ua^=A@aW-t4o-E7cK9E9ooB)3C;t0RoM z-SE+Cl^m3B3}VyTPD%RsFOnXqG-V4-pUl{DpprQ*2RRH>y|9&6J`K)bueKmT3-~k; zbruC(qeVQm@YI4_C5W>?O9(B~3R3G3pzBR&m2T7*bWwa0XSF2h;jCrUMcq2xs;|0D b1ZblP-J#7oYpd#GyZXIL_we6FaEItOJjHiH literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/dao/inout/CodesDao.class b/api-admin/target/classes/com/glxp/api/admin/dao/inout/CodesDao.class new file mode 100644 index 0000000000000000000000000000000000000000..f063905b51a8f7325d521acfa6079cf0cf8a827d GIT binary patch literal 1803 zcmb_c+foxj5baHXKqOp5#3(96!o>^w!h=>QtK?QiRRD!js(c%En`EfX%rZL*n3|d1?sK|N_w29VKYjwh2CV1cZ4TZUP;j`XPnp8H^gT3SZ?$U4 zhFNoNT$8!nWOjoKQ{kn_h4i(VxPI|bHIMPqM^9JQsu%2vnZD+ZStY=V0aFL4>(c(r z6lPlNvLt-J%7d)19Fl$&-50DeryC3&2aqK2_VmZ`|W&4ko?%B!tvV zb18_eT$QRuy=PV(O@2mZ&t$2C8Ag#>!&l7lsbiz(T-aO9LutSW_jYf%?l(n)b&G0r zn5dciLSqdTkrX2EBW0u7w@KOPevB4!R|l4*Se!8ML@O?8y~Z&oTM(yr2)K{H2IQmU zwxvz73|Zlp_mC;89@z@MYcq{WH7h+*X_KK<4RtOr9Xkoj3%pJ*5$0DB=>FkOfPE;= zm27NF6I?s10%DukFjOs)sRZ9uVe zI6G!?`7bkhz+5++mvWDvm(67S=v$2R9>WI}&dkx-1zLK<00T1gZv+@0G9U{>bQ`AI zFpV{BIa(PQrB7p!C)fDX0{}9OLxCb<(?sGu2~%_)50Iy6J@jCLoM-w&KZ4nA=*RuN z=io`oT1;4<-eN5h>$7&}`2o)J=%w zkq{iLkw?G(nfb;apKtE~um|gPSgpevgL$b^H1=2rnBHNWFlcUjUGXfqvohkIOl@oD zoWa5c+Kvvcgb^`XG%16|i!j*HF2z%2rIkpz$y*sJVVyw+XQM{@p08sbMz0AMiR2=P zrQ(>s&A3$BS^hBOn6(ay+8Z~HL^0mWRJJ4R_i(6`w!%uSsPd+#O-R1N?;w|LN~c_W z3wZIW#i05uB1hd-{d{Bs5MV?D4FK5u*>?dX5-Q}LR$;HL*+;2@qwLZIXwHLT-jewY zK8+4{?a*X5_~bB$J4&0uav$uVl0mjz2Jo*1{<8%JQ@7d~AJ1e&>>7PqCqnP$a2Tu) zFKK8uTfgk)LL>U73n0wyWWnkd{#%a@pPUo$ouh{r%_XF96tq7a4e-fgJ-zZ04#XX;EpwZmCiiO|xNN zIwoHv8aF*{afWkGiV7Q8^Qq?oi6l*` zsB{e|2;YAch`cq{;6!RfIfuH?LM@ZFnl%qY% zslaAWa3zV`v05KY7fIE4JqFDO9{pZxb7tMhA{U%jX_Lrr2Bc;9lRaTJ_O9R32J9s^ zM{F$KYQTWGDC#oym>D2%?)u+bKNke|PSmgzII!JVcUybH!k$1z_TI%aq-ylcFXSA-;2H;fV zl@CxDGT;^r;c6IH!`SWk$>5WM+jukrSu_ogMgeducXey5zk~7qM-!0m(iV`ih)>R! zHi^%atF=u>jb;*zW>C`XRY`YXE_6PU0^j+3h@DME2)e)X=;m%5voIL5fS7x5zn5om zFlG@k58^yagE32pS&s9p492V=<{_+h6TF7@L0#AJsMP;x10G>VgeBkXpdMc-&nEhL Y0$Z5F(AcL)fvMly@D#skJbVW57eIg`?f?J) literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/dao/inout/OrderDetailDao.class b/api-admin/target/classes/com/glxp/api/admin/dao/inout/OrderDetailDao.class new file mode 100644 index 0000000000000000000000000000000000000000..85ab8e92e8736953a41994d9b3957f2334b89897 GIT binary patch literal 1927 zcmb_c-%k@k5S~RSKLxaa;x7a(6jAm;-ykL+C8=oxp@|PBJ}h@jJ8<2rcYB1!|I7#f z0RJfC?Dmef*TWjZ!{zRFX1;Ico0ezg>1|*W&DZ zB{DE0NXGfZ^EkjJTK^n|r7P47HnIYHM!2lBtjoYmjO{annUHuLO{$m80(>6SEu&e3 z3y|SN{Yx^n(`E{rs`*ji$V2pKSo8L{Gmi(t-!>QwmizajZynZ$tV30_TDH2ajGNFE zetZq~^OB<7?2k^*NsSx>5}R&ZfVoiy_h6L%#^`U1L5^PI^o+m+nI>V1%&}?u+B5_A z>3hb&%+fO#!ZbP0-;DF%X4Au7iu^w)@Yx15FMvUw+U?;2ql!S0}`mc-~+t{A+->sNGViA>VccH>u#oO?3LFWHGho* zKY$;Fc)LxS1S+8(Mz+WE-n{wv_4~(9B08cM0X+-oxuC`co9JZr!A4rp`N7~)O_fZP ziRI8cHgWe~&*31n6B#F0sZ=RT6;0SkZ9My#9I1>$*>ma8+wgm@ban-`PPHG~=u9~^ z(O$buP&F)51|#Le@nPLqq&^O@emUnW3#c?_TaXkps?rw}k4| zX0S$JeaNv?&J~o&4pd)ZA3aj>rZC=NYLIbgD%8Y z7@v)y&0VNJaRPnqzL_paKPvmC*bhPb>$6%L(d++==v1Ytc9@a8WsM?bC7UU>$-0?b z&y6uGxAV*BQipz15JY36iE33r8&t)shF85pn>Yg47OYc2TpiZP;J>*Bz}%y4I0{Tn z&<+t?P1*(3+||O*eOQGalvLYA$~jdF!R=N2!xFzokLEH!*#WkYu!`&8`*F#+Pfu_b IlAaR%0XK5_UjP6A literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/dao/inventory/InvOrderCheckDao.class b/api-admin/target/classes/com/glxp/api/admin/dao/inventory/InvOrderCheckDao.class new file mode 100644 index 0000000000000000000000000000000000000000..3a68d86f090d1852f3b5f73bf6b79a0fa6dde3fd GIT binary patch literal 847 zcmb_aO-~y!5FMxaXaa30Z3JDQiUUJq~o#F#%5j~FH~IcIOEiJ+TEd=D4BU3%dUn4=x6K)HvF!f8Zl^6 zK^u#N^KwD;o{o(2nPWlM|EY)FWuvh1+E3@x6q6t2?#|wy0oLeL$!Yb zDt(mpfdH;736sEl6)zlxwLo*Jw~FA=I!1F7@S3ep9w{^@!}uM2=Ciq~MPGmcP{AE7) z1N>3OvkS6Y*wlphFl^?|oO{o?_YA*&|M*Enujn98dwJToXuT^PBfOT;oy#*%Dr3>7 z!$wCBSkL+9GVV&o?SWLx6IZOwec55P7~zJ9rnm}(Z>mR)J|A)x80oNvL;%@Og}Ko7 z8Ta@=pp0)(B~dU5x2VvPJ;hDn35&k}Ck}7YqzGlC8BNs0%0EQm>M?k)b)~XTMxVj@ zowmWJb~qO2aMfci1KB<3O=;83xh+~&)114_02K$~T>7%@h-s7FDy0oKQY*A;uc5sj z#=tulg2^_*KI8EP7NNj6JLFCPqQx=urc<{q>Mz{I1(X#6TZUz8mzcX$zVJ-kTZ>+& za=E!(M_-Z3pIUP~Ad5<~+0m!X$$(<_h2V`DuoSrZarWv$CW*KOuFZ`|%3MVk>Z+^% zaxL1zf%8vB;XKM|E&|Pr#9?WiEP8}3%s&9tThhkw!93yUr6tXHTnz~oTRQMM0xuL+ zDA(06ruLre7a_``t?RzKX1D!+*zJ_NuJGWumnjahxn@!gF;nf0*lcx-GG_gy-4`8` zvk2nxheWiz1huq;T^75nMLB%(SefXkK*jiI1>xJ_3gN3*Yd)<2e}~qwncz!A2yM`2 z9J(8Y%5)EvCbufnD);A7R)F71;vYo#hx90>vYkR@8@R{GB0JL}Pv(m3AlFlzXK0t6 L;hO{9=R|)1YQUXb literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/entity/auth/AuthAdmin.class b/api-admin/target/classes/com/glxp/api/admin/entity/auth/AuthAdmin.class new file mode 100644 index 0000000000000000000000000000000000000000..ad8c3850127e46519b6bee05ca42aa8afb40dd9a GIT binary patch literal 6428 zcmcgv>z5o=5wANtkDi(CdF{^Zb`r>92Hos~L5M(l6C^ANF7Ad%LLm5}v)k-Wn4MW> zXOQ?p#V05b4WLmGUqmqqDA~xv2tM!}Kl@3)=wIMxk6`@Oy*=GMV<(wUo-?Oz-CMu< z-R`Fw8lf}1KoM7>77T;mBP z#vicwArt+GwI8#1mc>aHKVk7x7SFNx8H-aae$L_-?Dl+uUP#dI%#!37lyZ?9l{4d7-1A@1z0qFn6S+mCbJ zWezyzAm*_(6@tOB-U#p!(XZ8vGWiP% z;1{b4@E3BD!7ExW;k+X0S}SzJ+$i?|)oNBkgEgL0xZsli;41im2X~u+w_z~sL;jAz zWyR+A1((fV$V;~FZc$KN-HYnsgD2-cd~nIw-?A6(owrwIw?HqKtyEjE>$~}saYD=X z+Oldm=svSJ#C^BT&hN%4LytF|wRWwA#w3q0S@usWS@sV`FLxb4#-FM%r^~^3Di#&G ztb_*RlPvq8Fv{I;oGu4nO=~q&;h|0MZ?u~W&YmiF$&A(;##^+r|qm+Y?x-TgRT=ahNtPPtLpSwTGZ(#+O5+9YkTNso!-Y{ zmc=dfex2r6%+p?-Ze?vB8$Q6|HeUN2JtSz@zu(l`-Po?y7P+bn@4d#Vi#v6CgMP>2 z_h>qkqn(4`BAgA-BAgI%L{7*NX(2~sh8&R`azuW}5h)@^WQiP+C~`!uVBAQ8lMV8{m{l+e zjIr@EBwm!T8zAFyF+sba>k2?O(hO#Tvj?)<`6Y_H0Aqx1fK<-uP-i4ui1R?Nvk~fy zL=AC{_Bv-nosr-n&aqzSLZ~weBg8r0>pT?djDiYrPV_pLLY+~FAWoGc;;i>NUlQuPpAH}oIXx|m5zfc)iPIDb zPwtXJxXI1A%T*`ncKF2vCOJ$F(j8%x1N~BR0eh5JO3FLKDWm;Taxd^GuacC9!YO0@ zQgU1ID6f{3chLvKUOe6}C3h%~a+{?5P&j3xUrKIv9_2NX^279zu&31erR2WpQC=%4 zKN|j&$$lxh1$&g+CFR}W$CK)plDoM_X-P^uoHE@nC0`64<+P+c93D%(UrN4XJjxxC z5+54scn0poXyOVvJu&_)#iFMs-XP-y#Rg7IyiUga`(1q;yrmAb(?7*&a_AmpKv6tHOZZ@jP+1(K zWvmU*xOjxB(4zRps?!l@F`5_4bT70x)x<2-pe3j&W@rVPM#n^%>d=z(l(>`{&{DKc z=V%pLnqH%S(S6W#`WyX~n$QgT2mOWCpk?q;bDCPvvLa5;QyW@NTuzVE{m}Aaf*z)i zK`V$`u>S+l2E{%+`%!2^qJaqB zY%rs)MdRXCrh*ldCe*ET(#%-LG-$=8Dejq2&B|-YN=Oq5+4V|vOhrqRCe1UUyp>nU zN=g$d+x1FzOv6@6no^z#^{%`|th6+t)LpN1$7EW%H0hp6@0d1NhBTq}T`xnLHiehY zqbiVYEIdXH(AG?yzd6aOh8|!$=?4k R!N1tY-Buvz8?sd&|1VKnsK)>R literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/entity/auth/AuthPermission.class b/api-admin/target/classes/com/glxp/api/admin/entity/auth/AuthPermission.class new file mode 100644 index 0000000000000000000000000000000000000000..d2cb260e124377d84f0b1373d8ea37e3678556a7 GIT binary patch literal 2920 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 F{{?lmtBwEw literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/entity/auth/AuthRole.class b/api-admin/target/classes/com/glxp/api/admin/entity/auth/AuthRole.class new file mode 100644 index 0000000000000000000000000000000000000000..2b46812211b46db6b96f1ab60bc8607c7993b301 GIT binary patch literal 4712 zcmb_fX>%M`6+JzgneOT7StZ$N+koOsuvQOYr)38c#|j3?5wc@Q*wT^)Y3$L=WYm*| z9YO+xK*Aab%ST*Axr(KTQY=M<4}>Z{QdChaU-%hR5zM*obTnWNVol+hJk9#av|t7m2IpmqU>(q2mM`w zUSr4aT``brHFtwfZ?n-eU~lvqe$cqs6fdFwe$Z^y@8T}~+x_n5z@9zTY&V134UA3C zT;gw^>1Y}vuwq97upeiz__Z7~o?WjZ@ zZHboJ7?o{kjFv^EjFoapi{m?rvaiB5C%#ouq{)9-CGmYULng{X~A%9Y{Zb-2yJt$3}26PR`|BWPBJIa$sN zTEIyMb(}PC;(#sc;3K%l!CUZF2j>O74W5HVS)P*Nv@CBI^me?%!5uPeVcWpr;XS6K zzq8+Lsr$%@;+}49o_6pYzAMA`SZ(uDlC{&!=KK`%Mv$AI(wWm(=Z@H!pBiM3%fkHB zFn@YI%pljsjDr9kyLA|qE_VKw-|aTqEb)b;W{tJ{zQ^FzwT~Zl)eZT$neT@h-$NEs za!N!gIVd&rtklfoQZr9X%{(+U^W4$$3PHaKTyUx4vbMSBCstlG5s z+5;R-z?<-9t_(R%j{C(wN9rdd;zFXB1&|;f8xtYniDEWJg4h}rk0*-RPzmDPsCXh#d?(JZ$mE*}3PD zO0JSanh{osRFIUZfxD>77+jROIE$qumtzNYDHT6(c|y6oJ2}eqL0wAo3|!7Am+wq= znK`IS>BE7`S>^Iv@`Gm&>QY*I;Brp6d{=Um=0RP`?J#gTuUx(x%Sp#$9n_^M3%iKX-%AGZESywLkBGFN%p5i>tD`{zN_J_!%ug(1y_H)RLU7LFm_R9S19`b5Q z;GCc5;H4LSkGz|H36-mG7Tok63K65|Wk@M{SvMn`>`SO#MZwLu*%+zhnIx4w%Qb~$ zg(TCpVx+Q{BdP4!Zca#cNXof(j8yURBvm}e%?rs1NklPH)hm!x^@?smNX3v;aEme0 zxK|=++$*~!A(cZ?$t}l76JCX+39sr_gj5Yl6}K9Z(%0CjV;H^tU(^|n`r25+D&E5* znKW+08s7*h)Qsb}z`Zfd8pm*vD2=;u9rqGtu!4W$5>XZ{{1xvdGSS1I@IE5`OM~Ze zA5jj^;>Wn3$i^O?!TX8w_%)uy2Z$W}4Oj3%q5}Sb20lbo$@`(<(OGpW8{OfUsGkz?;>vTIvzVt7kN7RdwKCx`m`$UW97wd zmbO)%y9#q*50ekbe$h*d!A*x2OA20_N?t~pSnEn;xtYjR_Oi;99hlewT2=8(Wn%G% zDl;-wJxiIafr%}lRpVYxnb-}XDi@h1JX@LUfr&jr)v@Ga?CR$Z6E%jvpoz=ON(O&s zfm~)@Z2XahCdGIQet{jLG(RwZfHqNvrS=#)L|J~%ZKF$M;%S!XgG3g7#O(Hna`+t% zW0%O5;xT@P@^x;cSv-cpf`MUN=MN0mDcP7rCL%%IzD-haUbLBXp9#v6G>n|3RWF)&#%Ub-(c6gA@_a{S^+~ z_W}-AZ`y+^ZL^0X)uS5oLUpUhG%m^ht2E{vdZhYljVr==jmEq-k5s2L9v6JG#uI{% X6Yt@c(a)^-=X5u$VFP`2B|P*WxfCVo literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/entity/auth/AuthRoleAdmin.class b/api-admin/target/classes/com/glxp/api/admin/entity/auth/AuthRoleAdmin.class new file mode 100644 index 0000000000000000000000000000000000000000..f0993219400b4975e8eef77657b0b6f39a8faaab GIT binary patch literal 2409 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 N`X~_eb$L`j@n7Ew4=w-z literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/entity/basic/BussinessTypeEntity.class b/api-admin/target/classes/com/glxp/api/admin/entity/basic/BussinessTypeEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..ed6f879ec9c34ce8db4f7118691da1aecfa9369c GIT binary patch literal 3852 zcmbVO-ES0C6#vb3W@mOg+b*jute_%PEd6j*@PjEJB1Nk$A|N7uPPbz_u-&b@Qxv}y zeep$o(imTiiM)`giIhZ*(HBg7^vT30pZq64{GGWo`^At{ljh#vz2|q%o_o&k-sx}u zeE$=G?RY2htc zG+%jTspKyCC3kMoua>-O;0LEmvu?vLm-a3<8jRRz967z@O@`ytVCE zty5=ckMq2~gVQ{^Ny>rn^g^DD3eXv_RRZB0imH$!o@pzD(NM_@4kzRyrOD5D!9s2B zpj+qf1zw#8&(J4MaG>2U%1_)(a-s~0;tV@}B~DQ260(^haeIns@1v0WQty3Y9iIuJe3tpYcNW+FiXI8iq!rpK*R+y~}@iG${mB6yfq!!96mR#f& zFO@MCTx5)w{b9&<5$09k_O0CEz%8GgahF1=@$Q9J#45YhNhtyku;4Zplv*j>DW37* zp{bck7J-;rZ!A{=syaNOITRnq7*g4rLvgC+P@GrqPbt zw&QLa_XxUIh9_}M!`jvZq7JZk*{{q=_tz$*KJ3r!vhgm?$nYNZH?~pLY8TZqwo$4@ z#9dV{g;m9fb7LD@HRD=i0cLR*FH0*4B|>?_mX^FKr8k~*Q`#oK1A5`VySe z-Ojy<&QxuJv)S!zCpzDU9c-;s+u@wzoE{lHk5qE61{DLUSJFojheltvSmPqk#RPUH zh3r{vNYPm{L+-}?Nm&}J4Jqnxh8zk*?n%xvz1om+k(wd5 zgdrbD4r#77q}<77$lJn@eErnHQ#$86OvF0r7@uI$h-k4!K1}V0aE*io~Uqs<7az&$oCZKOUYLsFlUEoOw2jYyedwvE*9^pe!?*u`EU*%67Tjg)tCB;}pHVopeX5h+*f zi%I%9p1%j(Z_=l#E=`?Z!ahv0kOTM|`}t0#_(}Q$4{@)DcjtFJOr&#t9#cdHX7Dv0 zAxfiykMJmwi8?;OG?9gmagvNlWbg?*93aYKg>fGv>cx-PgM&mi{^XPUI8hFNVLc8J z_2Dq{oyLG^T|%FUBbPB~;tBp)+GVU$F!P^ae0TRz9J+iYqg%0q$Cc;65LHN(Qdd<; zy#_|JN(Rp$Rf=AN{h{3WIpr1~nAF1zkzt^(@)JAtU7@HpX`=F!SHEM1CWk8MeU_ivRg2BRC yh50576xJ!66I@i7&%j{e28H`&f4#za!5cWN;KuIHsL}QrJr?OeLpi)4bN>Qo4wE@_9h6zGZLCY~gA z>KvDuGF%I^luOICr9k1SBcYL6B$}##5PhIXJn_&c`T{?I7lee6D8sk*K0bDwJ#CPX zqP4%h*SEgx%Ub(v|M5S+`YjRNL_f3XM!J}yG(F7bGi)xg`7E2yvH3ikFR=L{n=hI4 zh>iBkY`((bUuEJ z^aG2Yvgm1xerVA%7X66*KQ`$nf?|zjL4~>V{zHCs-EXc`7lU@AxiTZjY_*r`?UQgP zYOUou2A2Gwwz|*~l;7~1od^6{&|&WFegN-K{laFW?FWrkQw|CQ+U+8Qs)!TRaOY7hj=2|s>{hZ%!a6cSO1gniL zL5JsRt&Qr+`i0G^zuBnz%NvbmwcZRG!Nuy5ztyN!XWN^LL94blD+jS0W2GMOVoKu^ zy4BinpXx5yL`O}FhmUoaT|#Gm_sa7ao*h`cB^BiQQ-Ei~EnwjVxeLaYn$Ga}?%D9R z;h$`kcd(ycPiRzB5H zaZwJ2aZ!In#%U6BpAyk{iZWy{Z%c|lIBbXWk{g!pPE7TrtDEMI@^!mvJu3CX^{7r} zG4N|^^ZuqxZPdQ3N2}&HXL;YTXRH3!sybto%1LbN>9Z&2XR+_VsH&~bI?5}q_O~2u zpix%)WtF47DU>y<&z1+5m_(#pkXi1|-YBcdT0u))3`oPpR;OL7A8&Ax7I)U!A-+c( zdN;ktp?A@^LlbN!*-Wviu$g9ah)tEvVHy{7=zptchgN98p%2o{4$U+27|pOb!saNO zTiASv&4=0C%4U@sg7yvGcE>u6b=-Bx=AFwKZ!8~m=vn$HR$Unjclapsx-!Ol420ou zm(eLz#&+#9hVzxNojZ*&ixsfffT_xu+HGJ6^L_(~35On{n{g5JCadZTXYX%r)|;rR zY2D?q>plrrH$&IqQ*k3cPAQ7<=>Wy}fMkm^k}Zx&wm2!-;;>|k^O7x&Otv^RwEIZ# zVZ*)`y((IP)|h;W#4jZ6CfKAJr1t?kA$~u706oDc2)i@*mlS(pAlT9d~pb54HgNL-iC?ZX8 zYA`sf4My>4g6+ZJoHqCv-G)r%B=OM3&?YCRUZj{l#YPl^RElx>ajpxx9dU+0Cx_0g zUNXK{NiLg6azaWT*Gne$D#;ZXNlr@16M9KwuaaEMk>r$={D@vMxmQWP7b3}ulsu`I zH1{gWS4<>1EhX>JOImxCl9>b{JRW+SKH8WF)Rky+Y|{$cSH=`W>a`E0f#g$Sy!;p#tM2rvE@`H}NXvFOxIv zCbns)%gA~LC|NJ*8q7()N`=dmaSb=wN6L97NIB1PO(t0($#ktgQr=5}l=o~m#Uwi< zrChs@RPfRu6+FjHGsy`_Kz*d5mjS8h4Y?U64TYqPJJd%id0CK3Ue3)jDHoEmZmy3s z?Bzik_6lyENrjMqFd^c5?63T#PQQ@=O^nmbqwA6M6A&% zI*oH17U$>;K4UQ|ixYGfV{w`kx6&d|f=-As-3esSyf{dA0VQdjuF^RmliKtz`WO&? zs?ne6ZlDxBMX%94KsIgDi*zqgntnsi)5n1vdYzu6`+zd^S9+X20W^e9?HYX&C@Ydw zr%wUp#0_+u?gz??DLi|8pn|vqU;ZVaqBu>XR0Ar}GFG`k2TkkWG-Oi!4H_}&0sL9w z4cf0@>i-M77w{=0dV=3?D$(VKf$wyKGn|hgw(AJgm2Py80GoOSi-=0+j4T~I?J$I| zMEq$;I1u`0Zsthhs4S2JxtUdzhn1VUOy=}9?Yp1HvtEK7ZX)zpTr|p+^9<=iy~rTT zHM*|6mz1t#2F90PUGv5icO#d-q0^o z3&=ofK1-WGNebu@dJxE@C-9zb16lNQJj1tuQuKQ~2Lm9R{(|RW2PnBiDh3ir zHX)E;B*azxt6o3G1H)u=30+QN=TJyX_R)IG!O@Ux?j-m48b=sn?F#8d>3v~fN*CCR zy{0=1x33Z2Q+P8*D3ZRmNKfZ2NTHPTrcyn%x8^|*>4x7ls!HiOq#XZRxb$nwrcK(Eg$e>wirCUZp)I8?EiIyKHfysquO=I4 zD}sV3BCiTQKm}2xid6xjASm*XB8Vc0peTxO1O-uipg{f3y?1A4r&HM0zx@50bH97f zcfLDw=ghfxwhz62$6Z8pu&^Suh#m`56a9$I<7|G+<_R`WviS*{pR#$1&Cl5UoXyj0 ze!=FKY@T8BD>lDo^BXq5W%Iib{XT;B4{V-g^GBZbIY!U3`4gKzvw4Bdi){YF<|Q_N zW%D;SFSGeOn}4wRC!2qfQv^*> zYl@I5OjCqS5iv!bDWax`nIdkAgej7ys5eE*6b&5R7!pl_j6%O4u|!aKqQ9_ma7q8- zje=53PtTr_%?xITH)K{7#|pz6<_QXcuyCY5k7G&iIziO$`po+ ztBTp;#JHfqh7Fqs1Vy(DZrZ#xH`bRO<4I#%b6fic2DbKPN715xW_Bz;FfuWoR~qHM zy57L>@Whay+9L|Xh2oKdYPx&YKwCKzOAEvKUv|8Z!_tl9Hm<<(6&J~2EMjm& zzR359d9mhE^iC=-dt-Nx-@-=}OI>3fI(%#8-a_XIFmXZYA;i&H;eHM=3@maz3RYU> zJPq!#rg|W(w7T?6_$p;bEvXWAJ(&>v$H<4109se^e3BShU-^i5Xl>fUn|IWnSXdgah@ts{D_bwsbc zj_6dbBL*tg5q;M>qUTyi^vdg4>gaVuS0+a(!$TO*>j>moM~rya5kuZ}bPwru#E@FY z+We-8>>!q_Vtr2NJ3XH(&g)r^Du9>L{pM>Il6IsxkRKBi=fqFD>O?|1+#}HvMa>>_ z2)Zxb!%qIjmA^a?lZ0|n(S-7Vn!qVFdIG1Pl<^hyr(VrbF_w@tcVS8@mU~EDOSxd_ zYbg)ti*??b(#1Lh>S8gMDsK8>oxWO6*;Of_*V8ppx*yl;=G>2KjLYVDT2;u1x)ar@ zmyXJsnNkGLpd@;#X@g>VMpKgNDYTmE8TC+A5_qXoI_%O+P&RH-~80_a-*XUig z?n3|ksAv|G*tB5N>FsbT;e4#Q?D8W)r>?i7lwPV=N-#y#DTYqGx5JfW7>MY#*&?B3i=37%(pt92Y}q2YWsCflEmB;z$a2{t(PfKVmo3s=w#azdBI#v| zyq7IfU$)48w6jU@YX*BNdKt6=ZE)6YByN(lcf!`HL3$T(RO8bqi=N>30Jbvt7BY5t zf#CLH1B4@aqLloAzhtypNj{4>k}IX;`TmlzY9;wt z<4CTOk{|S!j8`kkCnQI5wUqpjzht6XNj_{jk|#;Y3;ZRM)k^ZY&5>LqB|q#hSzoOr z9|0Z7wNmmzf5}v}l6;zUBu|!-AMuxLs8*5>rjFz~DS45p|+UQ&v5bQkqn6rCg*=y8)z5yU}W3Qllm{SdA{yG`k6;X?C;K z#H40TYO>_p9tsr&TZB{Fj z+BB)vYIBih*i%57VNbQDFlnkLO|hoBNHgtrkY?H)Ry&hAG^yR{aFM$0PLR6oX;vqb zrfE{AHO)opv8RL7W2dd@OiF9gbSv#5&9b{dnq|+hx|lRWle(-KB~pODw`$1qu_i81 z30^wq828hqbQ#`=CgVohh7UM{4l=Hwk7BHb4mB>J%Yg#4+So)_00n8iv5`IoR7+co zrSx&25S?QzrcVHwbhR;)J_!`2>x@pi5-39V83tViR7VerSLstgQF>N9O`ise(F@{9 z`V3H9#Ki4%HBdq{h@0seprn{9E~n1|)r-T##dIxDN~{&b^f{mgajF=g&jU4zv&0g* z4yZ|-D;ClhfSSd%B2Cu=O%mJ1RN4;IB6iVk`XZ1e9;R35OF)yw^Yj$m0Msg8qQ~jW zKy5~nZlxVSQ;cT%8hr(5s&NSHSMk?w%%cl2dKq;X>+xgGjX<5oX*jCh1T@V!2ZzO* zfuN0MiR%l;FGiWEC&!c3A%vUKMqT8acQFDlH$3IiNMlA}4 z|LFbv^T zZ$1INCj8#;a&q1gf%$F8c>`RQPn$36F?Ugo&E)Lu6q>V>X3O!(c7PpLKzmHC(aP0o z2c-+;Sq7O_u;gm9Yo)8!aiM6ds3~?xx=^omRH)>dYMat!IxbXk71eHsr3(dIM}B6p{qZ&%C zS$3mzH99Wr6^Lr{t!;RFWj^Qxs=@nwr~HNsiWljdKn5zsGxRMaRSnG%571pe0XkOf zpl<^O@zd%yx*MpL&K76TJwPG4Qk+8f0-1D+IEwBA3ezK^i@pOCq31+|?gy$9L3)vP z0YyazuHylqn3#wB|1MBmtU+aa5GWxw(RuU`P*Plk--W*iR4=yUhwF!dQsQ2kOWy}- zKz*D=+=qZv_Pf?y_-(vJc_4_hWd9Hm9 z)6=E)ak}!1`xB`rZP@oo%k%DMu%5bczostFzW?$10-E;s0?OC$KS|&+aJs>NNvSgq z&aDOz(aU#I@4DM)PU?W2l;LB}PC77kkiz)r$)x5gjBlGv>MaVlGCo*ge9mN2hbTOS z@mm$f7fdE~sKV`x4^tQ)Et%Be3U@NL6~=c;CN)pt>5Pw17@sDY)O>}z7$2!HzD6>s xw<$c6@lgtQGk&|mJ&YG9j9bg37Q*bLqrJcKszajs&!(649xv#JSRI2N{VyKUtvmn# literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/entity/basic/UdiEntity.class b/api-admin/target/classes/com/glxp/api/admin/entity/basic/UdiEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..631693649f0c26838f701038ebd83c9ae1c24f8d GIT binary patch literal 1842 zcma)*>rN9<5Xa~Awo6+|EiIse76p5uu&AIS7nO^jDw3ciemw1-ltbEXv)vku@fmy- zO%xJMd;lNHIJ0fHbvaG^GIQpCZoip1=l7o7m6SRX*eIxl!lMnsMydvRT_? z5Np|%*{Och-}HGbapVz7fu+2_AC?kOq69)9CjKN zVZY&(Ix4BMRps>)j=M4Li6Q4ywizsyt5(CP)z4c7Z%Koj4cRnA(~-^xqr%&=YP>b& zfg2-Tv?iS0K7Tr2P-PHp53R}MuP!0h#=;U#|om41EV6Ny@`>5o}mvHFM)k^m(8M$xS|Gg zIHnDB!7aFro6+LfiE~2fWhXZa`PRyi>v779rOY8k>b*K2n?={x@sCP%(y2^ zbyxMSCp5~F!2<3LW8cv+SX43v{Y*1Trh96ppr2_LndU|?QO!N3jLVc$GKKt1StV0m z%@p!8Eg;k42qx;k$28?K6_iY2KT}@GR8%vC{Y)ifS{}hfZ_#6#cA1uxOc6iRs*qb!XJ+kJ=4$l{OJ9QpP;?F1U)r&0nsA9cXY|z1;kSEt`PKu n@vac^ghW>ed%{Fli1dZzCp_o^lKz}GhH@6(2V6m%02qG(*tR40 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/entity/basic/UdiInfoEntity.class b/api-admin/target/classes/com/glxp/api/admin/entity/basic/UdiInfoEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..d269d3bc35d969edbcb0642a06d463827ec000d0 GIT binary patch literal 7923 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 H)ld8vD5VFI literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/entity/info/CompanyEntity.class b/api-admin/target/classes/com/glxp/api/admin/entity/info/CompanyEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..cc63a29ff600e9f7a52abaca03d5bea81a4c652d GIT binary patch literal 4606 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 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/entity/info/ScheduledEntity.class b/api-admin/target/classes/com/glxp/api/admin/entity/info/ScheduledEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..8dac55d7df74fbb31ce21ee34c61e7b46daf64cc GIT binary patch literal 2665 zcmb7FU2_v<6n@@hztU_jxt4h**%&MbSPKu_We4CO+;!CuS_%m33LfCl>Bm_|(E@7VeAV zfeA+;;guBBw1QQv*Q)c*x~tGNyXJi5x<4xB`8=cI+Z1-?ui{aHNWg_Dx97z*4Fc@ zm2Wok&W4wFO6y)V?^b=!f0*~GpV#sW#j;y!RNT^3;AAWMs_V<~Je7^7X4ucLp-S>4z4z z47Db5s!%v}p3c_BaG(sm{r*2330N$Xb1YOF#$v-3UxGmX= zP3BZ$l9NBSC8uJOImnn~tv$ITHkky7N!Htw)3M2;7$cx^=K|LRS7W&E2@>&$9S$Q9 zA|`0cNXTa9>54{{Mjog4l^l73n)4Q^e%a$nX!)wZ|iWz<2~b`FP}a7;~e;+b{!@iZ#mr?`4lhYMxfA zppE^BbWVGQgIlo2a@saJcEZyIogwLhk<%r{c!sVmWO91WXbG|lCWGvPl`|#Cih|6X zwG*TXsgr1b5%N$>tYN}P;;njJjk+eRkvrwf{FIK7h?Swdbpzj3i#Ath6 zQJB#Zwj0^*WiavM4?>6{*4V0ib0>dA=iR3`(3RcBK>>0bU0sJlJ;kM~JJi#n_k_AF b`eBM~^tOMx!jXob>&XZvg=wCY!2ACK&EvSJ literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/entity/info/SetupEntity.class b/api-admin/target/classes/com/glxp/api/admin/entity/info/SetupEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..c79faba6228ebe9265800dbad4cdff73e53c50cc GIT binary patch literal 7515 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 T=mF3B1giQy(J;r%VsQQg0L!kg literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/entity/inout/ErpDetailCodeEntity.class b/api-admin/target/classes/com/glxp/api/admin/entity/inout/ErpDetailCodeEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..1aeae177cc339c3cc23bdd511dcff71a5499fb70 GIT binary patch literal 6237 zcmbVP>vtPh5ua;mwJT}$u>9QEN!-Rz$98JKq;1wo+Biu|sGWwqXu_*&S;R_Y$&sa! zq)=YvRi33lp*+H~0cxOy#(}nk6iV8|XAWQZ)WawKhnDi2dsi!YbJGgW@tOOZduM*y znVp&I{o8+@y-Y;!q?Z#kNsq=UL*HQWO%~r`@feG5v-l2+$60)r#rIfzpT!SYoM-Vv zlYW%I`ePP9ValH}`WcHSSX^N7a~8i~@kw?{%Fxa~fz)ula!npZ3_{a$&3 z93)Q^Y8;~a&F+!Sx?9g#oDeQV{vG^{iK<|M`YeoK+`R$L!d}rCw7m^ zbT;#sz}~(_3R#(MWRcm_Q(6+qTr$PsP&$*#ts(V{TpJN*IXhdZEmYjRe+G;I)|45KgsVx+$f>K;N!_6*9%l+03X~3=Fw@F4>wCpGj z-cWh+Ihq^FpxINtL31N1f27fAw)%yJ8kdKD_o*YL*zzFgv6MOsbmf zA``Kn4!^`7^`ehqP)HHPSGj4pr*aeBsU_kBfdy z$KT9j(5BtA$HoP))uvlm+{)rM7TZ|3ET(9?O*>fZWN|z1-N9lPtJAbq(B%Iya%}oE zowVuQbhk}KMl+0NS?p(V4~qjV-a`j%I>h2IizB>ul*M~ly_eBLbWl)Vc(PB|i=}xk z@AaAlj5Ml!hfRN_t7!W1q2Sf*z&unczZ|7CUJtbR_>g)*z~=Z6zapU2_)zm!kgPAE z<;REC-V88Ij1T#jgHrrgtH}7}0$KbM=y*U-tbNni6Ps=N8r_ZQ)eKs7HR{e=S}K(1 z1#QtyylaM_pCw!YgP2m+J*FFQDNo|xg%ovg#Q=41(a05bBUhA;Tv0u8MFGhbH6&M* zkz7$paz!!874;-nl$2aiRaiHY-~xr*3vB|cz-o+MBJs2|yAv{|Ht8;4+sE&seb59K z7vx&!XQ<<;kh7_EMm=hrBVlJt>x??qI7h?Iaji4zU*l|qofBGT^o_F_UiX`PSJada;?hKscWYixAvB6aB7s#jT%YAbFz?tek= zgP$RwWTCuYPZ?>Kl1E8Ed5fg{fSxkiE+tQ;fbv#J`9VFU(JmzqxPbCDN%QC zMz_2~Nhf-hIxmpD#fh#`u3^#T8ZhZ{V~)W#v8$B3Kq<#?Vl779t_h=V*K$lYvV0@c zv099J+&GMS+=LTnql9l1cM>f|y>1dly{_#f*~s>dfLe_D+!T!Z+_aNoqqJ|7a?&kE z{V?f2&tW4@2a3~B)(y20&sy4a)J_vmuE8y-=K|9;QY7>(oKR z;sGjSFG8cDP8Fai-6ig&B_M-l#X&j^6r+-uq$-d}Rk4MZfh>ANq^SlJr^kdvb)W>T z(!c3`pd>v{|Dulo+4N6(kiS7S1|rRLEEK@eDb|&aA$;XbVFXs>RL4#uK|f&L?A)SEy|X|mkqXXQ%A0V&qm8_ z%ua2O?vRZ&n4MZcTUpt$3uJCtrH%LTewQ2N11IXASln#tsM|H<5&BFzS&q>->TzT8 zC>9){`;=F&Ysw=up6_Kgj{00n9$CQ=+7Vv7iAU)VkQ1PF@*xM@xO7CH`ke6w=b)RA zM~UDl(aO1A`fqTP(g-c=`zMu=zU0rT)cLuNh(Y>{oS24KN1p}ipoHk5&msR2+C;C? z=YgX5;C+R@0A$cHx=IfN#ZcN$(ieeD`YOJ_z64~^%lH)iGEf}Fy`8=SltAhC!GcR3 zh1n6I-0RqgqA-O(F_I9k2XFL{(J*M(MAvTlX0aBtre%27H#XNAH|;eCzKeB@ zOVdk#<~zo9j!oa|9!vL0N?gai$?!%N{xc-6PtxRh6C+8rk?c35YO=k#9SG6K_+(ez zO#eX1@z?Cib2N1965Wuyag{c4Q)9^uE8NBSEed0%Z_2$@;U2~}Dcs9=MBzThn-%U~ zrP17&!VY6x70kbmF-8UB0W7(j6&_?fq40XPd7Hu;c>nDXtMrcWw}l#G>Z5zbZ!JNO KAgT`f`hNj?bV6tV literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/entity/inout/ErpOrderEntity.class b/api-admin/target/classes/com/glxp/api/admin/entity/inout/ErpOrderEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..a7266016846308ff2a3f5c80629c712219cf965b GIT binary patch literal 14815 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 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/entity/inout/FilterErpOrderRequest.class b/api-admin/target/classes/com/glxp/api/admin/entity/inout/FilterErpOrderRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..a0b569a8bf154efdc1110729076d239cbdd8bd18 GIT binary patch literal 6506 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 M1pOLsRf~S}U)0+_0RR91 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/entity/inout/OrderEntity.class b/api-admin/target/classes/com/glxp/api/admin/entity/inout/OrderEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..10ad3d2ca9eba6c29d686028831a4466ef515465 GIT binary patch literal 8735 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 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/entity/inout/StockCheckEntity.class b/api-admin/target/classes/com/glxp/api/admin/entity/inout/StockCheckEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..36bfc875ce615b9e5e1be77085ce47b0583fd193 GIT binary patch literal 4422 zcmbVOS#um$75;kEJ>4_vSu~RDG&bOXAlfGhfsmFJk~lIJNV2hwv#_N-nrOz7W|UD+ z60;AQUQcK`X`zx)k=`|yK2CeY3yj~y}3i0O#g6%&f-ig{Mdb2gsOv%M_lvtm9c>7N($ z1u-v(c~Q(uV!kNmOG0_s#+UOrgtmjPNc)PIR~>xS!PgwT=HTlNzTx1T4!-5!+Y)@; z#&-;4n(GFPWdqru7B<^01C^Ca!LvbiD`;(0&xM_4Yh%HH&FG^+SSN2c48ra%L8rbQ zbT%2Qx7N=$w3&|&fH@n)+TK4@TQa_WKs^F(`{jM7T8RbT6FU#xe| z2N$>4Q(0-(f~^Zdrzw8aX@-p^pLOp_t-W2{*m{1a8tgQy!TNTyRjs$eW_Y>UY_+=~ zN7}A!o@mr-n@g&jW41Qx;W7un=W>2IdJjia9GjdR_y>D44jaaH6uPaN_ISSb9-z>=spSpBzhiSbaSO zu4!#^HP}&_;|Wv;!>I+WC0Q>6P9xZDXxUn4&MvPmDe>=iw?c|PnZ6@PPt~4?=VedC zlW-=I0oxPt=<*YN<8Z>ZK5yLibM0=YRzKO4gE2m+?Rhz%E~>cO#e48x7k6RO#gv$7 zF*9Oj#mtGB$E1O~|JMWLBEX7^58!?mAH)MLJ}Ry+XhFLy8{zx# zetL%NA?^O;H<7tIknE%;bMI4Jm|RLteh3d!WU|jb+YH<6^pR`Gq^snR zX7Ce5R3ZuznHqS6*fQvp>72l$x0IZ@hM|L&6vZbc?@}d~(o32LEh&d5DLJJ|o=h)k z9kisJ!=&W2D*55`lG%fnlp~##oKYoDrI)l1T2gL@q~xqBxtw0oIcQ0_Xp)k1s^mw~ zOXdz*Qtqsz_b{wn0(X}G zKb9Ds!WzATZ_fPz!=8BqBUj+gdFCF9F}>tlq?G)uX9*{J1C=W%c$Sy#Bb9xdq_XdL zwve2NWP45@X~fTwG~(yIoRIPnDd*+;NELsWq>Ar)!$NW+5>X#%)Gv@U>KDC&kctth z;1&BwV}6OGF~97Ugj9}5C9fQlOu49sFnG&f)hijFUt=DtSmV-<8y-&cOv_Dh6KB{r z#QXoB_!yCi^Y|Oi5?Oc>f5kbXEH2|3``2LOMf?mOCvxy3yp9V*Is62#;W45-eveH& zPBe@^p^hhrT>Kp;S!oRg`~wf+6GTO$z?a`AiAu&Oj^I;7Wqg`*cpRSX{0l`JpK)*E zkd3GKbBvp~L&Mzv3*$R$l@BuIyCu4_uzV0k_hw592!1bkWv znBO(*x`(guU$b7G75`FRIBqT;EiW`gs!uH{jfzW!I^~%wu;=zLuKG*9DFM%nB97=* zhswUCLX@mZay%;zjrds=$|fNSS!Y#zTZO3MD9esRqrRg;P7jmnvNo3=P z)bJ%D2XEpqwIu4IE{qKn-=btp>cTK61sKL#EZg%l(lHJzCd3?be^*4y_R)IG!QO~$ z?8DS;@(xh18Sl^%-{b7_ga+}nnu^!#nodlmj0gGH!eegtbJ;|*@1d`Is53WuJ! zj>DBZ_TY(__wcsL5seFMDn~Ug34XiAyqdhqJ2V~<{7#K4f{$rDD)>%~#{|ENW)JTk V{FKqhP=B)SL~=8*&5>o$`VSKD;RpZ# literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/entity/inout/Unit.class b/api-admin/target/classes/com/glxp/api/admin/entity/inout/Unit.class new file mode 100644 index 0000000000000000000000000000000000000000..84d008bbed17a9325066272253e2d0edb158862a GIT binary patch literal 4103 zcmbVOS#um$75;jr*HO=+v1Mh50UIWc)(nuaq-BRJII)7{n8ViKg8~lYii;mg`y&@WcJUJz&$)Qs#S1Q8l;M|L{8ZYXIe6KC-S4#G<)(q^ z%H{Bxu+a`X8;!NN*XnF688AEHR%F21*^b(6cEe_~N6t-lZ5h0s}r5=Z(WLd=fg{Fj#O8=>tXvs*lS5Y88qX~ z7H2uJvfkZlY_y-VH{Og`-U&JOda4UwjSjk=a%x!=v@7W-MZ+!_whA6=;JfE)5mE+cM1Ben9qs% zyqGVDxf_9xuj3mArpGV&{ry(EDOLAnnKQcTr+oYzukbV$j>#dM;^{3MQ^!EaK{*H_ zkAq5}dQ=XB$XYnoYN`yc@^EK;Y~oJpe>kxg91lI*-i|t~-QuX0ldHP__9iRkJ>L_b zDtq6xOXK-6di)0*}8TEqYSb& zPA+7UDZdP|Jx-p;BvZB-WM`c0XOb!R46-{;E@qOKaFY6vQUz>tZ0))Ew~)&&^bs8a zU1$-3D9peq@+^a$3On~?r_3KTrHFNqvaV8oF*~Js(3GP4LCV`y%6qd@S_e%jS7?y( zgi3i|c1ru8Ddjc}Qr@mo-k+V)IcQ3`*n^ZaD&+(CQdY&?gQk=>VvurHrQ~z0Q|8XF zo#Yd6e17gtSmyQlci{aBR{r|@U*WAT%)csNRXQZIW>1As2q3yS!45|i|T3LcBNl>{~NrTMm zyfJxIF5&KhNnGc_*mxSDlhp>Jj}5?tMDIunaE_!Ke0k&VHN-2{~6xP zHr~QnA_qPE7LO3QcmuEF9Fd1#;$?h=sDNEu!J|YI_zNPe5&8HR%Xyxth=1c=JVsRF z55RF;ASxR+ZpGt76?~O@cpSGl?tf8oaPcONICz48u5pv23VI(FrccU4oX3=3{zS8P z^EBj@vP4;Oh`D`-s2?dSJwzVMGM77$?6Q(9KMy#>cQ5w`rYJDcJC&uA<|!r2qm`vi z%F?aOUxTx_i$hP!crh@=Q8N>dD`M5IQeY_;b*e~i%}QP6z*a7M;G%jps}eZMMd2na zCv{B*u5!5p7v-#3)xc9ODmh_!%5^kbQcvm4C8v?c+xRBF#jRT`_>)Ak`5Op%LV3Ow zzs4mZlW+KQSSPY@ksmZoA{#NK6%jf31%Kh6B69H?Ok;z{6EPSYD80u4lVUIo3IK-j z9@7r{IT@IOl?J3S=H8(s%pM6FMvjjr!Oq^`VSI)op}6}fLsqsgA$nQFA@_aV3BB+> z^kIe%ieM6!k6)Quzj%!$l<%|VpK|$DE%%*ya#znz3jrmYbS3jb0S@5kI p^KF{09@ThK@JBVS?&4$Bj}!0W*!VYvHS$f-OeAKYrLN`W{{s+qnWg{$ literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/entity/inout/WarehouseEntity.class b/api-admin/target/classes/com/glxp/api/admin/entity/inout/WarehouseEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..eb9a6469decb9e1eabd137e9a2edec22fd9fca5b GIT binary patch literal 9304 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 V^cbc;BTW1+tzp_LOtwhr%6~)%q^SS^ literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/entity/inout/WarehousetempExample$Criteria.class b/api-admin/target/classes/com/glxp/api/admin/entity/inout/WarehousetempExample$Criteria.class new file mode 100644 index 0000000000000000000000000000000000000000..33d85d470211bdbf0893ee60db3e78fc2791bc39 GIT binary patch literal 27344 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 HcB}s%tCCtt literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/entity/inout/WarehousetempExample$Criterion.class b/api-admin/target/classes/com/glxp/api/admin/entity/inout/WarehousetempExample$Criterion.class new file mode 100644 index 0000000000000000000000000000000000000000..5cf649f224a64bafdf809fad99fa8b5fc00184df GIT binary patch literal 2433 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 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/entity/inout/WarehousetempExample.class b/api-admin/target/classes/com/glxp/api/admin/entity/inout/WarehousetempExample.class new file mode 100644 index 0000000000000000000000000000000000000000..5444d9dbcbda8fa6704c3931e2ead64393e1c0a6 GIT binary patch literal 2448 zcmb_e>uwuG7(HXJ<4e|#>!vAbLTF2A9UJOWLTQQPG)|h5;v_{zt?0jry>hm!cdhjr zH9QK>zz>iJRj9-R@JtACW_Nvw6aF~J(#-7aeCIpoyUhBpfByIrzzUwHkU=?)wG<*K zCy_=)4eM%nJdF)hQ(SGT)m9u&Qb?h!9=79n8pl_0>vFB(v`a1PO{XL~W=S^Nrd={@ z&-9K;rtS2+(o5+YhYsm@M!WOmjcj);<5r*YYK8byWz#mjia<2K{6aw6bei-uQ!{O2 zuh%{>+;8Q9<*RWT(t06XQ$2^9ns;b2HV-D^LFZW#+dmz(EBUiwQ^c~nhIi;RpG#M^ zsm7(-Z0n5mY<~Hyxxh62Yz+dht=Kqn2h~o-W z^Ap8#m{X-J(Fn>|3anocPGEy#FIHv(nTBhyS^9;?Ua5Ps@%^ss_=UuF6qq}GX2)id zZD|R_8kQj$npEBCxea66ROL8-US;1^4X5LMED2opo6pbMhU>~B)lNF*aZSe+%;~s_ z_u}|kM-96=9%4nu9`*&+E+kdQBjtN#5)jt&@V?kTcx|XVqB03mzZldlwmlKRIk#J8 z7*7>S-WRgj6gbtc0qa%ONm|$Zk!fOE?cfIQ-3;&OC^Qv&t~3>Xe`Z1;u)uW$i}F&@C1miaW%u=4L<3C4Q}E?J_+2yN5ocm z70waPQ-$I&VnY=5!2oiI;j)h~7n}+ac;06%aGR%Ml*~!s4)PooY>Bg?87usT*e_f} zaGm3nzd1L;DK_A=i~>)c=Cp8(sc}x%$Z6p}IH?E@I9;Vffg(QUIL>M6=P^!8=W_Z4 zcSBC2g0yi#H_tH+(x=Ss;nNUgi?a%=&Zua`6T~BUIWF%u6Mknzo<0b6 z?;gMMfxNvCJXiP~iQ0&V;*f4o8wEzNh%5u6Y9q*OE_4%PAK literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/exception/JsonException.class b/api-admin/target/classes/com/glxp/api/admin/exception/JsonException.class new file mode 100644 index 0000000000000000000000000000000000000000..733171006cfe5b539ff19d5d66e2ca91c00d30ee GIT binary patch literal 1107 zcma))-EPxB5QWdWNlX&cv@|I+1=>QXl2G9r?t-{MMFJ%V+N$?%vT}`LJF*?r#{!8T zi3=WpheDiPJFYF!3R&{ZtY_w%Io{uYe*OaR90v_-<9-7*JW$@lI;z+)v1?*apfU-k zQeb2B(fQ=qGbeEEH$fs@84U$$FTB7@UJCSkqe=NgM}a4$1+~b zk|X-V{uw*I(j8kPFOcsR{<(}!o%0zPcShmFnVmV2r{e6el3aMPz+t(+Gxa^TznsW< z;t}*V4uhj*#K9U-&J;K(*IqZ9z}i?Q7vc216FI(2WJK=pKNl;=bCN_};ObRPU&gWH z>fNsN%Mt{7y+YYi)xuG+lPi-{w@$BLNLf~K<&$s`P2_7&OIZ@+nPQuGWZ^OPE!6SE z!d=|6VB(g*p!DZ%R92vSwZ`!xNIYNWvJ32&I$fhPC*>~Vr7-Q%I=M8RqBOY<*yGi# z@zM$yYIu4T`gJrIHyMp-4chg=)9(;JU?{ut4V5oEG+^<)iWRu;ulv7&OWOZ2rH|c5I!YeNGo7 zLwC+sa=Bd0%WzHP1L~p4t_ape=$km{Y>zkmh~Zk!)kW?F?@L^id@c$_U-1p03V{sy zqd@0HF#q0_rP$Z%akZP6`xC^|NUPc~!&FmSl8iTW;h6|UQN}VPrAJoFD)x(V-H&{-VOA*}3nPoh?o{n9 zg}(CMm?`gc_?Ewud7k%Gfr}cJ*VOKsk=_zPnU*+|n3C|+kPHvAxlOSpcp#L=n}_%B z!^q#VFmz74K~fO*b6pNyx!{}aKiYa5FPSAV%ee2beR#LxwB=U3V7d9W3Ax?e4CdEBQ_7 z#th>v((O?m43;NJi8(9-*|9oPpQu=y`0agv#<<17%Xa<=786 zIaLng^_3SCP<5qc80wH=slE($xa#PW%=A3e2qlj^ji^wwRFheMXwNI=;h7;WIk7k=f<6D?B5V|9Bm5UyZkqs80Ti s_ar*Ww;hL05#0PTz4kV`z94N}qCXvaS6%8R&eIg7aHb-{^qvL&03L1S^Z)<= literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/httpclient/ErpBasicClient$1.class b/api-admin/target/classes/com/glxp/api/admin/httpclient/ErpBasicClient$1.class new file mode 100644 index 0000000000000000000000000000000000000000..59d26d550eb7e37eaa85d6a8f50aadadfee0aefb GIT binary patch literal 962 zcmb7DO>fgc5Ph336B9~k`Tih+V9grwOKy2AFvwAbL^WN^)Z=b&ac#Q2f>bMr7f$ITo1h~o2@(bm9`wV-N z*yKFT-V|IEii;#ynlHRB;!H{H`JpYI2&dw46%Hx$KxySi41=BZQu}j;#@Hm1;o?MT z`Er>@(jJK@qm|8xiA6RSR+aIO#YVYFhR$=Xr5$I&IZ5IET5Wp++H?1X^b3LcWs6(n=l6gR@b(yya@Z@_TBO!zxZ3=h|-%CM12|I4fl`j5xT%2U1~ zhNdP3Ddm|l32}3}l+F()<=8wEI^{EOY3yPDzXYShQQzs$agT0DgDwl}c1wmzkG=rs zP(z!%5!o8qaQDGSu-#9neW0j@kp8U-`v~XBzq&%9gAIxZUsWSL$Zs+<-*u@?mx3BD XVY9MZxJ7*Y4d-|h}+T{m+7p`*gZoF`l23;>t-w%wk^Yq^|X~Tqhg7qNluv{RgmK{ zlS-NyNgXz2qsGbjNx5i53d;if*Lz$LlPyK!LrW2vvW=uk*3H>U3JY|X3UIMnpRx2& z)}jZSip1uu7VxEXOHT~z1hn3LpS6v6kPB4ENBbSS1-6#@@p3Bf%d4e|RRFHHbXQ*e zOmIw($*_?~#S36o+&ZgbK?Q~KYo_3mzMej+dZbkO-nF(Ct&Gkt$cXKn+Yq+($R(QV zgr*bh2@R%(B$Gy^8@Niu*KwY6a*X6kmwyxqRaJYOFrGxj=L*QEJv4;_&dGJc2R0Ff@ z=Z6aBe;O=hjbc>}C$m;WG76Xxo9HxF%zV-ARE0Kx$FNtR(J8u4c^S|%^UOK*BF$c+ z>fT^fLm~hR8RlL9HnQw0CbKSpMKB0GDOQRAUd57tH*O>hJAlhr((qaUuj37YmXc;t z!O0rl4B#!iO+{B)K%oW)@DBEBxDvp-cu!#auRnZo?~|`W<74+e|M>3pFYjKv{oALX z{r>G04OatrA0JSw2>TxW8o)KBWM_#E4`^sDUCRCs1@@^^dfb@RXZ7Hmp0O7)>^&^Z z8EFMiNvGB*tv?cI|0e=izE+HMYo5UIG91>`M@qQ4{X<~Gicg&$a;O6L`y?nqY#mfH zL@n!%D(!<&fz7RLMfJMSt*TR5nPg zla}g!+&iQKO<->sv)n-DwBn8@o|U6>Z2xpo z5uX*1_Lm?-LXAz1l`MVPxIHyG$$5gQ;gyz^v;>BWbmnk?`e-S`z*|QAZ-+673z!*wF21_B3r=M*WZ2*zIlh-cXmDXlxXJETgGu z(=s;SpzsjFnBYf+$5FErbrjzW_35w;JGr(CUD%C2S{uTnI7>?>XzLW!o#tC*&Hyy7 zSK|N}Xh#R1XhzON_0;Jgqn@55$0|y=fJ1nS=R)Lnm}?#!;hC*`=W;tr9`3GV z+;yDqc0&9`@m>v2Yv|U{qoJ2q2o29rMWD8dazF{dv;0@#Ia>HUPVl^fcYrb!yy;?i zw-C3jc@P!6+wz1$bbFpqSU0bN_YQWPr<-?He}`Sm*!>`&FJPts^dUw82$`RtZ6jbU zgsh9o_fh!}fe90uX#z5XqqvA;{GvNv0DHOs_QfKw(*>~8=*LMX#?l3_V+F9=SAp$v m3prq`T_s@8 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/httpclient/ErpInvClient$1.class b/api-admin/target/classes/com/glxp/api/admin/httpclient/ErpInvClient$1.class new file mode 100644 index 0000000000000000000000000000000000000000..d2b9132c47fc7d53076f2fa53f54f9beca1de86e GIT binary patch literal 924 zcmb7DO>fgc5Pj=>xG@IO^8Hm1%ArY7mrC4H(KB?A?y((}gII$POmcXt!f8~+G# zKu8?;0sJV$*Z~PD1g$N5=8fLY?7Z3i_WjFO0MGESg&J-JsN=SeJ3j6*G~G z`FfsBq&X0ilp&+RQW`zCSoG^k+AOA=9(Xz7V@n;l1A!S?)+JkPWZAlpdm--QL5K#LA$+XU(9b{f&Njp2lKyXz7<%W=Ni#^KTQtyS=L5nYw7f`wyS$ci|Hqi#J literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/httpclient/ErpInvClient.class b/api-admin/target/classes/com/glxp/api/admin/httpclient/ErpInvClient.class new file mode 100644 index 0000000000000000000000000000000000000000..0d8d3f6abfbe1ed9e50423ff3de5c3df61c07852 GIT binary patch literal 2754 zcmcIm-B%Q482=5sFv~CqB50I_DcOSPWJ(!JR-y>Rhp_~inZ3Kb><;eE3^TK&S6z0x z=&qy3F3LZ_ZqV}7@v4jdrcU*HXIR*E7wdRV%i*1QpXYg>kKgn0&L4mM@*9A&*fh|O z_jP<=pamBUOyFV)mkdneatc!&n8u7Eewf0ndd{UVZ(spebbMrB9~O0F4J_ef9m@uK zu%hD=1HHJa<5L3%aZSf(I<9LlryWQ76D1J@GSJXAZaa2(UPB^1w5%aH;jT&zU9+|$ z=PTu$^p`}gL`u)Bn-`^J;oEAzO-zPGn>t2j^KRKHlx}&J@N7%0mTku>hM|`)+0qHE zOTIVlY)(X*jE44t3>Ta!;jC&{NjE#|%MHtRHhI?dZ>!@APLbk^a-$-HFf+R@HicCZ zPQl8CzU>q;Loulm+9hk&rU*lDBNM@*3_RBf7{c*-Q}ns)I+ia3>w*YmRgOn{q_U_S ztP&YyccTf7O8aV@xpXTpz0h_Y>gaT9UDj}>-gu1Bzr@L;RQ!^{z9C=@DNp#KJSRMr zt%x5*PXeu{7}a*v2kR4e+p8w;n|hD-fMdK~s_J)OT@eMDwaZ><2e~~(pGsvdu$lAx z(=b^Rfy&==s?so8qli$9HzHRA>g2kU2f?3g8jqf&&jap zu3k})%TW5PhxV*pa70+~Sp?tyKUMtPC>U9{;^*b0tvYvqZTp>4m15#0942G8YNkX` zWble1blfnJLtX8i*6;5YHpaYBjQfJ6;a2! ziJM>(BOG5F6hahE2n@nl|hnDa$Aj z2b5zCg*cO4n6DB<|WS_O4CrpLQ9j0WM7FY*$v;st(_s9y^-H8Z%r%$>z2rvqAtA42;n zV!y(*Eh2VdfbV83fFo1_z8}RgB-CN;MT%;tldbHvySqkk#_i8EwQ=1Qrb?BYYtzMn`hH~X=F-{ z3`c2>)J#iP7*777iYOB`krNpmOY2T-rlZ4mIUUe38PYNBoXyIlr3^7-qo>j`%;uT4 zzoQmxmY{t(qmfGU;qM#?JYFR#mp>!7>|oibz|kKU%g|}GpoUxL z8CF|)K&J&+*YEz87VdX0-S?~CTjzh9?RC|qfZc literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/httpclient/ErpOrderClient$2.class b/api-admin/target/classes/com/glxp/api/admin/httpclient/ErpOrderClient$2.class new file mode 100644 index 0000000000000000000000000000000000000000..484aff66d374b7c6fd991a3b5173c6dba89966b8 GIT binary patch literal 840 zcmb7C%Wl&^6g}fOabpaamiJpIi=?1Vso15;qE(TQTtKACrmKlFO{N-;t(gge9TH!} z0wJ;B1NbP!wZo_*%z@si&xD_MB?Fe@w+-2zag>t=JhMg=g z3qIE$DlRI;#jH?eA8RbU|&-?484kirYVL6iwS2Jbg z>t!*O_C!oIc{Z~$7kVPBs`(#hSP#jNyfUU9KsYCf?yl9gw?{Ll$I>s#*;`>nA-%Lz zr8`!0BmB}*^Q@^Tw3>>k;Ag`5b5|OE^0AWdS-1o!bEK^vU}5gyXbtaCBFJ%%TB z!oRm*c(zVehK;Ip{y=HXaN5u6;rY@l&5uPjTv08|oR7VwUH;-3{GV(Lt^Qzw$MjA^ zda^7{YawcjPJ|5v=#n)e3<%@xr(eOgzajWSEI>^EP80hXm&m@kib8@b#3;V0MzWLL gW@vv(sZB~Gz%^_(xP|M4A#PCeWwK%_*CM3vH(KcDU;qFB literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/httpclient/ErpOrderClient$3.class b/api-admin/target/classes/com/glxp/api/admin/httpclient/ErpOrderClient$3.class new file mode 100644 index 0000000000000000000000000000000000000000..a82af823b7a47daad6276785f706b9beb6beea9a GIT binary patch literal 850 zcmb7C%Wl&^6g`tTabpaamiMa&Wzn=%r>N{wWznigNa3NTWIu6kld0^nJ2OVGW6#&H zKu9e306q$FowBKf5V15q_l)lI-1+(I`wsxmvED%wcOnG18{%Gw`vPr0*RH!Ouro}H zT+Xr&rBtPsYMN^!=iZlTrpb7DWXm^pO7?I;`y9EijrIe9XB*3f_QnFiVKF6v>qBkm zb(K%Zo~TL2H><-URoPfsUGqPeLEWT4{L+}Z0p%Pq-Ce3|caM8cUXh;{)3?g1oIF|1 z(i!QQQNFTVe7MM{GCfffB~O*}XRa{vNGSaR|}Id*epVI1`b zTrC!@(`I(jS%?QQ9^z4q7TPgFJm$?TvzYFlz|%V5 z-%|)|FOyYZ#j#8WI?Dv;ulu%iF10BtFW=RQ9@BY6&i9A)oHA2pCP&`#oc-Sa2`JFq z=#BA&Uu?jSS0qU-Np0~7v4RFVYz-J2jM3)SSBTATXnbMTK*ay{!uK<-uzmZ&3o))S oWB)}qUI5!If!3#l%Op%1xPjFLuHhzQfLk1Vm92==H5vK)4cvC?fB*mh literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/httpclient/ErpOrderClient.class b/api-admin/target/classes/com/glxp/api/admin/httpclient/ErpOrderClient.class new file mode 100644 index 0000000000000000000000000000000000000000..71612c6968deafc5ac85fd24355967900b179c9e GIT binary patch literal 7876 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 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/req/ListPageRequest.class b/api-admin/target/classes/com/glxp/api/admin/req/ListPageRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..628119cb0faea4bafcdfa5feb002e9a5e259dfbf GIT binary patch literal 2345 zcma)8-)~c87=FI?oc65ipme_|Zio}H`$dO{%EnMYkYNjRn^RB|&$^TKV0&8HQ!;Ng zG2SRQdVzN)#@&!G6B!1h(Hl(s8@vPq_gsqjyyu*5>u4g|@_q03e(%rcdB1jl{(I|J z059T$7?PN3gN8G*yctC{#yuy?S-CqW(zHl#MKKdY3{wVXWuKGfZ3FWL-VyQLD9$Tr z6?4f_=*(U;FPoX7=`3ZY9M@X1suK#SnY!cJC2QWU*$YMMnB$aP)3wV^O<}`|H*FUtPU-{knoq=enh{ zGx<>p{mlvIKCUz;)r)q?c3IfwXm@`4;@+pf++DqL=hl}8{=YDDc_PTD9w_W;5$U@X zMmjX65IJHywtG||oF1GfRwv4f#A1@7S$}AO^D;cw5XUxTt?PRLfrA*eYxzogE#=2CuYObKQWO*8e?(|?wLJV4DeF&np zhH+22g{{<^$XRZoyf|%E&64F>RaRrrD+mx_Ub9GD_h$cd3m2`tJ27}cL6xPmjkyS} zNL$%0SXG5K>2R+v*Mw|@%5(A$eYedDTfsn%v!+* zny61P+w{y-?j*~h9I0BhdXWR52bm&!gSduUo^`9Xv!u|~1fH)Yy0O`Ey_&a9*}_=Y z7WDT^n{hmgy>WD+D~^72DeQYP>f)Hh3vmo#IF17%jfivioylxj41-$Mp z6{H2n$v7_HJz3r-5+i%O<|f(uU>qlLij;1|^XVWaW~E{|iwdKgc?{a#JVs3g5RfMO z2Jf5rZnnoW{9sA)nTGgFh`4t1lz>7H<=z^0B6SA4&_`_&suNrEA;C28+Ra_OJO{e& z#?$_3j|3X321sL& zCncP5ZFc?cdx(2vX!r&~t?L%Bq!Yhxk%R)p zmf0>pzC9ksT89ijX-MH`J!HQZlH(jy`G9+r*$Tr$-$U1~4gU`98|dL{!@ohxjSQ_p z_l^`IXGgeFbs1tWPQp7(3*_ z%g+d^WC;FZ2%Y4Dgnm?#iJBQd;!=;#{SJ`}w%uE|A83vLVnmREhP0h6X> z#Qebt6Oh+%j5(#8Y)fwUWkciy?&>Hh%lBFE(b literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/req/auth/AuthAdminQueryRequest.class b/api-admin/target/classes/com/glxp/api/admin/req/auth/AuthAdminQueryRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..c23f93c23d5c24a714d51e5d294bb54b3956f952 GIT binary patch literal 3317 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 Y9|PW|vHow0@aJDKkeC9Ya9g(i2dl7NB>(^b literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/req/auth/AuthRoleAuthRequest.class b/api-admin/target/classes/com/glxp/api/admin/req/auth/AuthRoleAuthRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..d22bd22dc875c5e946d859631987d8111e256d92 GIT binary patch literal 2581 zcmb7G+m91f82_Dirk(9h*-}`bxFFyH-5Y}nBHfE}S>)1Pa2Hp>3l7~$JJ?Q3J0D6ip{@WXn!|QXsWZcU-$%}62L`zn!X67w{fweF0KYIW6!w)}STlr+|_SXX2 zIuo3~QRz$)GwW{QQng;Rm@xoYckQB)wQDY8_bu9a$8_seM&IS*Z(dJz*E2(hz5j`N zwp4L%&~ked?8A?4J^b{8-|yb!`smKbYb!T@yLCq(GG#lqJ0lQIk1Po&$I8pH#;omF z^YzkYt9srfX9CG=IcFA^%&INVfl_e`HcNUon=6-$eDQk4Fe|oUE|+Y_s9IMIS+{Y7 z%L3cu?bg-0<<%U^Tdvf4O-rUny2})Z(?a?*h-(@(xnX_74bP^sCts#&sJtIE3K^lC@YaBSw9l#ZJ^nPKw-c6JAOn&v&A$p8_OViuWiupQXh z%U7(NJ2`SuK$Io_t+@`a1k|!yu&M&O?89*L4a7Zl>pb9Hn{8Yse2aEfe9<*?@6DMN z4?SO`_pr2_>C8%a0$RbW75wqwtej%@a|@^DW(kjSq-xdbMVD5swEe^F@in)+=vHkf zFR-!EH1C!ATJ|!wSgu!d)(KnA+ZIWD*Vycn6zJH2ojNvPqmHe3N`Mdce+{3GmvBJG zUZizAFQpNT>UbGP1U9!g_E845NQ9dF@nxxB-f8Q;;WdYa^n=y(Mu zIbW^Ve*Z|CS*chKKUx#*jSu)}e-RyE$W(`YV^G=#q|+Wd`7urM!yDocdE+|BQ$IMn z{M%f^7Nn?%Lu^1x6_WHKj3Li+ThnK|@AGt>hGobwx+(c*NZAK|Wohlx6=7$# zwUTUQ5+DC_RC1)5L?-)#dz5=&Z1gjz%Du6lpxlKTzBl$Gl)3TIRjA&PLS%lNOGcUa z8T~2c0oJcTpGYaIh&C*=j7k$N6G^GkCh`Eu6~t3&D$+1g?)5C^q>rJ=Pyq+=0&xyv z5r^3I5W8_4FH#p~`(|*MlENpm6B$Y>=2-kBr3j`Ne+T-a+Mie##q?urieiSpns|&Y zzS!4f{vb(F`y({%vMv)gOCAiTfvAi1UP1pfHY5*fl5Jz#0IaLyOoKlGY z_3Xzip~>0Vj1!a;kDSv`o=~BX93e;ugm^-u);S~Z^#$f>*IFIpE8hloOO!vA+AkwLkTAP?x|duL-CB2H#Z}NdN!< literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/req/auth/AuthRoleQueryRequest.class b/api-admin/target/classes/com/glxp/api/admin/req/auth/AuthRoleQueryRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..0f305f17f475f5ddad25043e8bb30a000d5a6d6d GIT binary patch literal 2125 zcmb7EYi}Dx6g^|_%g!cs-8iXBpbtXvBdJRXh2{lqN!t`B&7%Z?gv7>K*;^btU9S=R z6@CEuk`Ew(BY{-Gmsa9W@JA@&%sw2)aV1cknLGF1xpVG0GyCU1zdi#ngDo8&B_VJ- ziBa5<*4-pN4y+~VyC;_%MsYvE=mR+{>v))iiTegVk#pI=ikw#sJd*R8j&%X0VeQ%i z>GBin8>>{e8r9OK=Q@q*oPgHyEU(=XIM)+hZg_Upc4gRp+P3NpXL3F9N83;AiZ_@4 zg0=59cUb#O*=g9T?cHtLeQa&l{nMHitG;Eqj$DUM#j80icB5Qr?v|?cZ}&>po>Q`R zcAZAawV#%(wpT0N=CIMM+v{!H{ceK*?3PC;qIt4~5QKo*^lG*%kdVbEgI<%qFI)`y zfv8b42t~``P0y-)y<+Y85GjI=4T02(?bVt)YnDsuJliE`qhd9dBpWnqR;v~?9?#{M z31Mwxd1Z+hX=|?CYS%qF!{hbI=qzpCX*k}Z0C#N(=vCWW^`#lj<$LJuij!ah;raSx zPNW3FEEr#cX?UBvFC(cNe`7>PF7Xm$I`aG(;w8=pWX(`O#j7nmGeSsZoY5`eSzF6s}rfY8fi3A#eL}0 z9T;Cpzc#DLKvoGOh9sAviNU1J1cgH+amDJHx`2`rTd8mK$$iU6FNLcV1}VUF*uO`R}VMd&ZZ2 z4)cRb4*l1X@~L)9j{7C~=?PohU};Hi?l+j9A7VH?(!m*dn>eLYfz5YzHl3#3!MT1G Odil?F`Cs&j{_tNA4}{ME literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/req/auth/AuthRoleSaveRequest.class b/api-admin/target/classes/com/glxp/api/admin/req/auth/AuthRoleSaveRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..5f8bcf360af7bcfcc02a8f990365848765ea2041 GIT binary patch literal 3736 zcmb7GOK%%h7(L_6c*f4yaor}Vp+IQUl4nhMGieKLDYTHZA%W6DfliVkcH`KoGb!&^ z*|7muAjAeCwVO(S1VI9XU{fTPtdLl-;!m`|`R*M%jyp)HWPSJC`#twsP!AUU`htN}rMw*0>T^MzhkMJ_a=70>$H3qThC5W7W4NyI zay2-%vN#jepYmra>I-VKe&vK;FUvkUG{aJvf%lBh))tHNl~hA z=&yvO;sJ`OS|ynF&j(Y%xs_l!WZu?%5FTZA`GLWf)T5$oDvznUwyaY(D@)Q~Qi@9v zOh@$zo{CCziO1Kfw3hX^Z60XMdrZB}`{jI-VD+!gD5AMWQ&q}v|X1lQ!y@V7|B&#FgT zM6;4P3ONisKtIdiCdbW#D%5o$J2o0pc-9Pgy9zlLpQX9ckV4sJ$Q>%=-uRH#Mnekw zn<4vE$bIpJCpQ{WE>bh(P8D*0e3te`L&}|OhTNq>^5xSLPncZ0IJv9CLlkoED?3m!eVDOBYgNl#Yy2g>;Kim)A+7F3&A=ijf-` z5w#fQybO(UUbc`Cqikf9DP$W)=4IC3aowBriSA32=T~t62ieGO{Eb6=rxN@r`U8*f zOniUGVImWc;afaPWMKkda(9sTqk<1{gvdr6@8c+ugO9L)$B9z-7y+IjN@JCt<3yeK zk@J}#a`7jh++#!;{DqrwoG6P)<~xpV+qsIYjVG_6$Ho*tj&TiJHB8+QY~0-gB!?+K zkeVF4#r$I{*IHO1UAq3|)~|up?2^UaNSC75;EnR;)#cer zMbbrHc0-l(9HnxaDpHYN+v16FT2~O2+<`A}0?)8M3!md8QG%oV45!$J4*q3%56=>r z*pCvPBeJNOz-gi+LjLi1p2)@r=*0^}jttk>4)jNQaG)@Ze;I6TpOAxYSPg@Q zjk*3PGE26Yty#98M#lDf<2CyjMdadK=d$J%uZtX0agJ-g|Es1u`_2DHnpL>Ko*QJ< z$sdqE^&K|nx2&RD$hC@|e6PlQ6T0(THO|O+L1R7xJ^7n7?h>1uHO|TTHsV#>(*85r Q`lsb&!~+9o)CKYX1HcM!iU0rr literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/req/auth/LoginRequest.class b/api-admin/target/classes/com/glxp/api/admin/req/auth/LoginRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..903ef1c315b85c4c3ab1e54c1430c677870c0864 GIT binary patch literal 2167 zcma)7OK%%h6#lL~V~-stb&@8jOA3JoaO}8KAiV6P^p(<-I1NdO1S=-?$ev=)xSnxo zmk0^5sl)gNPq-M6$FA!k@yWPTfz@uNh#m;+ld#I?R(Fhdmi8U&bi}1{@eQn zz#P`X7{=KU6r7XG`5-QYxnGpaqCC4Kr8lK?If$h&!Z@qpirnAQu&f~~#g!ng3TQRg ztlCD|6c|~)Zrn8Vl3^G0b+2mKg^WOKt!8^x+1#*PYqMmYvu(#SJj=0Nf#>TExAdDv z$;#K2dX5KP)v#>O)mI#Ev0U+PGfJ>*x~@@RlCk~Izy9mf-3OoDxqtW0-yi>c|L)%Y zH+upndh=YnUFprGRSeht(5dE$^TD^D?0@-DuYX|PvMuk7fImL7A)s7v^2~N**|N=* zT6xo~UNZ<^7U|@S(uPsB>;5?v!+*c@~cLbUGdB+fl0?s zm;f;tC8~QOT;05G=Df_zdji7gZD#XGKy|#LSrr(R^-gy>KUCLuDH;YH%9{oq#o)SU z*wt7}WyMS`OosG4rAIZr;+8c@LitvspUMk_C?DeeL;4>#q~yIFGFA`CS!<&F zhkKCOipj)RP?hcEZ&1E~>fcWO3MD(6*nwJqq!3t{<&suXzhfY#+{5q|BB_|NgJ8=- zORF@|(t(&NZ36c&vW3Bz8Vj_Hlx^nnAL`%b28K2dMIik50 zh9fa6|6O=;nv#kv$K?e|0ldigQwRmMe=!uqOAj#~#2mkxc!*;SG1Mj_Nir091)F5N z&Xlrcs$@YTJv?cRj;U>=D)C9A&5ot&^zs5zC5PZohETbuqnUYSp-$ptG*cvnS~R(Z zU}^`U_oZG-EAk+wG*2{1ERQDp6E@d~+Jxa}zSkhptE?tX$;Us})5s8-pVK^nc}hy1 zoGVZsQK66=AxH>>ctoSlvrj6G4iyUv(CD>}&gg5>NqKcQ` literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/req/auth/UpdatePasswordRequest.class b/api-admin/target/classes/com/glxp/api/admin/req/auth/UpdatePasswordRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..f64c6f7e42e7e3f0b87958321223ca4604b6e6ac GIT binary patch literal 2885 zcmb7G-E$LF6#w01H`%1y5&{K+fPfYHNffF;N|6r%tNp+hsvsiUWNjAHY)CeIJnD?T zIX?I``s9oDg_+`vmKk*zeZd+34-lXH2Sohc-A%IF#t~t{=abMerQr=ZUy#F_8ZK&h zOT#6(GUAvMh#Q3kt2|Z^NR3}Mt{T~rQJ&9^+vWKYfy{Kh>{tuttW~q-O6JjW*>()a zvdcArT`v53_Nq~`3a&Dn=Y~@?tg=(fPTJ07y;P!;_<~uh8S|#VntLC;cmLB{e|+-A zgQcZEe|lG7YxsaOH!9&nI_y&6v{9>Fv#X3S9f)wosakG~yZ$OLnasFVHYe)~ zb7u97L2_hxcHSt>8dXcKeWl_QEwZ(5JZ~>#=S$ZsS)*cQUDC5v^GepJJH_nT3K=vT zVN9D>>SoPh#L0QnIohaCy0z;>}j@Zr>kzQQ|@-CU)Fk%kj{gJitfWgy3QHL$iFjTRNON1wz-!@%NykrG7kZ* zXw-^cC$KHX80P8ev56DRgL15D*6JmPs8)P>Pbdz(Cv=|X*dBW<`ixz#=FO9q?5WLd zTVs#BsXCrQkB$x4sADU(>DYm70?+>MKGSg=&+F*NfR5*+G>9P`d*tvUn9#=7v*3kz ztZtPGvLf5s2G{GCXjDfY1vxN}uEFhr^haGqfB-5)pN?@1vF%#tc|AZrjY`EV^92}c z*KUE{4F$*x6v8)}?O*X^Q03bRL=lm^a@@pK2lx{5ySauZu!V|Fh;?YGB9i_9_DK)B zJ%DYhBC<-Wu{&2|ce>}Y#Ps$w56yBGoYnr@5Z_XWU>C=jtL(sT%DM+YFZ#F=vZNft z#@``wYlZQew#Mv&HpbDF#_6`k?4CBp%1Yzzw#HdJ!{lVxInEKzvHpSY5ow?F1`pvU zEeVm8<3*sID!52-u^0Q=xr{!pOIhHi%dM`<;r1?-$8{yo$6i&7lmoL~YU z4)lKmRk=Cv3)C;6MsE)M40U3#e;F}%Ng+Nt$RVc;{fdr^au;hCp$}!0WoQjVBBv6P z$i*_M#Ki6*y@<|?nu!HK$y}VEWKPS(B}nr@@r>30DK{BVbXC(`@B(e}{~`9{05j{x zbsS_PM%cj?D|vvn{d^2YC@DCFlQ=|4#RQIElu`^O-i^bQ;;8bXy+BFh9@xZsT>A@M zaU6Y!4RIXfM-vaR$rBSnu~GK@Bvg?Pn_u>Wj7WBpDw&jttiC;7BdN_qRE94T@f+!& zTOz)QRIxY39=eFp(b?3JB=Ho(;XgyXL@9zKUcnfnj`Fu*FJ7jkkkXCRN~(`A z+-rzEqCz2=LXbcR@rdx&IwBR_P#b^-MhUBYSS$c*Ay;Y%W|(~4J??Okp~|;x_($mH uZlg2ZwTv~A!eyk=Ydtx^DV_G@q?FfjSjPI5Z%FXz8}_LY>?&E}$$tQ(OgTpY literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/req/basic/BasicUnitMaintainFilterRequest.class b/api-admin/target/classes/com/glxp/api/admin/req/basic/BasicUnitMaintainFilterRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..dc757676fc1c743ce34c6627140da829f13e1b99 GIT binary patch literal 1592 zcmbtTU2hXt5IuLj>)n_o7(+q>rfCSJ{)kziX$x^&+C(5BY#Nak37)vIuj~cKHtTiO z{);~M2b7mQPzj9GN>%$(Bz_YuJ$H8%n#8mZNcPO!xp!vHoSA+3_b4lX)a(YoqjRqL9K&jnHs)%OCq`UCl`^t!Uw_BO-7 z@3pG}=~chyhx$#Sct^lo@3)k|k-Fbgw?^ArD)?G%b?M2~`%T%sBLiQb6Q>z={GmXt z-t2FC?e2F2PY!%fwzmDA7pO3OoJQh79DkVrpVaGrR24*c0>B)&tcHtHpZ)qQ94sN`xp#YcGG#e0}z zD=tp!LjgsB6Z`jNZRB@bnw$TDS0HOO7hm8@c3pIF9&-Zc-U6}i55o=FR>?kans3U+ zLm_Q)Fi^dgKxNVf99W73XB7+lNT&G(2^g9uS~hLcMtO`Uk6KV$rRNYo(=c$HG95Y7 zn4#^)4={@pJPAz`<=)_@FrMrSo|+hZ5~o-~2d_{Y)ag?B8H~xLXX6)1X$?#FAdqLA z#g8;Pa9l~sC)5_N*2|@zV3|ARKalznR%)mGJ5r6M(imoRq+#7!qF6C2FK}qi{1ZnX z!>!DjW2B=O<_^=O4p6Zir{Bf1j(L1QJTn~d0_ibumYy^8rBEVGi?mGoz!z!Td4*{k zAO3||8|V0Qb{m;zBc@)$q>(GkskyOq2O7%3sl?P+yHG3w&`=U;79wi6#B^!4e_#re zdOllSHER(8`E0er_ML3`G3?41_WfFZa@(aiG^v$hjS|XCY~du9Xc@?`!AjJ&ZgvsI zYqDXoSs~acgm_Ix-kc4gw~il0g6=v~2nObVg>&~grgE7v4r!27IhSIL!~6H^-^-a# Lpb74?ChNjK#s4OZ literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/req/basic/BasicUnitMaintainSaveRequest.class b/api-admin/target/classes/com/glxp/api/admin/req/basic/BasicUnitMaintainSaveRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..7447bf07b04745bffd78c677e9d9470bd65163f4 GIT binary patch literal 5772 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 F_TMDNP;~$R literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/req/basic/FilterStockprintRequest.class b/api-admin/target/classes/com/glxp/api/admin/req/basic/FilterStockprintRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..5522dda6e3a76b5e31cbcf0b279e42eb51a215da GIT binary patch literal 5248 zcmb_f>yH~(6+hQ&d&c(oxsPPn5H_tF_8Aulh0G>}CM03Y?q-usQ(9h~wTE42z3YuV zZkrM)(3VH(lUGZD^7zn5C=wvit#}B*2a3ceKJ*iOfj@vR2niuk!tdNWGafs$?Fu1T z=l;$;zjNl^bI-Xm{=W*2dS0h*>GXn5-`43nZ2zuCFACB(?G5Kdv*rjY&0nWVsJfRos)ADPTD?_UL>v$#o~r?^*lu-gu?ahz&Nb$0r`82! zAFx}_TC>yko|!ya->kd03mO=oxF9I5g6HS!o6cfqW5sEmw^tf+ZOy9PxL~*Htb3Dj zJPeDvZNA#vsH`>~+^X1H^@?5FsBczU&ZWwV-L6+Fr|J#YX)U|W>bl&^Ip)<)?u|oCq>uKs(<}1~a9~`C#R^pAse_hM$!J)Vq5V zlWB+7Havdg(l}p*1;<@$)|TuRwt-zD8#y@kt``&C^+E})7g~6|zAD!XrMq4z;q^l8 zTW=CswHtVT&r;8qcj(>6{6Ai(AHIZ^CX`L;F{fDQzecjn?u5v&dn{H z#EAeWTTZ*vaM7fpL>uLvgzCIj6(Cja<|$p48&-XIO?Azn zIhLE9R@FhPqSyEB(6NX3dNSx8^iG4`PU8kmu$W{q#bTPp42wf7DlBfLaY2Xwm;1q> zRa!LYy>tW#HE4kqi;fsH%i<`DV=QiG@je#sXK@FMHL45R(|?;D@6;PLuJi*tY;fE! z{$mDxpMHQ|o*oOG#4+S)ddxcuD4FRo|1_W((__JTD5g~BYD)3WL=l5ZgIbs#>p2%p zi3x-5rz3(6?vS|odfQ#HR~_#vMUd`ZRbQjB?5!UWg5vPxF4+$CGKbjb8>L-HLOguGRT#Jfyk&-|V;X8ctuUL|A3jBiuUXXLE} zD0wSsCYY0al}cABYbMNOh*YpNkP4P=YE05Sl4j~5Qqf9*RJ77&ib-jYlrqyHQpw7I zRI&^+!z9Ba0fk6|Ru-f|D`#ezl=DbgGZ!KaS$U9#tb&&=SsVSX`j9 zc#XxVEKbuo%ni__xPz8~;&fV+={!(^7Q}wK3n)nqx=t5>G-}bm=x!jLo~1w0hk;V` z9KA;O0HtZ0UZ#72GW09@F?|Hcpg+?y^iiNJ{goc4j{)WIs$Hj#1LZ}M9Qp)MLEJ*8 z=suvLn8H_+4O9|$;?2JTG$@v6l&U~ORKqSeXuqcan{paCuhWP|pTtiWuhU)yQ~zJ+ zU%+Qj=yCo6RD~{I41A|2xWf4eVmBOty3!N=5g@5&v5BB{&dS!omm#L`mKb;*Aq)ii zXJPhe{FrQzeTCUIw1-}px=Py2Hto5O=kr#a4QAZ4=-f2QRIn1#gnp4ux|#4zMJp*y z$-smzQeGuXlO{Bf=cW0kK}(k=JusoIl-H1zk|uPN=auqJ!&X|F(t!zmro2Y1j5MLe zJgRB$fJ)af5l68JfdV5T zuH#W%J;oEml<)~YC*C{d(UKurm)Sq-k+oiOmmgv9T=W}Ux?a&X&oLF{*!A7f?763R zaPLNVBZe0wvvZJcoHrqPp^P^S)s6P%JOo6!;m?oiQhEs`$Nv_t{F3(G^9q@zw`|iW zH!FtHK85p)->NWf{L#{Wg^P^erZ6t~(bAa0gNzR-jC*~wbd$ovjBi$WgmD>Sn{Mg< T{tW*~x#G2opa0g^t literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/req/basic/FilterUdiInfoRequest.class b/api-admin/target/classes/com/glxp/api/admin/req/basic/FilterUdiInfoRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..93b98814d75947cde9ec2f487d9593976db4cab2 GIT binary patch literal 3757 zcmb7GOLG)e6#jbBJ>4_unM_6kjGzRFm?tCRiw*$=c|?O+dt0YvZW$6a1T)MK#l`H=Qh~Mek^T?#B3RTIu-?`_}ea`vr?fK)s zAAbSx3_ghCF`SRV!doIPh;T(ri^z$XG2z9zUKBAKM;--1mqc6^Q4}#Jq9oR`iTOCv zIB#J=){2Ei3snnC7Oq%$+rm}ZzGmVb4feI-!qsa$4OVV`E?2!KcB|yhc?Zigo(6qssW8K3cJ^vsgIUcNDl?3&pBeIWsV}kN>}gdhe+wEaj%*$&m4Cv%+42PVeJfVdNQ@9CsPZa zOcXqssQ%Tus#4O)5S1Ot->qg>5<6%C!z-kz3``?i+Ngzwmx zdr~rBj#sN9Eq!Fr6_}9O<+)p?MF~39wk&zL!Yd=xy$43yiXOL2@~%M zH{H@9X$xWAUCb-Ck$R)7`uK^_@k4A2akSzsE)}a95-pX+dKyK=dK&L<^r+W0deqxl zJ@q%Ss%3RHG{h&%OO>2QLXy#$FkbGI17+h0?6C1Tw%F(vu~o!25!*%dV2g%b56yWS z$FSGNAcoir8^faP#E^}wh^IvC67jT%<9JQOhSuYKV5v}?5o&A;d->jGs*Kop5AT!1 zgWa{3jrdxvY1GWYZfToB(m0~{V0X|uDq5e7H!!4O#{;SzD=b!zyR%+!ta*wWudMjY zVY>74UWs?jP}s>^br^#hhuL+Dw=EDwL}o!0k#YDdC*rRhiobF${>ssC?Sv*HqGU{(e(MN162lQirnkF-%Tp9cWBHy(H$3lZS(~#h{*5G((Fu4#C zthWZYhX#{FA;Cs#upJsq?u7(LTZ0p!!Q^a6u-O`%3=Q7RFKfi_w!<|dv*{nWg-H0U z)+>)-Rx(E+hlXbvXJ}MXRGte@*|ye{!n1nHZa?Mo;VJdCrWDH7Q*QNBz7U?$SZhjQ ze?8?kKjohAl+m@Ol!H`Hx!q6cgr_vuno`bWJ!Oxdl6Rk)ctq#g!O7hn=)Vp_zd7(5 ztS@1--5mH8*7#umGGe|;5T6*NaP*8{;2&(lt3*kR@qNe8WmrG7X&(iK;qk^%Ag0-_dLUQQx zl~m-w9+oTDfg!ArE=5*#N!7lA(}EJ9K$z}V}6j8F>0oy6ZK8ex{1tFQ5}xy zn@GAK%B-1Ej^&%Ix`|X|)aGzvoKqD9CAZ-loWLaOGw?M|5=A)5uW*WOXyfmdk8qku z=YJlrQyQ2eHO>%4QRQ!qDIyb}U<1w)Su$L08|?es&^cU9<3OQl_nEArM`WW5M$Mt- zqp#cw+@eix4bRryz}Z~s-0%-E1R>U{kVaIvEeMQ-1vX+IXl6M3%^yaJRrruSmtPoX zenNWcHXcc@TSk|Vi%WXF!n_l@(i;>`2;QhLuYs;~M&S;@k1CuJyoq8Nn_EAl%|BYs N1U%4i&Oab;{twRgeh~lw literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/req/basic/UOnhandQueryRequest.class b/api-admin/target/classes/com/glxp/api/admin/req/basic/UOnhandQueryRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..0cd47e8f41b6afd681b39f59fdf535e6180a3faf GIT binary patch literal 4359 zcmbVPOOqSb75-Y&Qnxg%$H*R!I~cG*n0X>h$g9V8z-DZm%-F`pb|4Svk(yE48fh%G z4Ca}HSHdEJ6;&*-#3MdLTq$=yI!iry!O$>aeyVYuG+NmK`u5-V8&UcRP zJ@>nJ+W-9WgO33`h_`asi?uAWXozveToiLjOjFFdn3jfij^l=y%QYq@v4s3B=Wk3Hxy)7ZLij-wd;<8 z^72Ldid}8mt+nb|uj97X7D;ehSDcpD?p!5)*6uiscCRaBw|l(P?rj{odSp<+X!X`> z?N;6O+;&TW)~mZm{nC2NUUveRIq0@r@34Zg>6!Bi)WBO@c3aNL-ukN3dE8!Y`m1Tz z?B;p9*k=jb`t-~PCSqYfC| zp@mFNZ(WCUrnKUCjduOC-C?HZbhvNHj4zJU_~Im*v^e@l7DvxuaT1Oemtnu`CVy*a zS*KPnIyG-`=1B!gdsr!9NI|;oHJpxuf}Bw$rmLbKhecforX`06r2w@gLzOV>RTbK5jpZ_J-c>k#oq9x%e$=MO$B<* zZY@cN2^)5|5vZS6;RG9a`pk)yC3cuN({Z}Jrl%km?^~`C>rk!|>&1>r(q{9O;XUb< zX#LsB;7aOVJGk%sxwGwFr{)}UbevEj7p3Ko)HjV%vJ*o8$NRhEBs01YWQHlmcA zoImpL{E_G9k32$ubOr``9lE+4qjl^V1Cm~rKP0lAKQ*sH(>CxmuVlt(gkenG!E+!^Z z;t9#xX!1m2GOtELvObzzPE7tjen5T5QCS>Q95b_X?<19b(7OUgc+esOQJBJ9>O82(mJtS$S9wQa4EJ;NxXJ&KX~HU)c_9@-Qr;}YNM)-?QrRk*MIn_!Qqe5+N$Pdpm@$k#q}PMy_3xLm4@dC` zyFIBGSmNWF;-BA}I7Z(X-{=3}IFU;GZ#+tr#tQz06GRy_@jiY;r15_Wf5wlAbi9MN zu}qZ3yLgM-N07rNF5x86I6i`dQ$z+n=P#Tl%Hs<>gvW>q`~$ELXNZbQ2DjlXQ3;Q8 z4;Qdo)BlTthI2QuOT&5o)0La_`Y`+d!v2$Tl)t0Ohe9AQYF8oRYa_~%CZ@JDF?giX z{U)+4OI&Uw*(G1H{FI=J?_TO}ERkcOPfLpj)kD58_mmbJl%-ypy9RAx6FZ(3f8J6h zV5(t67qJGRf|d3|)Ty7Oo9TY2Xl49RCJIr#K~~Aq{1Am3W@-J*8)iO~kkQEy1rhRFkdLLf}hx1jJ%!g{K{H*{N1>Y86zD-l*JprB&e0zY) ag72W&#GRwx6!Fi$dMGi4?}%K>XTAo-(FS<{ literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/req/basic/UpdatePrintStatusRequest.class b/api-admin/target/classes/com/glxp/api/admin/req/basic/UpdatePrintStatusRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..b06c45040efd2a2cd93869b6a08a945e5786ddb4 GIT binary patch literal 1828 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 OPFBNr@-QQdVc|bo+QQ-h literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/req/info/SystemParamConfigSaveRequest.class b/api-admin/target/classes/com/glxp/api/admin/req/info/SystemParamConfigSaveRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..10d3497f4a896ac9c62ca9ad817cefe2031dc1cf GIT binary patch literal 4023 zcmbVOYjYE26n-|{O*ZK!P16fRDuSZ)N<>j0rCxv{m9`*76uhytOB+a&kfsQDK~(U@ zH^&)=FV6Tu9EWjqM#_xNIQl`H(NF#feuaq7dH2#ZtW3w5LXHbLA*3i|R!Av^a)N6`$VnkpA#)O=CfvM`Q$k)Ba$3k4 z(VmUrjRZPz%*30rz9r;s6X#64W8%DtcTK!!;(ZerOk5P@2Qhr8AySyqpp9rSD|Xc> z)kY}B$=b8y_N=2JGkV-UW#@`^X*xGis}@SrgRZSTyT>`BA)#y!+QoSqH!ESHX4mHD z{4fX3RH(6(X83faXctNvqT33kLhT6+P2D{QHRwCaQ#5KBEtH(``PrjR^?-e}sGeS) zw2KGrYC&XgQ?Jbw7(PEbS)R>J7f)AmcBPQBr)CSKT-7<5E0m6va}#IgYR>FFDP%{v zbgVEvVV`pLJ16Izxf&}lrX5u(pU>KxDbds`-*P4Y1lqfM!p^|+@s1(s`*jwC(i)Mm<4ssN|vR9SE{E$Xs#B|poK?mLr|IG&TArtjpZ z>B~Wy{)U&PF9vBwd4zV6*(`bB-lNBz$=YDgVPdJg6f~ZSM_#VYI8_ZPY2UiaBE(vh zqJAg2Xre%tsx3DC`dn3XBKQGS^eaRF}tDw#t~GLVNTkmVJVh) zpRwm=T#Op~_K%DW6TwwyZoXLK0MsWQcLkMWv&(zQBwZhZy)(h!IkA+?#eM0(WZ$QWf^k~@ff2YL4OBl8AI5u0@B4jJ_ z7WT;Apm5uS42j|iAy10a z5HAoVxoD^8Dix|JB|W7&Ysx84c2QmDEvTm0;_1C^a7W|8O(M^^TTI?XE?aF^Do%;_ z;y~Dp-7$7vwY+4yILiO2##&z8>-dT=5s_w+i%37!%9g5?T~#X^t5)__t!%Ga*(IVeW{;3Y-Az17-tzcOc#M)JJtkf1`~xCa8=TEhXJRA7xv9}P z9_ma?g*fZqH9R>H>P#4hI2(=5&7sbOZ-{fW(b)=hChS9;V~sT@L!CJ;A3ld}fy$fhoA{ncn|1U&GAxRt{|B;ve7!D)_jact$8yW6C=|zie=3@qYOj{>vkBi_myvHm*vGvl z?8KLNj+_n~7qFk4foYt>1i2_K;s_3qi{TOu<9Tu>e&dVhAh|gH#45Z%E`b-BM;>i4 z^KYbLIAmG3&>6#F{!Hx_R=RAwo)wc|-@g&Y*i2o%8ocq{%B1CzF{F!)*PEekDEE#r zf?5q$D7AWb%w7c#epPU5Bi~ftGG2@kKTi*C(}%j!gEInzBR-crGDJBwE($i^O!r+u zY+wN$YCoOVMUmA#jVX|DRjqkLsfY&UWM&Pe@}7_hp3tTuwdbSCJQ|o2H;mL3-q77{ z&R&sC_zbV8u`=)}UL_a7YMjMuEWC-8+H9IMbU${Hmxi9l3LGUDRgL-v=52oI>1>py zu{F@N+jLx%BeKx}!#D74^rc&#S+ve<(Xw$@8TTNz)OgW8L_rsJjUQER?{JxQ%6CcS zCv+aVjun}e3&=|Q7I05ymCGlE?{fJRm(0B`pB8?#%eM-DpUY>&evQkw3BT6m+r{R7 Zk_9}__-b^4=Y9fJyq;*7VrCII{{sG8v;P19 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/req/inout/CommitRequest.class b/api-admin/target/classes/com/glxp/api/admin/req/inout/CommitRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..66e36094361ba2533d03af9fa0142e09d7a9a5b9 GIT binary patch literal 1508 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 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/req/inout/ERPPostBillRequest.class b/api-admin/target/classes/com/glxp/api/admin/req/inout/ERPPostBillRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..5a31ec0eba7b8e87885951890c04c29300eeb1d4 GIT binary patch literal 2484 zcmcIm-%}e^6#j0qn{2|SgjkR$RPqR+`7zYW>?*)@WH-N7a=lIaH?;3}7Y7)g}#i-viY)hVfrQ+1Aw!oEfp>6X) zFYdwqK9jydY7Wc?9kcB)Zmep$njTpfQ%j>Ml2DpSXP2?5p3OPVs>8Y$##F35hfu%Tjs+mvvl2jxmQn z5H~tjof9f>X%tQBjMq&ackvk$Sf2Ouay6`>Skmzk7TASnPkUt|H%6;vHjV^V#&zyU zGy7OLs{{7Eet51u7WmCf@cSCz4{38HG6&}C%Cm@2CaYXur6$W=a97ihAbxaB=D3Dj zWdyHL);$AU!s|QrDQMY}h$C>>L~8>?N?s*l*%3|B;-VDDkE< zKO-<6{|s$pMjn1CNn!-vrdAa^#Cb?z2|*WE@%)oP`D75ol#D**$3}ZQc)st>y$!xkMGYT64w5~g)rWKikUF3@>dg2G3$wuKJ%+2 zMUeyQlW~pI$Wp121&K899OBhJQkD2*3;VTPb8E@*rb_nMUwlI4o{Q%@7Z|OfV&fi{rHJ6 zjttaSu7%Hs%}&^DH802gcDJ=;z>c~b+Fe|0cRJ^L1{?urJ7LR!C-AZLxZUd-usZFn zc5L9tP@d&(9JQi86Pep#i$794+3vREM+}V3%wFN@1TGW3kTow%XlhKf2LucYC{W^K82lNBs-^ zji`Sqy0IJW#Qb@`6~&haXFWPIJG9H}v>sV!(gVAkoKDVMO0Yh5Ihmy=cQ{|sho9J& zcyN51l#8kY{?5LgOw1hIh*YMw8pWHvjf-JF+=_S}p4(&OV0WBkyGwAgyJVK_j`L)9 z$A*6_-JJZIO^)7PktGW|{Iz`>yRddGT921zpD|!i0>e^CT)h8YyczWkROFVXhlEvC zj^PzwQ8H3NA{>{A!j}8o{^fdGd9DWO|59kdzmG_sur+3>O_N{??4(@*@lhi36-^UMl;)SWCdZ+l5Ellb95tlTU3UXG~GhIW@ zorNh?MV01<6#v4M6q6o%1j^hy+a?7-foHaQb9Id(AFn*(G z56~9%BHe(W;P>M}&J4Lj+Wo=5L*dsW!A@>4uRSMtY&6)-4W?Xjg3ZxjFE^Mn%L%qd zgG;%=lxI$GaWvS^4W_Jfg6+}Za&9o&At%@w4X)${FX1HhAy*Y}EO0E&&A*O9{zV_t z4Csp%5s1PJoMN11a8l#sk^GcnhfOJB%~DRQlpo7aX&yGE=srt%uS)r7eoE`GDW!$7 zl=rEWkL9N<9yXXgEC3uL8Va^QY9gk8KQT;*&%k_HZ4Sh)Vb)B3vf&@poS5Q$%I_1CQcUL>2x4 zIDsofRilWz@ib8lpXM2!#$C4aFH~$?y@O*mp5Z^oxWiQi-TxP+Ps)@09aFvxk~Wa1 zPF^WXlqE$h94MlGq^z`vEXy*tn@M(ANtT}vT;jV|_$^a-O!Q`L>7;o|3G;YuX_K;a zYV$W?FYe*Uv$9?eOmQ^K#N&uqwW|_X%0->3Ag5uau4+(Ju43k*dUaGSu$7C#O``17 zH6A$1I*R z?OzmfsjE|zAp)M^8yF4@90j#y>|#7 zWcY6kCgJt*D^u$iuki}y`)uP6IC}LqChEubFex(TP`^v#vfzfse5fYt@6xy`_->8) nHci%#YdpS(d+P7jxGwlT#Cw<;{id*nz9}{mi5Y0Cw!HQqDbC#F literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/req/inout/FilterStockCheckRequest.class b/api-admin/target/classes/com/glxp/api/admin/req/inout/FilterStockCheckRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..281290fecd9fe9a65aabaa1b05d790899fa43bb5 GIT binary patch literal 4292 zcmbVOTXS1i75Jlgz~Mu&yi&HnDKPRUi;g7eQRm2 zwZFZkfBg5)Zvr@p*K#ViU@GPDa^t_mFi20_N zZ;AP~nC}SXyEeX;!$E91_`Zxk5c5L^FF5#-gC9G1(ZNd&e&XP#;(6J|&kSUmbpxf< z>%p@@wH35Cs;iy$#TfHcV`aObE&2}?-$iT$x++_pVGo3oA#nomzJm25C7IrTM*IHaDuXbud>vGU- z$~<1oMvW$OJg{2pY*jZ}&u>?Q?PfKoZ#CQ1Zg`{GYsa3cKr3r?z>f5!N;@ zhBx|QFJdv~Mi{MdH|5#6k!s>fT{<6$i#@oDFeo>tDY{~roK1?B;45+69`QM8fi7KK z>v8pFPjBGB?D*$PGfHb=)acYN1l?dOWC<+QWk9m2L!&|Qo+K=%Iq|MI8SaXc!LEo$ zcg1P4D~k;ZTKu$KpYY_h>tQWgo_orG(b;|ev5O7uM2)b^)0cyp5eYeJMZrn6nCQpT zj=?l>>TTx-UOo4ed!VVKoU9soxN7A2s*y*mMxL@7dC(jWzz|i?E^$`nXmB*=Z^QV5qTNSpsYQ!! zz|#bL9G~FKkmIJ^9sDO`em@rMrUp|UDZvxt!MW66$|@x|J03il8caE+1e@c*UTQF9 zoDyt}2j^3RDgTsUdpx+18q8~x66}lz7gK|maf^G%|b&zsKrF=L&Wp=+QMfZc0CsfKu(o>rIO(|Dskn&!Y z^3n8^)_zmUZ5*VWRVmM;r?mH*QZDu&<(x|SSb9olzbWO77^Iw6Dfz7H6VIIEIK?O6 z_`>{eU}kSEyao4lm=m`a{swn#aefCmH6@rlzewX}m;R2)O7?9`-GsMP$?m{Q7&t7LpT_?20o&D*7%-ML$<@g_Mg)ZY4KDD*2Nn zm3*%>@D7y35-9a zw{-K8`(+%*6FA3iA2K|w@Nt!w{0=_HwF!PH{~Mnt%98UAR*6ik;h+3J$9vhr8#qs7 zql@3+Ng@Zo#A~=f}oTp=pqORV7v?y{Z#pkU+b9UQjt6#pFK4p$X)KPXI|lqdK(S@{tWKPeBg8}dq- zqAY1*=6y}nkCd4-k!@Mwb_bGOQIh4)3@-8A%lwfka!mAAY57$4v=Zjg(sF~cbV>_1 zVK43Az|*px_p{=tWMhvbV%4sKZz>mcs)C$~nYfC+rCip)MfK{al5Z;)g&RlNiEGMt zl*<{oC}$m2_Fd(olH({>xsIkw>KR>J+>HsmiLc@7EZyXRKTRaX-$uX=P4FrIHLek5 z`G&uM8j*>s{N+<8vJg>PA(4$&`3?UJk%Ql28XH8eh{4!E;XN*7DF(x!0ALvJG3{`k zk%dDr6GFnt?p}&%)(CCL9AAye_HOc!pW=u^ocDzcqtbnGpqmyrjNQ{6hv)VPA7=P} z3?||6@#m=4FJ9ph%I~xKUvTj1Z5%2e-odoUcn5ctD;noHls}{~AFAo{5siz2k7~@f kX}bJjji&^EMB}pHkJ9Ym*!XXX(Vu_ySYig6>RMj^A8pCw3IG5A literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/req/inout/ImportErpOrderRequest.class b/api-admin/target/classes/com/glxp/api/admin/req/inout/ImportErpOrderRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..de5ef303c2622afa3a5be9390c3085ca737e463f GIT binary patch literal 3837 zcmb7G+jA3T6#s3rw6eEl{CXqKF{rMFm=@rnIz(f;YCw+AgF?*lZBIp))@D z=7Zy?55CzMhXs{#}RSQVfs7$ptm7!ojbTob1wKt+eEqpIV& zj`sxNhK`%!d|$%{64ZPtXXh&t64@)}bu(Rc?LsZa%0ba=WWo}XID$y?4$UP7|n1qr%cnYIhAgtl^oHv&Wq$IPYoLRVFI<~k6MA==j>HU#xsJGVwZ)aA^CC8m|%5%c8 z1?yVX^0T*Wxu=5UCI<#vQovjtXd`Zt)Lv?8&j~%73egbi>wjccrGXjI1Ti9B7$U#h z>e`!&>}8UPjaJs9+d9x1oXB}rtZ-k=0n1>r4xiM3nK5PBH=$g5! zvu4>F39ce;w4UMuz(ZM(B(C{5}h%!XbT83Uk>3XyO8X@els>vMMvB4-;?EU7;o~Gu zgd2-It}(yKnvLznzI9`J8^$I{d?DPJ{J6&a4sJHKzd5q~4Pzp*7x7Zi1)1hFD&gJS zo<=bqjimKcwS*Hm*`{*W9jK41QcPMy97sQ?VwYE{b%0C!Cc8z$=6bX5k=9Oho~Uyq)IWb9kO5rsE50 zm?IX&SKMLq#9}x{KaL@x>3^e3!@>jfYFOl-Ee8Sg-9nAInxWphM{KA-cgP4p-*7r?f3T1}z7BSVU$bG~f zVmoA3M3PtqNYX<-T)%e+LJyR>KwU=OND9Q%Cb4zNR%#%uZ4_RY4`J}hIXc20TkVg? zBZEH-{2Jmqb0EHz*kco$oe$r`qbQr567+2iAJf%p2jA@J=!-pM1m!^gX7NF{d? XuVGi~XQug+n+<9q;T>A-z~z4dq=Vax literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/req/inout/OrderFilterByCodeRequest.class b/api-admin/target/classes/com/glxp/api/admin/req/inout/OrderFilterByCodeRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..decd2fc81e9bdbe12d701f898f5ee128248be442 GIT binary patch literal 1575 zcmbVL+inwA6kTUL<-~pRUPv!~mCJ;)Z}#m95*VC)I}RG~$uS=v|iFymxo)HhWS}2X3d^ z4CzeDS)m_qLLjr{cY~@+p2+s;qd2>)R%l}cqc)BqD{$?rsJC$mXKZ|f3F5bLS{Zp1 z1Wq12k>#$}2S8^=~~MMVX)FCS7;_`cVRxpXP#52YPPmvxC=jk~|UkXLiG)+yX4~$5g);kQFxbQ#5O@gUmj;JfhKs*imWRi E0a(Ew4*&oF literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/req/inout/OrderFilterRequest.class b/api-admin/target/classes/com/glxp/api/admin/req/inout/OrderFilterRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..4e37a56623ae02247ad5edac11fb40bc87269788 GIT binary patch literal 6806 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 GW&Z$hxr0ss literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/req/inout/PostOrderRequest.class b/api-admin/target/classes/com/glxp/api/admin/req/inout/PostOrderRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..2b259b0b0417ac2e3bf5ef38386b6f6b9a01f6a2 GIT binary patch literal 2262 zcmbtUU2oe|7=BJ-=d13Trc1X%V2l;WM^p1r7+cy77FsAv+Gs_S;0iaf5|7l$90$R_ z;F=%6ZhA2!$Rv;u+*P}H*wP5RFjf(-t+qSd7tO~@ZbOa@*98+G?Iv7JB0<@ ziQ|J54gqLX;8ytRq1Cnxcj%Y`_hue%)|$Ozz1{t$uN!?! zH(JM*tvlu;-LiW_S04wxZ$28D19x@osB9BiYn$%aBaq1#X5e{8srFh7yil`jbANbz zWICT2M_qa{wO-TcJ}?|ho&%@ib}XvUFGh=D>Stm!#c3wHk(F9GkA`P~QG5+VgOgL}HtkZMoY5(Y!p)hwH+4^I6HOCuW) z=^A!hKR9}5Hr-0$3jxuS_3=6>{769UxgFVp3$jkDWBG(idrziZ^M|g{{HkvBz2dU_ z*~|ioreW{M_%u7lpyT%kiSH4}xyRA> zvK3N?y`j@IcP-gv*>QgcExayOX;{K#4X@#Kf%1hWK*KvIYIp-zH58<^fp-P2Oj703 zxI47E-mK2r=1b%h$)#BT<0fkf!{m9KU2#+ODlq9Bxzs4RoW}`=sd|gYVjwCC*GA8 zxW+u^JYJ-&`4^DGOFa27FVlAouP}%NX%H+T-zt`VhWL?I6cQ!nc^9D~;~_2kw*n*? z<+?}hRo?ZZNY65{Z_uL(9!>+U(#h`NI?ehiA~IgYi|4aWoWokk2H~ygm(P)$I_Kqy z*gm-9aB+BKvD@hqD({~XPm1n=68fpxL-?GHkB(bP4Cl+u!FO><;j*}Zy@rFv!hU~5EKd_o-renb418#;#VVJw@U~) xUAbS8`1~o7nbZh#lH>?lW}fy4mu819+`hShS_GR!iC~L^B*%&$CB|Ju@_)Ne$PWMj literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/req/inout/USignRequest.class b/api-admin/target/classes/com/glxp/api/admin/req/inout/USignRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..40076b40d4c42c3f862c4d9f09cf5eb010730c53 GIT binary patch literal 1682 zcma)7U2hvj6g^|_dL4U{I%%B}a1%a4@JF2GqZAq^g(jp@r6g2Ii3CqXn*m4Ex^@Mi!Q zv6jLZE{!0Lw=}$+qP;AaMd_}{Wl6(w3Q1f_;)=BIB=N4aS2e5%BzJAcsd_a_U}F82 zdB-#y)2$oZfp5F@ion!X#|`YJwPUyKUB|lWx?W%gw&%75=E8ux#vRkKYoXJq@*?m} z+YQ>rrWb5>9EVA?rqynnb=Jr}+57VMy>Fjhk&a26*Kr0Jfx`cmUB^6L(s2RPI$o5!G8P2RpB&4T zj_uT>29y1D^Z#kFtYa1Lkw!ts8s0Y_)cxliITD5op@f|lYOmR(wP7Tj;ulF9{ zIplca=YeUigTdb;cK<|hYH08bo@WUeyht0PO%zK%AU3@8WbZ{(TEdb%1(_4Ehz@K{ zl=42U%B$5<@oT8ce(53NUqOxUmwrKfW4_ph5+1oxH|M!5D&=31o>CrR{2ui3l+r~a ze4*?!P5hJ;7klZC@T_7MFB4A|3z(xkF`j4e3Vm@D8J*`&L4molNNCBwFs7mSHzqZd z_?J8)GD}v9oVSR`W#*LHsFHz%a=I%$Y1AVqDgj6+ku-CmP8?afq}pFFg+e=%sVphW zp#Zr|r9t}1Oz9r9au?di%empSi@ngOR-8l)yvoEXTl^Y#F{DWF^^mqCOBzo(VG79# zL81`iDHSui__oY z4=^{m&>5vOI^*a~o$)vLGrY9c=j<*72%YITNzQrCd*09IdC%t0e}DcJz%}f}k-~Zm z3Oa(DQ!sUZWQ<8h+|#DeYtOHcp&#rG;GPe62-Pa)OKp7vsn{J zZ9Ou+F^Wy2RWI(lj@7D{1$6UC+jiW2*KoTXfpbGPn=RL@n+}a4t5(Z$*9F4a+(QB7 zwp}v?rnan>x!pZHFrCkggC;epExT$o9~zD&&w)~L8x|wq*s9ux#d`BeyJ)nnqES1v zT1CfvT(nwt*DZeDt{JYmF;vW+`M7I#T&9oLO?Ri?#rbS*sK!AbQ?wcO7D$g6o-`Bh z3`I+4PY07NCM%}fuxq=9V;q{U>9Bz*`i*9o8Fua`klqoNZZzpL5`O34ky&-ixi1BT zJxWJ#C7{}F!*ocC1Z`t!lJ3WQhV= z!{{`8K1uE-E7;xJtZcAE$`Qxxbek@%PEse9Ml)!x?UO*B_U*1yHSbz-7B0M$(JOKc zbI^IK8#|13tcw0(~xTy0Ty)Q63KJK@=R+Dc*;L=NL%Lb6I z>Da+8NncqUZr4+PN^o*I%2?o>oaFF1BxpvvZMOK{3d7?O4C?9G4T|EJkJ$Hz<rFJzP+qJ0akq|!tyMKY?ii9AE<2#JiEiS&(>W9ABDoWJ{i z4Fen+$YGg9r?HPbISmn!J6NGE%)fOMxGK0uqOMRkm`C@DUMvh=8^8E#1++<2gh$>N#m4;4L>NBPeDpgsZtTbRO@4?I0OO+gg zzZgR0UP_i%l{F8<`DD342(@JX2+=|hv9F|FD=G3KqXaja1eRCxlL5QtM-9pd;{#mh zA3uJ~e1lSm|30tcCQA!*AZIy@5-eS^M@GOD5( z^YI%Jbh^i!@|9+PLHvuSIFr(QNXUk{rOx`Y*27dPNx6sV@#mxtJ*RBYm%u6`hOqV@ DTmO@< literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/req/inout/WarehouseQueryRequest.class b/api-admin/target/classes/com/glxp/api/admin/req/inout/WarehouseQueryRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..76fff6bdeb02975d1cc1809902f379a8561fb182 GIT binary patch literal 3287 zcmb7FZF3V<6n-|{wrCd{=iKw0v-iB*o8SNb;b#Dc z;HR(?=aaB-LBvH7uZg%M;3ge1ScocgbJc0oSyF~03u}8!p1~eS}|AXn^ zB|PI`7$eNw!PBCQV#L9ih;b1UB3=gb-QIoWjyEb*-bW34V-G#t*6k?=E4a?78y}S7 zOtE_7gDek0YJ4y%P^d&DqN4H3a~RRE|6ejIR#t;qcgc&c8K-Rhh~WhCJMPMgSL2g0 z5qCEpx-L;pldQGHHx4k6kdhN6r0QyA;nm98tCi*Fx(S+eh;kpbJXejYF?t)?H;Ohy zX{t>Vj}bc|0sHYdHBH(;+3EZp5?^;YCu5!2wixH0Zs%02Gus{Gtam%7W1TrBG0sM} zvlHvg@rrRayPY$!&IefKgeq8pYeLF9I`%yh@#WqYGNN)zE2OU)o}izhQR$=dWPHe; zjfRvFX@%USLLQ6{sc$r-Oj|4DZWZ#W_>jg%L(1T`Lhex^55#$_YldaMH#Yhu4E@&FFR;FV(Q|9;4y@_%(KXmgB}mSUQxx=x-;mDfcd_{=ZvN)Q!tguY?(MUp;vFgQYH>e)V@fe%q6O0XgCvx(B)eJEpwNM{?TafZmiB^<;ok%<7?ahAwZ&H4kW2i(xv zEKOsBplJ^nVqH(jMn8-up~=xZw<4O^Mq6ig??z;+lf2H4F+?u*LoVxH@iscLO#EXH zJB}MHmHbl{e?;G<+t{4Vu3?Kbo=bLXh|_}mL(F@(CA%%e8Nu5_+$(qo#Ts(m{~zst OxW%Yt8s^o&p8E%-pC_XL literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/req/inout/WarehouseSaveRequest.class b/api-admin/target/classes/com/glxp/api/admin/req/inout/WarehouseSaveRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..032e55963d4730fa26d4df31670b36eacf148efa GIT binary patch literal 5815 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 g2Gc))S$1#lhp6y{M$ zB8D{`>nYj|x!jWB_vLb1$DI@ss3cI8_5-g zjBVGoy=vDQ4D5kG!V90%P1hb;Us>kRce-ZH8Tb`}WW#B@mOu1tfyUJ1wOX^cZ??N% z_f4zsm{x1waZS&D#Q&h8dArq`EWSLst!%JDe9dtke?uUaFYF4a)n1FW=4*~?-yiPp z+1@ACUYC(ft=F`=yO!t3eH2vvjzi$r&WwbGXWBNK5+G%YOujHhk4HW|5qv(JX9nY? z&*!Hr%SL1;`F_(stX&h4>*j@*>xG5Y%yr zz7ZZk4li*hWXG9k^5q|)JehiV=9HI146iWBWxPs+GD(fe6xw*P^b-^bA%M;42I3koMAyq0qB65Q{W!E&xKtfUer)k;|6paNX zl&D2TW)$+$aFuiTmMK))rF3OYT@MHqNbsG2wj_H6$}_4^C0QXz6hb^>M~?T3khZ{h16;87bHG=iex4= m!i)qtf{~e}Kf>I!0>|Z>i=ZjE!7K`HB14;E&NS+hOioe zijSmNlVV-RjVRZTrPzq#6Wo+qL5iX@H+9^K!o;e9ExCSbVB5fsfn90c)^SHbvr4X0 zs|q9v_pNWNY{jY`WOv+#Q$5HFC{^pw7Kk2NPW5`=s4Y5G$6Xc(PtP!cvRd1x%V5E& z+MBJzJ-e}M?NzvwDAY<;<&M>Gq#bN3ZrN!H*M8 z@buYOSyQ}dyXD&cmepViewv7Nh6M?!btlw_%c{`jRJL1t_wACKpSdR>YNy!^js(=2 zTecelF-gi)yAh_h+c6{FVbBNv$TtSPgYM46{p0SffgRT>eO%D_1IMRXAHOI&kSc}r`BqeWY0JQ zm(K6woE$e3NxW=g7$YV|r5MAAz{39?4ig_>*2DxRS*M8^XKYTcd}l$tNQ|(e)D-|WP<|onB>JD;&Ty3NK#5IBw6)V63aCPAsMH9g;tiU;Hu6( zf%wUD8>iH~O%1P7H+=`ZhD)@BWR~)D@XrYS*b^M-8_Z7h2@dxLNBah|gMEUP-r!i@ z;3>R8E+p(6*AQ22HuVca{fi#)J%XYoA(Bn@lyNHWIpQ?l>Yp)naj`#Uzh-Vn{)kwG6ZhMM^D)N2t3B>{t$w^Wr zld_P|nL_+QQagpHgf9yT1}WpUh_4d2IGbXQDKsX!9nUW+OI{n?vsHq;A-$HxN4TWS1K>{JfbGo0{A-OROwe8UMQBH3KZd#YyiD&OF zoe7gqtFZy~^>IsTtywv-KbU%Ib0W|{G Iy%w+h2l5=L*#H0l literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/req/receipt/ClearStockRequest.class b/api-admin/target/classes/com/glxp/api/admin/req/receipt/ClearStockRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..32f19e1db319bcb29f380cf349c40312d3de5d42 GIT binary patch literal 1528 zcmb7D+inwA6kW%j@eF1N#wAIU8q#nnzQl2W(3Us>)Ci%&PN_-QSt}`>u&3>sgv-duG&c3X*_q_Y~+aCbt@hFWE+&+gS z?pU~+rk>a0o_2q&#WxndO~b}*8~3$duu;`|(ZZ5|<@pWeuQUX*wO#p>th8i%r?MIN zZhNOHkXm%xZty@LnJ;V!7|UKm30$nXZS}Obzpec5<#vmnY|X37)|T{LeU6<*&~&>3 zcWQNSzp~SM-l@orTak@@w_Wko0pGfEJ3(c+rKGokwafX! zu;$X;6L&`QgI9FRnN<}uy~euq<-Q7(&xTU0B3m?0#jI`bs(Mf@{3sy2({#k21WYez zDqq0S$Zi}_cOi72IBy2BzPBnnArTx)NVQ#;?Z>*ZfZdecX2d0lU18$&jg{5MtV}!Q zt8T9q@YZogJMf~JkeN-d=hxK}SMxqLz}>8#qJvAwI=G08z})|3-@z?hb?`YR99+>> z9tDB%v)l1q&uwva1SSW1$j8hqIe37FL{)GwiwO?nI7!4Q(aKIowYh)gVFMhPXVrn zWlZ5q_A|=4O_QDkZqRd$z9fpI={hZgKJZ4$vfpFG!p#pDv+xxk`v}Msff#z9Vj%aK zQ*&c#1iF>MsYKM6N3ED_K(`W8GaXXHm846v{emeB>Zwe1(O3!z$YrWc!nZS}*RaZc zSkIPn!(kVr(70BTHHs)Pv585{&`KapfaMUj274WePh`U&SRn`$LVO}4$LEC5TgP3G syL-YEf`Pf;VgK+J=d$TO&g&+rvJOQb7tZdNd1AkEachG6tjU`D7peyi%K!iX literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/req/receipt/CodeDetailRequest.class b/api-admin/target/classes/com/glxp/api/admin/req/receipt/CodeDetailRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..37ace76dcb9abc081108de49cde901ea2b0f050c GIT binary patch literal 1507 zcmb7C+fEZv6kVsC=?rzmiUOilM7;DutrxsNL5--137`=}qE8;$6FOSjI-MFn!)HH0 zUwF_&OQMO<7ft*o71x;=QD|RGX7=7^pR+G(?fw1Nhfe?|aV?2{ob5v#=PaC0Qcr4e zLAx(%amm8vBy60uF{Smijgr?QUT`jiPR+M*NuGE6yMp@RDrRVB%qy>db2Wc`%sizSqsB7L;FY zRPIVot|?!6Y$d_`vPNTD%$=3Ts_d7t4+TVHI}y>9fZ6b?$`k0*n2v{xB?Dh{*uCV- z@{byBu?3Es(MAB&}(R2bBs!sFvflE=dug_1W9SpCT7Zg zJQb<+otfK!cuOOO{gjE&i9y;2KP8-;J!HDY|l-q&ynBSr^_;DxcyH1RGfCd2ew{mfw$N7>IH=Qc)qVmMCEG5X@j zk*0B427Ta*gk}Fgzl9S&F=XK+KYI(vC{Y=DnIa%l%&ECCH3HpA_f$e^%&k^THlSOH zs2K}*;y%))*?z$k2K8vFG-J#L1f)}?D&gCy{A*Z+4y;GB>E5t&VQ5q<&Kf!7nb^cZ zOwfuUNq~g_wgx+n*e2O92v!IJg%F!$y)O%u10uyNJGm-2gCE?-%=W8rHHcjeA8u_2({ zcONwbQiXfYw@$9C|b9RAOOn=L( zmzGKb>0SeYfnu}aZ#$JzwYcUsYSl`^W$1G~zKhlE+-CV-f-*JoQ*Oy=|Z*Wly5k7 zPwqpdM%2XdK_N2k1I8}8Ud_)fR<}3kP)1*KA2i*7C3DmDuLKmP$0xcnAtOh7l&_#J zNk7+G>>X^~>LgfTh&GE+6fU;x+x44^PUf{FnvGT}1LNJ9NLGjTlJ}_AA~3b=`dih~ zs#ABiUEi&f%wydiBGZ;$lZ@IUHi{_8h47P8qhaRrZ1Abk zh}?M~7_xu~K9jrAR0ohtr&e<-eDbEFdbj5p4B_!<*kj*nwO88XZ9eUT{DTnZkF0_T zQi>tN9|@)m$#GkM1bviQ1g@hz%keAt)hC}p{6rx}mw*u{Exbe7Rt9(%W84WzI;}=2 z?_T~Hu^*}EyxbRYSz$XyC#)COZYS|>Cw7DrA?qB0K4DvMdR20FMib(o%ly^WH-o28~+TIoH2!8oaQ&d6dz|Ne}Jw%&Hf4fd+70} z**~B!PfhN?2(}c=l_@THZTc_tWwhrw@C5dBM%#havPk50nk4c@Mwd3mbEKc3Kci=i z4x?n=q){?&WlU*gg+^w^Y8h!yBWreB0d3dpF;3w$lNrQAoMAJ^`16pbF3y%JVwRGI z%eaI&N;;Nt7W0%0l-UmpluXoFh>s~*JOi?@P3s@*GjZ+(hD@C2KTEv8Atfd{#a3gS zBC(o$z7(NEA}FzEB$G0c&LL70sQN)~C!+I`OeAczGeJM_-J@!h6MCF33_7}=nw`_; zgF=j?X17=dE0ui$b9x7Tccng&*W^J)3r{Rr9Ceh;>%kH05?rz}dT=xnP4$8b7$S^g zjU-+s9RBYVpHPY+i7Qwl>Nssq;!{c*DIKO(Qhk{JfOPcTQV^T2) zy=Bm{(e|oBGo!<7*RoqnW5VPsuDHV;LKOrv^Be4&&(NRVw}btX!X2d22b7%PC!JPu ZQtAgN@8Dqf`_uV+&VX<+=J&sU_!+<< zco{r`3u)-MD8*}1ye`EhDK6`HBg6GgDc;K9ZM-AV6)9{fmZYdi#j*}3gF##{@UC1} z3{(xc2Cf>oW}qg|R&~?`^i#H9sm?V7@};Zx4ZB#g>np`Y-*f9LGXm+BZ+rfEchw=) zsV|2}t2E~9;Aqutwk~)z0qvMucl{FrePiPn1(ef`Wtt3>+`2Qjwz}ka=k28$Px7Tk z#jahnJy-6dL&dMUErBDYN@KOSQhTpiw3}|xUS4(UMbEj;|BB-_{bJd!uQj}7$2;TJ ze8*dGuCF;QpU=#!IDQ<+wz2V~P)u?bJJCp!*>*r_ZcaxrNkzFGR;JbEcxdclzcSdt zvg219%k#F!r0`t~#iU*LW!!cy<0ih0IKE6{Ja&!N8!kGxbk(W&Gvk*9L{FI_m4Mpt ztB%KOWghj4cD>vfjbEvc zwx48-#@8EuBW!E7%VJ~At2pc;cI2+)t~wy6!Nj9@%)~AXo7gSI9x3)pF@j-%!~d&c zO}vO_OpIZi88C5JZYD5pVp57JDW;`(35zb88#{fxXEOAB)O=+(Z-C*%MPE zah8rV_NkF5Pu!%ZM#4;miYQmy2wuN{ae@8+5@E@0`SbRQ6U`upp!3eKEm<Ap!gG1b0H#f^wtrcSwERW1LPjX6+J;`+AKtiN>sXg0a$ToJ}-luOt|& zy~bvuF?%e*SnD;;B^n=KmQz8(EUqb;-igWYkxEYY_K*>!Tb4rBRp3e5sT@K690@#? z?6PmOE@g|vE_Vkm4<@@*HtSM$TkLXA;PUBYm+EF+%Epad?hRZXN_MGj)}@?**yTvz zlHZiDJmL=59MgPna^g#<%B{&?pnn0i@7ClU=;f)2br`{xAU!ulVJXwUAzM)HV#`gK z(*g!$)`-uP_J|AEHE*VnN<#5oLMzp^7;og=H+`9FdAkIEZ;74L)|@RU$no)*r|` z;DN$o3BdwEhzE4h*{9^e5Y#rI%~3WUMKrC8)?xOZMr3^>xx-ITL?*^VCLOC}9SxZ# z{;-D?#|@@R{!*5H#Negd*pkn$W2-DYm;AO6XC)pAG3Rb;etU>>67L9czr;H!)=}vF R{pkL|Ekz|0SPUBW{6B%IHUaMxJRA z@(v+^ghd{!RAs?3u1dLzBn5I6P!w#SiZv@(@hjNikneQ&^o+)BN=21@?sxC`&Y649 z`R-MJ{J*!~18@&s%i#d(7A!QxG{syHb5Tr7%(|Ej1MM8gO)-~p=%6bo5VIxb1u;Jr z^P-ra3FYSoev!i-)J^w=rlL#^9shA7gQT7ZK8Ik=63{H-N5Sv=bGz2SN)Azg!F2A#S52e zEfTi63i^@eMl(33FfuWDUO`)E*BDY~DmV{zf<%+z6-rjc}4|ggDuV&N_H4=H0P{(`y&}YA`?f zgo0up2OA!{6teB0;dc}YQvS+-Jc^-XaK#QOi9qrZA(=<+L^ZKHnMXfBrSzl}|G>aX zlp#@AoFSQyMq7*X}o^i>w^6-toIzt$=MCtcO`i&TdwcbLJ`oCo(I^?u|Aa1j9yO@fYJH#9kbElXI+@^5%H@HYP9>Z}P-^F3p z$Hot3@;w~3akrRz#M~?9`(o}B^AkL-Fh2Z}9N%iT_X!USW$1JfO5pWmDAZGt)cLu+S%)f_%t<+%lJ0*BzI5?LY zOr4|zYs0~#sln7&N^o{K*iH?mE>nW_;oy8~F!h`gYzzk%QiFL9Qi9Fl;9_d<{rCa( zA+2&bW;p6o({CY@-spW1BW|>aKoq7JOMNI#N}SB6rySXBN)c<4^7b(0k@S?>Zc~cx zla!S(<u$E`0wvh{`1fwf6G_E%L z5k?*DLyTR9J?m)OuzQTWnP}WT`iCfAM&8Lf`T(im8YC55(=mi(#w5cr2S`QN zBB|)+97{;Km}EJ*0aD2wC8^}v&Zv;=m_#%{8gug`jkyIUFQh_D$~%PtQrRt%RCY^F zQAnkjRCG!`l6HkRW(30z>6NH>z5AsOVgV;u?Y+vzA|KZb|J+`~Nv@6Xef|Ou5oxra z;$fmJmhlNr5$R~*Ej&VG@GJcd{D{cJ-|$x~5n1>tzAVH{N=OT?h+ zD15~Qjbc!W0)SFqF>QaIk%hg;_6R+WwsR?_=>xPrb9gl-8#~E;eu^UwF|P~hN2UAX zKr1b7FyE%}^8N^q3I2A3%Ywf{vyEGazbOVk|7x+s6yFiKme2nmuiVay literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/req/receipt/ProductInfoFilterRequest.class b/api-admin/target/classes/com/glxp/api/admin/req/receipt/ProductInfoFilterRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..89ccd849b563da1e4b410a7e456151e598e97bb6 GIT binary patch literal 3716 zcmbVO?Qc_M6#qTly}h^XZPyhBR6qs{+)GDQROF7KY=BO-F}Hz$qTIEYtAMIs9%hH;e#eJ5=;!n1fw7HkC4y)1tR{Qdv9OX-X)9acAj(2bIy6rdCu=V z?eG8I{RzM`_#lkOaXthcZ%Xo(Bo`#HB$<~aqahpSYD;o4j0G%8E+@$)NiIv0mt;xq z7Bm#YNZ`DVl3cIoDC=0(QIS$r$5kC~>$oPR>l)q>P^yJoMIbS8$+~K#^HyOYJzFW~ z3Jb#m!Ax<=TCxT70++F3maJxFvvb!=Y&BDvDhhOF?W?(rJ!5Bz zaZyc6rX4&of+NqL{Jrr>$~M%AQhT{AGcI z6Pe;tdLe(Ul(tH_w3S`T71Cw<3jZ^9u2e~T8H^V$7LVuh6}voRU#Z&56&9f_*p*XG zjT`&={i+PnV9YBtLSB~aCK;x5q*gA|XTe=m&9&5=pzdgE+1hgL*zUgeQ{_#>C+*5& zF*|LQc_33}ogq5aQz74!3Z;4~O5eB)&_!KaF4VQ<669rAdB$Ir%E|dlcBV4ie~ztW z=b91VZ3(Ew%A#FnVzLjtE>yyf&J!ZeMhz#1yHyjT&SnEUF?YM6*x(qDtisSn*Q`zL z7`Nf8+qG`fM`tTm=JKRfa-hUH((o>koUsbWTxe{L?Dvtsa+wZaH_|9NgUf7gmbEA^|jI}k?Lu= zSSm%ofpbU;>|Ns?CUVP_X={P6kn;#|)EZ^D&}OTxQpql41%~{_vu$F%y7``L8xz1v$CgLyC7umN&6|KxeBi8z#WM1$pkP!8g!IF z43alo1EerSNyxU6u6F(bf$v(JL%z<0fsb=Xt8>`bneg#(R$84SzRrZ5kF$EKC2hmk znQ--S4z`{g^>rr9eVnyc=a{eab2z}B$lEr#2DkXfoh1Vk z3ULYt{X=%FH>AW_J>*U&r0E}0S#L-Q*?P!bPRL;#YAbx}ZK&%FDbZgKx!Vaj;-6)3 zy&>fw)kE%aLLT-HsjWApoXL8~y-r9zmu}(W53W&m?!n-|w@{T^gFi$60&2&t!F$jr zQv)jqIUMp09v zQPk9vnl#cqBQ2>n8O3N4`&#C~gFDR-#ZEJv3`vi$=MhSVn>^xXghp}GNJgZQ;Te&u z87XoOJKEl!kKFp}cz%E*80Cd^<4=t7JqobN_i&Ut>3bK)$SHUUU*b496_fa!(kSO3 zk860DoQ5(#z7Mh>IoPV~Z|i&HzQOKXtMz+OS-rdmZ?4B2 z;P9K2Dn1qBZ^qLZ@w52wA!WpY$F}(JBEg}@2X8_fT0z$ZsW(hTZX^|NN0*Rsx1y%% zY!NMvlb%$aEvcku%<=CugN{+KZbUS>{&7=twg@E8UvvHaJ3Zqj>{Zx-PciEZu!>JG zM=rqLe2i19x`RJc$~a9DyljKcYfm--KYVAjBhv zXvhJn=!RM|sM#p1Ri0U}$*f`7s&$NaKwE9xu=m;U;_GcL4KM#aId# St>zyIXT0_ayv_^)c;i1jl8@H_ literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/req/receipt/ReceiptDetailRequest.class b/api-admin/target/classes/com/glxp/api/admin/req/receipt/ReceiptDetailRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..c51d3b375a6dd6f56e0c912415a43674fca24a12 GIT binary patch literal 1598 zcmbVL+inwA6kTULEl8Q7xAk;F4?%8f`fAo=C!OkSkQ9O#ub4vU)7b@3zi!Knc4&Sr>wMPr&(DK ze6Q223M3c2ju+4~kuTg8FqgUwB`{I*I_madb3^%e&Q>bA8~o8=9NxQDE}hTrIk|hTqs_!Npl*1x|kjR?X`NtFo!$z2GFjl#B*K znq;r1I^2=+sOj%ph!|rPGyGJ>`5g%unj301byCIiJKidkg3>C!hImQEz+s-r(3r#| zbvJUr6prvFG(|jj2mb}*#h&1?k-s2O6SO5zBuyu&nY4i(N!xjkaT`B< zz?6;C{5ji=OtTSFFJRorW#-h}Sh@oZW&cznYOHN276E7|F*P$GHC$ktG}}*@!lax| zR~O91kbqpe+G6`oy7U}&c?kRdVs3QX#V9ncm0*n`N=$6wC}yb{NU_0k*tTx=B#cjF z!(_8Uuu%x{iHv-?8$xd#KZ+RLEv66*%>51L-fN6yQbQcjASp5~k0B23-LIX?nTw$b J?z1NA=g+M)D6Rki literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/req/receipt/ReceiptFilterRequest.class b/api-admin/target/classes/com/glxp/api/admin/req/receipt/ReceiptFilterRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..db2e4265697e84c11234ce3571db73589a3c9079 GIT binary patch literal 2840 zcmbVO+iw(A82_E!x$W$fE-M8Fs#Y!7D=Q$VTZ&xdQr(5xA`0G^?hft1c6ZsG8XtT% zKAHGrV#2E=h6g2D5>1T0VB+5-;_u9v*>1~_5R>*h-+jOD`+eu^{{8Q-zXNy`*KO=V zB?kjlNiIloQIdHR@7g>UBw4g^3GYenvLx?I@`2P{F>%$#HdHKpD9?{9d~D$p3!hrJ zCKaBEC4o#(7bsS4c%ONthSyv!Ery+-xjZ9ac(pKSH3jTdFKC{O1*02!;aZpGV?i?r zj|*hS#xDzKr(1PjV6YN2{R?ZWOMd5)x747fSZUR~#$~S)NI6z&;Yz?9M=G_}YH7Lg zdAsDbgOXQY4VtBne~bS$KWK-g1$CYc8lm4=@Ncd8-H@f}%YHb=x_69?r&XS#IjMJm ze6_EBXRH9==nuyIu$^;lk84__YGWLU2P!9bnl_3E! z&X9-$EWdWM>a`=7xMn75{QR2NJR{p7yW(|M6w-u!j@8aD%vH~@9r8xU@2)jMZbVe8 zIhqufAMLNe98EsX3R`O1xMPd0wNA|^&|Dce4fX?aMIAhg=N#;Y>tK&0dnFl$D{%OK ztdfH_@rr{{>|>)2N>bR5eGXohWK5D1I4Q7e>-9Lb7BuP-rQK5Cbc{A#zn)25W@_EPSNQckC* z)Sfn_T$EnQy-~^o=_&Q6O(}P-mvT5t$t$X6DZb#D=S=QRPJ9ntyF2+OjPIal?@s;! zqdGOQ4l@$TSQn;9%G&f_$h+DDY`+6%+SS&POFZndP8YjuxVrQ)9-w#!1Fr5GeNOqZ zNvC|-a!u)E#ZIPc^*K4^9G#r9?dGJD9XsV*J8{zPvg&N#va6fYR^9Y)zlVc3#P)}9 z8;5y&GQ2xq^Jl>!#!lcX93iLS9B$$$IUQB_c#WKa2F~Jjawa-_zTO~b;TvvdnOqLv z^39wfXX6;_IEq2j`Ul%g%s#|U6UX^yiHF#&*xVD?WE&3>6iq&&3KV`Ae^JOqm1xL5 z`!BWXQ|-6j>r-cUvd?(G4@WTb)uoD8MtsQ>CKI&_Gsm>q2+ZNa%nG5j3X^wWPOoF& zn$+86O&VM+wpbEiWy+WJ$V6vf!ALs>#rB@hy%Kuj2~e+4JO#X!t+CdPIfB;S0fmLx@KV+>kR;F$6tv zNPM)-s@TowbKCITs*Rn^&CVPCDF%kHM}9piOmKsJ%6I?7Z`gL_J_d`0b!?Z=@F*4) m&voBkd`9tk$?s6SBl#hcb?n^weD;53oQP*E@OHFD@B9aD7~P}* literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/req/receipt/U8Request.class b/api-admin/target/classes/com/glxp/api/admin/req/receipt/U8Request.class new file mode 100644 index 0000000000000000000000000000000000000000..3527fc7f8d4049500de32f543c995b949de77d4f GIT binary patch literal 3144 zcma*oS#Q%o5CGtD+9XZtw54szQLb{PMC(k+X0Hi14ul; zuK@{!!~;KoABC71r<<@DOFU%8d-}`n+W!6L=Pv*_2P;_^fV&y!hiMA;DBPzoL*W61 zhZJTh%u#qm;W34I3JVk#)3B6=WdpJ=YrgBf^6aW(z~Jn<{mQl~wpX^6LaZ-e#U9vP zwEa?T6?QeQbR&_L;iPgbc%@3pEfE(0(w`%*FYPvx;2ymFU+FsdH zx6958ul5>m$CrWo7H^#jHiOWq8qm}5+%URV>Y9t!lLmAZ#-A9_J;j{#k+5R$b5Xoelhz9Jd}?E0-3X zjfNA1xEQ&z6Hd3S*l=N7TC-g6Z?}A*vloE}=A3Y?wmNV7xc;HzBZuxV)3)L?ReRZt z+P5~rjGDKK*=B3BEzLGAH0M>@)SOq9nh}|9N#Jda+llM61E2=#0>6v=uYhy3{;18Eo3RrWse%A)*;urR-9z z;g_6gm(ER}+WV9AWSFoI_M5N`22B{EFias&VT8hV3Ogw5q_B&^D23e=_E6Xhg9a4- z_r&1|X+4pTi|bA)gfV=42k=#pg9J(NDnS^|=;4ec&Zy#yFwSV>j6BXLrg>Hvq}FqRBB0!K0aJNO$UzG#CF zi-QX=j{lGbPhw7BPE8#94vE&Svs^n4NtoanMxtKL+Y^n}37>Qvn>4UMremV1OE;Ym zO~++Zmu@8yZsarQ)M$?rT6P+Jr8fKFvnv%Ndx@bBj zo07We7MgCynCL7kQ=UzyMN>*Q-4#t|WK&8v&7kQ)jESBrWg21AS<#f%O>?5@oNP+# zrUf)D#+c|CSElW3Ixm`fbkmAxx*(f+bkkEbJ&Q5X`$m~|u<4>`%IK!&qUn-s%IGE= zO~n`!z5A4DCz~#drmSvqMAH@7l+{fxn$}}X^d45GU2M84ntF9pRWx0bO})Bl15JL6 ziM|QSG|HyyqRG@v4be0yn@rubiKe$PCi*@p({4815KTGV^iDM0lubF^^d3zgVoda{ nRHi*_x+R+Wbkj%CbXzv{>84L;`W$1T@3u1SWz!VK1l;)x%Qcsc literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/req/receipt/UnitMaintainFilterRequest.class b/api-admin/target/classes/com/glxp/api/admin/req/receipt/UnitMaintainFilterRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..47e77da90bc93bb368ec3aa23843a1b069bcf975 GIT binary patch literal 2398 zcmbVN?QR=Y5Ixu4FK;%jYw~3XC4m4*Y{yUnq;?XZAt@nt8j_~a3L!SmD&E$yU3(4X zA^HM50Qr+2AVDgDgy2t+cqU3YcXyo+XDd}m_PsN6XJ*fwnZ5h>zrX$tU>0{w3}7h% z6(7rGSuQI&uAAIHk;|%yPq8MYl3dDCUDt8LgoPyo8*=~5z@~vM12?6%t>czJ{GRij zK&o`t{>IMN?D}4Q%WJvyy`q5Dsk`3lu7Fav_Z{lPc8$kpGTqp@>r}kr)ExoQI7?-CB%n6Ds?!oMBnuNh z|=mIpXfeNoe1(9UL%+V0duR-X;mCHg#EoNnThPtjGQ71 zX}oA*5JMJ*!0xx2m@9+TM{5WEgNlGzEroWRTs7aQ z;bqEJ;DF0`g_@9zay=XTGh#pX1ScYc*@1}QcyF*78O+W_1S`G4eUZTvc%58G*ahw} z?%H(b7sR5A9tu3dq9q}cP4<*=DqmzIsk|ATGXA_NWn+$04*Mx5qf;u+n^N}pIOT|+ zl9L}4F6Ou=Sir-~^bb&#!_1#hzlRz>%=`hhoSi;`=BpI+^(>cylKTsNY2`649l*+^ zl_MBkk3>PGOQN8qRq3NWM(P0lX*I2#axx1#oy>xf)}@mXI_YVn>!chKP#nEO_hkU| znE!{!Aj`@I@c=mvVhj^-F+*FN-!Z;|Z&T7xBc{}pyS;q7}D_`e};I1kw8qG7Q1cFkWfY5D*>UnN!X}Cg>Kp@w-e7^E1e0GS8c!@z9Lk4 xm(BhL>-Hn`r!E}fqNI>pDjCQLDPIa?Q_3kWM|h$44mo}G&4$zneB`(I+J92%lh*(M literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/req/udid/ScheduledRequest.class b/api-admin/target/classes/com/glxp/api/admin/req/udid/ScheduledRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..274a540899a2df4f168741b752df266349442175 GIT binary patch literal 1968 zcmb7FU2hvj6g^|_+G~5AIBuNOC56zY)SofX7O0&BXqvVuaj0Tc37**4t9XmQx?UrG z3qOFotku%31d5oD9Re{%6Uh_Jq`Dz`5=s40j+L#JNri46iDtp zF}^lREu(W(syVjRIjRUm>w~`2ZJYLPLm;$abu4E~AehNM7Erdk4d%`7SsinK&^|Qn z&y2&CTd7+&T8|Cel55|oI8CcBu)bICwo6B?Z+a!8XO)ab+v=2T^J!_&uo|UWy=gWE zEwgc8J{_2ShX`Uvrn5Z;xtPh$f*F@V6G&tI$)r@~e2#1&Q8k@rxADlZNq}S8gcp~I z6NN&=VYIk$rpBj-Pt3Yg$$lXqx@Vd5w*=I#(==^Xlzp$A(mdz-Cmi!$z{H^mKV-rc zuQ^8jtE$m+*`(sWdPZkQ0;G^lqu=xdp*mDneRQx}-625QA=~T^T8=UwaY3N)e^k{`!kUg1T-I?_TCYp%ZM-9} zJbef646If|@_1<)NM^+8rjCdBgiIG!PdnOV=UE-^<1%$VE$YcbMvPw1?C?$(XWfl+ z*TqLs!JB+p3w(tE{;_-4A_1HuAX!-AxXe|Fv*4`eoa@lQ+ICJ@*5SWd7i7~Ph54W@=5rWjP zT|NdRxVSRAWbnV1l$?%BF1jUoQ+$+vaSrpeW&?rbb;aNdU>-WIJ zFy^6&Yj}&GQ>fuOH4PB&U1aDBB8M$xX(_l*o^rHQR2h?}6+(gaR}l$oe`79;;!7-r zvCe-@yu?M%jEu>+MluxnfP6A;^GGR(Dp`<71Lu%>im79yD)C9AzGBy1dinh5l9%95 zmQXpD6O|2R(L|it^DLLoanzZLR43U_APU^&S%J_W=eBg?3`(L|< BRY3p% literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/res/PageSimpleResponse.class b/api-admin/target/classes/com/glxp/api/admin/res/PageSimpleResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..d7b361399648e4f104ab505c0487e22e30d22137 GIT binary patch literal 2511 zcmb7GZBrXn6n<{9n{3ih(zKyOQK_N^0)%RP3omM0N@)W{f@t-N3+yCYLlTpXqkqL8 zV88G|XEdGB8Ard=8Gnqwz*?WPck@R20SCDE+;h&J^PK0LdxyXN{pB|R*YJ59DQv`G z;I=HAQQV1hzbi{oY+E92i*zrFojBsyu<()WyRwul>{<9&#Qi8fQ82x_XIB-H#RvA+ zcD`!Y%K2iwR$f*xs&32cS=ydk%@?VmC026FHQQ@99fh?1uxDP`+go0vPh`cdx!#&W zI6J$~U^nVV^d2v|HD|kheBd%)^eC}VmQ*bjc&B1vxn)Tx5|#UrA__84jwp%-tz2c3aTzG==VM_aWLv$#c3+Ur4=*5l$`UG-BZjr z=_!e8i#{y=55nhUSjI}8efZ^;-SGR*q4sCfI<#x+f?vU^*sY2lAjlGk)=Wra)KmiQyCwalDd*(;2ezc#8O6Qz2)dFb47Wo$2x zj^LuOm_P>4C2$d!5=di0VfM@;oInAK3A~I~5?Byv2CpWtj1^|xc>IwP?54viRgibY3zu2VyS^k-d<|NH?$gyU@zCV~GeAXnoSJV8y4?vO# zfHWqVAxM{II$hg5m7Hl^n@Vzz(!G+K`yQrolKTV3cQC^zx!+-I&ChjU`bP?p?RhQ* zW8qJn%NUPw;UN+W8KZ+}*TX89bg>GNj43{m$4EWISjNmmx=zLka~UHub6aERu~$JJ zOT?K*30FBsAzr|nc!RnyDO~pZC`Ej}H5HYBZyn=p#(0OhrxA-< z|KNNS?>@mq6z}oZQcp0c#aNH9JP9-88PG)GF5yUvO<_o?7#vkS`8u!JtHLC9sbZSm z{aYdJ37T@%p8-BAbdnkPn;A^*h2-*zvFcMkm0Yfna4VU6i0DEGu`fh#6$~+CjKE?^ z8)%w(Hoez$)BsqRM68lTzT713eM%wz53+<0_!s8Yyv$oJ^iC6rhFu7#6aw$ScuE(8 z1S&<+pwv@-)<1_tk%rlI==vDLD!LH?-@l;tBcf1@pZyi_`;TxgmFQqhDCppPYFx{f g$Vti_TsVEb2OpnoP-(vc(FpOO;1b-#x_`R$AACN=CjbBd literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/res/auth/AuthAdminResponse.class b/api-admin/target/classes/com/glxp/api/admin/res/auth/AuthAdminResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..af8bdca4a98ad5d8a49e5309e497ae38ace249f4 GIT binary patch literal 7621 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 MuhXCC&a;jG0T#su-T(jq literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/res/auth/AuthAdminRoleResponse.class b/api-admin/target/classes/com/glxp/api/admin/res/auth/AuthAdminRoleResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..0a4d9baeed3a6bb6ae937ad2ffd0d17ffbed194a GIT binary patch literal 2024 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 SZ?yGC%gIm&2F|Jr;{Ol!r)%T@ literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/res/auth/LoginUserInfoResponse.class b/api-admin/target/classes/com/glxp/api/admin/res/auth/LoginUserInfoResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..0995eea2697f19657392312b18835993f5e54528 GIT binary patch literal 3184 zcmb7FS#KLv6#mAZ&Gsa5+$OENKnkJFTGLVrb&{@h3D{{#+R~P-6MJe;>e#M5Mj-Kw zctYX{35i!Kp*}zbsRR;&mm=|-DCN7ecx-nf6)Cy*%sJmV_blJN{`=owe+O_3tt58i zMgl5sishDA-WSUU8a_;N|41w!3)F2PnPOQNOG)U;8muISaYM%)u~)=W)nV({&~aBs zO(-@s)Fs61vV?SD!~Dd|)y#S&S7_8L3lj8B+iIt%sremA(I|YprtIv4blZ|3=#1YP zL&#xsx_CbRVY*|zZhp4H zF+o%}Um=J21}AkhTM!Q8g}$bL)(jed$UmVAk1RxlP_26%v&IzrlDfRUVU?VP>01({ zMnCC%6X(-#sunq?i6Ku4=IXA-6^C49NZVo06e?0KAmFXxnS;+^&lr|J;@d;b(3)eG z?iS6aOEum^_X6o9vwmI_#AK>wyXvu()Lmx2S5}vc=UEVCmF(-(9J1QYHZd6{rcDM} zBqw`rlkPOUNl8eqH9D=5b-@?Ct#yy1JInh-yBK{Q6Paz$V=EpI-9u+eFydlN3yCL_w zA&*Cgl%F@GAWk>remCSBcoT8AdxhS@6%jIyLCQQ^xW~a0M0<2n`2-vY4|#!yOwbrZ zo=RSAuO-sw+*8y)oSpd|iu_>qPpIEQi9eYA18Q+@W(%78NkLzk|3WG&KgQ^N z81q?q3yA=c%qxT>^J-QR81*qS_c4@JvT6?~mDdPL<@Ky4K)MgovU(55$R`Lg^2uyM zfRa8akxd35`2n+jwlPhwnl2+AVhJZ%@fg0tDc&zZ(64Zsx;SsympDU7#zox4SxO3u zuyBr&iW)B9ElL_%#Gj|6<7>9`0;L4L;UjR7QWBS#$8n5k`ac-fu>1t$8s6rgEA0h-rvAW7`lw>DH;RI#H+3{8KKc_*zrN8!3Ik5E=tD z(+i98k~_?O>4hpssi$Y}Lz~~i&~2el=4D~X%DzPx1NKa*yyBWTTh~d?DuKz!tFB4y znmBQK?Ta4LB`+60`8YPQg3HWQ;TWz^im|PC@Gc9A^BpZ>m6FW=qgdmr;3jtADkarz z{twWfQX#YXlEj8XlAh8r{Ei957?c1IVB~(44^w+!A#zabgSCEeh>tMPg*Ec`%$o@| zSf}`9IQ<)jZ$83ECcTAGF`6x8GCMq(bRW&^^yHL~$2{2(m~qNm*fsdT_Wr1x_IoVh Jx=W+?{sWc&MK%Bc literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/res/basic/BasicUnitMaintainResponse.class b/api-admin/target/classes/com/glxp/api/admin/res/basic/BasicUnitMaintainResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..8abcb926692bc7990ffa04d0bfdbb1d9a6d3960e GIT binary patch literal 6042 zcmcgv>vtPR6~7~EwJT|5%d#bV(=>633Vzmoq-nBA3XMsNOYDXu4NZBpYf0EjWyzJ~ z((-;kT4)*wEd(g#)j$cfh1#JHa^M5y96s|2zQA9=XAUjlcV}i-vbs)m_`o?jcYZVX z_q#hgbMMUR&;NPlA`$JRiwT;dQ*lbs6Kqbi`39SBvN^-%TWp?W^AwwJv-u92vnG8v zf%bcBzR!W4X7mF#&#?I+n;)_HF`J*T`6-)c*_>nZGnW0_q~{W}l}=go3vSP|`K3j_ zvgmn>Ua;szi+*jU#y5&82d^I17KK&4096FIN}gHcIssc1Ek-atYnWN~uyo*DDt5f?|!P*IaF&-+W{R zZmUo)70b=}8sZje)uvZyg0x&)C|BT(?JHNy&07WajE)_LW~NreXy2i7wKTuFyilqi z^A?zwIaDinmE&H$%zZr=#XRw#-G>Ub<>|%B!zhS0>xj;#vnP83hi8KB(v0zTGl+jRA&5ef4l-DjjS86WRiif>A zX3#9vu`&s0g6U`5g?jd^vq19a52)u4BG* zlgg=kap_VyoKPO!kq({JTBCbPqY_?U28zS zT~Idq?Sj5~s$Wa`seU(wttvb)=dH+U!MP*L-YR(2gS-=1#U-z?qzVqzH;aWnd}Ma+ zAa(*ch5}lxpj3O*isvy^wZyT!UO*$S)+?6Rt7GKVVwidV&5gWz(RjY~PF6mcznS+Z zYc*>sC6Tm8YpeA_>2`TOY}>SYuj7-;roFV!rt4_hrt9ejn{H%t6PulEZf3KK%`I$p zv)RMOr5gn8`rpnCn?6n-w&?)P*z_Sr@1}z`-OlC?Ht%6G%jQlt?`3m{%^aI~HlLtR z3L0viz3SZ$td=W9&h)D{ee2P3alcKk(ravfhsBy4(HpZL8#*~6w+7Ih9O2DTgK~S+ zAa4**d~!r>ks9Sq0!mJf_}hdYLhFrE0<~4ZV$7zm5%MJ6dI43eNE>furBp?UPKBK| zZ70`;H^xc4f$yIRoAT)z+=ElNjgu7N-3N+r0>~CQAX}t?Y>^4FMKZ`1`5;@Qglv%& zvPELZ7P*1;DiWMru=~-QMk~-7;}=N0C~3FC#?&Ca6WG@HU343Ig7X7*qxdC?ywD-G zLd8g_5OGhZI36lSDu#%oo#I5O7%3bgHaf-0P%%%iB+o58VOo-U*6sJPPD76r= z)hX@`6{AE$#PLpXU#J+R9U@M2iqoND90?)fWT&`4RE(n}L~M78Goj+U=rC%A)6+#8 zK^q&NSffaIa_1C-RC06TbJYoYA9RL5CymY#IvN(Tr`wQRz(L6CWyoXUA*0=f-YKlLnl@Hj?9JL2}%j zlVws)ld?{(jkLub0%?mo>pJI*fqx+EoS@8^c z_+W@oUYw={jP=mCc#H}_QMyA^sR(4yoLHg~P>d>KmOcVxQeDi@B9KL=MV^*`;`Ef* zMrEJ`twa~ z#RNS{4+3SxorqBf8W4vulLpYBsNt)(36vG9c(YZYoH&DTvxk6^epeH3Vz9>$t{ zp7N&k2KAcs$eWZi>0|g=;!PS>F#i95{&jU93NFfD@%p;jgPq_T(BMkr4UD{H1Jwm+ z_#22V@$hOv345}H@mY@{+^Nwg5uz6*JeA(NFS=hA>elq$C6uX^o;XM5)H+>tKacmj zQFb^{?XkFcl`G>K(uKN}BFiy+*MJ+7u2|qgH7nJiYf2XiS*uLnm31xYvH};%Td8tx zT)I%%S{3(QLvBL45`hc#u2jQrQo2y;T9x!&j%!Po9k^`YwZ%fwIC?5r~MUIB(F`yJDbL0Z$E@2>w zWEKJmOhR13<6Hd*4`j*k2|g#faY)l*ZL}7%b5xVfjpP`-`s zab98EqT4gqDx78fc7<_qZqK|!;UUJO3gfQao*7fvVT@<;bGI;_fLW)>&i^n*+kcod N`X~_eb$L`j{$GI(57Gbt literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/res/basic/ErpProductsResponse.class b/api-admin/target/classes/com/glxp/api/admin/res/basic/ErpProductsResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..e867b83ae9ae8c32b3c5ef0d3191f3159ac56da2 GIT binary patch literal 4048 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 SFekn#nz6(Tz9VuipZx%`G>Q@c literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/res/basic/UOnhandQueryResponse.class b/api-admin/target/classes/com/glxp/api/admin/res/basic/UOnhandQueryResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..faa181a8b1a6020c23945111a368f17d25aa2928 GIT binary patch literal 4065 zcmb8x&2Jk;6aetIjuSWTrglt{Hch|NHcnD%LTRD24V2J8!1-#LKm%=9ucz@Q@!G7{ zfgC{M01^j~IDo_fBn}`U0Ro8%i35KCe-z@qx8AiqyghJvZ|7rYf3q{5_22*e`4<2@ z1GO{^!CU?C1iVe*0fmPYwkW(q!J<&2U{felP!t|f*rrgS;8571uuEYt1=SR|2Bhk{ zTXxN>8;~pRSo>CC&vLg5Yrf~W+cym8r#9?RR^hd4Rq;A)+tyyGRz7gb1`LFSR>yWZ z=xo}KyRTfo=5hB-yV$y+vnIGDg?BXS$~GYBy3MKq#sXShtKoAgy>`m$TG z-12Huc?Wk@qh50x3g0b05TBoJC_e%v^P7Z7*`YAIsQgN;ykdFy+I{8W!_wQzUkMj& zC_gDJ8x0!u8P5N=3q8fef#%xFYZ9cR7`C?7Fl-Hq1Jv5N1*o~Bob70DEpoP_OIX#} zD;T(|S5TFqUfny0hU%)xb@gctpX=%tR(AIc9-;LND(OWpgxiqbXjDjH%Mx!yTtnKJ z*cgoYBb{shm;E8Nr;< z%o*97QO+6hoYBu2r@$F!!5JsQ8Rx;Zfw_0;4={e?ZkI6j zab*uYiPvV(0WM=_!0QQk3S;-pzeD0D?dA#b<{5Yz-vHe_i#dV0Z))r@B-)QobL}+r z!X+MIBqlub88Q?G8iEt+o1re5822Tk)a zCff6n=@^@CiKaf?v>=*hWmBJST13-QjER1Kk!h4oFNmg;Zdw&hFUqErZdymvMvRHh zg2;57O}9nUA>DLeG`%F74(X-`XnGi9qH`%Sjj?G?H1+EyOEkSKoBDN=Lerxd6P=Nf z=>(hZh^Dk|azxX-Y)b2ZSwH^qOokb<+oE`Y^^s-?7ManoX}m5v%lX%YgoE`A9S^;xAl3$MM@TpqoBM z(^HXYGTpP}jV7!!TpBhxuHt%_@x(bw(^(R5c{yNqu7 z5=~#lnCQPoWEyAFnrO=ErmscQJ=v7iP2ZsD+ZYr5?}<$3*|aX226fYSqG>}m4eF-v v(ey)%iT;B{rVDI(Lp0@d(~qL*P1%&wO+TaQmlzZMAB;>F*>oRc0yh5zl*}K~ literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/res/basic/UdiRelevanceResponse.class b/api-admin/target/classes/com/glxp/api/admin/res/basic/UdiRelevanceResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..ffa2a870c59d390b794d3d3d24bf3ec1a8f27590 GIT binary patch literal 15334 zcmd5?33y!9b-wq_jONW~MjDOQr^S}-v8~mzy!&~<7-Vp;jdy|*5=Nsz8l%k`$w+25 zdqP6k!jd*=D2>~cG$AD>B_$rFWm!uR*TG}+}k_G60?!9l(^99DB_UreV zbN_qK`Tuw4-R<0mo__tYuQJ9~@%!U!kS~w1R^Cfy1(}s(R*_jvW(}FOWY&>cPsS#* zfy_oSo5*Y?a|W3$WX>eBmCRXW&L-1GW*eDv$ec@NJDK;8IgiW^GCRrait_X0D0h?D zLuM~^b|0brWDbxyNag}E?*G9M&!F_|oxelj^S17z}KE+I2W zW{6CI%waN@k{Kp5LS~fA7t4)55$*(o}ag$$X^6O20gUN3+`AsIj+2psF{6i-Hu*q*V`A1CtQIp?h z@{gJPc9Y*>@;gcCt|-5oGovuT8Q;!XbaJRLF|ZxA^p3;XquHL}?C4<6zR8Kg=->v< zV#2*EJCf%tJT*lua}>3+#s<(58_(u0-H|_ff;HriJTknAAwF$fpGt^++lP!J20?+W*kqh9LOIn z6htdA*WNv5|-bV7W>_mQOY^s=-@3CxSVYD#0nX^z^`$2R^zRSuTh0(lJ z*`Mtn#&1mT7|Ugc4`wF{R9B5*3p3t`*qa~DAI*-^J1UNkjTZBG@sYv&Bn>qljG>RCw%-~3nznY|Sh?e$aAIWFqo^Jb zv!EP^+GOV`Y_~TToT{1*F?hGC8BsgyIo_N|iWqNNRH1%IOcHNq&@)L#P7YGtr!e(v ztC%A6qt0|@Ng9>2gA;`!wmWl$B+qiE3(1@%W(=WiV$u*gN6Z^Sd&JZs)_!;PRHAm_ ztO=At%c0qGh<=Y3B&QL{>~m)lkq*wDO!O1aR`ZFvz15jg6nnw!SrsYDu?@Fvr&*QS znV%dQ8`zzlz#vUR7UPWwcf4!cP91LIC7d8N;Hatr2l5R#YW@LNRcF9abq2i7{~%|) z=}Acul>J^?_&W1`~fNY`jp_q{eLtJ`gB`F-E z?ha8QoxTPU;5$H+xUWS%pBmJ>@`b3Da-l*e1|1y<`4FdCshr*%OF02vQ?&?^b#JSw zk%7Tx`Kw4@&PesEyaw4H=h#yHajNoV$)ilYELoA`;2v&j9Nc=1=;A3SUajooDebb8 z-XW+u={3lH$fHs9Lsq0i9+t`>E7Bp4Pvwvm>5vDia>$D8gm=WMPIwJf;zxNWE3Klm z{6&FAIY6_w(`q$7f!2VgTy$zIJyqE(d+43ys)t^K92M^vmydMoY4NbY*{=E(Xie^$ z#3bIC9T$fdE8r)4U0%G8Txyjd0j zrj0d{k#i`Lky9p;kuxNg@g_quHDVfb@Qy(1T=tgUn~hoFMa?WPXdxXUY6FnTN=Hj%dF_=JQnj0t`>F+c~Qb-afWY z6@~}slxon8R9j(SQ-Xh--$UkJjBQsd)+3!`n{W=O3M~{=qg}0ZC;^pswK|JMhPlhd ztBM7KYOJeOE*bHh`;f3ugR^oFP}S8sd+neN4{#0xDIwPnFgigi2nbzOYY3HeS8HGu z$q03uK?Rb|qCyQaw5%keg(VR!Es1Dx0fFT#FVrf#TKx+QEh%)~zj>kwzsC!rMJ8pO zWhP0pt~+SLTaq^(VEiz(4rT1Dm53(Zp5Wc=PCVQjYnhW^yUUJ`=SOij>GtP~>K=0H z)kIAW+-aJT@1By%dhS_rPHyz3@oWKWWrO&}F^?Iv0RS1a2Z$2efGDvOh!UHDD6t=i z5?g{Ou`7rY8-pmZH;5A3gD9~>h!UHGD6vn75?h5Rv0I1|8-^&cXNVHphA6Rfh!UHJ zD6xNt5?hEUv5SZj8;K~fmxvPEi72t7h!UHMD6y}gJd<(S_h3JaS`SK&GScxV;}46l zTVcy&Bl`$&LgA0H+fd`Q!NATYKf;WM0%TK5#>S)}hrSRX$FyYZWg2ogNRDgC*aJ1> zNRV8vC1dZ@kjsMPgqDmwS3`~l$w@64d$opa2FVp#GWK{4ITj>WYRNboG~{@YoYInU zrfA6JL2{LrjI&5XP6WwmEg5H+hMWwNtF>gDeHwB_kX)lB$GH?(He49a7or{$vE3JWYtR+9pzKE29PDvZ3 zfwHWl=}XMepRsi^g2^+M&RzDF zE)%6nQVQ-$P6^2;^peR^B`KSCC65ZpujwT#N|mIGfh&2Lko-fvWM!$6bjNTdr-kI# z^^&PlCF#22O3nz$Khke*Ri#SO&Bv8ICM5q@-^+BVl5~l3B`+6}PwFMBOO>Sim@9dO zko<;TvZho?y4tytR|?5L(M#5rDoM9QSMn+$`IKI=u2f07aJrIL3(2STlJ%uZ(%sdS zyhcd=sa~?7R7tu9yOP%m$!GMER;iM7qjn{a3(0TlB^yhXq|3Q0d7Y5_mR_={R7tw$ zyOP%n$!GNovbj`A`efir-XJ9ZOfT6|sw91Va3yaPl7FuM;qywBqz@UcI6%4Tj7%|}8wA79vXsI2yViXitK`|@t3u?2=5!7ZUta1uUs30I;P`jN( zP`h1WB`K&v1tqNtUr>i#iJ%TUWmQs8N(EI~DPK^hU4@`dJ8e}_P+A35S!rKTmtBpZ zF1yC6rl1-XRBhGxg1YTm1a;eWRxJh9si0b`&KI=Iu1C-^yTPibpavCGZ#DRWdTa|p zJ$9pIQBb1_vaCj5&~m#8LCfuCtBHb|RZx@F>Ums7(bewc30^>+E&}t+P9%dH+# zTCRe6tmVF-jdm}BHrgw!UJ6>Ff_kkLzMxGA+2p+b&8Td4DreX$Q9Z+6WvwLoDn(yu zt@6>g*sBq=#a?5rrl2({XtlM*2@2EwGsJGCdmT0q+|uY4Xtc@w!nwzVYuNYLbMV)O z-eAw;`>DZtLqBAHfwmA^8~Q%`OQ0~@A9{lQ6;Om73O&aD8mNrTgg(Ju0E)7!LwB?9 z1DWiTp`+|?fMV>y&^Y^Bpg8+_Xb<~4pmO$9=sfoKKneD8sEhpoD9K(8EnzGxxC9e)~_99S8(uQOg?F9D_b1;*p-WuR()k?|<|C!iXBg>f%?1*n!E zH|}6R0;=PmHj3<@f$I4QV}$(+Py>I`*u`E2viLK`x$Iwo8u^cmcJ^;TP5j5kBKBjT zW+P>U*}ns|7 z{Ws7e;|_kD{R}8$Jj`?K=Rk{%NBKqU7eGsl=lEv!OQ5C33w#}W4XDld1-IDiKvmu=xOpjDxtumwC0v^w-NyoYk2H9Ub&>0RtV)chr@ zi1K9OHC7kpKour`jWtLZ`+ot^wg1chB;MqC&bN^7;gAl~|LRmX_1P(KK;*0G~t6yWf$~Xu$W&-ZP*yz)STKdLgDEc}zO(rE7^D5iT6`f@E3|$Fab(Ng;YSXVveiRjtf`Zbs<5JtS-A;xR4ttR=MNqwiCjY za9s(g#!?EgZsT!Y0~BWG8V~SVpa{zuH}N{4GIo_Q%^@@;ZvZmcBgPtR z$8?xIYc%mjpg4QQV7v*aoJaVJycsCLTlv$x1t`fk@XzykKo$HTzl+ZYs^mxb3~vQW z;jaVs^94Xv{9(SHF9b^SXZSq62&kIB#6$Q!ILr)#z04N_)fz4An|ujSow1I6kuL?R zH}!n2!HSeY-(iww4^;OOjNFJ9wN6!R2{$I|;0F{UGW+&6VA zdi+i3p2Ay2D3S6v7x8r7CP+yo-crg_d;2&gn0z}yPqU;@B})l{m{*{`#Xm9Y!Xlk0 zC0dDBmL~4?{4@ya5vh_N;XUQ_IO;)Fr}H51S*J}CkDJfZr};SViSLA|eq;6NKh%5f zJ0z<|*Sw=gdryDoeAR*4ciI835ARAsbpx4tDeDmr)&5iK^xdkc&eXrV&UkNT4un*f za9wye??=8g^_J#FOLfeei;j73Y|i9V_ZsJ@dtMLcQc-oXY3@4d^>dCzMOWKd^PG0o z>+Rg@s(0Hm*B$oy{J$cNZey9^Pd(+$nLmI#0lud2>94S@7e30)N}qj__2G_!Png@% z=SaK=MfzNc7ZcttF+NWArQaj*Qo`p+jPH?s=^YZc6W%E?WOt>{m$;MgZi(^XZdZDb z#JHdLrT0pV4~>24eG>N&-Y+q}E%v1kNZd>Kpv3r`xGjBw#4D-&y%OU)VPE<}iB}Uo zBr!e>_NCt^@mj*~mv|lFizHr8_yZE#gg+?p2ErFhypeEL;!V_teu*~|&PjX*#SBQi gg>W9`B)cT|rz!IDhxh|dKCSL?oG-)I5`*{r51=3{o&W#< literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/res/basic/UdiTraceResponse.class b/api-admin/target/classes/com/glxp/api/admin/res/basic/UdiTraceResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..e4ed784983ee82daa44aed1998750b90c6eca0e7 GIT binary patch literal 6698 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 VY<)FK;K@&*vfC2{^ORW#_J91`uTua3 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/res/inout/ErpOrderResponse$SubErpOrder.class b/api-admin/target/classes/com/glxp/api/admin/res/inout/ErpOrderResponse$SubErpOrder.class new file mode 100644 index 0000000000000000000000000000000000000000..7c5f79a2d7b2a1ce1b398117af4454dfe491ab33 GIT binary patch literal 2195 zcmbW1-A@xi5Wr_kKaZn8q47D?P9aht?a0`4Z@9)ncVb*in3U#K$36t~SC)2N$v%_#Y z^_slGAW=5`%GRpGK;yej%jNe?A6NHd11nZ>TDH%C6>x*g^MMt=W!aX$#Go%XwTTDj zoht4eELt{SZ8gf=eQcKN=*bkFido+@U5o6tGwN?y9^O-Gl~>&6np@>A1HE9|+|Acb z&*QkbSgbe=qgLN-8fMcn%xc534VQa{Wjih3*x$Foy{2P(e6s5-OjoaQf4x(Z(cF}( zD7tqbDx3Q|h>{z6#QiO&x^B8yJfFKrm+qV&R5aZ=DsUt)q7+mamx3=1eam6V(H$BC zxU$mKf&pCYw!7{Ny3%!D;7H;L?cQKZuvbYuqV0(03X}(3zp>vy4VODc$!WP2{=lM^ zW#!t=(R4nAwgvK0%#x#V+Oi&L4qufy*M$16WP{*df1N$n% zj-ZSS=R-J(-+B-L<8T5k1}EVZ%7dG~LF9|Hc|*B*0!|}2ZC*khK^>o-*@H;uYE5`I zAqG#x31dN2`+7p7{283Vy)hgOR17ASOnoxbQzg?`HB+C=^bDDv_h6!4giL9{bWX_> zm6^&)rt@m1sLb>NnQA?l=v{HB(GxvXRN@!9;H~WEv7o(@Lhe z%;YMWX4Fh^nP~@^UiM(3c?p?@1=9s3Q$l8XrDU2_GbLoE*U0py2NTV1$dnOGb7ENK zxl4Y=#RznU_N|iXB3#0#gL5~&2T7Uf9WuS|!9@R&kZD9PT~;!sWTp>FrYmZul+5%I enLhPkqJLV*loh3z7xF3`N3G$a26x~Xr2YViEH$YB literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/res/inout/ErpOrderResponse.class b/api-admin/target/classes/com/glxp/api/admin/res/inout/ErpOrderResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..718b2d98c6fa3097187ff5fa46394fd54f4dc0e7 GIT binary patch literal 2363 zcmbu9TTc^F5P;|ON-x?{N(BK$1ufS_1qCUH6i7(QC6@5O+qT`5CEML*cWd-N`Jf5J z#0P(XKgu|B&i1yPJ`i4J&TVGCb7toJ{rCG10Ib469OAGUgBTP@Y?0U|@sY$1iBBYU zqfm^(UKI8jB+9MIzTG^rYnsg{B)D^YX&`rhG97Q*+maDWc^I3D6mg#6SJr~^E zM&FTwZtCtfgJ6E{oI$8))i6q`q?_7tt5MPHGqqyiN~UC0RpVT>b((vNA@@>8WaVxQ zbfdcF?s~78&Cki+Gv;)UjOK5jAlmei=3ZL0Q`N>db~PJW5}s#~iG=4w%qVKnOAWbi zkI9C{B2#43GxPk3)V2MISzLE0Ga{Avewa);&|M4VF96ADKqUm_on&e*5ZAW znKgH0vKyBGbN$K1D)kb4>OX!zB8n9+TP?e)9q3e5qyG9_rp`*jW0*+7Lr5hd zO=6fthQtVoEQ}^02agym-KqGoV7iTaQn}KqE`yCbx#;a5c!s}69RHdq1PB&K0pjHv zk-0`{t`VGTWak?3fx#FbkK-PrJENS$6$Ldz9iIOM>?c1mg)$-*;R%kD-uNj@d5@U4FtNO<9sy>VWg+qf-Z~y=R literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/res/inout/InvmandocResponse.class b/api-admin/target/classes/com/glxp/api/admin/res/inout/InvmandocResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..ec3beb85ed14ca2e85697fdb7e0f44a4a32e945b GIT binary patch literal 4055 zcmb7H*>4+V5dW>S>)mzMj$?XYTA)CnIcx4?)0RSMX`yLL3*|nx_L8`DY-2m6-1qr_ z#1n^vctD~reE^B35+KAOf#9Fu35h43c;x!c_pQB&vz3C9%s1c6{AOpqnQwOU%RgU! z1K?V`oxvrTb>U)8NL9!&A;*Q(gv<-6+h}CCHibMPpq6lLAsrzLLQV*IQpia$dCJDq z8LYvqgJ)!Y*1>ZQo_FwqgBL~cl7p8WyyD)H=CX9qpC-xWgj%u^@Z6 z6O@n71WnaNyiBUsopMm$B?rUyoD14>x)E91z0CXIp}jM^crfJCY^;S^hgNaIiq*-v zBXJ%|tYcQJj?W#5LvcC{eVbUY!;OVjIow^9ZeO>eXSc}x^Du!)50~OH4x5h{WHWB?aHDWH3ArEalJ)%);nsy} zts?Dl!HVcdqh8tO;SIdWWG6RKA}6-Zz~JPj?wN6?RdQ0acsJIS+}6s4C@?4Q%M(a#hr|j;i%Zi3w2I4C#%apz(z{yLM|nxQ7fyX zRu)LDtdUw-CbhCsT+f3cWhI^BuEf>gYK@ssS(Juf$c{8B#UU<=`)n z`m7J^B!XG!1n@vV*i8hpK@z}bKRA;JW@9CQt$y%eBA5-C08XFo%h^i=vyl_PcK?&J ziC|uU1hCT&&Lx651>)eh6#e z^u)JtXC}uNkx^SRgZn2*d~@n23>M8FF?JB@iTVd5IGOO^F48xTo!*|1MVi5!##|52J39+FXU_-`I{{6<*#G>jq^3@o`dz0 zExN;DH(SM&w|aC(ZeqSNZ!GDN{xNB(VWr27)jcLAzK22fns1M4KEC=X;si^bq(7G) zzsyf>HMgl2+nAr8V}m*QiBqtr7IEHVBG3A!D2isJais0ED(72D#g0=Tr)YImLw;JR z(mfUXkSGz-Y5oHu4xECO57a}3eOsBcEhA5M*HgiFl*;L;*sS6yxmzC6Sw+V%fU|fI z4>4y8XYeq&6zlsL9^ugp@NT|`N6DGkj%V>0Ig1}h0e_@h-sG$KC^;LSU_Hv@9I3dm z9l3ugFj;ZKV3lDQ|I%5!Pl;eHtgb=V##}Cn%+gEDV#|JMWNa@tj_nf^gxtkI_@CQK zP~^^8p@}^v>ms0=1dOrgR1?mC_>rf(5bv-a^1W2~3Ty5^i?xMyi&!ts$fa<;=Ci^V zHP2bGzHou&hlJmt`TQa_7B1BMu*fgcd_nk&NfxoG{~fQdjs6^~MEznQWHc!}{vR*w BsyP4v literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/res/inout/PurchaseinResponse$SubPurchase.class b/api-admin/target/classes/com/glxp/api/admin/res/inout/PurchaseinResponse$SubPurchase.class new file mode 100644 index 0000000000000000000000000000000000000000..db87c3b342162d5e361977c5c0dcab2499be9045 GIT binary patch literal 2664 zcmbuB&u(xQV*@vLo0CrsfYH?fl5V49QXtHqY&RWb~g4fd#Jd4-_Fc?GoLr}X6$FrpFAa^ z({!amQ?y(ri_Wur!E%A+OO_RuRhF+JOZ1JPsxP-ZnS{~ykFC)41kJA9 zaJC#faAe!wNFrahm&UxL(}h?f+b6nQIQUnYVk-6Uv-p&Q>!wgr{lEhq3@C&2>6v%d6`WkD15g-t>E6$MvY^QE`m z?>4>Yy3-64ZrE~yO(*iXJ?zXU9Y4nG8~x_he$?tXF+8n?lwPzFIC1P@@Z4G}?Aq<% zR?l{NzU{bOU)qru+dgyJJ8{0e=Ec2G#@?}!*{~&*wwGMn$per`wGxkX1t;nnlwrGc2<#dwF1vWuE0A)k?G` zXz3LS1qHBsoxW|}@LH&P`+rVIZ{fyH;ks8S$Kd$NF}t$BR~8v4izJjq9?BvWWs$nF z$X;1w2RlcCcLsVGEgM$A78W0q_*c0dffiNgC3+p-*1&<@prdFBdYg_x$AkZ)+ygE6 zx-s}Ty@O0Rco{YaTU$%rv1h{RAc_gNgSzWjdgk7U`s6pYjhen4{fIc8yH$(tGe4-=~w0D6cbhz~pBz zaowa$RmF75$W+jo0wa@cW-91RJuuzOVB#81nWh!f`$nds&XgFLJ}@&Cb*5Wj+Rk9& z`;;=xD5ejMOeLM^XCu=`W~P$PbQ?@}GMM;or%bbo>9n!N_vkhLi;?MLbB*uOnSKS+ zZy8Md&ZJCx71Jk1rn1iTyOHTrGgDb-`U6aVW-#%amom*Mrq7H_6`kp>k?C_YQ$=UG z2d4WOO#J?)O!JEAjIo|3^?Lft$h2gxr%9dZZ!rCn!NhNW%5)G+IXbKK9DZu}X9oY4 Js6lU1`32%-fV%(y literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/res/inout/PurchaseinResponse.class b/api-admin/target/classes/com/glxp/api/admin/res/inout/PurchaseinResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..d4f6da49efc333b9619b699d907467d1ab822c7a GIT binary patch literal 2443 zcmbuBTTc@~6vxl>3T36GT)f}~6}4Ps@s5IsfFveWQ3wybm~A_hG0V2u-4gvyK4_vb z@xc$^hcf=pZtb?q^nv(t&d!`ObAEH?oXP(F^Ya%G-KVV_Z%p0QYC z@tnnamNv4qnWYzkhIU$&?Uq|Tv^*)ucgJB`DyO~-hZ;N7EFTVMnr`D*)uj7ATo8>N>j?G%cHRBd#OLsVE1R}-ly`VwTXjKV zAF;iN1hETYyq2$Qv#dOyqwT1=WBDx?TfB*xSIX7Kky*DtHchLkOsjUJ9MhGashmd3 zH~$?`Iq#&`Y&f2r?mGDLDt6DTC`b9Lf|8|~Jwd6B;Mn=Ha^&mQQAN7DR>el-V!2VZ z>^;j>JZ?{>{6hukJEx^U+=BA9V(9<@5;EdRKW<5t_8G45O8SS5+P38)wZ3!_+Neu^ zFS@R=(v0rH4D8wEHC{UD#QXDRo6*(ss;*%H*6rTQF2Ex`)$J9QK#x~Am4{c?P2eEK zf8^a)|MtY>|6h0>%)OyU+v$iRb227+FB}!zzVvr-_y1+$XhTTIdZ$x{z!;5kI}Nm| z+)`YJXHVAj0=K9^7iiL;F&Z~$nDPb{Sd6eJvY4Q=28~i)ka^0MLES}fz?;ekS@i`i zpK_D#zN4#njdFOqvXo#}d?gq+&>#*ppaTu$K;vM6#yLpPx#0UeY=X}Xc@Z-vw17^} z{vh!+aJdAT2`A|?zK!0%JGRIW1F(X5iJ!H20m7ai)u4 zy3~h>@1(;t95BslnNo44DJ|2So+%Y)ng-L2K1^I69i~FSG_Pe!$C*l6rrUa^bew4( zOt0=B1p*uvg@fE8gIX3!7kBiacV!hjDk x`AD0|fjIS=hFZ{)K9d9SOm2eqMITyzc{-UK1zUn12l5G>fzH7=gon(a!M`Hdv*Z8( literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/res/inout/WarehouseResponse.class b/api-admin/target/classes/com/glxp/api/admin/res/inout/WarehouseResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..44d3d5c78ae43a869b1e4e699a258573fae361c6 GIT binary patch literal 6392 zcmb7ITX_Jkof_TOs8^~}V}cU1rAqZi*Fq`RCT&5quU@N8jZ0gxLr`{MZqBZc2b~g!>a|&3VTMQrLibj{SgtKp8-ntI4Q;PB>?ymB z9mO_Ps+GnTLD9iA`vob^b22+CReRUM>_NMJYw6$&c9GjzE0<>Wm+BRsyNgO=x-u{5 zik;=!?C8|Y{d1$Gxyop1a<)<(t=sdXm1=FFF?yg>x2J0h^Y&hQey&!XxAEBcl-=;+ z&^@>&ur)tcDVR(I!lhyE>@F=)AZWV7#&JtH&CLdZ|s7KoyX zIY%=YSVvef8+XE4ShnkCK;!exlNAQr55`f>PS}m<+T@;6y)^fqYg4?pwV(y++ zqTp$rC&<$}&^;|Cfzv93JNQ|7tcDyHtILjyxjb%Q9mmDYJ#I006z{amAG7aSD9zvm z%MQEy;9Uh46X`^S!+z&xUwW?(E##Y){P-o{b@!jgJqL-41!B>X;hXa zl5o_{Bve9@KjEWQ@+xf7o@tqB8!e)yCNeUyz1nTyXOfm zrIr~9N;_JHA>|p6Qwy>qiB+{E$QV_bt_*KE_J#zKkcLz3Sv9% zVb9*}6I*dnz%i8V!VJ2F=HEbaAQ)|`;)Vi$|u zw8x+iGuq2yA5U*(bQ|qA==1aiK|QT6j++)LGk84+GTY8O=#M-X1LRu;%??u8#CqCNU

    zLs=@)jl68_2RX27Qx|YT4#7otA(LFQG42kp*jm-Nt<*w7(?WxZrithhEp#YMbh1 zbY5$^s6DO1SHYF|N--$HNdy$(Jdz_)Nsh=SIU=Fth@6rm(n^lVEIA^%&dqHnTeqDJbw+dYotxV> zTA$n%>Wroq;+$%A&V@Q3ppT#eIJYf~5sa~+;j7NXn0eQ>vX(a&Ph}ua%S^52uWEO37``r`#YZ z?+mBZI;G@}=~G@ODet1Y{Tq)`RNnYyXG!mrlAEtjxlvMdi^D@tld3EZze?$+NR2KIze4GWk)b8Z$SFW}*9e5AtbL7=rgEOT zPLZ+JRFQPE1lsA#3l6dR>oqm-Er81=xU=ZPoz+&Jh8 zD}(t8D{E%hCF{Cm%xu8Lw7OtqS~;_ejdHG0mzfI~t%S)+pSRb_W8Q0Zn|XHWc3tvj zcfh63D!{1EDw+j0D!N7mv*;Nqi>T0O+c(O;oO|>-u~?)E9md5M#Bn-;@0JJ+h@&)v zwI~gVhiDc^p<9GaRUnln#9dSaiqVX?f#!fTstb$m0n+K1=%qSPoQ{hE%>yN9iT+Cs zpd`IW|E2{XgZ@r`rF(%=^bdN2?gL5-{7;GQ2g-bp(3S| zZmOQD+lon5%vYgK9j}6=Nfk=e_0l|5(bA<#_f;rd$E#;UoK?kmw*SFm{NbZ=Z!4^% zv`3A)R7ua?v<#^-e3jv;R&Gd1suWYDT&i9xBkfU^E>*^}@3XQ}mGxC9R_v-TyjV_9 zhU4m9L=;K*MS28LSH%W83KXG)SWl1Qa-y_anDiwe1wT~ZqQ`(#q`*Jv%Rn&{!0YrC zAdS98r|GLeIz2;=V`iaPUPc;!9cxMY8y%!$KnDE>#rQb1DUrbU(KoP`5tpNQp8(2o zaz_qP_uE)dklaEbp-G6hv61FH!V3jbJp<21S-#|&#R6tc%hpxbSX*w~v=33ZE_$0w z(<@x(I>y5so4yxSOZOp4Uc?=7azduOvx&P4;~i+4Oz&pp?ui?cyfb(P|9DUM3v8_u zOLvEvcP9n6%o2q%a_uT{Cr9b91ieh1@~wJP@k2lp(|U~Y|rSMWNxncrkQ?BJDbgSQ{A_wqU# g9OJ$vT9+FIUZN{nf5fPPA2BE0dKUC8*?y1zA4!jUy8r+H literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/res/inventory/ErpOnHandResponse.class b/api-admin/target/classes/com/glxp/api/admin/res/inventory/ErpOnHandResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..8d1738cb218ae928e686be79f483ef70ddfac7d5 GIT binary patch literal 4650 zcmb7GS#um$75;kEJ>4_vSu|Rl#)c?~NVJSJBp5`15_nS6{IKvRc8AYJi!ycfDpcOZ)=uTn-V3}x#ynyedpeL z?sxC>U;p!)-vKy@A7?RxW(HZb#5^UYEv6%;D`rp36){iScqYsCSuvj%<`=~KqL?p< zc}~oi#e7A~SH*lya9_9ajVz|nbns1SzvbZD4!+~yyV85!!S@_|-@ywGUUcx1#9p@X zih*3caV2bYo9$=MHn&0prSq4AD?w!^Xlz$Dy6t*ndwCGF7VHvac3NT8fK_eoHM$0j z6$AEW(5=?ingl-`w8L6+uM=u;zprP=x5MpvryI7W;diP!fBeQdtm|VjO z=j)AdZEtroY(Eri?x>|TtHI8tpk0@K6g0cFddI-Y^VQ~VWqaqDRwZcFE5X)oy-{h0 zol0+em2>UZdgH;Mv2`)*w3>}h$c+`Z!|uv(0VZbWl1eay)El!&-cW^b=$+NI;2v0w zECXi_3L?~phiftv()%4F>SC-i#m=GSP0k)(om8#38g^^VtqVb$C&c2iCPVCK$xIk6 znO?MHb9O~CWEttNnVtBW2Sd@C8H%qt9X_=e>~Q*_m9B4I4y)bexyPs$9{Hfkq9Mwu z*{y|b4$6_v^bSr>HLeEZ(HK;3G7ikn9y^_!?}%aP5*X7zy9lCf+ z^2E5P;C(LMi`!k?A!b(09Ohjth*uV~C}s(_8@TKLzuztboOkg--0kAy;(bWGd&Kxy zc5zC)(_-!w^IkWp+rXr(OI2KjhUbPxssBUY$^oY1g%!s*fOw~ z^n4t8QKJ2_6esvL+;AAT@YiRCzj6*za**^=a+a#)ajKRls#+eZYI&}z<AIO)2-VmvT;}d?0z1>7%BUE8R=Epi(}V zoYFpON_ic6Da$J5N^(l)s43;4>7`s$DL}q*_AET;E$6YJa_~zoDFzT7tF?JR1qG#?ScYw(I79n{* z?OB3JUq|UGa-QX-2S5eiCaB;$o-H6J0@)bCZ&W~T1fn+p8uxPqjr(~oC!l-;%6a(#(1c$gXu>ag1pyT!P{Au6fJ}Mu zMi77Hujxu2++Sk}t5{>{Ck+qlywfSn7+G9kYy|U$iBHfo@c{mTi}Wm_|BelMY5p?) z0T0o$(Z-wjBs~W|#ml%vFN2@sc|1%ni$CH?JVI|2e?f>x>ACnPuij(ya`+eS!>8!w zjU0dcK25J+jN>>yL$8R>au1Kdvz>n+Vts*&|rG_L(W>N9S{Imk4 zdmyS>^Gm+1hA8NWZyyYe`;HoNdP9`CW=;4RHAGQItc;#DSzS-)ZANt&!Jko8kEDg` z*rF$8c#A3!b=`(v;t6^tKNerWHa&~z8vjIH&rxZ0dNzJS4PU0`;58hhmPB3Dg|UtN zI}DiAg<((&FpPJYw%<=lU=r2=-~eL|hay;d0M|t;ppD+;RcMehdtmLtX zm`Nh`xi=h+=-C_4`x*Whf=Q@hegtbJ<5eD^d`Gr^i>XK7z_HRz`|w22Y)bFaKHn*? zbX@xd@lR-Py6hLjejGbpd-!Uyo7jHiVZ zLc1|>(I)esbG~!^{`vd@fJ-` zlFum9YD5S4i@YB-my0Jp(>ze!jxlC)Mzs1%268{y*MT5+t&_8S@Ieg^^48+f-<_UOcel>cA>hKYLQe=N)6as Wd+kSF&7^byt+f}j@NpRBKKccK&+gU$ literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/service/auth/AuthLoginService.class b/api-admin/target/classes/com/glxp/api/admin/service/auth/AuthLoginService.class new file mode 100644 index 0000000000000000000000000000000000000000..b211236c53169e2613c19d1f99fecfb3d3d9e48a GIT binary patch literal 327 zcmah_%}N6?5dNmNU0W6O;0t)ti}4^{DndO7!b-(`f^j#bDcPiClcKNY!3Xf6#IZ#z zUOWu*!+bw8AD?gU04{M*V6VVF;mFx8J!PkFU#CrL{e43?IV~5wV&&KyRR(V+XPZGz z)~Qke6T;zxPV>+_a^zMg9Xmq7KMbSF8qX<5O}P4(?RrbDO3{kojVO$(kYlaytP_^w zX-@Mp80#w?SGLyY-xdiMb!e4wFH6NstJVfox7koE5cL-)&VP@aJuh^fh6F-S{sK^+ Xu!FvI1L+2Yp`=2hhh143t*h}Dh22}o literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/service/auth/AuthPermissionRuleService.class b/api-admin/target/classes/com/glxp/api/admin/service/auth/AuthPermissionRuleService.class new file mode 100644 index 0000000000000000000000000000000000000000..d9ab6181456bc32a12eaac4ad817571fce94bad8 GIT binary patch literal 907 zcmbVK%SyvQ6ur||Y<$($M^$j)s@*sn5u`<^3#AaT*oEM3OonvIWD=4|vA^cR5AdVJ zo3t2g(oGjL!+mhhy=Tt%&*v8aT*J8mrv{u6Fr|p}{e0*Q6@kl+HDxnKV=W}Lu+ZzS zCI~d1xSsgVh=t7KnuigAvT*ROkAAwf{2J8BpyA<#l7eWVuCRyBsCIy^R~8|vSizm?Uu-2^WYEgM;WID zDO5b@q3v$p?3?%Y&By24I{;ik$AS|JP7#_)#^!eZ6e%(Eh9ScFg+1Xj&JrUPvkB~V zi$4%r55kNiZ^ShZgb_MMuyjU2tC}PIkefsc1W{z`FUS-ReP&0Y-@Ez2-?!Z;V7_{t zGCq}zdw~p@2#qvz#uGDU1A2{w4rCn5C?p1i#=4E%MBZkLiRwZzg0mF)d-Z=Lbz~R| zZ8pUYltMTvUP`Y!L};hpa$D)uBit2B|E?tEZhAsdPTx7_64op~Bh;NJ(XP0cilRH) zRPG2pldiZ-hXdhyOGM;0t=N{)@-PifHd|TO$Crt4O%(y5L^BCcE+gzfnRXT0RS>H5 ovFItmE3lu0URRWqW}N^ literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/service/auth/AuthRoleAdminService.class b/api-admin/target/classes/com/glxp/api/admin/service/auth/AuthRoleAdminService.class new file mode 100644 index 0000000000000000000000000000000000000000..3d670205f07eccc7ee6d2c33c8be557b0772217f GIT binary patch literal 986 zcmbW0%}&BV6ou~~|AK%B{%>?68)t*75)w2qA;D;1=We7E7&Ek_of3I97e0UwWxP{L z3$=;SMO)f)@9lR_51(J}9{|vX^BkP!;EX_73Rm4Od*)17eUre&)!>ya7?sSL(1C4D zjMnObr-Y;fEH(&KAGn&@<`Z++j4STA1afRWp)e8?iz(0H1ctv(>kP*Bj85d+oU*x~ z{uIhBCDf8KPfckLPeWUBpU~*y+bdhheJg^F7!#oL0U^Sg0ajSwi7(y#vGzYeODj-K zudU5G!H=e}T<)l?&3aN2sK>dCR-Zsk`w&{7KLLTec;%n*^yJ10M9+48fBUA-aT%X( z#Qo9T8NCm>c@wWra5JgDVseS;*$Cfy|BdiH6DW>s&l&T3Au&EWLJW2&9M$&F5 vl~5{gcI}0d?y5jF>Z*m(K1y{s2&6&^8Yo5YYodGzM~Jq8f`(vG3QoQOyk`$G literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/service/auth/AuthRoleService.class b/api-admin/target/classes/com/glxp/api/admin/service/auth/AuthRoleService.class new file mode 100644 index 0000000000000000000000000000000000000000..8fcbb23fd4fdda8f6df9deb891125e7a5f8987a5 GIT binary patch literal 999 zcmb_b$xg#C5PdFPpwP0F9qu3@eBo9=0wE+sS$pGVnjsjaPH~)y{u&29fR92^E&fsWk1*Vg7j`6O_--e`qw=?9M;sXAJ!#3d~~ zNEN#~xzE>C7|>-*ws%DjF-5Mv(YRM#C1a-p*LAOY1jMOLVb^U&ZX@$v2+9pyZ14itiSgZDC5gxP0sjy-|d&wLwU!j{u>nqB2)7~2*d z>45vH4f300yShbNiAn`zMrTYsiTEmzej1B8m3JzI^P78WxuO6Uyj67_FZ@4X|kjvqMuYHO>7r&0}F0waAzP JOMK_B{07=tAW;AS literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/service/auth/impl/AuthAdminServiceImpl.class b/api-admin/target/classes/com/glxp/api/admin/service/auth/impl/AuthAdminServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..00f97040e7894502db36bf139d3de07d414aa80b GIT binary patch literal 3242 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 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/service/auth/impl/AuthPermissionRuleServiceImpl.class b/api-admin/target/classes/com/glxp/api/admin/service/auth/impl/AuthPermissionRuleServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..755552eb7581d3bda70f2e820d99cfb06a9c3e66 GIT binary patch literal 3307 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 YptcOE3fqg+j!Esp-nSG5H6yhD0gsp*<^TWy literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/service/basic/BussinessTypeService.class b/api-admin/target/classes/com/glxp/api/admin/service/basic/BussinessTypeService.class new file mode 100644 index 0000000000000000000000000000000000000000..1fce8b856baf79787bf096ef6bd07f0314975fdb GIT binary patch literal 848 zcmb_a%T59@6um_rG9sdguP=a&-DqNhF_AO+o+?AQjSTdAh+9A%~uX5oB_)*3? z1BReu*tlq#-g|pa&*}O2e0v9gGdL>1K>-dKSVQR<3_4O92Hkqco{YKcz4%=Ck_%@n z6%TMq%SP!N-U_vr3bpP>KHer*A8{I@HqAz7BxZt#MtVGkYci;G(L7I_2N8%d5{qVV zGWZjLL9r)YB}^C~gV+Cj%VnA_R7RSJ4}_NXs<4}+)4U=H<)KtgtKW*QZ6ha&LAyTJ z=?UfXo(ZIKNqUNHYvCE>#R9bS&2mRZF{nzVF)%A;Gq^}~WGzkOi2zqzpUb0a=sUvT z4;srsk3OpvwH*evG_?enk<_$$lQ6L37|@%KS73S=%%qK{aU>X=r`SUReQmY6SjV@YS08}ddE^R}3Ikl5a TReqOtVQ)EAB?<=n2~q6}Tc!AS literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/service/basic/UdiInfoService.class b/api-admin/target/classes/com/glxp/api/admin/service/basic/UdiInfoService.class new file mode 100644 index 0000000000000000000000000000000000000000..44a4d012144f4da3f9770f0e1cafa006e0ffa360 GIT binary patch literal 1191 zcmb_b%TB^T6uqM;Pytc!{WdOO<0Qr%#>5wi2|glW<8EvR98;!HrbK?tg&*KY8E+r9 zpw*~xL7Lv4d+t5w9$sFbo&jJVwv(`#ge?NurZ5$^8-_TSO^d);sis?P+A<$IlywAU zMq5Z~^Dez(J)zU;F#Lvh9o|!wa_xcj8FiE}X-!~(K>mWOd&{_HHfwVn&?8VB85Q&r zNY_P6GUeEuK>t6cAH*r(QVBH(LXu{cyedo#M7z$8AB_#1;1eoBA+NrNe53A!=>h|Ug|a$ac~ w@)0+d0`3_^&q5(0D0=8Qn2*p4A$k$fOP|rpuo4lhdIW33C3hTwbx+L38{j5H<^TWy literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/service/basic/UdiRelevanceService.class b/api-admin/target/classes/com/glxp/api/admin/service/basic/UdiRelevanceService.class new file mode 100644 index 0000000000000000000000000000000000000000..48f96deb49f0ffc99b86f895a0a0fc15a42de014 GIT binary patch literal 1186 zcmb_bO;6iE5S@iUz)ATC&_cfe2?@Bc7o;A7I3Q7q6hxJj3%A7{!Xn2u>vcreK72dPdcS9VOgep#6;BYdqg zgE8ZCHZT6?N-EDVRCWHIUJ8>q48i~ z^eovNQ@L6JqGemiP{mFf%FTbHdoQQD-!#a2UTrvjrxPa1McRJa(&e(c4ywL%amU;M z2D_HdQ_l>-GSn=WZcBQ9(%m|}xTdw6WIzL<`wHMx7>q-O{wC;eg25!cs`QM(6dg_f z|Hy$_kyRgMeW0uvm?eU&;2Z#j=F6c*8d`wG0=1NeKE4cng5?4=thEB43uX#sdcP3O O*D~6OV(=|B^Zf}IU_{ga literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/service/basic/UnitMaintainService.class b/api-admin/target/classes/com/glxp/api/admin/service/basic/UnitMaintainService.class new file mode 100644 index 0000000000000000000000000000000000000000..c3a97b1a75eb37cdf4403eff9aba530d448e5645 GIT binary patch literal 750 zcmb_aO-sW-5S^`QYwK677W5yq7xz-|5b+==3Mq=gi??mE#wqEh-AszT`m;Rv1N>3q zBrVuNL=X?dGBa=A&U-r_pKtE~(1%VP4(f0yp!tL`Y3pH10=%vlBx4!HFB7RIC{;K{ zBdwlt1R5tK9}Ln!p&^c|;^w`cW;!Le=Z(}%$&4_TIh!k>HPG~&gm=oSvF1lo0ms=- z1Ogg9Mn+L)wSd=uoaC%bls1GkmqV3eu%_y=Xt?J*e;ZAzEv;%6a9TRqZ*;v!rd!p% zc!vECbm2d%XdC;J6O`wNR9;nx5F literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/service/basic/impl/BasicUnitMaintainServiceImpl.class b/api-admin/target/classes/com/glxp/api/admin/service/basic/impl/BasicUnitMaintainServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..7d91945bbcc02a3b75509d04fc762d9233807f50 GIT binary patch literal 2807 zcmb_dZC4XV7`+n$fv^^(0u|AsZ8dJcmub3@d<9*CTE*ZZF9#qdD|?du$;n53abLgH)LHG?|IrRN$nYa zi_#aE&KLcvTdq8*xw58RS*mK!ElJ-E&E5GJr>wwp645BwC~jg zPUauVZTZBNyNm9cs{4(gsOZ@>qe)>-pd&N3E|6UCOG=t|Xv9f8H<3 z%DN1+oi`VgW=k`|VjSnX3bu7oHF@i5tb(CbA@r6gb+-WANon z?$lmn^Uf=_GjV(r&)Mv>OTx|YZ+4E`JyI~T_-IMinrC%%NtrFbv?>ExRZKI_t*4;N zo-~bs=llKtoA1}-KBPU$$FzuDU?!I4p^`H8Kwzjv15w5VuKnj^^WY=8RB)rlV^{M# zxst$KEY$-PT#(ypSHC1X(n5Bhg+Mlr@gd;@sod9qOD2UI?obuP23hrbPw&s>VfI+5|FrKPbEPnkBwz_5Gb6 zJaX$)x$+G!nA>#8IvBuU3ZFSxLm`E`4(?$+h5HUZ#}^JB*vXd;zQWfIj-fw=Zyb!^ zl!I|hIJjsV7w4NGOfEMT z2`|=(6sBUfc<}RzGkn+kz*FJ}D+~5-a@58CIQtZP%8Km}XD)kd*E#+R#7`U~@D^KZ z3__e>>qG_^#!1e2(QyhLq4N*4PI7H};t!;rBk^?N89JUJnJjV8$-&m_NOSZYUH8X- zMrz_$bSJPp`IK(SFw`)EfpB)#%^)_+IR=?x7#n^(3egPDU^tDpNn@CQN4eVsEfYA4 zcS!18+FQEO%6nWn$CVCfvKOEE%|M z;1dIP1oo90L7-e21dD5RdByewtYX=#Syksj-LmV-vMV*^S{2)~N_L>i*7UXm;{u20 z8*Zp-a!CcMGoRo6moa{I)}71BtxPXYuT7P8xe65W zaYP*3ty&AAuiPqAnsOg@4GNQEC!pOsF?nANd@5jW5SU|_1bURq!VR0Qn85keVC~9a zfcQO4wHN10;Or|Z>S@$jV{#k4Ttzxe@$_1uB5)urfFzPpe3@H_?me#nwH|ANdG0=* z(hWl(U-bN{71VVOmUR_<@C$P%`aBjYCeaKyl8CO*d(Ccea12EI07qhzA2 zA1Wp!mQD2Hpn352cL%gLDwtiLtO3Qe3-MrnZ?fWD4#6O+OBo* z3B*G#GC0Oj8v|W z@o2JoiaoanAHf)UhPDjmM%H;O8@cMEGtDzgrfp={$G^A9?=)R#_k*#E#66wiO}s@K zeY8DE%M2|ucn5is8lb(V8}AHqXNWs35N#OdqE+xLFv4F3r)Xzklq(&Fhn%&Pv7ga? z=LvGN!zA9J84o9nf5X9%XD|i6N9Rb(GwjXaS9Gq6?MjYQ#R=@Cr$gj4j*&$hHEK;6p6J`AB;MIj(gE=&Mh%=X_>Wzp=rmdLdj7MLu2)eqOlBiga*DjH zNXIDo{@+U2%aWX2;+&znC=D!}eHr}7$LA~bTtufgHrotr2hQUHgOWt(d=w$JN1Ewe pZ^zxg6L;d}aoKTSfZM$jcj^VW7o$Q*_+E@ePDbOU&AWRU_#5Vf!oc2=bj4DuzApUx zHUSNcl)SR-tl7R)-y>l%*pRevDUNAV_)le7L~Lcf;cQV}(Z3WaB7xmi=>)=$+%d3_ zi$n9plL+Z%xB9Yp(h|*}kPm&dT7h(|lBB@Ed)sg$MFZ#F0i99us@0|l3>ZbmsA31U zfo!kM{o8}I+1Luy>?^vL<5&o$FxcFl-i1(BxT*rR64>R(i*_Rles)m=8(!tE?b~(1 z2r?1FE3)R=LCa^tp8g+kd>5Ws9r#(tY3FoLRl1cMn@c3B>uWBj1LD|j%~}b3>DHLT zn0ntKCI*JwHsDAv9<$c)MO8jyUupZREm>juTH%)I$QZffv4m9PY%8kOH&A<*nC+G> z`z2@x>}+iEb_hoPAq%9XM}n>y1J+vybk8;#49jTbZ>O=8p}pOPq@dpXt9oxA1nohC zy(QXVNLPfz(!Q}-WZuT&Vox>+l~i*}Q|CCn63(}qQjM+y5nk8aIioUbAXoDIn$>Km z`m3ro`qA?rTTM2T@B((P6o zFfoB6DLgUZqiMpz$0lD8E*J2riO+D!#1&jMF{@5DFlS-`a|SNP^Z+a4^^=tID6H17 zqwcIf5@k*+>$PaxL&G31LAVUUN7D~F@g3+#F@^*d72FENzB z(&=A$Eg6~`r!kOWlI(`aYn;%N{AGs5mH8=cA~H{7IErJWF-|Xz;{++p@H2^%B$cDS zqN^o&N~S0ofH8z=9tI8G1y1pkz-j88X}j_hB?FX?ZMo7RyLhTYb|fTol9(S4LZt;Ps!*+MA%pXw zg(%ABLtM@;h9wTy?8UwCrnowL7s;EWu@CRv3H(9|-L+ikgI~a9LPfj_A#YCGi1$50 zbjM?l#vSPDk?VbMudyKcY!FcQPlmzGcPw4w589LK6mqop@nmnWCkuTn#(2Wlq7QDi o7x#7_-1+Xz&W91=1Jnn1UoY;RKDa#r8yjX*mW@Z-_468zt+gyqHpIGY%8k0X zX<4>sdeXL<8jcsAnlH?khS}LP)f>Q$+}UL+|clD2Rx#v;qqIcGhX)QW>a_? zv;w15F+C>mV6V-i+rzcxv_rPELw7EoMKdPV%$mcDiu^pCI#BY=^0O7w2~%-!MR+y4 za^G~#hF~a}mcf#&TBg@>nZ6(Xk66Af*K8*NcO4CSleJ#<7PlU?WJSYxE{I6ow5mqQ zbEQ>{OJb_!YY+D-Yk0B;h*<7|P2+9FgnG&U;0HR>rduG{P1^~BO`MiSF+oprM%ar^P z$RWb^I1zOvGMX+bn;LRO+pQW+M-}I$YOwEZ_nFaTn+e-vZyVu}ypCfSNn=At8I?4I zj!jh4sOgY+s^gh@sq1LK(s2Yw)39}nVob+HB@A5BdEs2uab1azF{|T-67yKl@d<9~ zSi*va8!-jPQrY9U<-F=f^4`W%_96>mSIC$MG0i@bpT1jmUA1*^=M0L5<87(=%VNpJ z%;f19d;dMz*&0>h-8ZXD*O4})UkwGz6IJ1|7!GwE3pX_kNXuI{>n$GR7001HK$xOz zNKza1SxB$e+Atg<*F@bBuAz)9`%4X(VBQCIM{|Y3M9?y^he+XkjAMOoZjABI!(s4> z;t#4K_S^6ya#D{#NhcuD& z5C2H*6!$Jq{e|=!BwkIuM)EaMsR|eSxTxJY5w6}~|KrJDke>Pt0|~5Nc*SEW-_!_= zfece*H$Yw^gg(nJ(=@KkPX;DJ^E8H2I87QO^kN)mNMV}4vp7dmIqECA!OjGCCb^S@ zHh?KE_Gvr|oaZlr3)Ewags!~iPLlhxQCI%N*q%HZOkm}F*Q1k26X_IrpQcA=Fhq7^ z5WRLX5`@^0zl$)R3P UN_{N$RAK^m{G{FO47O$9UtNs}^8f$< literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/service/basic/impl/UnitMaintainServiceImpl.class b/api-admin/target/classes/com/glxp/api/admin/service/basic/impl/UnitMaintainServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..d10fc8e4b2ac01877b98f1637ef06b89bece4fdc GIT binary patch literal 2344 zcmb_d-%}e^6#i}q1j1rz6cma|{eb}rD;8~S_+d+nL<2?A;*4*XP-JA$M5c@G{`b#7$>v$o;`cccfNbhxhF6F`SULTi`dO$2%qQi1+L|B z9be{g10^dh<*|&F0XSG4#8oRcnWTb2E{p0o}fw7&oZ*)`b>PYW->Zb1pMj9RXk-(+O1Nm4! zapjTH-BD4{4r_{@eM_2XD*`>m>0N>BT2NP{RMEcLYB%>(cux{gpil{F(%Y4xw(lKf z)*NU?SWTlFsqnF`sSah`Yd7L%uRWu}ijIsxrI>~nsz+|9YD%}vF`)I> zb4NXDtH_k5Vp0KNRhB8GjVlkq`>gW_@l=&ci4KF zz4iatE~SxCtgAUpDg2%ILurL49I6^wd$=iEow5vXDsvFjw`C}sifLtu2CBN@OVbWn z%Afwn{GOY0LHq0w)7{Df*HW3iE(Oy+usyqroTNrz@jMA-GuD;IwB0%^*9At3NtHb5 zH{7ZTwcjY&fEmq?g_Gat9?`vK68DWX_jA&!#&?z-%oCcE6>R3P<=`&19eihBb{tf3&%p%@ z=WyS_I4(ITV%otK%sKcJ3j)h21B>-N;{@QnvAo?l$#?f2Fnz4vYavr|z=Fj{@c>v0 zJX?um3=XJf%N!;Xrcg|o6W3GXooVO@RCH7G@RKnaZ4TOdZi~nV%4@06wLvywk$skopCs;Nv0R=``YP3l z6t1M4@6`VkT;?Cw5Cq=f16z9T7b*2|FL3YW&eq{N!Z(+@wd)DvGdQg&Qf=E_HX2#BlC3j8G4=}o2^smrEsu3(UG2`@B5kGkemGj z{TXb{J*8VV4mHkTpp<2>eufz5Z;BxnFcF8JNkVkOGZ^*n#x%z89^NN~1wNBJcMm=w zlBJtyKBVR&YI-30@iB#7UO#SAd@}ficDxIeY#vs*XSfe`NDgH1OKkQk8<%4`qlwuO zok7fCmQWr189K3Im^%eGe-d}<6x{i^I33*i7?(Hp6x_iKY)ZSUH+xpx3_gopuO9Wu GBJeN1q+?kC literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/service/info/CompanyService.class b/api-admin/target/classes/com/glxp/api/admin/service/info/CompanyService.class new file mode 100644 index 0000000000000000000000000000000000000000..38b31460d3a03df0def587568de238382991f873 GIT binary patch literal 336 zcmb7=%WA?v6o&ufEncDEOX$Y2&|R0MT~#c&b2la@I+B?QaVpKLx#$D*p-N9Q2zBS` zz|VjAI6uFqZvamiMHoaF5(cSp$&0tSb|qmxnZC!~s%`d_E1esq6KkAe7fdLXaj93e z_w_726Gql2CM~ZOkCXcvrfb5(g2T=yAG*+%0~ZIW6^x4MvP0;v{AUsKo5`3kuGdyv z98Ju#y*_HfOd_}Bhl}GMdYzKlDyK5-wraWAa~wJZLPH(|G+KlvT7cX(I-*CSwh3K1 JgkEJq{}1fuVWt28 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/service/info/SetupService.class b/api-admin/target/classes/com/glxp/api/admin/service/info/SetupService.class new file mode 100644 index 0000000000000000000000000000000000000000..6ba226e35bf289f099455932533818a070c7ce27 GIT binary patch literal 506 zcmb7>O-{ow5QU#h+R&DtlvA`4syFPqh82j4>{uX~WKvuuPU<)ny&4M+z@ZRRw+IAb z!Os3X&ol4M+xyEafD4R5oQ8-5hBf7sxR_j12~5Y6>!d8?B7d%=sohz#f;=gKvv+UQe z?5QYIoo)7G$=0#{vNXB(nQ$6Ak9^anCi|JtATAr55St-^k#7-`UF(FVOSM)4=PmiM zep~S^z`aHw+Nxx(%tGEiE_o9@0f7!L2?zp#0|a~!=%U9wWZD%t^r(-)7aDqW^aJtx JF-tl)`2YbMks<&9 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/service/info/SystemParamConfigService.class b/api-admin/target/classes/com/glxp/api/admin/service/info/SystemParamConfigService.class new file mode 100644 index 0000000000000000000000000000000000000000..e9ea63a504c3bba99a6d5c2b51939d8f1f0ab773 GIT binary patch literal 1187 zcmb_bO>fgc5Pj3H&;q3eO48EalM8#{fCz9X0)Ys$s&Cwuc;arc*Xep4;VVCj13!Qt zg_vv*DY7G#h=XPA?3$+r@&Hn9Z==^J|v? literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/service/info/impl/CompanyServiceImpl.class b/api-admin/target/classes/com/glxp/api/admin/service/info/impl/CompanyServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..68887bf08f029e356fc1f0648ee4cb019ca8f6e4 GIT binary patch literal 1123 zcmb7DT~8B16g|@dg|d8Dl@IX?QEW@XXhLEP#>Ai|CPfT2Joq+kr)8i!v)L|4|C0}z z7!5x7YT}PFo@v(xOpW@m_uRR2@0okg%zppz#nn}NPsPTs)8I(5Z+ODPVU2cld~E8v->eCv_OFhs{f!q4@%+iAv5j;V zfqTW$FfPsElJ2>=pY=i{mGehYOIViN3y-zBz{@+bh6IDOlR#7U< z?6yw!UE`ICRj3mkQ>1*gC;4;Z)tpb;J)_0Cza@X^E^f(A6dT)W`s%kXK9n7DXqR*& zEz^?C0MnQWkjG>Wr2v;P7od!V0P|Q7c)*E%e>(qiBLcI&57}0>C3k8Ex}H#uzmc7v zMqqVF!H|bb;f-ZiNm`F({utvBnBWIL8Zn?ZMw}vMiJY2tmMcm0d86ge5FhAdaDmn* zgQW%9pr3$?xWtw4D$)Al4Px(*@<(J&krjB)=vjus8HW6Tf$B2LGt`I~;Q#vXuF@Ih?@h>X*W2p@ IMQ#8;0b3UqegFUf literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/service/info/impl/SetupServiceImpl.class b/api-admin/target/classes/com/glxp/api/admin/service/info/impl/SetupServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..cef689dc3d4e21502aa17637a3961b2a5607f41a GIT binary patch literal 1512 zcmb7ETTc@~7(G)cE$wm<0YOkev9^E=D#izl#&}6c>Lox(^uc6lr)99+ExTKU|Kx)v zMxrME0DqM6%uoZdO@0*?d&YAOFW`F(u{u96|R&&UqkipFyQYaWx>_#LyMdTP4@g>uDh%6j9lCGD1$cD1P;S+!lMoti5*EKZ}tYenkU>(lIbh&Kvz^GRX1CWNbhE}z0M7u zp7&KlRe~@Rf#qT;iAgcF;HV?#XW<6nBQ@O!lo!G`)P7s}fxt=X>%s1Vtt{ue+WTJv@RVcj;%gB+5$|A6olt4E) z!P;T3{`MfZ8BPYv#HNphiaJ`hY(`0-Sa!X-^jn^G>NS(b2iJQqeI}#a;Hah8>ah81 z7KU+wjZGNie{{scZQQY7VIYIM7N#(5;VNb)pTVLNsCYG;pA z$4Z?=)tSFQ+E>APm6xQrZtlu_0{YbD#2jyX4lFYtn4IVbx$2`IqEFMaNVFq-lk_Go zy>JZinTr%I(wblpI!bFr0T{zL-vlmUg4Tey7@eY@_<_`$WAv04d%vQ0;S17>-_V!B zCw`0g2GPUyD6(W3Adlf4kFYUsmZBzcnauoyV4B~|36JQ_3Hc<_NaR!pSw1EsASSy) zaGL)sI$?U+g*TJJM}~AJKi7qKmK7F=d1pgjj!75Z>}lS@|MI4AJ(M(m(!LwOA0>-s A-T(jq literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/service/info/impl/SystemParamConfigServiceImpl.class b/api-admin/target/classes/com/glxp/api/admin/service/info/impl/SystemParamConfigServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..190ba559e8063f9fe25ff1f3dee8ece39be06ed4 GIT binary patch literal 3109 zcmb_e>sA|87~LlX62g?512Y1Ix|YqANkIiGvC?Y{;reX|M=xM0JA7%FpRYf(pb;n8m{Zz zjSN1-MlXht@54>pN}-^SeXZO2WK)YfT5M_Ykrvxp6jRtq;o}r`1>0 zj%Rtwu^R&C3lFSA>#=Da9h%#+;WXWnWy{TGZBM#8 z76Ao@3r@+Z?pm(W&+Wsccc5rtJ&JNex`(PH1KO%quZFo71C=~ql1cBQrgU3dR)y9! zvQdz(d=wLfZOO|GZz1RVYBoJpH4BOd0^^~OwUq^~p3Vq^=Irk`q$eQq3|W(vvO|(pyv&+wz(&L;21B z6w3d^ajYS$vgCzQAuylKoz{8gHq=5#xgFV8b~(ac{nX)zXv>qNNMI;%evP%wR^PO0 z%*x<1XSZZappXr!qH5U{v*@|XuCSg@ZMEy61|1G#3S^q~vgOIOR=zB-^qc`HT8Hwe z-R=uagmTcK!Td&f;Knv`$6c0oe?XLRW280N9%XZ`u-g_QS)U{yIdUEgaSr-PU@nU8 zNnjb(qCZn_C_OGOgi5bt*v;sHERZcYZpCcWb*A@O8S-n#eQ5HV;7Z5iurS+K77UEz zoPoReB!znh?&DJfpXrCs4Sazw4V=YD3SSv`1(O1^5hW8J@OCN8046AnKmjk|Wj+aAH|X*&e@pEo&!(rJAn^oU$uc)d zZVr|v+Pk07eRt|d^i2PZR05lqzNdPZZ(`WLIzq0a1Rg_L-_!7`qHGL_Z)1Dd9nzgC(<#uu=7T@L zA7wn)YztF)Vc0&RXH zph9SdPScozrfDo~Ob;zBZB3R6q)fV#$?;xCUJ5>cETq4kd{PW75$#?GL+DQCJkUPs zeVb>d_Snt|NBQ$2>?j@X ze@O2qH>i)UinWJ(A|O?*lr-w1J`*0kPIrO9tCG)@wl~elSA4vPu64LVL%9dvPtY@S z3>ehtZve1RXD|bGvS!JeWiUrCi%t#ZDbxU)QuELa0CFvWGs?bMWH%|aSPj(r8|YSb z_EL4|HY|_m?-cZRiT>Vr=>A0L0X)ogG-~jOLXU@9o>W&ng=cw%GXp8lb2=+@7_8E> H25Wx+{-0-U literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/service/inout/CodesTempService.class b/api-admin/target/classes/com/glxp/api/admin/service/inout/CodesTempService.class new file mode 100644 index 0000000000000000000000000000000000000000..e9e82c14e12f4ccc46415402ad00a6a6c8612396 GIT binary patch literal 686 zcmbVKO-}+b5S{WVC;}3Gf(c%1OuS({Xe1$7gNljgx*eC2-4?nnx_`}sKfoVl>~09) zx)(h(&2;9?y!SevU+*6Pa1OmXbn9?LpePN$#v5sb5$N6;QxQmJtVRN(e4`7`R}l@uw*_SjK^c#P zq?lq8Dx|W8KK literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/service/inout/OrderDetailService.class b/api-admin/target/classes/com/glxp/api/admin/service/inout/OrderDetailService.class new file mode 100644 index 0000000000000000000000000000000000000000..4914265704c16e459d61bab9d0e48e2e8295dc07 GIT binary patch literal 1589 zcmb_cO>fgc5S=Y;LPJRc=?C8*ZGrZJ4{%F`L})4nC2B=(NE{Y>noR51VY9BV_-7pW z0sJV$cx^X{?Wj`KgJt>6%-c6_#{2i*?>_+W9^RDURT*9jXq=L(QGImXUf5RSW96U{ z(An$S{>U1*KgX6FlO>%Ic@}z_bZC+12iiI^b!o{L{1M_*qDB#ykNjSK&l~hOD^w<0li9RLIX@!05+vlH# zXrCJ>a%$G5^|%iM^(1+Tdz&-xA!>+kbQa zD-Q;fy*2YA`0Ais(`f#x@c>*yA!R& z=e+&`)AEBZND@$Sm|J5j>^S`ECCsz-M-rEagY`7?MA3*$el3N}3P%i;z8@$XkI3b} zbj!f;lJ`+vkd1F65$sgK1;XQuGLjo4U&;!m9UOl@V@FB?SRCJ30JUWSw_usSR`_d0 zK#5;vewN@ihgKJdDvLvR7KhdrhwegkDx-EOqs}t!6<6KoP@^~$iC>3}DdFZN;TDG; oz(ckmY55TVLyz;&lVU|rIr|wrpAx(<1TXW@b_U{-9pmlpe^~sa#sB~S literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/service/inout/OrderService.class b/api-admin/target/classes/com/glxp/api/admin/service/inout/OrderService.class new file mode 100644 index 0000000000000000000000000000000000000000..502da50b82123b46af7f3829fed9e858a699e505 GIT binary patch literal 1989 zcmbtVZBG+H5T32jLV0To`2LD0tqOXum z5Aa7BXLql?>v08<4^6wz&O9^o?9BA{pP#<~U;{RC@G1wd3FIB_%Z9L-@Cnq)^_JJM z+Rka$qFruLyTe^euw#q6ULY-P_aR`Sx6h6P=F4iOend~G6-e$_b!4g%D7<6x(6irD zK|4%p-lC@h#2pDtHhJ5nG7yZw@s;ClrX|i?$z?B|`;JDcZ!yg&?)pra(h01mW-yYV z@)-$qQHBvuLD!~|X@v;P4OHD{T}CA$HgiyoT2EW-*#s8LMmvYPZL28-ciUCPo723? zBH#B>hYVMUiSp6qNLh@9Y)X_8U$C4)8Vj@MO4epV$I1GkPs#A?oOV4S`$W@h=vXi| z>dpEVc|UeoF!$S@D+TojEGy@y6RUc*m2jOljQgxZ#Ww<35&oDt;I6&pI9f-ncsupw z5F;4 zmGW+tON|%-{ZQMU&3wbToXUA-eZ2Vxv&~pbhdrc5x)4cM>#4{DmO{2@L8WZ0`R`P) zLoe`|nP#K?kEH9xZ~1AM2lq@e+Ql5YuT36$Pvx6lAX;pfJ6KLp-!_>z;VrhNv?H*Z z^2)f`ltp~?g-)oFmRxV0#@8d(l34<{Uhr=LpfpC{8jRs-98cpocKDUUPX;FNY7+8j z8eUBSAT)gzni)+n3v&@cK@$|?P)S4cXE_&OF?5{F06M~TZFwUJ-_-D}Bz#-Lci`?Y z$vq9!6 N!Igy+>v+n*%fAaWBi;Z2 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/service/inout/impl/CodesServiceImpl.class b/api-admin/target/classes/com/glxp/api/admin/service/inout/impl/CodesServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..9580496457881ac6fa283273da1027bec81fb941 GIT binary patch literal 3859 zcmb_e+fv(B6kW0n1|tK31{#vK(B@(wL?NZQl#rAFX`C8DAV8X?7hxZ4C9>p5a)3YR z2lNB_0eNU=I%(2}KDIOcrcS5pNU|`-&V|V^KH56kXYIY$z8wDf?~gwLOkpR5_pp@0 z9W1AC7b_{O;+~Y&Qdq}EC;D-}3t!`bT)vUZL%Dn_m+$2Ayf{AawqG?Y!@H&+o*7+NkdUAX zdUA#(ma64V;oQ>+sGu)r=XG;kcMSO+ZYI2vK?|3g`RNMhsgW0M;1E z$==#>g{MHt(&<%C&p%$&D^El! zYW6lNDj3*bmAjQ%WzIF|9*#X$qwJl%!a59$45wquunISJm)O)v!(G@hJjT=R2)Amo zrqaRJJ5E73*#ZNV@3W?PV>jCB2~<`@UKkZmDxC~{Gj*$|t$L1O6`S=z(ypQQ1+moY zE7*7gl*0tAAQgBV%#%dkA1moj%A*1g31W5FJZdVten!6}poz1$I(_ zfi;da1y|k(y@kCk$1cy=P9-}pvlqV5k5zwg-ZbP)JSvU4bp!33tQG~Cob41fw<2@0 zC1=96?L5|8P6lCntWhmIGOc0=$CD_jFz_ge$0|&eldx3SsHk`%UmO)KJQV{NOrok{ z1Rtvy$5|B`&a1d6U!P)I#T6+{YOWaa$vB_1!$?&=n&0_RBz^|G+ zn~y}E#7?{xtDYG0wAVy)wrLV0xS2Xdx#I20fzA6R(`1NWXkzF!cL5u$D7}W6@n;xPIram9?$tbV$8RN4n zbfGhbXTI8AtRue3fj})X*@X$5BUFe#!9$8{%aDM(4Y;WQHwZ1@@N^5@Nn9Y*rvwc6 z?P7RSdzL2oA&BHNZgK{M77s^x*Fnn9lJW^su9433By;keP<|<*yi96jZ48E#t1+-3 zW=`zplp$R| zgo{4frv26WdF1r{u&VlNPKOlk^QYTqcaexo^k=!Q%K9VA{dJb(Xw@dXQ9`yF+oU@n zpnfE*)fwuF40T}!*Y=8chLHxvd!3uStXkmr9K?Uv0)Mt1e|8@}??DnK+x#}|$eL4q z!p^=#Z~Q=?=c8=N&a34}Wj191a&LiB%+C?W#5}ha_~U$T8OD)=VU*rJ3|``47;8+b z?1^*`#>7kXB@V=4`4+|k#VC$+m>x=ktWN0g3J0sJJ%l5_Gaf6YZV#3JxN D4`5RO literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/service/inout/impl/CodesTempServiceImpl.class b/api-admin/target/classes/com/glxp/api/admin/service/inout/impl/CodesTempServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..b132e651de16993dbf2c4889c173375b235c4de9 GIT binary patch literal 2145 zcmbVNU31e$6g_J@vE!&s0!>N+v<@L)$1N%}ZBrc5LLgx3kS``YEB3}-kR>Cp0RNBv zj6Tqr4yAqQV>{Cy)#0q{IL0=UP9CJ)y}I|Fv-h4|{rlgae*sv=P8t@jk6|1)#_=_l z&Fh;qzQuQGtl;}JZlYjjt7+WAn)&)e5U%sK$&&Nn9wyv zgwAm*1B8{Xlp*%Y4?v@13W+TpasFiD%R8tpnMS-c8P9ST3 z*p&CUS*;|YC;J@*X5MGoY8Tbk6Z4(liH0k#TjWIMSjb7!(1YDS~ z*}l2Pcp2)JIsd$Wvi%LC%5Dq+IYB=H$*R=bPL=(dKFS##o}#B^RR&BubzFjuQ6Qx} zz3;do!+29t)G4MZsk$P!OhiNJT6kbLn7Jn1h74>2@*tX0C++jl#?54l#avsnLxT#K z=TF1}rOpRN3mhjo8|65~F~N~C;rkP=Y>vinWa)Q^Upa|kns4I_hRyJ8lF%P{b){Rb6)Yi7R$tJXKrD6ns7y;VWcb9GB!+9z%{M?QehIch2PB|Nim6xiTl#WI?WH#jIu7uIWnKDrh*Ad|*B@pBQFk&{z=#yXd3@ceYPS zOS;n!vWty)k+QL-_is_w(6RxttB%bXwkbQ+)X>ZY&vF6&>8B|xhgZ3=@uR8 z_v~FcGqo$@vXhIRQj^nkzjs4g>ABLXYp1s6H$`fTfwwm{3c}T(CA@hRfUx@eeZ{)xFh=X=`WBmGb4h8?IVA z<-cc5D`Tv>jaMFM^;QCR`?An~&wCB`-(9>_`5M)}QSP8*JcEm@S!uE6 z+;a38fWB(~Cr9ow)*?7*y!?=Y3+HO|taJSAD7>wBDTYC#36~FGCerPzeyOdRQ zJeVDBmNcAt)50N@Vm@uUqKvLVFNmy2xeRkcW%$)vm+J(pHo@vF(hy4%+ZA)AM4IPS zfE*6H@+u-Zxvw_e8P@XlWk=?u2hvj>@=8>}##X&^|FTp^`k~M@5;~7hDs~#;N!!U7 zg}kb!4RxkHww*1bz*9olE=$n}woK~y5FbU6*YOaJjsYBsqM+jxjz{6@DB@8Rk99mj zNyk(5@=V8f_+G~kYWWz(b)3d=9iOV^jC%b{^`=yF5z{*6Ft6jXYCc!930&2&q?+rv zs$r^5sTM5e*8R3w}-fbmA`TFiGYYof-6)NO!ZiZsdu)DYALt7|O^Mugi4v?-<|iU_6l+@oTW| zCQ|4kdXTFH4Dl1}Aoy*=A5>cLd6>O+K0n~ImrrIM+d;k=e5!SAC;o)?J3A2q_=|xa z9ARJg7vLy{`KI9*j-$ofe21$e9P1nX2ho>^JU{UVT1H=?HG=0HZtGo5oRKl)nf*;p|w&@Xs7ksN-eBqc70*0`0A7cB1TT zUOXK1UZUf+N9zSTUm+G|){iz~43gOpnH?p!VOlumF&y;qD-6d2h67x6lBz{^;mR^5 z!XWW~3Aj##xxU6w6O^lz9AFGVX1jq$fNZ|=20DR zze(<@e7b_N*%RiW$`w4Xx67rgVyO#fagOunxx%kbH8R1Gpl;4`!mpbP98|jdxj0j0 zvD>#8uKAS)7X1L#)a4}cdF3>~@2SPV{bu;8?s=OvP^>qC-{`7;(D;hoYk)sfqu2~C zZ7ViYQEZljygI4WAjhf|+v{5lD`qyZxWKHbL}YPx# literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/service/inout/impl/OrderServiceImpl.class b/api-admin/target/classes/com/glxp/api/admin/service/inout/impl/OrderServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..bc0560b25fe27a6c8ac5e26b8e15b4ec680a1678 GIT binary patch literal 5189 zcmb_fYjYIG6+N?(Sg{&FmJCLKZ3SbH5HQFOj3W$|1Q=lnVF`qB65`QrYc*(gW;Htt z+Bor(IJVBd;30G|NY;; zzXk9ZKFgsW*K=5cn?ng+4nE3qw46hL%4R%>unSe(km9BkD^k>?_?Z+hN%3n4IG%v`z5RBu9Pji>{xc8n5 z;GBVW`ICWdla41YR7>+BxMWik13i;|-gf8gz>)K4u{~ULsM_%~11lo9;p9bRq*E%p z+R|CQKEVaj=Uk@}Di086Y#J5sHAiZ=Q9Eo*h;L`fB;E z?KqL9uwZP2wYV?NsFjhEG`q|3=yB~z8l0*@OMt-_2%!9?5e*!^BL#T6S}xe3P&di& zY250JC<~ij+*S}SJvCNSJ0=PSwh!pLb8W9^&4z*F6-T5VS*3^E(UaW3fT;t?9T|rr zr>QS9jCuPpJ$Pwhl~*&6!W4s^@Ip}(fg;~jiO%$qQRC0$19Awu5vm3FrFF| zP3d*kaT(C-ZC?}nOERmfY-%6=D^X8ShA zP}vt#BR8vh_E|@E)$QunSW7%2Z;T~t(hrJOr7WxBf^0H3{b0$eFf)Z8(lJ(aWW>Y( z2D5nI#0U5=i{F^|Ek4TPcP4(1KbZKVoczhepYgGYy?7{#PfYv;M@>A5ADVbdij#7B z3QwCDm*R|EJBw#boR?x!iVK)F@thQY#U&HZOK}w})>cXmte5sC{)WGs*pCBQd}`t+ zxMt!-(BNY!K`ZL|znbSp=3OIj4r~kNPE}dHV+@CZbZ4dWcp%oMKh-waOPyqsjC6 zscXXpf0m8WKnGt=ve2dWc)l{%r%+XmuT%Vhuj_so{AT#(XZUiwkE2ceKFlvdAXa_nt-i>zbK_?!-E?Tso zHc8@s4IUAbhW{R+0=sY@9_3#+89c6Vj7}Wmpo3kOpC|Y~gX7%C4CY8$d5T}@p{_`U z%^CbdZCkZ2ocFoF|=ittBx$dE;$1#T{hJ9PWFtTT7z*si2whw0cy=-9{T zw8!b#W8aHoSqob@z)U(|q=f@UF}CX1QRP^c*A}>2lDJQ|z&#zuJ*{wAv0LD7P2!$u zftwNtYyuJPd0w2%1XBgrp|7#6EfHboW4<>V5oSU=Lgv{yOb}1T8Us|iQitT;Lny|>4;IJkvu_m~z38k3r!;QEchSsWev0bYuUptY%n;o$;>4@NV9bw={ z_;G}LjbE8#JHJ8S)i1GY>JWR&Zkce*w>2bN)xMjwaRpmYi`locVc*Uu?>f<~EY%^z z9->PTA6_Z5d$=pq~F8P!^avyuuPlhgm(>;?(uq$c>)KJ$9(~JcS*L3sriFk}WD!V&6HCPGzQYWU@#j_k&7_Ho8;LTgjt L1ew@~jDPk6%EiW? literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/service/inventory/InvOrderCheckService.class b/api-admin/target/classes/com/glxp/api/admin/service/inventory/InvOrderCheckService.class new file mode 100644 index 0000000000000000000000000000000000000000..ad11a1624c3da044167122f02f4fb62e840a4bd1 GIT binary patch literal 675 zcmb_a$xg#C5FM8;wCtM@f6!j=1rDf)0|-Q=pdxbPW|ARwn>wvCiKxVvao_{^D8wX< zC@K*r4wmIv-ZJBl&$o8~ID!2J>^5Le!1l8a39U zkF}8&r&60JA$haZ@qp6=W9oLCp-PoZNQctV9ANZ2q(S80E33xHG_iogWx}FeK-1NM zQIuE|@cK_0&daQzAx*Qw&BFP09`0Uby0wYX(jq6|v{cdGP@PAHioZuYC*V*r@fG1u z^p=ky59o5%^93BV=aUST38YI_o1mLPRWv7CZj@LLc?mqGqn=6o)<>JK&PAJQ50A4o z2skTQBAd!8*m}y!BRi920IV?IWX|7z8lp#a0nE=|2cTLNumV+n)%aBtQ0J?`rvj^- cYC?-ki_{vI3t0ah+JMbP)fP81XAZIR1-@p+HUIzs literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/service/inventory/InvStockPrintService.class b/api-admin/target/classes/com/glxp/api/admin/service/inventory/InvStockPrintService.class new file mode 100644 index 0000000000000000000000000000000000000000..8381c4708475f768b310a1cdb602fffa66b680d4 GIT binary patch literal 1211 zcmb_bO;Zy=5bZ%A5Cszu5WmoqaB(hrpki@=5=~W9ioJOob|!J+W;V>urc9N;jDtVG zA7%M=5;I$Ii$lu8?$-9ae*NBb_pjeKKZ)oyy{OSajh-`VbampCja(XkyRh0gMjsA4 zaXR3=S)={S~MuO)~C%mH(0Q*PfzNYd* zSTRs2lQG&W6)dMST90(k2$x&M=*NH3@V3f|GETek)J<^y&WBqk(7oB!MxKs8LG@WG zq38T?VlEM;$0G;ZJ@~D-rrWt0t(h5TeNyByX-h`^g$*wtqM=QutP9o|y{W8!yPKmg z=x{choXPz$YR)X@&3&T+)Z_OoZ1?c;E=t4d8+VY_kPL*wL(iT zJRKK3*r{qVWG-nOHYa3$M)jw_mqjui;5%?NEt?U+{)pd+F9=c~So-6|t^z}ge7EkiUd<8K9jD~wk0 zso`1jN9$Avbb54`2<^gOWFY_m literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/service/inventory/impl/InvErpStockServiceImpl.class b/api-admin/target/classes/com/glxp/api/admin/service/inventory/impl/InvErpStockServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..5415584f9dd3b52321884f13176e097d0dbf1e19 GIT binary patch literal 1848 zcmbVM+fGwK6kXE-rL+Qq+(Z=cLJP=%pr|FNC?=SSN=+YpoAwN4pgpHKXIkk$`Jjo3 z!3RIUk23B#r-ed`0n>CYyL+#-_GS9}&(B`~R*>pJ6g-M^@&~Vk!?2XjJ0)Hy9+tT%D=w^(vbiN3uI#F`wd2Y;kuNyn`o+5^gc8WdeR#jd$saBWEDAN~v=kCI zST9*ct0GS;Pp1r5|0ymd$+17k`^1l7_;hn?>CLp*|~aSUT5jvJVWV-izwB+My^S%&9r zo;Hot#UBc_&qxa%#=G3U%xi|#3!%1V%D~%1{_C#>Q}mw}1r?FLF!|Dcg-%_x_ttkR z1>LUFjni)YI%j`?eWODN19c}*=pda906E|qhG?fz#0Ytr;5P`E4Vn=wnOS@Gdx&f?pXLZ1A$*~0Gs~#Y zG90)av&3){w+PB$cQU#dTKI0ttcw+ZSFfdtiwVH$T&n5OB6 zd-M%qhKw{^bTW)*GwEv0WcnP&Hkr`8o`V}{#hp0^ch2uay+U)o=6Qd;e>^n{z+ax+ Bv!nn3 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/service/inventory/impl/InvOrderCheckServiceImpl.class b/api-admin/target/classes/com/glxp/api/admin/service/inventory/impl/InvOrderCheckServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..b6d4fb551382eaa62464d9ae1fc5841f369efa62 GIT binary patch literal 2287 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 P4EOky!pzonz7PBjsD3)4 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/thread/BasicUpdateErpDataTask.class b/api-admin/target/classes/com/glxp/api/admin/thread/BasicUpdateErpDataTask.class new file mode 100644 index 0000000000000000000000000000000000000000..3869f8d87c2074e2a8badb460b88646ae15e7084 GIT binary patch literal 4390 zcmbtX{d*Kw6@F*4VV2F1gcTAZ$~WeNz=SVFLMae}U^giyX_Q(^C%ZSBA+s~f%q&g( zrheO2t<|>BR;^!XRZ5kHj|%?A4?g}AJ`auk&40kBkMErsHoIYx@aPXabLZZB&OPTn z?>Xo0-#@r{8^9i1Ph&GiR6Lf(C_cL!oA9{|7ru~zf~V3jFqT5D0eJ|yHl9ME0TVD& zIFrUCtTc+SQ*cr!$@Q~oxbRZ&Rg}|MjS=}cCs&?sz!av__#(a}WxkxkSESajs`y$O z>+p5?IG^UmXH)4d(P=A5Elu%=47Q8INSUo>sqpKyhd*N+&UnR_fojOyBk%C>J7#i;3-W0p8< z+m3Jerek{w)@IKb=Zq=cs7&fZ!gI=QPEb|7bL?@mP;q2`oE|T9Gt#wyEcGrsVA`gCP(fWs=cs~YpOYsxO*f_(9(7YIdvuqY$p*vAb!uOMZ5A@vlj81{|aZtgRitjE6XODvPaFDmhOiBN>RTZI%$2+8InaQyrktV|Nr%OWb zbBZO$rn&U(K>X&=d`a`F;?Zx*Y#Xku^=i;T+d3C6T_>CYCvT2V(@L2GD!!-T`*>Ev zR(y=XIpR3J%$HKgXRm1)o@+)=lZxjx`~W{}MjyvN((nR)tl~utKfzBGY<%zX#o3o< zW?#KJ`_h%W*Png=)~)`blXq`kdhf;acmMXr?D@A;yrkh}yrN+{c96JX&5fW^aY4gH zysALiNfK*#4X+b@4L`%r86e@7PDj<*J59>C(==30I`#xJBAn9Djt&*S(C`L+$$B_@ z@tN7z-hBV^?SI|6{O`X$clY}9p>+znW58LEY#M$gjoyZC6~ET-8~m2c&~OQ_Yxo_0 z&!R0^w88W?*k#Mo@Frei!HW%dB}%$iE|nbD*ZU|M<%bL$&v^lT8hT|2dt$6yv}O{M zIU+wgc1Fm0b8rbus<<@ABIZB)2P-c-=Eq~qs7b5&ts_h?=JZm6wfR_MeVB$!zQFpb zZhg$i`Hl?#@`CWg2CiUhM^y&*S%&Aaa?O|QP2&&vqr4dWiM`A%Gx3ji#MO*NF}_z4 zgJQuxAEX~uZ^C5-D{U6d{wa}T!DL){1yJzB|8&L@L5nCOYsC^f7ww3w=0-jrDU-E8 z!Nb*1R{UG4Al7eaCB1nvE z+$nK!egF~^;1%RqpnTM@%8ci#j;JYCw+r@Wb~3|ar>}7`Ov2vI#}(|3aq@nq&A)<1 zRq|wbGgZ(Y<6IT@t3Yk=gfFYhAg@UZI$}8d+!Ik zYNkeTgl)Zg`-3lrM=mZ~O~OcXpJ7?UCNF6!uCXTGhfkb83f3*Y4;xw9HuEps79`Ou zuL%54myn&7bDbP7yE!4gSyE)Rr-Tb?`mtSm7_yl)IO(#$n>|MF7>n7>}K9>PAQ0FV#OgDA} z%34B!NExsa`|wFB-A{G(EK7VPWGm*BJmH@_A<4Jsx{72bbpy*2;4qzOxB)GJ?6x~N zoLRAL28}alx`4gGT63^A5R6v_E?*w$9B)O6Bx0uPbqs^dO ztQ%1jb-pFz>dCl`bKHpF literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/thread/BasicUpdateproductService.class b/api-admin/target/classes/com/glxp/api/admin/thread/BasicUpdateproductService.class new file mode 100644 index 0000000000000000000000000000000000000000..360db9e1659aa21291ef98724da64f9a5ebda09d GIT binary patch literal 7828 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 RULv+`^zf0R!#IM&{{Vy;{6qi% literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/thread/InvImportStockService$1.class b/api-admin/target/classes/com/glxp/api/admin/thread/InvImportStockService$1.class new file mode 100644 index 0000000000000000000000000000000000000000..6e1bf5048ade8330ccc81175dddc151dfdc3fb3b GIT binary patch literal 869 zcmb7CO>fgc5Ph3Zk{WQ!ccBQO9Qq+)B6@3;0~JV-QYfV4KDMXH7JF^&IuX6`i;y@V zBo6!leiUNtzyX9nvE`k4t2b{(&-3m3m#+Z!aleB)ZgtVX?KbYTv8m81X4>^0EA&TE zmIl-0T^>-b1Bz2^f?{Tw;$UbN!!*xqF)p&`?U?OCM|>c~huY|3ps>Haa`nzcp>dSO ztZ;Rt4ZoPDA=^_56S>(KWf3J4vbw}SFB|2k3f|Bdwnqs$#{!?M+PT-4$^Bz4W?6hf zmQpU*icn{)r-q8TmHr4c^{)@h#npBj?WQSj!anURTK&Dmc3Qa>0}uR?d6&27Zbb?M&bU;o#m zb6Sv?{mev3=CqkEEokGehkMxa&_v5a8(XpqE3QJXukf&}`L|;V!HU8PYx6v&f~&<- zsBiB~@IaQhA^WU+znru qR|E;aQWJ+HZz?q3`_jf2P{TSls(208B{pzFiZ4sn6}h@Zd42%!y7a05 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/thread/InvImportStockService$2.class b/api-admin/target/classes/com/glxp/api/admin/thread/InvImportStockService$2.class new file mode 100644 index 0000000000000000000000000000000000000000..9acd1f0d6033c8e71be7573f0812383c0b535a4c GIT binary patch literal 894 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 Ypa3@HYHq%Piue=!Nxspd?&oj)A6EK9UjP6A literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/thread/InvUpdateStock1Task.class b/api-admin/target/classes/com/glxp/api/admin/thread/InvUpdateStock1Task.class new file mode 100644 index 0000000000000000000000000000000000000000..2d215bfb7282d98811da5f362bfaefc221c84619 GIT binary patch literal 3656 zcmbtWX;;)%7=8i+!65>UE7~erts|mQtF{&EhN!fF%Al=wGfXZ+WF{Gt3_@4CFV@z! zR%`pIpZcji_8i6S=nv@W&rs{H@btOKFbo(_PtTl5a+mkL&-=XF{rka<+Wtr&*Rgma(+>GvJ`!^ofJA=7a zPFlIVxG`i5>qco(?-8C;aMOa4nwK6BW+5xg-G-x}IqGoJ zaCFP=cl1=*-auCPg?tJ4+9+8sG^;3Iwx9CVTP@r2w<)Mht~#tB*5;VBzrNG5MRy_B zC){3x#su7@jqG8=wdA-s8S@7$TBk=HI?mRiylMC%Ab5SR;SKWCy0l~WTbY7OP2M0? z>`aEf$-9=F>35BsIO({9dXX5;>7m59`BJb)WGv5j4YyTdpI4%B!kU6@|4+AqhA!a` zIOYLE0`rASz-r!g(!%4{{H&4dGmYgFO{LKK|D24lXMb&iI*O6q98n9L1dV?;)Gr>EpwdX;(o%YFX?D!kozMF)(zzFZ4Et`D_zAacqs=944KN!?F}^w`DG*N^7keRwAij z)ilM!>2ge~f27@|p&qN$2@Nhh4Nqe+J+;emd>PRBFyOrUYWNLE)~hIJ7{bX0Y~uH@ zh7r7@;$02z;e7>5@BaDAy$hrFe!YC}{G~hBPT#+E>)&%%?*4K1{^j5A+&Xjj%x@|_ z(C{HnX;^|L6(4E%SORT{06Jw9uuc`qGFihXQr|OJuHsV-pW$NtWQm`S?86^&NuaKAZSZ||fF_a~(JZc1+G(0D9uZh4tb-f|4G7$72 z;P&?&7ing|wnxAybMv@^nWtgZVl!DAfnl2Pp8z6^dd7ADqO2e7G19){GP`DEgdesj z1uK$e3DcG}JdcH9vSe!<-{6dFec!T{y9MT1don6Tr{-y_`~*C)nFY~Jy$kW3f>|~T zRQs?~ji^Joy2SV7=&YnTL-lG{H@OsSH?&Rl%HOv5ieE@T%pt=kl_1@TPH8L6vY_$5nAw!}s_}!!9H> z-V`?}ST>%mmObPQ3cWMvu&jwj|5$?5vJsDsR9xUirqgi-3v3u#hi$W^$~+Nl&;OJ= zr>HNiuKNtz%nEOLDA-z-WJMpA%}fyNWz#6%{`iaGk<-hTvscvIW@NJ|i}wK)KeHY@ z#7~qx3Kmbl4@;TZi+BNl3NbXu2E-eAg=`R zRg~IFT?*fI%~zo`Cn~O?@(N;qai#*ze8%|(W>foItmc;%?nVpNaK!owojata4patv zXRU6&fhvH{YG4%VWMxe>V|AcxUMNsh2F$`btf$fqR9D5j3tttom2gU)(9V&>I=lHY zVu_mTm_dw}5g$eE_!)JC0fMTfc!Ju-LC+4)X{eC#OI1?kZSE#k?6?W-$W_ejYDv_M zqMlkCTCQVO1-jRaBC#db7#qdxi)2ZjJm)&*R^TS)9cheR#r)NySa69tDg(k6L*@4} z)X*JubVwszu!K%n$=?Q^De-I!&n(%!1Do+YO{>8R{JltQjoiHjt<<@MPTq=_=zwjM ztb_6Z8&qspu|vhqF{U;*fMzi_i%jW!OQx#m)y8pdWT*g5Wt>zMF~rcul?v<*LP|Ql ko#Q?HpW{DHxgT&IKN43b$I@?I#MX`d{L8O{=)uAN0Qr|0u>b%7 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/thread/InvUpdateStock2Task.class b/api-admin/target/classes/com/glxp/api/admin/thread/InvUpdateStock2Task.class new file mode 100644 index 0000000000000000000000000000000000000000..9f6061c2d976cd665c4679e1717bc9fbb9dbe438 GIT binary patch literal 3656 zcmbtWX;;)%7=D5S!65>UE7~ertRtdPstr&*Rgma%+>GvJ`!^idyMnnk zPFlIVEo!?zsUQ?R(}xG`i5>qco(?-8C;aMOa4nwK6BW+5xgU52BeIqGoJ zaCFP=cl1=*-auCPg?tJ4+9+8sG^;3Iwx9AII7aolmJH2y$M(gr-?l0U6TRSDS$!8d zlT7&&wn(yrAfB42NjizX#7mDjQ4pT5ATmr`aY8ScmO0LGaX(?ym2`A4$o&xo>!O@4 zg2hRJ8cI+}EbThX$3$pl)}U8YG|$d(ZC1)R(u3VbJ_s%5z6wW0eoA`RDTt?n1ln!M z_*}@eoE&ItWzxxfie!v_6plZV7kazHe71?5IJQJ@4wFvCVOa`y*fJMVrL{H)sWga#L$hNrQFp4#a+z6|Jm7;s))75sW6>r@mp4B=!wHu8H| z!wB9{@vesV@VhQnXKUxsqYyysrXdGXZV~R)9?kpq}w!ng|8_f z9o}epjdmfM)o>c86tqS+KXRhO(rUM~z^khUX;iH4(U{t~caW27(?0 z-2T4fBFzlg`Un_hZXS0q^E9klY$j_XFiaEv6F`Jf&)5z?l=Y+CM%s5=X4lM&@WU3R zU`4VlVcN5X=dn;smTZgT8=R4??_1V#x4=B>NJgdT)I5!qpMWPevmm;ucM-l*FxzH< z>KGPj7AHD}eNMrVCqLj3tQQ?F^Y9Tnr)>u;n}%r?mB~C)u&tcLl5vkp_AxxNz0^;p zoCQsGWCioebr&m|lwi+#qDzE=nz9Vz$P>OygMI8e3X&1pB5wsOru~*}7Qom+Dg#zxRWLVMY-1A(ylQzJxxDNgylEU&P$^v3aaEkv@I8LguoFp* zH^q$#mXBwvWe+)nLhlMXENi0CKb9ahY{X+D6&HAs>2jRG0vm?bY1?e6GEW5C^FQUz zDe4QW>t4e)v%+f%1>4G!tmwnCnF)fuY#Qa;AAd1Ca(dZv_KKR@jchh$@jjs9XV!y< z_=&Pd!IJ6sVHq=fF)!dxA%=R{fOsRXkPU)!%lKWz_j0~tvdB-G16JVKNpqDPv;XnA zic(vsOX0h=`6`s=M8!4CxPsVUoT)%FpK-o{In+K6tNEpcyU~I*9I?Ja=MJf<6ElLn zvsX9YKqbIu6)*~Qva&{+u{uyTKNKh`17>3#)>COK)m8HD!dHcCC7hBcbZ{iG&S}1k zSfctmW)kCN#79vxenu@}fS_t9o}jjI&~w6b>MLaYQk7JBo4bh>+iyZUauu_>TN1US zsH4{Umg|^ZfqiR6k=Pt-h>c>-MY1GMo_ihhDsU6?k2J)tV!`TBEWAV=GXlbvK;`#x zRMQ=`bVvhTu#`?%$zLnalz29TXO`^Vj!k%;rd8tw{$3=u2JYUBHtJkTCvU+^bih_h z)kjHylapjph#B2zlwlBr61wPBna87e?y87GxR3^BBGr2@NxkdjXC j;CMIx=lG9P?gyO5kHpo*vGiLvvF*ct{^i#}^x)usEW8=F literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/thread/IoModifyErpTask.class b/api-admin/target/classes/com/glxp/api/admin/thread/IoModifyErpTask.class new file mode 100644 index 0000000000000000000000000000000000000000..60633921d3d2978b807ca310111170432a7c65a0 GIT binary patch literal 9571 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 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/thread/IoTransInoutTask.class b/api-admin/target/classes/com/glxp/api/admin/thread/IoTransInoutTask.class new file mode 100644 index 0000000000000000000000000000000000000000..d0e0960912e4e5f42999d14726b20a2c221c3f5e GIT binary patch literal 3330 zcmbtWYgg1(6x|sHfPy7!!O_uXfobMx1;$4>#A!7mwfV^qb(3@%}8 z2U574+xY>bQ_)x`18RYP> zynT|P;ioEYt1uL_*>1TkJO#Oe>y>rio4sUc9Njcr-E!t#z1Uz&-=68v39O2kwR~&N78f1I4UE8Y9bduz!lJQktmsC4 zP@fjQ8+s*CTU7*MwJ5x0t0WW*C9Ud5v+>Fe_VjN%Z#h;lqM#*zY*s;f%rzONt6(`| zDy+;2Z^j^?+LlX(J!^QD{Ei3H!GcAEgGq}93!X4ceZrmb49A~v+%T9i{3R~gS#q6u zs~ma^<1f+wVm{)t>RC>C-ZLuVuInx7F`pdMBad~~q~o+GTYlgf-mnDTU1xv8oPv@6 z7h6GgQUnXGdBc#v0^t#`TJ_wL@cFjSHY#(b(Z6v^{imL1Q!}0=vaqJV0X!rPpvrkF%u=Ve;l356eQq7hHr(L>WR*Ex>u38SkXW1K1t z?kPB#lyOm;Y|?k+!6509=Q>hHQq8(;Fsnsw&na_mXE88JOOr;mrYjb!ia8afP3b+U zAXBVWz!gi1b8oZChU6l$1{3LG5``Pws|tP0tyEoyzzO1fvT;x8zg;xi4O zgYEBhBCB;WbU&L-!1YMRj*o--hovb+Ri@8czYYXv_Rh5F0dr+_^A2*63Nq<`l~3NQ06D<9a+=zG!6H!ZTp5xl}L1xJym zg^V;oEYfz@@qx!^1$b`*R-rZrJ3z?!TCncOAr3}Y9K!&E9%qr`T57Z$gv$3r{H^arCjs^l;33W&C6d!z zU*b6vty$mQD0G}8-gcbDDO#oIbri4Cu7$pRcnz|6YZ?}%%h-!eN_ Qi0y4$H22O?Xj3jhEB literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/thread/TaskExecutorConfig$MyAsyncExceptionHandler.class b/api-admin/target/classes/com/glxp/api/admin/thread/TaskExecutorConfig$MyAsyncExceptionHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..7ba5c93071f4911f95badf9d189161710fd0ea41 GIT binary patch literal 1734 zcmb7FO;g)O7=9Li$S5MXfJ2~Z>$bEpU?ZTEwwTfq0wJwUG6Ts>r>8|;%K}-e%5rdS z?M#13FFp5A(vO+^fL{Acdh03eyAs$62?q|+uHJq2{dnGIwST?%<2is8JRHU-$~y9> z=vaWMVNpjKl^mATxUAzNtf<+?*RYCDa`;roXIRUjs*LLzKG(3J;R}Xr*m62Eiwp}j zOSVnh?fEA69g{cOj%S9gK=6inz&pp=Jz;f28Ei?f>DX1;x$byQxWTYgy4u#+#|-H$ z*$@n)HOCWs-S(jf4)~!E^++=(ePEj#%ceczhOf88WGZYel zK|JaV}2*+fZGb=#y7$i%y5zqF5;!xQlHKI|lAy*T8-3 zYWT{)*QhaEkBKXK)D41as2kYBE>YF*Q1JyS3YCEw>Gc(@^mUsmsfL%Yk|TA3TNcqZv$#mdcA_*}ixP30 zD@SHc+O`PP;pDzAJd!{qDax4t>TE(5FSUd=jt>g$ONv6;BCN+PibD=iXFeHnp^WFm z*2RqIz&l=3l4M_(4pDG(;P7RkGH4WgkNCY%%lU!1v=$WUADIWk8({go5+?mRhv=C= zfyNs&+n`Zd^tt(8!RDS}=$8mHN$)J}1j@Kc?;9}+Q@BN6gpa&2yhZa2sqgzde!$y! z=gjRtNFhf{z2A`f6X|cBAv2aeg*JbR91W)!{vG-d606t9Tt0=7Sgow3r_#??GpW^V zAzR4&gz{9nkX>HW65B=yKSlnopS%1q%YOdvZ&gGJs)%VS16ZQmma$HE!XvsnzN7Jk zZUt4?3NmE7MO3{DjlO&R5_@w0($rmx5;yfkRup+fqNQe8T%Jz#KcI7 Z_JGhJoT7Rzde7rc8g=qDN>|l1@IRz9$F=|f literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/thread/TaskExecutorConfig.class b/api-admin/target/classes/com/glxp/api/admin/thread/TaskExecutorConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..6d41d1e961605e8c0e81a3951adcff6384c4b3c8 GIT binary patch literal 1828 zcmb7FZFAE`5PmK(@k;i5 zKl6k7GGjVrraz!Rs?$BmAu0{iiD$HTTHWqG`|R%dufPBJ6Tk|ZdCcHO0kc@jV!41x zELq`NQMKZx6`xpfD~A=kerm<-EbbIAjnA^UTfpb2WwDyY7YwB*`)lF8@)|==42;z3 zF;^X51PsoGQX;7PJPbw1FzM?q!(3AbT{rZ%S9aW{?si2`W0+c%N}79gro6Dpkg4mA zV3=u2C7wq8EfKW&mQNZo_PD>v18LvK%8cnra=+a4bl>gz!-2~O(&e4LRIcd-f_L0D z4|f|w;YCIVb*;8#mx30%!iDgIzcDdZH8gq)Yo~$5^ag8V-59d;sJ-ZY+52c_IwwtJNyQ=>w<#E=F$EBj|BC3N0Ox>vd_#FQs88EG}EJ z7|wqiDI@!0Q-+f2vZjdF z!TEPgjs^di;l^=%WwGJlD|}6D9XGJgsrjC5?Fi2>-2ERKQe4L59}sGXcqSC4t^;BF zwk3a}KFE|e?2w+M4^Q~;P+ug)H<5@$oe#Jt%|63bQhm>*S=Thd;cnR0b=@EM!iZ<8 z)r(9=?2kY2`W*C+UOL0OiJ{WrtEnjw&jrFOgS0XINO%7 zQ&_XE3bubG_hY;_%g4JJtb@|qm()7*PI3Sjaf#j-KEQ`0t?^4b zJwa>rH6~xYLZ(^Cjc}q;9F8z$x7kW&gj{8I^5qEm%3NWD_bMYem7mEbiE|x!+Lw?c zK-1*&6h%KrQ7=)nd6J71ZJFX(9A}eQV;nh@ahVdd@IS)UF``@ae__+fzsB?nO6lZb zs3fKNR7&~8RWV1Qu8kdBjLm_}uVB{J@^(l^4%go>XG7axes1P>6n_J=?4^&-5tffh ZH$g}jXf4ogk=6=5r{i}t;Ozha literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/util/CacheUtils.class b/api-admin/target/classes/com/glxp/api/admin/util/CacheUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..d8423320eafd0eef973b1c46d6f2225bd3270c91 GIT binary patch literal 3989 zcmb7GX?N2`6upY=xV9B%p$X8ILV!Zz04jtfB_VA#Qos<3LkgjrVhcwgORg*jLKoB1?``_RH062@E(ilQMg+W~B`B=c&lfyh9WN|-Wt5zPokW} zx`H0pD4Dfoqf)hW&rmR)cigg8tGcFLzVGT47MD>H3buq zylaMT*R=b3(R18QO>Zb@Gj-2-WRgz=n=b0bb>p^YT7+{nUvw&3*?L^n^s1@prHW~5 zb^4~wHKa(Vd&;y;Z(2cYWOPMAe9kG6^Syb~Hg41_Ylge5lZ6Tf@=j5=R&>|oy*P|} z>n2gf8G;aM2Cc_O!aj#jm@D?s*ks^P&=e##bgNFReb)_d-6`GFIfb6#64`~0@Fmc^ zLwR7nB!}FolZ}1tpUIdq8-FYUd{h!%T6C3id>ZDah0o4ez?a`J@mYi6Rfs{Q@Z%>|#`) z1>ufVM8R`;$DjC4T#TRz`!Fv%G3z)MRXSlLYTTg;lzEEUlR~hW=m=2;oOkL}uAH!v zVNnG|*Qcz}G+{)r1x@2v7NwqgbW)ZUQIAt8Q(%XrAkH-v_(MzgY*u$VC>N=*OI)X- z4T_YGFfv_m>Tc1vY;r&MHmATTZa@_WaY)4hys2U@_9bDecz}mVSSpU8l7y|oK{bib zRk*0}p{GJaUBzi^B=JbaV{EE4_n)Zv0$(Qam5Q(NRK+uVqvBh9m&Esc@`H+L{HS7< z1!qC&J^bQ9MJ?N$5&oW?uh zZc}TkJuyq9ju0n2tFldZxy0ydvgjeqrcr%W!2w^yFV3Q47wfKT*q*jbGw!xOj+2Fj zxuqNP1qBDCB8w0ucNXQw+SRbDFTi2LTPEm^Lt!7IDPKq+0X6%yzZolWs6br{CP_15 zG+bM*rU=`bkg1?dXb>tm*I|*6a7&4FRGuwLbW7-==`ZY*$9jb6Vh$xMku$zkVP|?% z-qV4ftG=V>J9Lz#TRc6}Ni(!+DQLMJgn?3e#mO$WL(4_5tFk-;#YKQ&`YAd@zfZg9 zkLDb$`~BT(c%7czQ1Avl(>w_2*+YApi?j~YPNSzn&qVGoD8JE57Y@_PN!Y4Zv=rzdp2{OXMNt_~lrtOI}Xixgo8r~Mv7wO6I z>T6POvzfornH=}CQlR<-9YZG+A384+eU9V)^{YMBVrwN(j-M=3YUcOH!0?Eq8QjoV_$A; zWE=g7ko83$JgA$2hV=uDx*4F~4et_aTis0i;eQX@U+haLT12>wfpD}cyGARrDP}Pz z7&y_K;7lXId)kX~Lkd(ToZS@v@DZ_J457WsXfbKDJZ(W+z-9WrNdLjG$&kzM(@qrq R0=))_xI$K5rCk@U{SR2v!UF&R literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/util/CheckUtils.class b/api-admin/target/classes/com/glxp/api/admin/util/CheckUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..08e75cfd9ef7977a4e6551d11836a9275458c47b GIT binary patch literal 2177 zcmah~+fNi{6#sqfz%0vhab>v)Rs}6LU2CaTL299;qKi;aDD=j#JHWu~&bm8Gi%)H0 z(!|tNSN<(F28fm@0<^Qee%=K z0J`vA0FCHV(H}q&UMa(?7%0PQ7zp4z231@LKt-P)7v&!HV@O(DQZXDrIYvtHI!0BD z1yCi8F3bIjT*m#F@Z$}6oD5(JZ~F0;M3_|Zwu*NIN_vc>VfPC7THD42lzuC&3sgpp zq<$%zn9 zydGP;!c(SOpfo0LZh*tB(FJWubFHFA#_n!&1*Vpqi}YERscT94C?<6RRfX2fH=|Qg z=~0a7Ha$wxdM0a9C8h*wwr9PZ+Q_`c<0r%Sc%qNlX(Kt;-Ak}$j~U_r$EtkH)?$l8 zTFRkC#k)*+NVn&$_=uL)61uIY$x`WF%>$ayU@&jv`vv6Rf-{?|u0AAWQ5;Rox#-}>%M5ObIpKoABmR#;AFY28L>d_ttRagfcA-k{^ioK6cKwZ+ztUfGB zZJpYE21~S5N>6h1I`fge)8Tb-`@K0*KF%)rX&v<1xK+ugt6$A(CZ9^!i<(!r@i}|j zwVdI2vJ5LL5#1RztjGx8uFa^rmLTF$FHnB=yrDPJbDB!~#_gFEs{OX*iUg`#cj6FW zufz8CJjiHDW@RP|D%(hC90#$FfBof;4?+$<*JpT(aObq5xP1lU2Of%WfNO~(ROu!s z*)hN&H1k%9791vsbpDLHk9+ePiY5u*i?**q5$IS&vB1|*m3vTpXB!`&ts=bff7)X-syKd5 z;5ptI{|L7e{EF~AgLUBr24U7>l!+8mes>M(A5po6DuV3^g>u+S>l~^>VIISZd#>TR zlV1+CIn;IJt)(PXzab7xTvx=se{Wy+ab51np<#=)6Kn%e4L`!H>d-K!V;&2US=6wkVOhrtR#mL2SZ7EdOIHR}hGco~ zib1J)9l?-oNLQSP{kHHgdD|hR(C{qoTybAU@d#9cuDoF=H7u`h+Roj; zB*f=#hbAIfw3G1|p9v&Y3%ub#KN^l9)fWSYTQo(z{A~rbF87<_Iux!YDu3a>?2IN> z>5HS20E_lOc7h_4ZrT7+`%hpGF>R1d4?#?lZ;bpYWGTuZhdd!saTUp!%RM7;w*QD^ iK`Epjk-jG`L3N;K5@anm| literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/util/DateUtil.class b/api-admin/target/classes/com/glxp/api/admin/util/DateUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..1fcd735ba9f6d41e79f36b704499d6137e6ad2b7 GIT binary patch literal 9440 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 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/util/FastJsonUtils$1.class b/api-admin/target/classes/com/glxp/api/admin/util/FastJsonUtils$1.class new file mode 100644 index 0000000000000000000000000000000000000000..b3d0d565032737fa9e7cec261749f6e2b58f105a GIT binary patch literal 631 zcma)3%T59@6g}k)q9DGv1|ztz8r?zI5J@zHCW7ocLm5hj4w)%NKg*Sg3qQb*GTs?j zpbJBr_TF=HdfRjR_5JY);2K8-B(amlZWenCnWoapv>1}L`hX$T_J@+8WGOB0=Tln- zePMgVR4m^S-arH@!b>t`#wuhe-fAs_wkN_+60BQ}Kjp6XGUH;VxEM~A=5wPw-Vvd> z3w`}WAgo?C81g;kYGLL9T``T%2~XL=7JNk732Ax%btWI>NCr|nvT04kvshHKRA^Rl zSIm~s6WZlH6DaLA76)SH!JbIRG+OawDD?b!;K+`O{r!5|d2|c4;YK^2A5xjFG-H35 z#eNY7I4mNCG{fndJ{gW9<^RqYPSz^NPuH)Cr0} F?g#UxsK)>R literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/util/FastJsonUtils.class b/api-admin/target/classes/com/glxp/api/admin/util/FastJsonUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..08065602645a956a8355e34b54468bc02e08310d GIT binary patch literal 1758 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 literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/util/HttpClient.class b/api-admin/target/classes/com/glxp/api/admin/util/HttpClient.class new file mode 100644 index 0000000000000000000000000000000000000000..c2d3ee78f00112385cdb8c5a69932cc87f07a5a5 GIT binary patch literal 5068 zcmbtY`+rks8ULO%$w|@!E#bBRgK;aRO`36SX<;ZWm$J4X1-1gZog^pefg~p+CzL9> ziK5Plo4UE7b2@KKopPD9u)2+TnL2geFMoi;{R#du_4}T45>DI5hbf;A$vMyaywBzP zJkR%i(>MP0(klSg<8L7>L`jAjf(NA#$~Yk;BSCD!Ng1Od$U-dRg8_U)Q6h18D zBO%N{DS&i69>T*iJ{rO-@qRjhkBP^R%QzFlJbXgNCjEo?lX#+cqyA+e>C1_ z$-20@SBAaW$3G^YOB&XXCp}v(TN@wY*7J-hxpwC3H0R9aT@L@vNH9#0Sly zp3ii-BzqD^wWQg#+9h(77-PAZ6`@Sq&pZrk-{e)tmIS4!mCXHGu8>ttCKI!fCvb2rp5U?Xb7 zz)q=Y&&L5OvI%@dQhY1D`Mg%_&Z?!7#x|Tg*~SV>i)qMOR?BfKyFzEfs-{5}nB!9J zb)?kw7ersvSc7ZbZe68h4e7RWIxT4A4qL%BzV-@@ICES{#t!7RyJ*IssV0xnr^PPh zLmA&Efs*l&YIldB>s)a&UPpYPF8C!Q^M>?TkOtO@LRkolzvC;CI!F89~Ar%f0D4^ru%(mf}PX0pG;~6 zQ8vLY#q8S`#&29Y-N}mDPj5YT`o@zNZ#?tJ+ZQhU{p#5pPhZHXg@0U{c^8C9QXl1-5ED<$UvwA{JsPVK~G6l%--Gh4u?7DFNO+&m+AvuTR-K6A* zIFhDeAI#*GX17N5xc0NGT0X_|wg&G_-{H&{d8EG5gmUwSzs@3my zf!zl&uMldA0j+YIaWZnzS|x27o}}qy=F)T|;_9@emd)D>t4r*kAx^FxM$vXI;fUMb zbkEbHw$6jD!>;Hmc}y2gn$1CH)ar~f&kE->(T(_C-j7Ur*3=w}Vo$(iF-KF7teIt7 zD;dol{_b0c|L%efkOGUNgW?dLRp~XWx)d=q*F0M~^Csz3#(;|Quv!|>PSOmoyN5{L zHG-_wnBwH)c5mL=JGtE*kU0TVl4Bg&d3fm$pfCZgCOIu@Atemx)Zc9Uu|EET+`KsrTpo$kUx&dT;c%algwux zrTpB=w>ZBge*0R+Azk8w2k+sh-x4<9y?j<|1#Ck%--77Dc4~36)B_&^ls!HH&(JvP z`dhEUI|kptW%wr`Qxs?!LogiTM~wf+P=5`I2NRgVwV9pXh&S92yN1R(ie^z1?({`` z;o0FiW0*UEc|#Fz#5a!lo&Km}E*zm5VUwmJ{_ujjm$7gRi>_lqr+gWAM&vOpj>s1o zQ=OGZ8|wKyn^Dd|Bjz&QdFa4==5hz_MFjf^i%NjbU=hw@v6b&WJ16YGPVQxP*o9tV zz#o3t&0QW^dKi6Nt)s2`(T@RmDc_Dg*h@rIdU+rA5yLa|K1e;8en8J2NB;ozZLNdU zx{qr?58Z)|1i<%K0bWFNGG(XUHNZBS0^r%VmTpbVw$U%P%}YWO<-D>YAYT<6vq+6DB3JAciHh*!8}z3)2xD- zt%BKOLFlEGJ1q!(v}Hr+w;&X)Xs-!3O!K<&OzcpIvh?N|#ftct6n;gQH>Ne)o&Fp$O zM%%5}TWk|f>;aCQ7#CiP_!pG-a|}Gx^jHH?XVuOpSxq0rVSK=jLwcSj{B(3>0!>4t zq*eW`uc7%I9%#LW)e>*OEfNOE7_Ab{VP`ZP9YgHC%6mH>+9U{CxsJG?l54nI;vKLd z8X+yM39l8}(K>Eg=S_`a{k`Y^{rY(L9sD_QR->$QO-v4z#@Arb@Z>O(k)H1W_e#OfX5 z-;<8u3F7q>L3xhdei;v1=pM1CcNrxK)_DtUCF#LS+x@)WY9u4VR_&WBw3#9HLA-!r z+V;@qQmYk_W*CkvJI5c+emG52r&awEzGB literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/util/IpUtils.class b/api-admin/target/classes/com/glxp/api/admin/util/IpUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..389805616459f240597e3f6ace4c1cfeb5c97ab7 GIT binary patch literal 2453 zcma)8S#uOs6#hC}cZP<*B!qx0lOQ1rLld?D0W?G~gOkN11OY`mGo4A3neL&xCySyY zF6>HKS{7=dRB6Q*tH6h02_+bDJa-Ck!u=ZjQ$t2~9Q86Z()oqPd1Mlr%hT z!1K~tE1Pa#&}E#=7_Qe;o7<-)bt|EDdyZ)(s7WH4r85@xkHn0$XWACm3JBYiQ0^~t ztVP%etA;C3$d0dB!utOSK|-FH7VZngbC4|T_Vn0bo1V_mA!ATRQbvmRCSh@#;SJdF zPTkQ{hG#gWDWJQfR;x zXn2lLg@+7dpkZ_4#!dV*s2IX9sZue5Q5A2B)zWE(AG4t1ErCkfpyCwXR`Cwrm2q0d zdpIMZ?7{i5hu1Gn+&lB&$M1h1AD_5zeOE}v`zk)bhZ2@e>+@r0U&c)4xG$N!dw=qW zixXEaPmbOA1r-+snq{FrBjgx*d^F_Qxj`tddwQjcOUS6WjE^NW zhUa^JJAKjrKKSC>hxb35`0Cok>3b97*@ySP*)loyDeXyEJ&kR?%a^d`DH+88n^w`$ zcfyD<>}QC4k0q=VyPle8nSETQJs*Xxn$Rg2Yq-@Xd3q@JY{04lDbM*KuG}Tg%NLY(~27-9sP66P1PgeVX>R(b93d1rKctmnHTiT z%Ncb&BSn7f4AD*1GSk*NebbD(6ruU~Fk4JCIeba$320cti}ZBbu;LQJ^RYam?99pv z8k~W!XF!BLFC><6947Xo`Rohvr93H<#dcO835sVw3cW%%X&5Y>1vLk2dr^sJ`4$vU zJ{U__&$fm$jlIOauSrlA_8Z6|Xh=aPI{9lX86Bn!N?x0wr(qJHq1y@lnwcUo=wjqm!(J?6P z;VepMuu>RYT=E?%>Vu23SaOZhe1Dkbi=+Mq@tdrc8NST(bKV_9kf@i?mmpT5lyoe` zF21f?P=Ui(j^kK?1Xl9YYNW7+XRCNR#G+ZrT3L;=r0)tD_?nyuhU&<|5Pupr(Sk|M z4cJVM$PBjdABbS>b8N$QB5CAoEtJ2oO2!VQR4M(35b|a0*hU1~(Tp8Af6IwrPtM=H)Ils$ bu_1huk#|bQa|L*w6A?zu>?Ljyq1Ey)nxK5k literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/util/JwtUtils.class b/api-admin/target/classes/com/glxp/api/admin/util/JwtUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..25fb2f9c2fd92e65f5275b03e6a23f6d5d2484b5 GIT binary patch literal 4018 zcma)9iF*^r75|Nn9UW@}!f}wfV-tJ;A|XI)Q;H2Z*w_Z@D~2@bT3YNivZP8YZ1+m9 zq(_oAZPPPtdf%6mwqS*p-s$)CFX>;=_BXSVEX(?0>~BXi^WK~H-tQf=`|tn0bsxYJ zcsqi_n2X?1%!lD%A%a^-N3e)Y1X<)l_+SY6C<<^xD28xbO_$WLte94UJcNJ#|44i& zf*tsO7eq0ToP+C5zj{Q^=pT_fQcp-|<;Ik5+llXiHFGlbZUXI`k z_@cxsA$%!n-cjrFX26|y3IdOeB(sZ&x%6@_Vdb2Jm0EN%iK6SI6T?gHB!3Hi0?}mNwp@E6 zd&|xUoah``ux?u(*Qk~2^Ok8VGnW|2X6E|3YBt8*yu&Slu)Ulcb<%02bbAehmY@qH zR|#7G1!|<6kxX08B89fqX{C(ora9iSR|Ix?)PkKX<{ft>aoJv>aIE0WWh}RtxBJs` zSrXN}-@WP(iLC z(wI~sXx$ixm0TqjCpWrwX0ve3&Xw5(JL&eFrM9MV*Gk@E2y{#(zAEuGiLXn1L*ko6 zbJTX{v#G0A-deO>J5Lb9RaXUO>f-o-YHLh+hiH2lGdw*ZaJa0e7L4JBIU=r4#@ZA^?h>T~8`J_GQsE*N8DgI+BjZJi- z%fts@F|$nE2I2j-iSOWb=9`J{;(HR`H}M|)K-J_5>)6l0GX+ij5I^F|O3$%0E{#8a z@|1}m<0mG5il3SIIbIiNUhgF;>`K=!O#BkRGVyEt#>8*2%GOpa*m)CgVAaH%ij=@{ z6TidnCH`RI4(^&*LrLN-6Zh~(f!6v8_dsSc)Ds%O%N#7GoFvX5#Po zhroViZ57=@&Q7i;-8fftw*TU|a^jx?2exXhEYbBg;ng*+@tT?KY%hT2ZY zHeT;nwa#lAUt2xXdh6O?iPx}*;s$4{#kG-lrQq6Zsyo@n~g1&8~ zi}sb9?9rVY%D&wBTN+r!PPLDz+<>y)YMTqTd&#!gm34y?7-&##HO;ErH@7&I-NmgW z%h9@?z|QfG7KPMpGtEmzV6t-)>*k1*FV5OXZlxle<^?;Y0A*1SPG0*>v{+}crFw(F zv0AJ3CAx*#l4+W=lCD5YxqT#RTQw_}8iv@5k2e5#i?bD+Lxn<7U7gX&Jk?KKhHjGF z-rG3P3@U4$tuEdGbC2lxu5jfmhVEn)3%7=}dVI6C!wdQF5)-fM0lic&Mmsm##uMb6 z?G9v9yq`7#TF$^q{ph!x0jpr2dV=kjG8b&slL?8e&di|<+dHi*6l|WnrxKtV*^V+Z z&DpiyI=pi$G{T+IhqI^~xu-6Gc;}6Qp`n_BDZjULP2nKlQxEI+S_48|1{}M&PViUo zH`sj_;tfuG=;5fCfNeO!(exN_6vwy-_49DemR9E%4yQ>zwib1Zd+aSuCY;s&?w zBGxP8!MH48rw`NdUXw-?Qv$GK{wMZ2*bd+;#!;sEy1@%^;@5q=o7 zqaPiZz#+_XH%$?1d*6&U8@!)01If>F*C`bVkF&|*rFj!LsMmZbSBdT^(L{-3oLI=zX)(ll#r!hKM{08*#A87CX z7uiGAj6k9FL|Aq9=sAew0!km6`Ff;X$G{b*(RoFgsDl1!3=UjgJ%ayRLq OQYiQ_{1X0*@c#kOPWOiZ literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/util/Md5Utils.class b/api-admin/target/classes/com/glxp/api/admin/util/Md5Utils.class new file mode 100644 index 0000000000000000000000000000000000000000..3146ba8139847fda55c59a2cec57812dd2b0d6cc GIT binary patch literal 1384 zcmah}&ud(Ic z%wWmH2&QweO&q~d6UXqmew#5cYv79s z#CC{*QS7d5OStV=s$2GARBOBSGl3tGT5p_NbwyLjD5NM%(!avc-we16m&B^lsc#FV z(-CegRQZ+?R6*(nwZdq4vu;xUU`=uNJBK%uIt`pPaDckZP;i8*N8S}4^M+6&CRei- zwPRPDm%2-XZwsE*AuWtz2X&Ts4J=qVhx5c`;Q}sNsNfQ{A<68$g)!{jD&cB7RI(x7 zRn4$#qDK literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/util/PasswordUtils.class b/api-admin/target/classes/com/glxp/api/admin/util/PasswordUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..8b5e2b29b204cd6dcf6da399f94d815b29ddea21 GIT binary patch literal 483 zcma)2OHRWu6db2%N<&LafCI1q+6v(fyCNin#413gLibK$wXX819EWl&SRt|C02~VO z5-RasV9D=!X5PqSzrH=c064~uiyFKJwi?)Ga86XJ%qc^y*Pk%h=UF5fI=)KfRgnZz z--sY4#`CjK#1o-aiC3g;W-4bm@WU+O)A)YD#X@lrB`W2GQ86EhJYQxyx+Rbg8Cs$+ zv$IkkEhC2gooeulIDGIkJ$GyL#?xi%dEE)+d5^1ESJnlFvbSN)W z75rOBMY}6U{{*{`c`Bc+ z?Q8pjQrGJ0bAM91TD$K=2ni_*&BL90&OK+JuYGU+{P(xt0bIqmNu)4s;&Ku(Ob_D< zW`?Q$L@%G3_{_xTNep5-i7zmlgo#`dbGW8=^GO`Tb$$A!_FFJ?eq5QjYqfSjK@0DeJUHXoeUn>(~%?Si9=gVHhuGXJ6ZP|2e zS!p<~-3pz$T~vO<2?ED+*IM-QmAXfDkP|Q(%C8dl%0&K=d?MTCc_#>SZMiPps-5@T zYHqUEK;X1&g|%+%f`(gDLDO>s!d~l_lCJ_=d)f;JyE8rUL|~>LhH^tE-26WndZzd1 zrpppIy1$Ni)2ZwpbSf4Y-w)DNU>h;rJ(JDm&RlNwgqnMcO6FP1>S1sW-Bpb^QVM1H zaX~gC2AQ~N;ubqlP+`rh6s0d4DpWo>HB@q{t_)i~hxt=4N8YZUb}^kc_Y$iw>Kj#; zEO{-ztd<;oV@`DwbeH^>G~X>8$C$wJ4)+&)UvBETvMCmp@D)2_;cF~g_y)Im$@<)} zgUKk6>*I6Sf=uKs6tH4p6-5(wEUckq;Vz06PU1Za_pol^K1u?1pD+hqe-1pVI~v96 z#v@hc^*GXLMVsBJj$)adkfG-b3_82p^u*o)?wF8cW=#ew>M1e#rhUgZ&5eYy9s50D zX+7@wRXb?$G<%fx^)sPXt|#LA+(c4F@V*tU2|HuUs;z_l`ud z~n};qvJH!fk-)mceuCO26z`4N<(_^h-+v1 z#c2sVe2LhD=ZF`w+eiqkT-=5s@C-M(84&mb=4|3625B-hYh)4`;{}ozGKnn=Z^3$o zlNlqcrI8mnvW3y9jIoWQG2H+8)%Mgcgik=HbdI6Hu!EGwnb;H)nqf-UnNWc#t>b+> z!09OEt1x(;#VP6xTF>AEo+NatIKy7(-$Q)F6S4^#brY11 jA^s0WO-!1|{*9%-sJ=k;P>h%$8W>ae_aad*MLYXHW&|Pj literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/util/PublicFileUtils.class b/api-admin/target/classes/com/glxp/api/admin/util/PublicFileUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..389e450cfbbbab193f335f8e2bf2ead0851ca130 GIT binary patch literal 932 zcma)4%Wl&^6g`ud9mj3c& zjs-(6-Nm}jHgqT&C>ba-WGXU{>M29ASUO}#?S-CTn5)V_yzY0KB7Vc0J|Tr_=yLy% z$5Pi5Fr_-O$55)eVb^K<$C1M$>2R+r1E;T~@6`HDU%D@)FB(+#c8S@I1y`aG`62fj zvCptxtRC?X-0^wPcIqmYL3_7!5n?b~#8cy{qt#qE!Z1@;+z2u%#vC?;_I4|KBHr2qf` literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/util/TreeUtils.class b/api-admin/target/classes/com/glxp/api/admin/util/TreeUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..a4f2c8256254e929c8bd6fb29b77bd463d8f11c6 GIT binary patch literal 347 zcmah^yH3ME5S(@VAjafDmoiEN6kJ0GqCuiEq##Luc24G^vmIS*#BWg{QSbrzD8!yY zp=68Qo!Oa@cK`M93E&Fj7(EOk3?qyP;f=0zb4%!*ov#S~UAVX7a zPSZMQdgpFv=Ixd)RLFoH6eIVw&0}rscvnq z?zM{@92A!u`63he2nf@E^9UoS7e-cvm}eW6H<-fX&s=%nPY`eq83~@mGq`vMy>;h^ jd)Sd7j(AUg1n47X)W`9`JYnprGZOxcFaFVPpTEBU01)G03wyZT#GNLN1)7QRbXKGS-RT8wNT%eL za^?%`mahd4Pcygn#Tn( zu=o7MT%dlMX(P~?T4z3%tHczaDM>lfoo0&CITg0zzrngcw`+l?QhExCm literal 0 HcmV?d00001 diff --git a/api-admin/target/classes/com/glxp/api/admin/util/serializer/Date2LongSerializer.class b/api-admin/target/classes/com/glxp/api/admin/util/serializer/Date2LongSerializer.class new file mode 100644 index 0000000000000000000000000000000000000000..607198f9d9c95d356e12407b28a50c46881c401e GIT binary patch literal 1360 zcmb_bTTc@~6#k~Swc8euiy&U{+Lp^GUSa|vAu2{vg#^;X$LV$~Q}@!$PLcSpe8I#A zhq}~+`mn`G8z!7d;Xce9N#*Eoh zA;XiJ6L`Gk9(1_qC@z|w@_E-Nmxq$@uKFM~eD*Y=Q!-G>8{*)tw{rtd@9isw2v{1D$PuaebW-n-N3oSfJ z($Ed)zI3keTYRh0mX0}1lK&@Oen+)@VY-?WTtBP0=(+}%usSUG8ufy`6LhsBH&oPb zGf@K!^~+M!9!1zF6tRFs3rj_C++!Fy-Zw>@$2h~|f9pzy#mMnw+a(uuycULuIJ^q@ z%dOX@TZ z&-cb3Brpo}Ez+6O%4p42KY@LuO$sIY=3?V0MrdE`0WgX&I + + logback + + + + + + %d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n + + + + + + + + + + ${log.path}/web_debug.log + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + UTF-8 + + + + + ${log.path}/web-debug-%d{yyyy-MM-dd}.%i.log + + 40MB + + + 15 + + + + debug + ACCEPT + DENY + + + + + + + ${log.path}/web_info.log + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + UTF-8 + + + + + ${log.path}/web-info-%d{yyyy-MM-dd}.%i.log + + 40MB + + + 15 + + + + info + ACCEPT + DENY + + + + + + + ${log.path}/web_warn.log + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + UTF-8 + + + + ${log.path}/web-warn-%d{yyyy-MM-dd}.%i.log + + 40MB + + + 15 + + + + warn + ACCEPT + DENY + + + + + + + ${log.path}/web_error.log + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + UTF-8 + + + + ${log.path}/web-error-%d{yyyy-MM-dd}.%i.log + + 40MB + + + 15 + + + + ERROR + ACCEPT + DENY + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/api-admin/target/classes/mybatis/configuration.xml b/api-admin/target/classes/mybatis/configuration.xml new file mode 100644 index 00000000..771e01b3 --- /dev/null +++ b/api-admin/target/classes/mybatis/configuration.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    \ No newline at end of file diff --git a/api-admin/target/classes/mybatis/db.properties b/api-admin/target/classes/mybatis/db.properties new file mode 100644 index 00000000..8caaaaff --- /dev/null +++ b/api-admin/target/classes/mybatis/db.properties @@ -0,0 +1,5 @@ +jdbc.jar.path=D:/Program Files/maven/maven-repository/mysql/mysql-connector-java/8.0.21/mysql-connector-java-8.0.21.jar +jdbc.driver=com.mysql.cj.jdbc.Driver +jdbc.url=jdbc:mysql://127.0.0.1:3306/warehouse?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false +jdbc.username=root +jdbc.password=123456 \ No newline at end of file diff --git a/api-admin/target/classes/mybatis/mapper/auth/AuthAdminDao.xml b/api-admin/target/classes/mybatis/mapper/auth/AuthAdminDao.xml new file mode 100644 index 00000000..38549386 --- /dev/null +++ b/api-admin/target/classes/mybatis/mapper/auth/AuthAdminDao.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + INSERT INTO auth_user(userName,passWord,lastLoginIp,lastLoginTime,createTime,userFlag,employeeName) + values + (#{userName}, + + + #{passWord}, + + + '', + + + + + + + #{lastLoginIp}, + + + '', + + + + + #{lastLoginTime}, + + + '0001-01-01 00:00:00', + + + #{createTime}, + #{userFlag,jdbcType=INTEGER}, + #{employeeName}) + + + + UPDATE auth_user + + userName=#{userName}, + passWord=#{passWord}, + lastLoginIp=#{lastLoginIp}, + lastLoginTime=#{lastLoginTime}, + userFlag=#{userFlag}, + employeeName=#{employeeName} + + WHERE id=#{id} + + + + delete from auth_user where id = #{id} + + + \ No newline at end of file diff --git a/api-admin/target/classes/mybatis/mapper/auth/AuthPermissionDao.xml b/api-admin/target/classes/mybatis/mapper/auth/AuthPermissionDao.xml new file mode 100644 index 00000000..199cd862 --- /dev/null +++ b/api-admin/target/classes/mybatis/mapper/auth/AuthPermissionDao.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + INSERT INTO auth_permission + (roleId, permissionRuleId,`type`) + VALUES + + + (#{item.roleId}, #{item.permissionRuleId}, #{item.type}) + + + + + + + delete from auth_permission where roleId = #{roleId} + + + \ No newline at end of file diff --git a/api-admin/target/classes/mybatis/mapper/auth/AuthPermissionRuleDao.xml b/api-admin/target/classes/mybatis/mapper/auth/AuthPermissionRuleDao.xml new file mode 100644 index 00000000..192b5680 --- /dev/null +++ b/api-admin/target/classes/mybatis/mapper/auth/AuthPermissionRuleDao.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + INSERT INTO auth_permission_rule(pid,`name`,`title`,`status`,`condition`,`listorder`,create_time,update_time) + values + (#{pid}, + #{name}, + #{title}, + #{status}, + + + #{condition}, + + + '', + + + #{listorder}, + #{createTime}, + #{updateTime}) + + + + UPDATE auth_permission_rule + + pid=#{pid}, + `name`=#{name}, + title=#{title}, + `status`=#{status}, + `condition`=#{condition}, + `listorder`=#{listorder}, + update_time=#{updateTime}, + + WHERE id=#{id} + + + + delete from auth_permission_rule where id = #{id} + + + \ No newline at end of file diff --git a/api-admin/target/classes/mybatis/mapper/auth/AuthRoleAdminDao.xml b/api-admin/target/classes/mybatis/mapper/auth/AuthRoleAdminDao.xml new file mode 100644 index 00000000..91f75dcc --- /dev/null +++ b/api-admin/target/classes/mybatis/mapper/auth/AuthRoleAdminDao.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + INSERT INTO auth_role_admin + (role_id, admin_id) + VALUES + + + (#{item.role_id}, #{item.admin_id}) + + + + + + delete from auth_role_admin where admin_id = #{adminId} + + + \ No newline at end of file diff --git a/api-admin/target/classes/mybatis/mapper/auth/AuthRoleDao.xml b/api-admin/target/classes/mybatis/mapper/auth/AuthRoleDao.xml new file mode 100644 index 00000000..ca9ed9cb --- /dev/null +++ b/api-admin/target/classes/mybatis/mapper/auth/AuthRoleDao.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + INSERT INTO auth_role(`name`,pid,`status`,`remark`,`listorder`,create_time,update_time) + values + ( + #{name}, + + + #{pid}, + + + 0, + + + #{status}, + + + #{remark}, + + + '', + + + + + #{listorder}, + + + 999, + + + #{createTime}, + #{updateTime} + ) + + + + UPDATE auth_role + + `name`=#{name}, + pid=#{pid}, + `status`=#{status}, + remark=#{remark}, + `listorder`=#{listorder}, + update_time=#{updateTime}, + + WHERE id=#{id} + + + + delete from auth_role where id = #{id} + + + \ No newline at end of file diff --git a/api-admin/target/classes/mybatis/mapper/basic/BasicUnitMaintainDao.xml b/api-admin/target/classes/mybatis/mapper/basic/BasicUnitMaintainDao.xml new file mode 100644 index 00000000..7e52c3a6 --- /dev/null +++ b/api-admin/target/classes/mybatis/mapper/basic/BasicUnitMaintainDao.xml @@ -0,0 +1,85 @@ + + + + + + + + + + INSERT INTO basic_corp + (thirdId,erpId,name,spell, + addr,status,type,creditNo,contact,mobile) + values + ( + #{thirdId}, + #{erpId}, + #{name}, + #{spell}, + #{addr}, + #{status}, + #{type}, + #{creditNo}, + #{contact}, + #{mobile} + ) + + + + insert INTO basic_corp( + thirdId,erpId,name,spell,addr, + status,type,creditNo,contact,mobile + ) values + ( + #{thirdId}, + #{erpId}, + #{name}, + #{spell}, + #{addr}, + #{status}, + #{type}, + #{creditNo}, + #{contact}, + #{mobile} + ) + + + + UPDATE basic_corp + + thirdId=#{thirdId}, + erpId=#{erpId}, + name=#{name}, + spell=#{spell}, + addr=#{addr}, + status=#{status}, + type=#{type}, + creditNo=#{creditNo}, + contact=#{contact}, + mobile=#{mobile}, + + WHERE id=#{id} + + + + DELETE FROM basic_corp WHERE id = #{id} + + + + + diff --git a/api-admin/target/classes/mybatis/mapper/basic/BussinessTypeDao.xml b/api-admin/target/classes/mybatis/mapper/basic/BussinessTypeDao.xml new file mode 100644 index 00000000..7e9ec433 --- /dev/null +++ b/api-admin/target/classes/mybatis/mapper/basic/BussinessTypeDao.xml @@ -0,0 +1,56 @@ + + + + + + + + + + INSERT INTO basic_bussiness_type + (action,name,enable,remark,mainAction) + values + ( + #{action}, + #{name}, + #{enable}, + #{remark}, + #{mainAction} + ) + + + + UPDATE basic_bussiness_type SET + action = #{action}, + name = #{name}, + enable = #{enable}, + remark = #{remark} + mainAction = #{mainAction} + WHERE id = #{id} + + + + DELETE FROM basic_bussiness_type WHERE id = #{id} + + + + + diff --git a/api-admin/target/classes/mybatis/mapper/basic/UdiInfoDao.xml b/api-admin/target/classes/mybatis/mapper/basic/UdiInfoDao.xml new file mode 100644 index 00000000..18e30a35 --- /dev/null +++ b/api-admin/target/classes/mybatis/mapper/basic/UdiInfoDao.xml @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + replace INTO basic_products + ( + nameCode,packRatio,packLevel,bhxjsl, + bhzxxsbzsl,zxxsbzbhsydysl,bhxjcpbm,bzcj,addType,deviceRecordKey, + cpmctymc,cplb,flbm,ggxh,qxlb,tyshxydm,ylqxzcrbarmc,zczbhhzbapzbh,ylqxzcrbarywmc,uuid,sjcpbm,versionNumber + ,diType + ) + values + ( + #{nameCode}, + #{packRatio}, + #{packLevel}, + #{bhxjsl}, + #{bhzxxsbzsl}, + #{zxxsbzbhsydysl}, + #{bhxjcpbm}, + #{bzcj}, + #{addType}, + #{deviceRecordKey}, + #{cpmctymc}, + #{cplb}, + #{flbm}, + #{ggxh}, + #{qxlb}, + #{tyshxydm}, + #{ylqxzcrbarmc}, + #{zczbhhzbapzbh}, + #{ylqxzcrbarywmc}, + #{uuid}, + #{sjcpbm}, + #{versionNumber}, + #{diType} + ) + + + + replace INTO basic_products + ( + nameCode,packRatio,packLevel,bhxjsl, + bhzxxsbzsl,zxxsbzbhsydysl,bhxjcpbm,bzcj,addType,deviceRecordKey, + cpmctymc,cplb,flbm,ggxh,qxlb,tyshxydm,ylqxzcrbarmc,zczbhhzbapzbh,ylqxzcrbarywmc,uuid,sjcpbm,versionNumber + ,diType + ) + values + + + ( + #{item.nameCode}, + #{item.packRatio}, + #{item.packLevel}, + #{item.bhxjsl}, + #{item.bhzxxsbzsl}, + #{item.zxxsbzbhsydysl}, + #{item.bhxjcpbm}, + #{item.bzcj}, + #{item.addType}, + #{item.deviceRecordKey}, + #{item.cpmctymc}, + #{item.cplb}, + #{item.flbm}, + #{item.ggxh}, + #{item.qxlb}, + #{item.tyshxydm}, + #{item.ylqxzcrbarmc}, + #{item.zczbhhzbapzbh}, + #{item.ylqxzcrbarywmc}, + #{item.uuid}, + #{item.sjcpbm}, + #{item.versionNumber}, + #{item.diType} + ) + + + + + DELETE FROM basic_products WHERE id = #{id} + + + + DELETE FROM basic_products WHERE uuid = #{uuid} + + + + UPDATE basic_products + + packRatio=#{packRatio}, + packLevel=#{packLevel}, + bhxjsl=#{bhxjsl}, + bhzxxsbzsl=#{bhzxxsbzsl}, + zxxsbzbhsydysl=#{zxxsbzbhsydysl}, + bhxjcpbm=#{bhxjcpbm}, + bzcj=#{bzcj}, + addType=#{addType}, + deviceRecordKey=#{deviceRecordKey}, + cpmctymc=#{cpmctymc}, + cplb=#{cplb}, + flbm=#{flbm}, + ggxh=#{ggxh}, + qxlb=#{qxlb}, + tyshxydm=#{tyshxydm}, + ylqxzcrbarmc=#{ylqxzcrbarmc}, + ylqxzcrbarywmc=#{ylqxzcrbarywmc}, + uuid=#{uuid}, + sjcpbm=#{sjcpbm}, + versionNumber=#{versionNumber}, + diType=#{diType}, + + WHERE nameCode = #{nameCode} + + \ No newline at end of file diff --git a/api-admin/target/classes/mybatis/mapper/basic/UdiRelevanceDao.xml b/api-admin/target/classes/mybatis/mapper/basic/UdiRelevanceDao.xml new file mode 100644 index 00000000..cbf199b0 --- /dev/null +++ b/api-admin/target/classes/mybatis/mapper/basic/UdiRelevanceDao.xml @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + replace INTO basic_udirel + ( + thirdId,thirdName,uuid,isUseDy,updateTime,batchNo,warehouseName + ) + values + ( + #{thirdId}, + #{thirdName}, + #{uuid}, + #{isUseDy}, + #{updateTime}, + #{batchNo}, + #{warehouseName} + ) + + + + + DELETE FROM basic_udirel WHERE id = #{id} + + + DELETE FROM basic_udirel WHERE id in + + #{item} + + + + DELETE FROM basic_udirel WHERE uuid = #{uuid} + + + + UPDATE basic_udirel + + thirdId=#{thirdId}, + thirdName=#{thirdName}, + uuid=#{uuid}, + isUseDy=#{isUseDy}, + updateTime=#{updateTime}, + batchNo=#{batchNo}, + warehouseName=#{warehouseName}, + + WHERE id = #{id} + + \ No newline at end of file diff --git a/api-admin/target/classes/mybatis/mapper/basic/UnitMaintainDao.xml b/api-admin/target/classes/mybatis/mapper/basic/UnitMaintainDao.xml new file mode 100644 index 00000000..36ab4d15 --- /dev/null +++ b/api-admin/target/classes/mybatis/mapper/basic/UnitMaintainDao.xml @@ -0,0 +1,49 @@ + + + + + + + + + + INSERT INTO basic_corp + (thirdId,erpId,name,spell, + addr,status,type,contact,mobile,creditNo) + values + ( + #{thirdId}, + #{erpId}, + #{name}, + #{spell}, + #{addr}, + #{status}, + #{type}, + #{contact}, + #{mobile}, + #{creditNo} + ) + + + + DELETE FROM basic_corp WHERE id = #{id} + + + + + diff --git a/api-admin/target/classes/mybatis/mapper/info/CompanyDao.xml b/api-admin/target/classes/mybatis/mapper/info/CompanyDao.xml new file mode 100644 index 00000000..cb0ba302 --- /dev/null +++ b/api-admin/target/classes/mybatis/mapper/info/CompanyDao.xml @@ -0,0 +1,37 @@ + + + + + + + + + + UPDATE company SET + name = #{name}, + category = #{category}, + creditCode = #{creditCode}, + addr = #{addr}, + productAddr = #{productAddr}, + classes = #{classes}, + appId = #{appId}, + appSecret = #{appSecret} + + + + INSERT INTO company(name,category,creditCode,addr,productAddr,classes,appId,appSecret) values + ( #{name}, + #{category}, + #{creditCode}, + #{addr}, + #{productAddr}, + #{classes}, + #{appId}, + #{appSecret}) + + + + \ No newline at end of file diff --git a/api-admin/target/classes/mybatis/mapper/info/ScheduleDao.xml b/api-admin/target/classes/mybatis/mapper/info/ScheduleDao.xml new file mode 100644 index 00000000..951ad044 --- /dev/null +++ b/api-admin/target/classes/mybatis/mapper/info/ScheduleDao.xml @@ -0,0 +1,40 @@ + + + + + + + + insert INTO scheduled + (cronName,cron,customerId) + values + ( + #{cronName}, + #{cron}, + #{customerId} + ) + + + + + delete from scheduled where id = #{id} + + + + + + + diff --git a/api-admin/target/classes/mybatis/mapper/info/SetupDao.xml b/api-admin/target/classes/mybatis/mapper/info/SetupDao.xml new file mode 100644 index 00000000..49fbdb3e --- /dev/null +++ b/api-admin/target/classes/mybatis/mapper/info/SetupDao.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + UPDATE system_config + + erpSaleOutModify=#{erpSaleOutModify}, + erpGetSaleOut=#{erpGetSaleOut}, + erpSaleOutSign=#{erpSaleOutSign}, + filterSaleOutSign=#{filterSaleOutSign}, + erpGetSaleOutDay=#{erpGetSaleOutDay}, + + erpPruchaseModify=#{erpPruchaseModify}, + erpGetPurchaseIn=#{erpGetPurchaseIn}, + erpPruchaseSign=#{erpPruchaseSign}, + erpGetPurchaseDay=#{erpGetPurchaseDay}, + filterPurchaseSign=#{filterPurchaseSign}, + remark=#{remark}, + forbidSameErp=#{forbidSameErp}, + returnWareHouseOut=#{returnWareHouseOut}, + salesWareHouseOut=#{salesWareHouseOut}, + returnWareHouseIn=#{returnWareHouseIn}, + updateErpData=#{updateErpData}, + dlStockErp=#{dlStockErp}, + dlStockErpDay=#{dlStockErpDay}, + + WHERE id=#{id} + + + + + + insert INTO system_config(erpSaleOutModify, + erpGetSaleOut,erpSaleOutSign,filterSaleOutSign,erpGetSaleOutDay,erpPruchaseModify, + erpGetPurchaseIn,erpPruchaseSign, + erpGetPurchaseDay,filterPurchaseSign,remark,forbidSameErp, + returnWareHouseOut,salesWareHouseOut,returnWareHouseIn,updateErpData,dlStockErp,dlStockErpDay + ) values + ( + #{erpSaleOutModify},#{erpGetSaleOut}, #{erpSaleOutSign}, + #{filterSaleOutSign}, #{erpGetSaleOutDay},#{erpPruchaseModify}, #{erpGetPurchaseIn}, + #{erpPruchaseSign}, + #{erpGetPurchaseDay}, #{filterPurchaseSign}, + #{remark},#{forbidSameErp} + ,#{returnWareHouseOut},#{salesWareHouseOut},#{returnWareHouseIn},#{updateErpData},#{dlStockErp},#{dlStockErpDay}) + + + + \ No newline at end of file diff --git a/api-admin/target/classes/mybatis/mapper/info/SystemParamConfigDao.xml b/api-admin/target/classes/mybatis/mapper/info/SystemParamConfigDao.xml new file mode 100644 index 00000000..0b8fd2c6 --- /dev/null +++ b/api-admin/target/classes/mybatis/mapper/info/SystemParamConfigDao.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + UPDATE system_param_config + + paramName=#{paramName}, + paramKey=#{paramKey}, + paramValue=#{paramValue}, + paramStatus=#{paramStatus}, + paramType=#{paramType}, + paramExplain=#{paramExplain}, + + WHERE id=#{id} + + + + UPDATE system_param_config + + paramStatus=#{paramStatus}, + + WHERE parentId=#{parentId} + + + + insert INTO system_param_config(paramName, + paramKey,paramValue,paramStatus,paramType,paramExplain + ) values + ( + #{paramName}, + #{paramKey}, + #{paramValue}, + #{paramStatus}, + #{paramType}, + #{paramExplain} + ) + + + + \ No newline at end of file diff --git a/api-admin/target/classes/mybatis/mapper/inout/CodesDao.xml b/api-admin/target/classes/mybatis/mapper/inout/CodesDao.xml new file mode 100644 index 00000000..b8d2405a --- /dev/null +++ b/api-admin/target/classes/mybatis/mapper/inout/CodesDao.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + INSERT INTO io_codes(action,mainAction,code,corpOrderId,actor,actDate,wrongCode,upperCorpOrderId,fromCorpId,fromCorp,type) + values( + #{action}, + #{mainAction}, + #{code}, + #{corpOrderId}, + #{actor}, + #{actDate}, + #{wrongCode}, + #{upperCorpOrderId}, + #{fromCorpId}, + #{fromCorp},#{orderId},#{type}) + + + + INSERT INTO io_codes + (action, + mainAction, + code, + corpOrderId, + actor, + actDate, + wrongCode, + upperCorpOrderId, + fromCorpId,fromCorp,orderId,batchNo,produceDate,expireDate,serialNo,udi,count,type) + VALUES + + ( + #{item.action}, + #{item.mainAction}, + #{item.code}, + #{item.corpOrderId}, + #{item.actor}, + #{item.actDate}, + #{item.wrongCode}, + #{item.upperCorpOrderId}, + #{item.fromCorpId}, + #{ + item.fromCorp + },#{item.orderId},#{item.batchNo} + ,#{item.produceDate} + ,#{item.expireDate} + ,#{item.serialNo} + ,#{item.udi} + ,#{item.count} + ,#{item.type}) + + + + + + + + + + + UPDATE io_codes SET orderId = #{newOrderId} where orderId = #{oldOrderId} + + + + + UPDATE io_codes SET fromCorpID = #{fromCorpID}, fromCorp = #{fromCorp} + WHERE orderId = #{orderId} + + \ No newline at end of file diff --git a/api-admin/target/classes/mybatis/mapper/inout/CodesTempDao.xml b/api-admin/target/classes/mybatis/mapper/inout/CodesTempDao.xml new file mode 100644 index 00000000..9802f3d4 --- /dev/null +++ b/api-admin/target/classes/mybatis/mapper/inout/CodesTempDao.xml @@ -0,0 +1,46 @@ + + + + + + + + INSERT INTO io_codes_temp + (action, mainAction,code, corpOrderId, actor,actDate, + fromCorpID, fromCorp, orderId,batchNo,produceDate,expireDate,serialNo,udi,count) + VALUES + + ( + #{item.action}, + #{item.mainAction}, + #{item.code}, + #{item.corpOrderId}, + #{item.actor}, + #{item.actDate}, + #{item.fromCorpID}, + #{item.fromCorp}, + #{item.orderId} + ,#{item.batchNo} + ,#{item.produceDate} + ,#{item.expireDate} + ,#{item.serialNo} + ,#{item.udi} + ,#{item.count} + ) + + + + + + DELETE FROM io_codes_temp WHERE id IN + + #{item} + + + \ No newline at end of file diff --git a/api-admin/target/classes/mybatis/mapper/inout/OrderDao.xml b/api-admin/target/classes/mybatis/mapper/inout/OrderDao.xml new file mode 100644 index 00000000..9affeb6c --- /dev/null +++ b/api-admin/target/classes/mybatis/mapper/inout/OrderDao.xml @@ -0,0 +1,210 @@ + + + + + + + + + + + + + insert INTO io_order(id,action,corpOrderId,actDate,fromCorpId,actor,mainAction, + fromCorp,status,remark,exportStatus,fromType,contrastStatus,signStatus,erpFk,stockCheckFk) + values( + #{id}, + #{action}, + #{corpOrderId}, + #{actDate}, + #{fromCorpId}, + #{actor}, + #{mainAction}, + #{fromCorp}, + #{status}, + #{remark}, + #{exportStatus}, + #{fromType}, + #{contrastStatus}, + #{signStatus}, + #{erpFk}, + #{stockCheckFk}) + + + UPDATE io_order + + action=#{action}, + corpOrderId=#{corpOrderId}, + actDate=#{actDate}, + fromCorpId=#{fromCorpId}, + actor=#{actor}, + mainAction=#{mainAction}, + fromCorp=#{fromCorp}, + status=#{status}, + remark=#{remark}, + exportStatus=#{exportStatus}, + fromType=#{fromType}, + contrastStatus=#{contrastStatus}, + erpFk=#{erpFk}, + signStatus=#{signStatus} + stockCheckFk=#{stockCheckFk} + + WHERE id = #{id} + + + + + DELETE FROM io_order WHERE id = #{orderId} + + + + DELETE FROM io_order WHERE id = #{id} + + + + UPDATE io_order SET fromCorpId = #{fromCorpId},fromCorp = #{fromCorp} where id = #{id} + + + + UPDATE io_order SET `status` = #{status} where id = #{orderId} + + + UPDATE io_order SET `exportStatus` = #{exportStatus} where id = #{orderId} + + + UPDATE io_order SET `contrastStatus` = #{contrastStatus} where id = #{orderId} + + + UPDATE io_order SET `signStatus` = #{signStatus} where id = #{orderId} + + + UPDATE io_order SET `remark` = #{remark} where id = #{orderId} + + + + + + + + + + \ No newline at end of file diff --git a/api-admin/target/classes/mybatis/mapper/inout/OrderDetail.xml b/api-admin/target/classes/mybatis/mapper/inout/OrderDetail.xml new file mode 100644 index 00000000..9d33e0b0 --- /dev/null +++ b/api-admin/target/classes/mybatis/mapper/inout/OrderDetail.xml @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + replace INTO io_order_detail(id, + companyid,erpOrderId,iodtlId,inoutId,goodsunit,goodsid, + batchNoId,goodsname,companyname, + batchNo,erpCount,credate,nameCode,productCompany, + coName,authCode,packSpec,packRatio,bhzxxsbzsl, + zxxsbzbhsydysl,orderIdFk,count,reCount) + values( + #{id}, + #{companyid}, + #{erpOrderId}, + #{iodtlId}, + #{inoutId}, + #{goodsunit}, + #{goodsid}, + #{batchNoId}, + #{goodsname}, + #{companyname}, + #{batchNo}, + #{erpCount}, + #{credate}, + #{nameCode},#{productCompany},#{coName},#{authCode},#{packSpec},#{packRatio}, + #{bhzxxsbzsl},#{zxxsbzbhsydysl},#{orderIdFk},#{count},#{reCount} + ) + + + + replace INTO io_order_detail(id, + companyid,erpOrderId,iodtlId,inoutId,goodsunit,goodsid,batchNoId,goodsname,companyname, + batchNo,erpCount,credate,nameCode,productCompany, + coName,authCode,packSpec,packRatio,bhzxxsbzsl,zxxsbzbhsydysl,orderIdFk,count,reCount) + values + + + ( + #{item.id}, + #{item.companyid}, + #{item.erpOrderId}, + #{item.iodtlId}, + #{item.inoutId}, + #{item.goodsunit}, + #{item.goodsid}, + #{item.batchNoId}, + #{item.goodsname}, + #{item.companyname}, + #{item.batchNo}, + #{item.erpCount}, #{item.credate}, + #{item.nameCode}, #{item.productCompany}, #{item.coName}, #{item.authCode}, #{item.packSpec}, + #{item.packRatio}, #{item.bhzxxsbzsl}, + #{item.zxxsbzbhsydysl}, #{item.orderIdFk}, #{item.count},#{item.reCount}) + + + + + UPDATE io_order_detail + + count=#{count}, + reCount=#{reCount}, + + WHERE id = #{id} + + + DELETE FROM io_order_detail WHERE docid = #{id} + + + + DELETE FROM io_order_detail WHERE id = #{id} + + + + DELETE FROM io_order_detail WHERE orderIdFk = #{id} + + + + \ No newline at end of file diff --git a/api-admin/target/classes/mybatis/mapper/inventory/InvErpStockDao.xml b/api-admin/target/classes/mybatis/mapper/inventory/InvErpStockDao.xml new file mode 100644 index 00000000..0c07cb75 --- /dev/null +++ b/api-admin/target/classes/mybatis/mapper/inventory/InvErpStockDao.xml @@ -0,0 +1,71 @@ + + + + + + + + + replace INTO erpstock + ( + orderId,code,batchNo,manufacturingDate,expirationDate,count,remark,name + ) + values + ( + #{orderId}, + #{code}, + #{batchNo}, + #{manufacturingDate}, + #{count}, + #{remark}, + #{name} + ) + + + + replace INTO erpstock + ( + orderId,code,batchNo,manufacturingDate,expirationDate,count,remark,name + ) + values + + + ( + #{item.orderId}, + #{item.code}, + #{item.batchNo}, + #{item.manufacturingDate}, + #{item.expirationDate}, + #{item.count}, + #{item.remark}, + #{item.name} + ) + + + + + DELETE FROM erpstock WHERE id = #{id} + + + + UPDATE erpstock + + orderId=#{orderId}, + code=#{code}, + batchNo=#{batchNo}, + manufacturingDate=#{manufacturingDate}, + expirationDate=#{expirationDate}, + count=#{count}, + remark=#{remark}, + name=#{name}, + + WHERE id = #{id} + + + + \ No newline at end of file diff --git a/api-admin/target/classes/mybatis/mapper/inventory/InvOrderCheckDao.xml b/api-admin/target/classes/mybatis/mapper/inventory/InvOrderCheckDao.xml new file mode 100644 index 00000000..fb6ad438 --- /dev/null +++ b/api-admin/target/classes/mybatis/mapper/inventory/InvOrderCheckDao.xml @@ -0,0 +1,66 @@ + + + + + + + + + + insert INTO stockcheck + ( + action,actDate,status,remark,endTime,whouse,houseCard + ) + values + ( + #{action}, + #{actDate}, + #{status}, + #{remark},#{endTime},#{whouse},#{houseCard} + ) + + + + + DELETE FROM stockcheck WHERE id = #{id} + + + + UPDATE stockcheck + + action=#{action}, + actDate=#{actDate}, + status=#{status}, + remark=#{remark}, + endTime=#{endTime}, + whouse=#{whouse}, + houseCard=#{houseCard}, + + WHERE id = #{id} + + + \ No newline at end of file diff --git a/api-admin/target/classes/mybatis/mapper/inventory/InvStockPrintDao.xml b/api-admin/target/classes/mybatis/mapper/inventory/InvStockPrintDao.xml new file mode 100644 index 00000000..baddf9a6 --- /dev/null +++ b/api-admin/target/classes/mybatis/mapper/inventory/InvStockPrintDao.xml @@ -0,0 +1,142 @@ + + + + + + + + + + + + replace INTO stockprint + ( + udiCode,udiRlIdFk,nameCode,cpmctymc,batchNo, + produceDate,expireDate,serialNo,codeType,thirdId,thirdName, + ggxh,ylqxzcrbarmc,zczbhhzbapzbh,warehouseName,warehouseCode + ) + values + ( + #{udiCode}, + #{udiRlIdFk}, + #{nameCode}, + #{cpmctymc}, + #{batchNo}, + #{produceDate}, + #{expireDate}, + #{serialNo}, + #{codeType}, + #{thirdId}, + #{thirdName}, + #{ggxh}, + #{ylqxzcrbarmc}, + #{zczbhhzbapzbh}, + #{warehouseName}, + #{warehouseCode} + ) + + + + replace INTO stockprint + ( + udiCode,udiRlIdFk,nameCode,cpmctymc,batchNo, + produceDate,expireDate,serialNo,codeType,thirdId,thirdName, + ggxh,ylqxzcrbarmc,zczbhhzbapzbh,warehouseName,warehouseCode + ) + values + + + ( + #{item.udiCode}, + #{item.udiRlIdFk}, + #{item.nameCode}, + #{item.cpmctymc}, + #{item.batchNo}, + #{item.produceDate}, + #{item.expireDate}, + #{item.serialNo}, + #{item.codeType}, + #{item.thirdId}, + #{item.thirdName}, + #{item.ggxh}, + #{item.ylqxzcrbarmc}, + #{item.zczbhhzbapzbh}, + #{item.warehouseName}, + #{item.warehouseCode} + ) + + + + + DELETE FROM stockprint WHERE id = #{id} + + + + UPDATE stockprint + + udiCode=#{udiCode}, + udiRlIdFk=#{udiRlIdFk}, + nameCode=#{nameCode}, + cpmctymc=#{cpmctymc}, + batchNo=#{batchNo}, + produceDate=#{produceDate}, + expireDate=#{expireDate}, + serialNo=#{serialNo}, + codeType=#{codeType}, + thirdId=#{thirdId}, + thirdName=#{thirdName}, + printStatus=#{printStatus}, + ggxh=#{ggxh}, + ylqxzcrbarmc=#{ylqxzcrbarmc}, + zczbhhzbapzbh=#{zczbhhzbapzbh}, + warehouseName=#{warehouseName}, + warehouseCode=#{warehouseCode}, + + + WHERE id = #{id} + + + + + update stockprint + set printStatus = 1 + WHERE id in + + #{item} + + + \ No newline at end of file diff --git a/api-admin/target/classes/mybatis/mybatis-config.xml b/api-admin/target/classes/mybatis/mybatis-config.xml new file mode 100644 index 00000000..a72d9782 --- /dev/null +++ b/api-admin/target/classes/mybatis/mybatis-config.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/api-admin/target/classes/static/.gitignore b/api-admin/target/classes/static/.gitignore new file mode 100644 index 00000000..c96a04f0 --- /dev/null +++ b/api-admin/target/classes/static/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore \ No newline at end of file diff --git a/api-admin/target/classes/templates/.gitignore b/api-admin/target/classes/templates/.gitignore new file mode 100644 index 00000000..c96a04f0 --- /dev/null +++ b/api-admin/target/classes/templates/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore \ No newline at end of file diff --git a/api-admin/target/test-classes/META-INF/api-admin.kotlin_module b/api-admin/target/test-classes/META-INF/api-admin.kotlin_module new file mode 100644 index 0000000000000000000000000000000000000000..8fb60192d378759239a3ecbf60eac8c8de446e9c GIT binary patch literal 16 RcmZQzU|?ooU|@t|UH|}6022TJ literal 0 HcmV?d00001 diff --git a/api-admin/target/test-classes/com/glxp/api/BaseApiAdminApplicationTest.class b/api-admin/target/test-classes/com/glxp/api/BaseApiAdminApplicationTest.class new file mode 100644 index 0000000000000000000000000000000000000000..47b22117733162fee3909608f7ee9b0415928997 GIT binary patch literal 532 zcma)3!A=4(6r2JJiYSPB(39SfgS`+h8k5Du(?$~^chM% zUA&kWW1CF-rt{|YwI82v?*IlkXrhX41A7hZGt@7YR_=WfEM)F1#uE&39&lX}S7!L1q?NlNsDpOS1*V?$!j|v|J#?JU6rw+KywU(BX`a!ul z74nuM&Z)+EDaul-^z6}!L_Qn)#2wv+M@Boja%+bHAC($%AR{vPJux)K{mfpc4T&#X zY@r5^q4(c6VdxZ{@>u8@zY7;KayUVSKB*XtCixN8DdJ@ec>Pzf7a}TX5Y~wXHnBn2 bD)$~m&GLM!#1^(`ZIgb7&f5_>*af}-lF*Tk literal 0 HcmV?d00001 diff --git a/api-admin/target/test-classes/com/glxp/api/admin/service/auth/impl/AuthAdminServiceImplTest.class b/api-admin/target/test-classes/com/glxp/api/admin/service/auth/impl/AuthAdminServiceImplTest.class new file mode 100644 index 0000000000000000000000000000000000000000..90d58254569f42a5c146f5327c877bb12a453b01 GIT binary patch literal 3060 zcmb7GX;%|x7`>BiLKqeSt#Lu9tqqHgTQ`De)KX(3A|NejYlkp|!O3LI%%IrC?sji~ zLBIBMdwQalbNU1NquSngCJB*7)1CwG{yfjU&zAY~uiyUwa1uWz(2wZ^u3#pP*#zcr zRmOY*QE?c>n__rN3=3jdY{PzBYsYoGE#sX8I&h;6??Mx+r3CU=ZikMQ1PWM{VIR>{>|qhvV}_U6{Kb?uI-)eqGf-6?tH zyiUp3xM3OYgoJQvXkJ3(Txppgx^jl4PkF^9y*#H;p@g1XDX*FHTGS4rPHE7{< zOUOpiHvfe?%fmU{afzbCG#uCW!?aeQwTSIcy*_l+)U1ML$jU0oR!t?#4Fk=?Uu1wJ`lZ)pg9eTK?uG&Gys7&v9GEEg5B2mkfv1 zBfL^77t}S6S*KQ`-??H~%V#&PGKy1v6yw2x2wA&WPT%IW*mW5eAG!4kkkD55sD$DF z&R&AF#Q#OA^z3EL)f-eMX8q!rG(_I-uV2gtHCW5qBO=ih9K>@nYy~bn)(|U}Y{hO} z!m%cW{PZMJa2t0NY>45m7~aGC3JzdE#s><9@u7r%U+EK*MF6@d<0Azh;}Zp+;xiea zEBFHU>3;=Z;wu?nEBFTAN=P-q*EClo$d2QztgM`r(COEgpK#~tHU;0|dj%KpgM?E} z^f6kZtp&;V)Gn|c&sojUGq&M3g^X>RM&55|B4t=dTUB1|3rwu7v!L>8VEy(X%Dr|_ zFBcM9*Gx~pyuunwWrrHt!&bZLORL=%sN!$px*dolBA4lcq)# zwOx?xI~(PzJxhomZRO7GnJMA5RI>_rdd{V*Pa=T;s@+;DGJ#_hiOr5qhl^Ft?79;?f*tO#$EcI zKUi6U+Uh15NAv~>3C&;3l|88 z_+Tf{#r1A}5+%`&J%qiNUo`u;>L=3!ggro>gLskr#|b`5@N<;BL3%D}36j?XB2|)6 z*cibm$+lw+hq($-tBxaFg{fPkzN56h2iI^6$7%T>W^jU^a4~8hrKOkX=Q-MZ8LuFY zS7~7vbp&@~^}96h#(8%Lp}%ReO~xr16Scq7GS0}z$T%zG9B^hUj^`=EvZ@7wSjC?I z+aoyYlM5oqPUc5&kPk(C10|EKl^kuU_Uz1!^z5qO znUPKG<~CWuo)M8|73>wsGx7-gLO8XrniD|+_tVFq-{TlVC(_J}aYkc;u{q7io$$^ZZW literal 0 HcmV?d00001 diff --git a/api-admin/target/test-classes/com/glxp/api/admin/service/auth/impl/AuthLoginServiceImplTest.class b/api-admin/target/test-classes/com/glxp/api/admin/service/auth/impl/AuthLoginServiceImplTest.class new file mode 100644 index 0000000000000000000000000000000000000000..3f12e385f27ebf5adcba9fd2aeb0dd2cdf36a1c2 GIT binary patch literal 1021 zcma)5Yj4vq6g}=MTNk=+ErT)!+ZfPx5=Mw`9YY-w(og`Yo%-ENP3Dm%Q6AOyvyhN@ zeBcN0qY&3=TGk>lBE{FfkK=QX?VrEC{{ZkD`(-TQUXkYd%aw5-+siPpvw~ebFtBIf zAwyLp@tNg2%InK;tZd2f%(DFvcifABi$HNP94U`SlPK5eyt`1-VQBOcFIFQtP?0)y zW!LlkSj5WrB8E-tT#Us97c(dC$;eMaTT*4|KzS-YWXLyL1BSvYe@G-&E#=8~$>>yu zCxQSO)-B%_?m&b}uQO*MK2x;A%WEmCQQ-c?`riva1_D9x@nd z>v~pAJK(PH9B%oZLj^_@hstwk^DLOe%Ht!(IyEg%vC@HqimpMqK-Dhi|fwzpF%M- z=jx9{B)fr173&6ptL*g5HD!j1=JH1~l58y8M85yPP;0(vUFkfN^ywV-f80BU-R2@p zhC5TZgB`l`OY{U7a#{PBj5+FSIHneLQ-0p6=y99Xfr}*l# ziHYEYKfvE)jAwS+(gF?mGH1@2bNSA9&iwxS^A~_ec&;IZ@f5CLLc=7cx^N5AUAT>$ zh8fICbxy?{6?Ykic^K@hS=Ea0ec?Lmp>1tg)jd(P7#7W7w zhGcGLi$QtmmIzI+DIDuvSlPC!o179d^qX#x+grRUq+T;B!H%E`uP?+dDxTfGfdaj5 zT7E!qG+X$=%0Z!2a2Wbbw^}xKLjq{j-c#}WnkX@(&(dj9w2YG-8(|=9Ls}?rx)uI` zS8w6fDc_~@da;Py;Go?Y7MH0&_eQ{rpWbpWqDI9$gDSD+ZJWBC3H#0HWjc4L*p{3aWtUbd- z?sUFdf#%68zBnY-X}t@y87B*s_vv?03mT6uo7IrKl-vjT3;J_s5@DRac#6I}LqZOP zq)u8V$!?MgNtzd(eWV#A8Oe^>A7J0;lE76ur8CH_pH4k?zyPk1#xO|1i70q3(#du@ zaIh(m=!^pE7}8PDP$S7_Bq<#*Hv1ik)De=$P!cfbj?uyJ1*-BDO7aMuvW60Y>!Ao> znBZkFifmLX9p|XklEAN%2g42Wlnum|4BfJ1(UACqjEb8tPPmD2jWlo_lCQ*-mAHZ6P(ytm2A_ zs|*?53GP-s$2PZ{!mZiuJ<+fk7OaNXGFU0v-s@^%;&?yL^w|H~4F#QMG-q({9-0nOYXE2v!)9g<_pSS@*Vy$b=
    dC~eVfIRm+uX=Bs&17b4f2tQcshKiK8 z8Pb;5-Z6GNM9=6!^avt_lZc#fNt__2iRm~LDkd+(+#rHBDHe1G$Vyz8pnrwoNGy;= z1SK!2r_l+7V@M0ZlaB3@LzyVWW$L!}rCL4Uwft_BR-{0+fH!`=##^EKD!!s#WYB71 zDX$7yrKy+}y}sJlcuw-xk;exNll>gbcAIyj)Mf{?-~Y;_;%gmcRCIg;OUE@>L`lbW zZ0N`$r{ac=X?&}qs-uQY72oNo&+}lLRdZa;Te?LRlu1?q5RFm$!{U=i%hay$*Ni_74>* zm0}%J^v=uB8b%%pHQ$=42GamVD}jkw;myB zWuTbaqLNciKKKono*_k6^ZI6>ZC9MDYqCRuhxPf(A$*d>hJG2DiJL?k)j;jISoX znV1MZ_yhb=#524A-Vy||BDFY+j) zF^f4H^EMV3`b8Y=ZuqX;l#P8=l?;pJs$b_d_aNXRP+aWPmB+*8SFX{#*lDuNFuDJjN3nPaQnNbB2|x#^zs5V90ft zzY?J=2Fj3K3<6hG%{b|1Fbo*_&U4Lht&>s)dtbP*eD{&K&6V<(wug6wyn4_X-sUcG z^na>W3g??{h3YePfF{30Lvc28#gMKW)tMG%v(< zBps4TlGHF-`{~3s0 zmd3E1!-z4;o;vvkiyok09U)Q94AZ(+_<`i?96N?(VSWA>DTXhwt*@|>N9fYgER$vy zDcawpb&P79zzs~&pVyR$UTAu4MNeS{*Xg_FVhW?QOVB$=wqwM|IC;@!HZ>EZnIugH Xi4)A&m@>axFVA>v)-X+&1aAKY82(B0 literal 0 HcmV?d00001 diff --git a/api-admin/target/test-classes/com/glxp/api/admin/service/auth/impl/MmpaTest.class b/api-admin/target/test-classes/com/glxp/api/admin/service/auth/impl/MmpaTest.class new file mode 100644 index 0000000000000000000000000000000000000000..965bb0ce3321a6315b45a3d4d656f0a96a703f63 GIT binary patch literal 1308 zcmb7ETTc@~6#k|yY$?mda#6g3H`*c{5wCzGg~(IA1V|I(({wwQ!M$a7TI|o#C?pz< z&;BUmnJpwm`XDcJX3n1Z&Ue0Zc7Ff)_7lKEtmQC@ISV&)NMUXWBe<2t?JVwCxNBkF zcnd=)qLjk|?&YwEvITD8K7$>}Sno4jpKvQyS!O?ETzed%b1ER_%jeoSeK zed+IM9U9_E&>jGaD*L9DlesM|z_xNx=wJ)SPz z)gI5LE8=+dU61ED<~)m_uhNeN&Oi1C8BJ=$k*k>vktftf( zL8HSkSty=m$uN=h=X3_TW`0=h`b43RBE=f!=uH@G-MYyz zUKNh{y4|dq-icnb$wSG8ZlCF%P-DB^cv}jaSL}*; zDGc+(^d*s{B<&T~xw2io&X9fEcBE*UXTlc*dgwT=)TMA8!kh?-ZM3O4-pd}cOj!{O z>2_Vbbk5!9lq@?{;Y$_X&@c5asqzrn^xqYCS~pc6_QmcGD&Gvic}@3)!B4}4r2_(w z?;Cbcxa6_h_6+k#D4EjX7jLMVQkX!RVSRu^7gDwehNu)n#eP9{Ij|X~)a4%Mxvj#+ zCjE1J#bPn9z;X;@o4bWvzOYr?-OlgqY^SgVTE;L=ZS*`(0|h=+feQmzgT}nNlBd)l zUrDQBCxrrb{}Ud56^R{aZR?K3-_#nWLHbWEcSQ}H$I=syRZ{bmq@K~+o^@2?76t|N zHG{OB=pR!WOF{i+xZQtqq#M%pIt&To>CQC6Vwk3E>%L!F`FHd&PhZR^eN+rHN;*2l z=uFL`HA5DsozXtDdJXo04iQY!IvhCDxJBnwHvm(ZCX4E$ZQfSK=zyvszd5z7pH#&Go`v`qXf5)ml$Xi(M|?Z7O(;{mdm3s|PR z**%tVjNmTrQJMECQkCBI%+e`bL7Wh7G?=G5^-E-uUoi3snj&N&9VW?|BVPpbzX5~Y B3mpIe literal 0 HcmV?d00001 diff --git a/api-admin/target/test-classes/com/glxp/api/admin/util/JwtUtilsTest.class b/api-admin/target/test-classes/com/glxp/api/admin/util/JwtUtilsTest.class new file mode 100644 index 0000000000000000000000000000000000000000..206b4193649a6bcc52e9748e7791ccd811244a14 GIT binary patch literal 2443 zcma)8=~CNf6g|QQ86h^a1hN%E0%nT}AtWtJ>ZGMW&5}S!)3iy25k^FoTuFw|WtunX zGqjx{B%SF4^hckgPtoc5Bw>rCo#GjP+r8gC=iGZg^T*%seg`mt9~4}{l#FQwHJD0a zCV_W9HYu3Jy#{=QY%Q$->EUYy_whi%$M~ckbNE!jJQfrz;xjSJDOkd?I9&-HkoZfi zR>k4N20X%A3hOC679JZio+$VnPwR0JU&weSAz?WM3F(~U7BtV=p4ioLPN879QxfW? zP22QmX_Fb;kdS=fY#9=obEa)9my4T*yRL6q+@W(`w>EUw6zga+>F=1Hg#KLKDQX4l zRY}uJrlxNdOxSnuSVP`5bl+HaUK%z-=PlhV(!V*ktMBQd$C6&6 zVXYsUq{9Tnh_+j%NLs`~jjF@MNHR z-|)Sx>*@zodQ10pdWnH?+MdO*Rj8(>^H!7}Wz8wOd1KBL*=UUmdsC>Vq6fV^s46+H zdplH9LMlke3v)}xmny!(a~UsGd<|X3rda1?Y^fN4A!A!b0Xs5G6}xyT!%|U%Ef$W9 zl8SHO3QJGL7<{qq$|$SY!#>kFHZDFAq!AUbK#JG@Pg%(LR>gPtUd2_sCn0mf=f3V4 z*^-$R6_qWOEHfYEMI_>wYfu{twr{YWCCGcaRW??(StXf;!I-3x1(VQNl_-!WQ7ZGY zyP24AR2ye^;x|S{5}JYw0~|TWW}~%b7UPCulW}`aFgvG7B;1NX1id3VA%-BhC4OzC zNLs4#*A6`2D6*Ly!Kov3XF0C2b$mJ)dXY%l0*8~^l&&ObhPwt$a_Z^qbQP0rfD=gtg{64-G zo;Njk_OV7UAM`8Y=Yk`fg|j-&+4uau#+AlV;#fQM2GY-*)Sxdi0@Aq7xf&Ya2Ku=o z6FS!f&Oaf+4{+x<)I5EIL~b~pOxGTv?k(g5o(#7mbp+)I4NJd39XUi}I5ZuidE^K! zB3vQ}cNH?{T}YuDokZG;OUU3d#)*BBxCM-!FjNF1MdTR_5>78YhA>P>BeW7=!?RJ& zZgNNP)i_FczXJS#)&h8U1^5wKk3pV<)(P?Rd5xF$p^-q^380HgR3UX&Ahkx28VTbx zByn~Y(pUx3p9GX-q}2+fbTS#2GW{P?wl7oJ(L;2MQdTidC*Pv82HdHNJOqXJ50S|* zIw)2T@eEL+G0HPZab`HnQt}nt3fK*Wcq;7XBX&Ks4cSdHRpYcy#H1HiXL(Lkcs{4K zkiI>Af#uS5i0(l5#5l{NT7T&v_6#j&iTWPe_>WIjaghU2iwU&iHrYtDQOMyA(;82C l3U?VdEOar7zxwpWBV76wmqjqX9sCv*LO}fffMX3l{0G!ZBAoyL literal 0 HcmV?d00001 diff --git a/api-admin/target/test-classes/com/glxp/api/admin/util/NormalTest.class b/api-admin/target/test-classes/com/glxp/api/admin/util/NormalTest.class new file mode 100644 index 0000000000000000000000000000000000000000..35000679ce56e8db1fa3a358f4c7cde05ce8f1f6 GIT binary patch literal 1135 zcmah|TT|0O6#llQOPj1I%)sYORF@7pxQ?W75lY#sSo>Wrcf z{s4cJ<4M{P2I}~-=dydwcfNDZ{`&pnCjbLGISk`z26I_tF`vT%7Kc&9QU=SBv690x zloXV6SjC!xb%vztI}G`{A2?d*UKnky?mLbh>@cKvg(u`IdQ&Q&GYswfEt_GqEK${xL`pc0{}cz{uc*~VUF)2vk*)yihIs_RCjdi3^q z+uW$u4r?k@j40SpQGuqQs$vsVQK6`BnTBraX3;cEqiDoZFRIXCC@@vj@SI`s|GiM~ zLd7;-5|f(_ylJ*=OERqdE1n2RJ2-2JGwLjLA>-KcKv3f-rgXoR<@+weySo824B=h) z43mRW&_bjMg)kXj4|*_Y@HWj&UTIAp3QMEV!`PYO4WG0m>9i_zj*+F2WF%9o-@rbR zlE65f>DZ|vPrBNBfQOhMiyBJ7i8%O@WRiS~`9%FQl55u(`i@ir`E-NK^=l|!k%>Jw znWvDVh;fR`Q=UmWr>Mw6j5OcN)<;TWj_wMCm?yMHq$My-u~BU^Br|yYm&QU|BaqE! VuaWzLWCX}=Q5hj?mV603`2%}71<(Kh literal 0 HcmV?d00001 diff --git a/api-admin/target/test-classes/com/glxp/api/admin/util/PermissionRuleTreeUtilsTest.class b/api-admin/target/test-classes/com/glxp/api/admin/util/PermissionRuleTreeUtilsTest.class new file mode 100644 index 0000000000000000000000000000000000000000..1897ca368d36e635573507c483431fc1788ae5d8 GIT binary patch literal 1371 zcmb7ETTc@~6#k|ytX)>9V5@)^@Y(`0%06gqqAdWt;W1`LC7k>%;{un$;I)VGu(WObi&9vG5492DpXC zcw%7ALJ{)@7A!2{sexw}o@0q&zQ-*6?LHXFU8q$N$y%UldJtIB^qz_t0`tu?%zN zvuWG=Q`R233a7g2hfyqD`egisdQohHmCrXq<;C?ll)@!lBPpQ!n5qeMkmC`qqaw|^ zzP%@#akbLGB>hVA^lM?r=u0PS(XOBDWwIHvG!L{EXvfJivVBuu!9J$$E41ohQ1~#d zRyzPAxJo<9O5jWi{(vk!!1&Z>WWFKGU{B|dkUK)(+9&kSe1V}Uv(S{o$kAFPMJ1xT xhB1t$^b>804!udSCGt}7R7H{AGPq8-Qd*1ljh^_%= + + + api + com.glxp + 0.0.1 + + 4.0.0 + + api-common + + + + + org.projectlombok + lombok + true + + + + org.apache.commons + commons-lang3 + + + + + \ No newline at end of file diff --git a/api-common/src/main/java/com/glxp/api/common/constant/CacheConstant.java b/api-common/src/main/java/com/glxp/api/common/constant/CacheConstant.java new file mode 100644 index 00000000..f38b5aef --- /dev/null +++ b/api-common/src/main/java/com/glxp/api/common/constant/CacheConstant.java @@ -0,0 +1,10 @@ +package com.glxp.api.common.constant; + +/** + * redis 常量 + */ +public interface CacheConstant { + + String ADMIN_AUTH_RULES = "admin_auth_rules:%s"; // 管理员的权限 + +} diff --git a/api-common/src/main/java/com/glxp/api/common/converter/LongList2StringConverter.java b/api-common/src/main/java/com/glxp/api/common/converter/LongList2StringConverter.java new file mode 100644 index 00000000..94b54c26 --- /dev/null +++ b/api-common/src/main/java/com/glxp/api/common/converter/LongList2StringConverter.java @@ -0,0 +1,33 @@ +package com.glxp.api.common.converter; + + +import org.apache.commons.lang3.StringUtils; + +import java.util.*; + +/** + * Long 类型的 List 转为字符串 + */ +public class LongList2StringConverter { + + /** + * Long 类型的 List 转为字符串 + * @param longList + * @param regex + * @return + */ + public static String convert(List longList, String regex) { + + if (longList.isEmpty()) { + return null; + } + Set stringSet = new HashSet<>(); + for (Long value: longList){ + stringSet.add(value.toString()); + } + if (stringSet.isEmpty()) { + return null; + } + return StringUtils.join(stringSet, regex); + } +} diff --git a/api-common/src/main/java/com/glxp/api/common/converter/String2LongListConverter.java b/api-common/src/main/java/com/glxp/api/common/converter/String2LongListConverter.java new file mode 100644 index 00000000..c5868e4f --- /dev/null +++ b/api-common/src/main/java/com/glxp/api/common/converter/String2LongListConverter.java @@ -0,0 +1,38 @@ +package com.glxp.api.common.converter; + + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +/** + * 字符串切割为 List + */ +public class String2LongListConverter { + + /** + * + * @param string + * @param regex 切割的字符 + * @return + */ + public static List convert(String string, String regex) { + try { + if (null == string || "".equals(string)) { + return Collections.emptyList(); + } + String[] strings = string.split(regex); + if (strings.length == 0) { + return Collections.emptyList(); + } + + List longList = new ArrayList<>(); + for (String str : strings) { + longList.add(Long.valueOf(str)); + } + return longList; + }catch (Exception e) { + return Collections.emptyList(); + } + } +} diff --git a/api-common/src/main/java/com/glxp/api/common/converter/String2StringListConverter.java b/api-common/src/main/java/com/glxp/api/common/converter/String2StringListConverter.java new file mode 100644 index 00000000..aee6ae6c --- /dev/null +++ b/api-common/src/main/java/com/glxp/api/common/converter/String2StringListConverter.java @@ -0,0 +1,34 @@ +package com.glxp.api.common.converter; + + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +/** + * 字符串切割为 List + */ +public class String2StringListConverter { + + /** + * + * @param string + * @param regex 切割的字符 + * @return + */ + public static List convert(String string, String regex) { + try { + if (null == string || "".equals(string)) { + return Collections.emptyList(); + } + String[] strings = string.split(regex); + if (strings.length == 0) { + return Collections.emptyList(); + } + return new ArrayList<>(Arrays.asList(strings)); + }catch (Exception e) { + return Collections.emptyList(); + } + } +} diff --git a/api-common/src/main/java/com/glxp/api/common/enums/ResultEnum.java b/api-common/src/main/java/com/glxp/api/common/enums/ResultEnum.java new file mode 100644 index 00000000..7889eef6 --- /dev/null +++ b/api-common/src/main/java/com/glxp/api/common/enums/ResultEnum.java @@ -0,0 +1,30 @@ +package com.glxp.api.common.enums; + +import lombok.Getter; + +/** + * 返回结果的枚举类 + */ +@Getter +public enum ResultEnum { + + SUCCESS(0, "success"), + NOT_NETWORK(1, "系统繁忙,请稍后再试。"), + LOGIN_VERIFY_FALL(2, "登录失效"), + PARAM_VERIFY_FALL(3, "参数验证错误"), + AUTH_FAILED(4, "权限验证失败"), + DATA_NOT(5, "没有相关数据"), + DATA_CHANGE(6, "数据没有任何更改"), + DATA_REPEAT(7, "数据已存在"), + DATA_ERROR(8, "参数错误"), + ; + + private Integer code; + + private String message; + + ResultEnum(Integer code, String message) { + this.code = code; + this.message = message; + } +} diff --git a/api-common/src/main/java/com/glxp/api/common/req/BaseLimitRequest.java b/api-common/src/main/java/com/glxp/api/common/req/BaseLimitRequest.java new file mode 100644 index 00000000..ff84e655 --- /dev/null +++ b/api-common/src/main/java/com/glxp/api/common/req/BaseLimitRequest.java @@ -0,0 +1,56 @@ +package com.glxp.api.common.req; + +/** + * 分页的请求 + */ +public class BaseLimitRequest extends BaseRequest { + + /** + * 页码 + */ + private Integer page; + + /** + * 数量 + */ + private Integer limit; + + /** + * 偏移量 + */ + private Integer offset; + + public Integer getPage() { + return page; + } + + public void setPage(Integer page) { + this.page = page; + } + + public Integer getLimit() { + return limit; + } + + public void setLimit(Integer limit) { + this.limit = limit; + } + + public Integer getOffset() { + return offset; + } + + /** + * 设置偏移量 + */ + public void setOffset() { + if (null == this.getPage() || this.getPage() <= 0) { + this.setPage(1); + } + if (null == this.getLimit() || this.getLimit() <= 0) { + this.setLimit(10); + } + this.offset = (this.getPage() - 1) * this.getLimit(); + } + +} diff --git a/api-common/src/main/java/com/glxp/api/common/req/BaseRequest.java b/api-common/src/main/java/com/glxp/api/common/req/BaseRequest.java new file mode 100644 index 00000000..aaaa9c43 --- /dev/null +++ b/api-common/src/main/java/com/glxp/api/common/req/BaseRequest.java @@ -0,0 +1,37 @@ +package com.glxp.api.common.req; + +import java.util.UUID; + +public class BaseRequest { + + /** + * 唯一请求号 + */ + private String reqNo; + + /** + * 请求的时间戳 + */ + private Long timeStamp; + + public BaseRequest() { + this.reqNo = UUID.randomUUID().toString(); + this.timeStamp = System.currentTimeMillis(); + } + + public String getReqNo() { + return reqNo; + } + + public void setReqNo(String reqNo) { + this.reqNo = reqNo; + } + + public Long getTimeStamp() { + return timeStamp; + } + + public void setTimeStamp(Long timeStamp) { + this.timeStamp = timeStamp; + } +} diff --git a/api-common/src/main/java/com/glxp/api/common/res/BaseResponse.java b/api-common/src/main/java/com/glxp/api/common/res/BaseResponse.java new file mode 100644 index 00000000..12e3217a --- /dev/null +++ b/api-common/src/main/java/com/glxp/api/common/res/BaseResponse.java @@ -0,0 +1,17 @@ +package com.glxp.api.common.res; + +import lombok.Data; + +/** + * 返回结果类 + * @param + */ +@Data +public class BaseResponse { + + private Integer code; + + private String message; + + private T data; +} diff --git a/api-common/src/main/java/com/glxp/api/common/util/ResultVOUtils.java b/api-common/src/main/java/com/glxp/api/common/util/ResultVOUtils.java new file mode 100644 index 00000000..2d1bded2 --- /dev/null +++ b/api-common/src/main/java/com/glxp/api/common/util/ResultVOUtils.java @@ -0,0 +1,70 @@ +package com.glxp.api.common.util; + +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.common.res.BaseResponse; + +import java.util.HashMap; +import java.util.Map; + +/** + * 返回结果的操作类 + */ +public class ResultVOUtils { + + /** + * 成功时返回 + * @param data 返回的data对象 + * @return {@link BaseResponse} + */ + public static BaseResponse success(Object data) { + BaseResponse baseResponse = new BaseResponse<>(); + baseResponse.setCode(20000); + baseResponse.setMessage("success"); + baseResponse.setData(data); + return baseResponse; + } + + /** + * 成功时返回 + * @return {@link BaseResponse} + */ + public static BaseResponse success() { + Map data = new HashMap(); + return success(data); + } + + /** + * 错误时返回 + * @param code 错误码 + * @param message 错误信息 + * @return {@link BaseResponse} + */ + public static BaseResponse error(Integer code, String message) { + BaseResponse baseResponse = new BaseResponse<>(); + baseResponse.setCode(code); + baseResponse.setMessage(message); + Map data = new HashMap(); + baseResponse.setData(data); + return baseResponse; + } + + /** + * 错误时返回 + * @param resultEnum 错误枚举类 + * @return {@link BaseResponse} + */ + public static BaseResponse error(ResultEnum resultEnum) { + return error(resultEnum.getCode(), resultEnum.getMessage()); + } + + /** + * 错误时返回 + * @param resultEnum 错误枚举类 + * @param message 错误的信息 + * @return {@link BaseResponse} + */ + public static BaseResponse error(ResultEnum resultEnum, String message) { + return error(resultEnum.getCode(), message); + } + +} diff --git a/api-common/src/main/resources/application.properties b/api-common/src/main/resources/application.properties new file mode 100644 index 00000000..e69de29b diff --git a/api-common/src/test/java/com/glxp/api/common/util/ResultVOUtilsTest.java b/api-common/src/test/java/com/glxp/api/common/util/ResultVOUtilsTest.java new file mode 100644 index 00000000..6c647709 --- /dev/null +++ b/api-common/src/test/java/com/glxp/api/common/util/ResultVOUtilsTest.java @@ -0,0 +1,8 @@ +package com.glxp.api.common.util; + + +public class ResultVOUtilsTest { + + public void success() { + } +} \ No newline at end of file diff --git a/api-common/target/classes/application.properties b/api-common/target/classes/application.properties new file mode 100644 index 00000000..e69de29b diff --git a/api-common/target/classes/com/glxp/api/common/constant/CacheConstant.class b/api-common/target/classes/com/glxp/api/common/constant/CacheConstant.class new file mode 100644 index 0000000000000000000000000000000000000000..577b074a536286b4d8c7bab5b87fa485826e84b1 GIT binary patch literal 233 zcmX^0Z`VEs1_l!b9(D#!b_Om+1_4JGUr)by$IuXu_@Gc9*I-5lA)l$U5`?Y(Nm;4MC5#Nhi7C06dGU#*B^mKW or8%j^R;tBpj0}tnOh8XCGDtEoGq3<@Rv?dwfekFi4rX%z051YP=>Px# literal 0 HcmV?d00001 diff --git a/api-common/target/classes/com/glxp/api/common/converter/LongList2StringConverter.class b/api-common/target/classes/com/glxp/api/common/converter/LongList2StringConverter.class new file mode 100644 index 0000000000000000000000000000000000000000..c7286a80bf2af469da297ed7ef5512afdf351d16 GIT binary patch literal 1489 zcmbVM+fEZv6kVrG8EA*AiYTCRQ2~KbKtu|7K@qf|Nxekh4rS5~wlmFiO7K(s0$=e( zL=)q)U*V(QVB%$+>68v?jIl}2KKq=t_g-gT=F|6g9{@}voj@xtBr%3@9TN#OR24Ic zi@2ngNgY!OG+{c4%a~Eicmh{2tK+JUIf2G`+p+ycfrjCc#{$}tyJ-ourESMruM{^d z@1fi%@T4>CW@X{A^lYVvhnkL_z#^^*bkx(eBFlL`(ZF@wAb$fl zam~OIZV9y3v#y*QxQ%7L(!d?8=vXyy7x&l}|JPbfRNejkjV&w7I=0k#1$FJL>#Izq z^j)t;>!45AqIUUqvE;u9M&ucr%09q$4Tl{Wz-vBOJ3TMU>(&lqYEB@I){sG$RS6N- zQ*ahTX4+LmiO0&`I> z0b7ppzl|CC(ZVl{`o+MBKs(nCY9^(ijF0X?ybi8Axi$ueNgUzcr~+^l$EY=<3&;7L zQpR8CEKa#Tx{sK^OT@+Qdo(=VgSN(_xWM}OJ{r|cA2+(dM>Nf8V<)sXXx>L6h9|Fn zd>-3JGBh5$@D|1{J!()a&M_JoRmDuAn`};C0w*zt9xR|2%jm-jP6sSUX){5t-Na~$ z6LCG1YS&AgAS#7ZM8|N3r(Kj)R6k|)Zh&Wl)Y_pXzoAvfkdCuoF_0h=zC1>kpflh+ N|1k{H=}52}{Rsj(b~gY3 literal 0 HcmV?d00001 diff --git a/api-common/target/classes/com/glxp/api/common/converter/String2LongListConverter.class b/api-common/target/classes/com/glxp/api/common/converter/String2LongListConverter.class new file mode 100644 index 0000000000000000000000000000000000000000..9c2dfb69ba4580226bdd21cde2a8ec7ece4f61d9 GIT binary patch literal 1490 zcmbVM$x;(h6g@9PKL~A5G-#ATz=4Dzih@Wm4k)q+XcY>juA0z>#!h!^Iuz{v30+!c zxz!CgRPh1+hCkuL63^>Knc~JIo%`N>_nvp|xi|Ut>&q5^tC&haM}Gqb5*S1-flIio zRznh36420}V9an6MsQ7HRN}hCn1D8JIhJ1#i1udY1Y#5JqAAc^v>bD$R#`B;N5+Cp zPfO7)8TOpvS!%!IjQLB}ioj^G?Mb`0Rx+!;?~61X}m&vtIq9QTGAh@jZx2k$i!0 zM`nGa^kUkm2Et0DCGryE>=T(yoBoo!_|Wi-ib*+HP2;Rpb_~Dfk>S*T=~kCTV%DvB zC3DhJ4R8Nf*9Mi)I*uSI0P@sv0|kkjI&R^%jyss3+(9#fF5UJ#V_mgM;;xQ+m}Ff# z?t>#2Mg#Z}H@s+A=@rH|gfkPhoOx=MD$pwn2+291P8g|Wm@Lb?r zJ&=R5#9xE4xQH$^@vlI=BH(Z#$?s7Fs*=i6-Z+a2@*IP*e*N{Yz&I(P*7Kj z6}2+r6yIsI<1{O7M+P07zD~^0KB8w1-IzyDP*#CO-eGPlPI6{Xp%7$7m@~laGrV^m zF|-jSqDmyfNm{k)Y3SMYl<(l&EC29&Y64exwHNL>+30iyLgnsB`oydMhc5ar;tHbu9h_9 zQn-nH3JDk*ZfUr!VOb!tZo77{ArMVxwgh6E-i{^EU$kB8d9$`{`LE1vhmoP8S23L} z)3>GH3dVw6yCJYvtavq}>KxP!vu+!7YMx8u?puCf`9?YLZMV7{nxfqZHqTN80j;%9 zU?pALGxtryG2LnlQ|OLl!ca4?9YdZak7%d@WHS7=8z3Oaf21SvCh%(`k^!>EQk6j5NHWCgq4&P&rbYZiMYhh*8Vx@OSyS@qe4 zT3YX>vO%h;ve)!0)>B)~W9I*&=4B%~bo2^j>B^}NvXS4s|TtP4l{kuHHkOsj?JQrod<_y3z>5-PRO{e600Q4hSW-6A>9c% z;}=e@^Ky>2s;O9;a3QmWImnk)ej*TZUVQe^GiW(F#Iwf`UsSrE&x8u<7~onDH((G$ z^pY6HWkePD2W^zGWs&_1eJGMWLi8iF6T}X)OGk*8a;Kj{_Zt$gb0^S_(Q{amd4(I~ zzeJL!&MG^HoU&0!2J`6QbCh+)xMLhwFo7vdvXLq7nnoToid_~l=0^A(WovnQWAr1E z6;Ttkay7}7z*Vj%5bKNnM4yJK-&7=`VVXY(jpxlWpNtR&0>DyIt$6~ksnzvAy|p?E literal 0 HcmV?d00001 diff --git a/api-common/target/classes/com/glxp/api/common/enums/ResultEnum.class b/api-common/target/classes/com/glxp/api/common/enums/ResultEnum.class new file mode 100644 index 0000000000000000000000000000000000000000..0d2a8722e997fe4f957f8ace0338d1415b0791c5 GIT binary patch literal 2291 zcma)6+jA3T6#s3TWWT0cx=o={C~~osG+Y955pAu+l0qbHYPKy#(7H{R5X=R0VSEG} zZ!@Ai&>1`6IL_z{3x2Mt3(S2&(c z`xB}6&-=~uNk1LZ*^J-H6w`Ts)XEoAg&^@g3L1wZBjZECk&}_=2?Z_T$g$AS_*gI+ z8i^C8egVeBMlu+*2br3b|w^!Q#%bKzKAr zW$rk&+B#hq%v90JE9mxiuiD7bFOzHzCo|SiF+E}BM$Cy6rKL)5kuwTj^8Po&?$svc z31{PGYRt?f*=^OgBV(p1gg$5$&Socv%^V#IR*q74^(HgPLZ5=36@rFp@>uF*4ODGj z_ZYRla5hQa+?~7*op!V)`;g5|CNpMAL4%P@WXwV_N11qQqy4{YHDML(o~`qC*F;~k zqNt=XxHR3h%as0|ujq}Zs+HDzIpf1Mu6S>ISJ&V^+7-8vE#~6ZK$6GS{ABg_@ZM=S z$bau44H;w=bgt%~(a?kQ8jj#S4g2uChW$98BF8W_Rm~UUaVn1$0vdL}t6=NG?EJ#~ z*9-SAm4BQ5^Ow&SXXX}eUMXMwy!_FX#hIx;E?(Bq&5GK>^nCfjRQcQ6m8nlO_!#q) zzqnkPy7l;bGQ0Hn+VtYgjE0?3Qu*qG$J1AB3E3>(`A)+wTT=R_a^us5>-WkZ&XRHE z%8wd$vt+$}sz~{x`T0i=rYhI(RIc6Eu!rT%w!A!7D*y0h`NmBReulMb64mf~8C&z@ z$K{bIaK=;F3^jTAP$LuPtayP2ajXxD(xNWrL)sSoh0)3c6Q9c<=cH1s;}K~7veUd zwo?x^2G~H!Y(yhE(1K0i09(kGEb*!=mN_oh#<*aI4BFyAzYZLwcOR+mr#DD%9R?`B zV>nJ+~!lh8A&%FucVwM%G&5DaaU zP=|yz=`LNGJ}be^65OJzx-{M@!EF+JP8Yf~@08$nz2O0+Twg+y5p$HF8!=}ItwzjM zLYom&OK3M@qJ$13rW3T82w~fZ5V+l#g~Bto7tIGZ@r`Juwdq0=jbsfqs2StXk)w%! WOw+wV(%TR;I(vYF7$TcGME(I0oho_& literal 0 HcmV?d00001 diff --git a/api-common/target/classes/com/glxp/api/common/req/BaseLimitRequest.class b/api-common/target/classes/com/glxp/api/common/req/BaseLimitRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..61ab44a76d9714dd1d55176899e63e697a07d843 GIT binary patch literal 1248 zcma))TTj$b5Xb*#x4UIa5m;p9rhTNY5UDe?ug7-yilKdPyDtnOU38V*3CyaF_F}?OXCal*Bv?12kB-tMtN$=OO9GiLZ^Y`(QDGSU;RjIYV!t>O-7% zoiZN>^BARVcN0*;4SGsuL;2_BkI205xjdG7nPVi8T;8P4Q0Lvnb7X#%w&Lg%a-6o5 zFLkq$@`5IPDNOM!r|1Y17n8!2?PZ!yW#U3v;|f!@muZen^M7HI8DBCD#!Rb z+6LAbvY|NK4j3w(1AfG9m-{2TCqu^{J!L3J#}hrty)i>6kKmG`PnWEL>!0{6|mdlGBNG`v+nm8Rm2-l8$Td?!JCWR3Z0=fj4#H;^G9=SQ$)P zct)`IVIqacP##2KD12T1mgBl=WHjx~-&g7PqI$q!9C0@i-FFPt=4Nt2x<&L3^Yki# z6n#{=-chl%WkNFO6ZyX*;a$1pzWqh+!cWXP7uR!E?V zOQ_Kf)I%*mks5gn^Qh0nZCcg8Z2L1ZA8C`K<3LUa7ZQiF@!Um6w)=Zfi#I*7c QCe{0x$M$fmIT3m=)zEC2ui literal 0 HcmV?d00001 diff --git a/api-common/target/classes/com/glxp/api/common/res/BaseResponse.class b/api-common/target/classes/com/glxp/api/common/res/BaseResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..68d9f9d4728229830689baa432d3a084f0fd8bd1 GIT binary patch literal 2921 zcma)7ZF3V<6n-|@w}dT(Knp?8suk0uC5ot!z6j+-t1XnaR6$g>>6!%7Bqm$MAHg5+ z2gnyb=!}*bopJOF&iI=|e9qoYvMEtB)7*RRxzC>aoadZ-`{&<3{|ev?DoKpudIAPk zWmuD8-NKC|=M5P?6u?Jf-IU>$EI+nzI|&EZZG0m0r!stI zuQaw++?KoT`Cf~nB>7dB!f5ovkb!(Bp%sTdL`XppW|kZR!~1f_tugRGAAPBl>Yomxx|SD>7fXJpNHOJ6Lz&7ezoCxVu? zOK$zLq@cmBxb2E6AiHjnv{zOamoGB~+9vyEr{>ccQnn|$^o$9`#`YUZL=D;5^p%jx>%95#!jo`U8zbxAB?uJQDht(!*d!);{RLQ!6m%y;8kQD zyd~Boat`vCa&Q?}G#u$&W5s)6r&`;RLZzcLvQn@)2Od6`p-jqC<6-i1Y?i5UNuQQB z>0lW-_FXTq%AESS&8Ao98!|np=OViFF=5&I@SP6)S3F+iqc+N?FpijLMk^+=1v8a{ zhU0;K0{duFT8`uNT;Qy6Hgb=k{XiqmP=FaY6L^WXqX2jr6I{L0=Q+uhCQ5T0r`-$p zBVymv5e?@I8II)|5H7wq-2NfMvG5dQFFSp2xYSVLl#0{jcM63t>=Ne~b2W4MpAZ`? z;+R5&B8tFLB`qSS$vu(tHU11f&PZ|lb(|h_NPO5sqy_%tkfXsNZ}1;zJP>Fjnu$K_ zA*#QmF?v}_CX(eboFIWPr(--$3HTn)=Pyc~^8T~O1K7ccw(RX2Y5Q(BeNTO(F48fR>k$!-YjFB-Tpk&b^ zC|R^KmVoRKWM%9QNPkE|`ZJf|wj$cC<9(bBZr3R8;T$hWjK3<1^u^i5CCt#$@h+}l zmX^VH;ymVPnW!=LJS__?j_>ei2i>4FydQRhihG`MFOW|jj%ELa{T3FUV9dfr{@L0S z993o_YIa0FOVM?C5tZ2ZfYM918lti!8NH(F#w!X&H%Wu3$rJMI-46?UF6bjZt^|$q zMG(FwL*Gcv%<6MN*^Z}XDlD3v%0GZLy^DQ!#GfeYvXRll9a~DNwvt67*kTofkL-*Q zY#kq5n0a+z$T^NxivAwy7+Ap~tr(I_{e9*UC+0M5Da<@C;Swz)lG}|?dJ+6Q=HLJR{s+KS)J)94HgLs63bu(K@T2s8 z%3?v=tuVRacHCf7VWPOYr;y(29%zN>n%mJk z{r0~0{&4nNoXOX^4X3r|c&?1&$#ih&`U=HbquaKdt=B!<>A5xs?QX~J2X4#$UHko3 zu($h^1HYuWll3JgQ4T`5ehq_ z3qW`JZ9lGn`|OWT#$?J_HnQnc2|NX^@O(@f35lQUlKG_D_Zs?v8(xVM#l0rRSeQj# z;lil<@NpR%*tBp5KU??(cP(t;o`w5(pfDR+9OnF?;~z5b78dZ8fnO~=#I}Xs@W{e< zxIk}49d!EQu?&Z4i|*RsnDF|=nP#G2Ijz3leW6e&Zm%YcO4Nd{gXobcj4DBSL`;U% z2Ng4)j2igOAcH~o!drYIV(=0$Vx)^7=bb>!0ik(btf9^!Ws?yf_{^OMiV0zbZ{iGJ zR$vme26=wZa%8hrY%`^IP=B$L!dx5#SeR$uiULr;mmK9JRg99&eYPpKOYf0-_6`%Z z^6bv?G15oKl=G8EFv_JPWXpdtWFmwuAjAF~vINc(aDkBD@+-#_A}B24YmTy9`G#u> z=Qt7y(aaKi%bdw521aaFI3;YV1Q01x?~x-L^HJ#-U&z^!B>Bex_h#wEKvtG~7IB{Q zIjJ{B2+&)$X|^k|ta^nqGLuDa)CGwtq7szsjH>qL=@wJ$c82A8uD8wb8 z3c-ShyZb%Ar_;TEyuJZA!)}TJb`lH|j0o|Csf?cx28TxlA-t^bHDQ>WN?*6jQa3YM zT2}V*T1i{T#&rBGhW^1g!bz^`rI_2Nm5?hV7?yP + + 4.0.0 + + com.glxp + api + 0.0.1 + + api-admin + api-common + + pom + + api + vue后台管理系统 + + + org.springframework.boot + spring-boot-starter-parent + 2.1.3.RELEASE + + + + + 1.8 + + + + + + + com.glxp + api-common + ${version} + + + + + com.alibaba + fastjson + 1.2.51 + + + + + org.apache.commons + commons-lang3 + 3.9 + + + + + + diff --git a/scripts/vue-admin.sql b/scripts/vue-admin.sql new file mode 100644 index 00000000..a26086b1 --- /dev/null +++ b/scripts/vue-admin.sql @@ -0,0 +1,234 @@ +/* +Navicat MySQL Data Transfer + +Source Server : php +Source Server Version : 50553 +Source Host : localhost:3306 +Source Database : vue-admin + +Target Server Type : MYSQL +Target Server Version : 50553 +File Encoding : 65001 + +Date: 2018-11-20 18:59:57 +*/ + +SET FOREIGN_KEY_CHECKS=0; + +-- ---------------------------- +-- Table structure for ad +-- ---------------------------- +DROP TABLE IF EXISTS `ad`; +CREATE TABLE `ad` ( + `ad_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '广告ID', + `title` varchar(255) NOT NULL COMMENT '广告标题', + `describe` varchar(255) NOT NULL DEFAULT '' COMMENT '描述', + `pic` varchar(255) NOT NULL DEFAULT '' COMMENT '图片的地址', + `jump_type` tinyint(4) unsigned NOT NULL DEFAULT '0' COMMENT '跳转方式(0,web 页面,1:APP内链接,2:小程序)', + `jump_url` varchar(255) NOT NULL DEFAULT '' COMMENT '跳转的url路径', + `ios_url` varchar(255) NOT NULL DEFAULT '' COMMENT 'ios 的类名', + `android_url` varchar(255) NOT NULL DEFAULT '' COMMENT 'android 的类名', + `wxa_appid` varchar(50) NOT NULL DEFAULT '' COMMENT '微信小程序的APPID(跳转类型为 1 时有效)', + `channel_type` tinyint(4) NOT NULL DEFAULT '0' COMMENT '渠道名单类型(0:不做处理,1:白名单,2:黑名单)', + `channel_list` varchar(255) NOT NULL DEFAULT '' COMMENT '渠道黑名单', + `android_version_type` tinyint(4) unsigned NOT NULL DEFAULT '0' COMMENT 'android 版本名单类型(0:不做处理,1:白名单,2:黑名单)', + `android_version_list` varchar(255) NOT NULL DEFAULT '' COMMENT 'android 版本黑名单', + `ios_version_type` tinyint(4) unsigned NOT NULL DEFAULT '0' COMMENT 'ios 版本名单类型(0:不做处理,1:白名单,2:黑名单)', + `ios_version_list` varchar(255) NOT NULL DEFAULT '' COMMENT 'ios 版本黑名单', + `new_show_start_num` int(11) NOT NULL DEFAULT '0' COMMENT '新用户从第几次开始展示', + `new_show_max_num` int(11) NOT NULL DEFAULT '0' COMMENT '新用户最大展示几次', + `old_show_start_num` int(11) NOT NULL DEFAULT '0' COMMENT '老用户第几次开始展示', + `old_show_max_num` int(11) NOT NULL DEFAULT '0' COMMENT '老用户最大展示几次', + `start_time` datetime DEFAULT NULL COMMENT '开始时间', + `end_time` datetime DEFAULT NULL COMMENT '结束时间', + `event_name` varchar(255) NOT NULL DEFAULT '' COMMENT '统计事件名称', + `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '广告状态(0:禁用,1:正常)', + `create_time` datetime NOT NULL COMMENT '创建时间', + `modified_time` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ad_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='广告表'; + +-- ---------------------------- +-- Table structure for ad_site +-- ---------------------------- +DROP TABLE IF EXISTS `ad_site`; +CREATE TABLE `ad_site` ( + `site_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '广告位id', + `site_name` varchar(255) NOT NULL COMMENT '广告位名称', + `describe` varchar(255) NOT NULL DEFAULT '' COMMENT '广告位描述', + `ad_ids` varchar(255) NOT NULL DEFAULT '' COMMENT '广告位的广告id(用 , 隔开)', + `create_time` datetime NOT NULL COMMENT '创建时间', + `modified_time` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`site_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='广告位'; + +-- ---------------------------- +-- Table structure for auth_admin +-- ---------------------------- +DROP TABLE IF EXISTS `auth_admin`; +CREATE TABLE `auth_admin` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `username` varchar(60) NOT NULL DEFAULT '' COMMENT '用户名', + `password` varchar(64) NOT NULL DEFAULT '' COMMENT '登录密码;sp_password加密', + `tel` varchar(50) NOT NULL DEFAULT '' COMMENT '用户手机号', + `email` varchar(100) NOT NULL DEFAULT '' COMMENT '登录邮箱', + `avatar` varchar(255) NOT NULL DEFAULT '' COMMENT '用户头像', + `sex` smallint(1) NOT NULL DEFAULT '0' COMMENT '性别;0:保密,1:男;2:女', + `last_login_ip` varchar(16) NOT NULL DEFAULT '' COMMENT '最后登录ip', + `last_login_time` datetime NOT NULL COMMENT '最后登录时间', + `create_time` datetime NOT NULL COMMENT '注册时间', + `status` int(11) NOT NULL DEFAULT '1' COMMENT '用户状态 0:禁用; 1:正常 ;2:未验证', + PRIMARY KEY (`id`), + KEY `user_login_key` (`username`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='管理员表'; + +-- ---------------------------- +-- Records of auth_admin +-- ---------------------------- +INSERT INTO `auth_admin` VALUES ('1', 'admin', 'c3284d0f94606de1fd2af172aba15bf3', 'admin', 'lmxdawn@gmail.com', 'sssss', '0', '127.0.0.1', '2018-07-06 17:19:00', '2018-07-06 17:19:00', '1'); + +-- ---------------------------- +-- Table structure for auth_permission +-- ---------------------------- +DROP TABLE IF EXISTS `auth_permission`; +CREATE TABLE `auth_permission` ( + `role_id` int(11) unsigned NOT NULL COMMENT '角色', + `permission_rule_id` int(11) NOT NULL DEFAULT '0' COMMENT '权限id', + `type` varchar(30) DEFAULT NULL COMMENT '权限规则分类,请加应用前缀,如admin_' +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='权限授权表'; + +-- ---------------------------- +-- Records of auth_permission +-- ---------------------------- +INSERT INTO `auth_permission` VALUES ('1', '4', 'admin'); +INSERT INTO `auth_permission` VALUES ('1', '3', 'admin'); +INSERT INTO `auth_permission` VALUES ('1', '2', 'admin'); +INSERT INTO `auth_permission` VALUES ('1', '1', 'admin'); + +-- ---------------------------- +-- Table structure for auth_permission_rule +-- ---------------------------- +DROP TABLE IF EXISTS `auth_permission_rule`; +CREATE TABLE `auth_permission_rule` ( + `id` int(8) unsigned NOT NULL AUTO_INCREMENT COMMENT '规则编号', + `pid` int(11) NOT NULL DEFAULT '0' COMMENT '父级id', + `name` char(80) NOT NULL DEFAULT '' COMMENT '规则唯一标识', + `title` char(20) NOT NULL DEFAULT '' COMMENT '规则中文名称', + `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态:为1正常,为0禁用', + `condition` char(100) NOT NULL DEFAULT '' COMMENT '规则表达式,为空表示存在就验证,不为空表示按照条件验证', + `listorder` int(10) NOT NULL DEFAULT '0' COMMENT '排序,优先级,越小优先级越高', + `create_time` datetime NOT NULL COMMENT '创建时间', + `update_time` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`id`), + UNIQUE KEY `name` (`name`) +) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8 COMMENT='规则表'; + +-- ---------------------------- +-- Records of auth_permission_rule +-- ---------------------------- +INSERT INTO `auth_permission_rule` VALUES ('1', '0', 'user_manage', '用户管理', '1', '', '999', '2018-07-06 17:19:00', '2018-07-06 17:19:00'); +INSERT INTO `auth_permission_rule` VALUES ('2', '1', 'user_manage/admin_manage', '管理组', '1', '', '999', '2018-07-06 17:19:00', '2018-07-06 17:19:00'); +INSERT INTO `auth_permission_rule` VALUES ('3', '2', 'admin/auth_admin/index', '管理员管理', '1', '', '999', '2018-07-06 17:19:00', '2018-07-06 17:19:00'); +INSERT INTO `auth_permission_rule` VALUES ('4', '3', 'admin/auth_admin/save', '添加管理员', '1', '', '999', '2018-07-06 17:19:00', '2018-07-06 17:19:00'); +INSERT INTO `auth_permission_rule` VALUES ('5', '3', 'admin/auth_admin/edit', '编辑管理员', '1', '', '999', '2018-07-06 17:19:00', '2018-07-06 17:19:00'); +INSERT INTO `auth_permission_rule` VALUES ('6', '3', 'admin/auth_admin/delete', '删除管理员', '1', '', '999', '2018-07-06 17:19:00', '2018-07-06 17:19:00'); +INSERT INTO `auth_permission_rule` VALUES ('7', '2', 'admin/auth_role/index', '角色管理', '1', '', '999', '2018-07-06 17:19:00', '2018-07-06 17:19:00'); +INSERT INTO `auth_permission_rule` VALUES ('8', '7', 'admin/auth_role/save', '添加角色', '1', '', '999', '2018-07-06 17:19:00', '2018-07-06 17:19:00'); +INSERT INTO `auth_permission_rule` VALUES ('9', '7', 'admin/auth_role/edit', '编辑角色', '1', '', '999', '2018-07-06 17:19:00', '2018-07-06 17:19:00'); +INSERT INTO `auth_permission_rule` VALUES ('10', '7', 'admin/auth_role/delete', '删除角色', '1', '', '999', '2018-07-06 17:19:00', '2018-07-06 17:19:00'); +INSERT INTO `auth_permission_rule` VALUES ('11', '7', 'admin/auth_role/auth', '角色授权', '1', '', '999', '2018-07-06 17:19:00', '2018-07-06 17:19:00'); +INSERT INTO `auth_permission_rule` VALUES ('12', '2', 'admin/auth_permission_rule/index', '权限管理', '1', '', '999', '2018-07-06 17:19:00', '2018-07-06 17:19:00'); +INSERT INTO `auth_permission_rule` VALUES ('13', '12', 'admin/auth_permission_rule/save', '添加权限', '1', '', '999', '2018-07-06 17:19:00', '2018-07-06 17:19:00'); +INSERT INTO `auth_permission_rule` VALUES ('14', '12', 'admin/auth_permission_rule/edit', '编辑权限', '1', '', '999', '2018-07-06 17:19:00', '2018-07-06 17:19:00'); +INSERT INTO `auth_permission_rule` VALUES ('15', '12', 'admin/auth_permission_rule/delete', '删除权限', '1', '', '999', '2018-07-06 17:19:00', '2018-07-06 17:19:00'); +INSERT INTO `auth_permission_rule` VALUES ('16', '0', 'ad_manage', '广告相关', '1', '', '999', '2018-07-06 17:19:00', '2018-07-06 17:19:00'); +INSERT INTO `auth_permission_rule` VALUES ('17', '16', 'admin/ad_site/index', '广告位管理', '1', '', '999', '2018-07-06 17:19:00', '2018-07-06 17:19:00'); +INSERT INTO `auth_permission_rule` VALUES ('18', '17', 'admin/ad_site/save', '广告位添加', '1', '', '999', '2018-07-06 17:19:00', '2018-07-06 17:19:00'); +INSERT INTO `auth_permission_rule` VALUES ('19', '17', 'admin/ad_site/edit', '广告位编辑', '1', '', '999', '2018-07-06 17:19:00', '2018-07-06 17:19:00'); +INSERT INTO `auth_permission_rule` VALUES ('20', '17', 'admin/ad_site/delete', '广告位删除', '1', '', '999', '2018-07-06 17:19:00', '2018-07-06 17:19:00'); +INSERT INTO `auth_permission_rule` VALUES ('21', '16', 'admin/ad/index', '广告管理', '1', '', '999', '2018-07-06 17:19:00', '2018-07-06 17:19:00'); +INSERT INTO `auth_permission_rule` VALUES ('22', '21', 'admin/ad/save', '广告添加', '1', '', '999', '2018-07-06 17:19:00', '2018-07-06 17:19:00'); +INSERT INTO `auth_permission_rule` VALUES ('23', '21', 'admin/ad/edit', '广告编辑', '1', '', '999', '2018-07-06 17:19:00', '2018-07-06 17:19:00'); +INSERT INTO `auth_permission_rule` VALUES ('24', '21', 'admin/ad/delete', '广告删除', '1', '', '999', '2018-07-06 17:19:00', '2018-07-06 17:19:00'); +INSERT INTO `auth_permission_rule` VALUES ('25', '17', 'admin/ad_site/adlist', '广告位选择时的广告列表', '1', '', '999', '2018-07-06 17:19:00', '2018-07-06 17:19:00'); + +-- ---------------------------- +-- Table structure for auth_role +-- ---------------------------- +DROP TABLE IF EXISTS `auth_role`; +CREATE TABLE `auth_role` ( + `id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(20) NOT NULL COMMENT '角色名称', + `pid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '父角色ID', + `status` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '状态', + `remark` varchar(255) NOT NULL DEFAULT '' COMMENT '备注', + `create_time` datetime NOT NULL COMMENT '创建时间', + `update_time` datetime NOT NULL COMMENT '更新时间', + `listorder` int(3) NOT NULL DEFAULT '0' COMMENT '排序,优先级,越小优先级越高', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='角色表'; + +-- ---------------------------- +-- Records of auth_role +-- ---------------------------- +INSERT INTO `auth_role` VALUES ('1', '超级管理员', '0', '1', '拥有网站最高管理员权限!', '2018-07-06 17:19:00', '2018-07-06 17:19:00', '0'); + +-- ---------------------------- +-- Table structure for auth_role_admin +-- ---------------------------- +DROP TABLE IF EXISTS `auth_role_admin`; +CREATE TABLE `auth_role_admin` ( + `role_id` int(11) unsigned DEFAULT '0' COMMENT '角色 id', + `admin_id` int(11) DEFAULT '0' COMMENT '管理员id' +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户角色对应表'; + +-- ---------------------------- +-- Records of auth_role_admin +-- ---------------------------- + +-- ---------------------------- +-- Table structure for file_resource +-- ---------------------------- +DROP TABLE IF EXISTS `file_resource`; +CREATE TABLE `file_resource` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '资源id', + `tag_id` int(11) NOT NULL DEFAULT '0' COMMENT '资源分组id', + `type` tinyint(4) NOT NULL DEFAULT '0' COMMENT '资源的类型(0:图片)', + `filename` varchar(255) NOT NULL DEFAULT '' COMMENT '资源的原名', + `path` varchar(255) NOT NULL DEFAULT '' COMMENT '资源的路径(不加 域名的地址)', + `size` int(11) NOT NULL DEFAULT '0' COMMENT '大小', + `ext` varchar(10) NOT NULL DEFAULT '' COMMENT '资源的文件后缀', + `create_time` datetime NOT NULL COMMENT '创建时间', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COMMENT='资源表'; + +-- ---------------------------- +-- Records of file_resource +-- ---------------------------- +INSERT INTO `file_resource` VALUES ('1', '1', '0', 'Group 5.png', 'resources/image/20180530/854ae62758c585be5128cf344a511242.png', '7539', 'png', '2018-05-30 20:41:54'); +INSERT INTO `file_resource` VALUES ('2', '0', '0', '643353_sdfaf123.png', 'resources/image/20180823/c356ca140f631a512f1c3a5e37a15dc1.png', '11507', 'png', '2018-08-23 13:38:42'); +INSERT INTO `file_resource` VALUES ('3', '0', '0', '643353_sdfaf123.png', 'resources/image/20180823/4549c39e9c07c35681ee9fa94e0fc07e.png', '11507', 'png', '2018-08-23 14:05:18'); +INSERT INTO `file_resource` VALUES ('4', '0', '0', '', '', '0', '', '2018-08-23 15:45:21'); +INSERT INTO `file_resource` VALUES ('5', '0', '0', '', '', '2000000', '', '2018-08-23 15:45:21'); +INSERT INTO `file_resource` VALUES ('6', '0', '0', '', '', '0', '', '2018-08-23 15:45:21'); +INSERT INTO `file_resource` VALUES ('7', '0', '0', '', '', '0', '', '2018-08-23 15:45:21'); +INSERT INTO `file_resource` VALUES ('8', '0', '0', '643353_sdfaf123.png', 'resources/image/20180823/0c424412b231eb8cb969377e15dbb812.png', '11507', 'png', '2018-08-23 15:53:32'); +INSERT INTO `file_resource` VALUES ('9', '0', '0', '232826334630444283.png', 'FjBRVPOPF9gLeNBCAvK7jbif4yg8', '9668', 'png', '2018-08-23 16:08:13'); +INSERT INTO `file_resource` VALUES ('10', '0', '0', '232826334630444283.png', 'FjBRVPOPF9gLeNBCAvK7jbif4yg8', '9668', 'png', '2018-08-23 16:09:07'); +INSERT INTO `file_resource` VALUES ('11', '0', '0', '643353_sdfaf123.png', 'resources/image/20180823/52af5f8556a3af84cee696972b61baf4.png', '11507', 'png', '2018-08-23 17:06:05'); + +-- ---------------------------- +-- Table structure for file_resource_tag +-- ---------------------------- +DROP TABLE IF EXISTS `file_resource_tag`; +CREATE TABLE `file_resource_tag` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '资源分组的id', + `tag` varchar(255) NOT NULL DEFAULT '' COMMENT '资源分组的tag', + `create_time` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='资源的分组表'; + +-- ---------------------------- +-- Records of file_resource_tag +-- ---------------------------- +INSERT INTO `file_resource_tag` VALUES ('1', '测试', '2018-05-30 20:41:48');