From b84972bafbcc6548a46f5f990700b415374349a9 Mon Sep 17 00:00:00 2001 From: anthonyywj2 <353682448@qq.com> Date: Thu, 24 Mar 2022 16:35:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=AD=E7=BB=A7=E6=9C=8D=E5=8A=A1=E5=90=8C?= =?UTF-8?q?=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/constant/BasicProcessStatus.java | 5 + .../basic/BussinessTypeController.java | 6 + .../basic/CorpExportLogController.java | 43 ++- .../basic/UdiInfoExportLogController.java | 53 ++- .../inout/IOOrderStatusController.java | 10 +- .../controller/inout/WareHouseController.java | 4 +- .../inventory/InvWarehouseController.java | 78 +++- .../admin/controller/test/TestController.java | 17 +- .../thrsys/BasicExportUploadController.java | 181 +++++++++ .../thrsys/ThrOrderImportLogController.java | 58 ++- .../sale/admin/dao/basic/BasicExportDao.java | 22 ++ .../admin/dao/basic/BasicUnitMaintainDao.java | 3 + .../sale/admin/dao/basic/UdiRelevanceDao.java | 3 + .../sale/admin/dao/thrsys/ThrCorpDao.java | 4 +- .../admin/dao/thrsys/ThrInvWarehouseDao.java | 2 + .../sale/admin/dao/thrsys/ThrProductsDao.java | 2 + .../entity/basic/BasicExportStatusEntity.java | 15 + .../req/basic/BasicExportStatusRequest.java | 11 + .../req/basic/BussinessTypeFilterRequest.java | 2 +- .../admin/req/basic/FilterUdiInfoRequest.java | 3 + .../inventory/FilterInvWarehouseRequest.java | 2 + .../req/thrsys/FilterThrCorpRequest.java | 1 + .../req/thrsys/FilterThrProductsRequest.java | 1 + .../admin/req/thrsys/PostThrCorpRequest.java | 2 + .../inventory/InvWarehouseExportResponse.java | 2 + .../thrsys/ThrOrderExportJsonResponse.java | 15 + .../service/basic/BasicExportService.java | 19 + .../basic/BasicUnitMaintainService.java | 2 + .../service/basic/UdiRelevanceService.java | 2 + .../basic/impl/BasicExportServiceImpl.java | 46 +++ .../impl/BasicUnitMaintainServiceImpl.java | 5 + .../basic/impl/UdiRelevanceServiceImpl.java | 5 + .../thrsys/ThrInvWarehouseService.java | 2 + .../impl/ThrInvWarehouseServiceImpl.java | 5 + .../admin/thread/BasicGenExcelService.java | 356 ++++++++++++++++-- .../admin/thread/ThrOrderImportService.java | 47 ++- .../mybatis/mapper/basic/BasicExportDao.xml | 51 +++ .../mybatis/mapper/basic/BasicThirdSysDao.xml | 6 +- .../mapper/basic/BasicUnitMaintainDao.xml | 9 + .../mybatis/mapper/basic/UdiRelevanceDao.xml | 8 + .../mapper/inventory/InvWarehouseDao.xml | 3 + .../mybatis/mapper/thrsys/ThrCorpDao.xml | 40 +- .../mapper/thrsys/ThrInvWarehouseDao.xml | 23 +- .../mybatis/mapper/thrsys/ThrProductsDao.xml | 12 + 44 files changed, 1098 insertions(+), 88 deletions(-) create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/controller/thrsys/BasicExportUploadController.java create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/dao/basic/BasicExportDao.java create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/entity/basic/BasicExportStatusEntity.java create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/req/basic/BasicExportStatusRequest.java create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/res/thrsys/ThrOrderExportJsonResponse.java create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/service/basic/BasicExportService.java create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/service/basic/impl/BasicExportServiceImpl.java create mode 100644 api-admin/src/main/resources/mybatis/mapper/basic/BasicExportDao.xml diff --git a/api-admin/src/main/java/com/glxp/sale/admin/constant/BasicProcessStatus.java b/api-admin/src/main/java/com/glxp/sale/admin/constant/BasicProcessStatus.java index cd1cf85..e2692c0 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/constant/BasicProcessStatus.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/constant/BasicProcessStatus.java @@ -18,5 +18,10 @@ public class BasicProcessStatus { public static final int EXPORT_EXCEL = 1; public static final int EXPORT_SMP = 2; + //导出数据类型 + public static final int BASIC_UDI = 1; //耗材字典 + public static final int BASIC_INV = 2; //仓库字典 + public static final int BASIC_CORP = 3; //往来单位 + } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/BussinessTypeController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/BussinessTypeController.java index 7a6feb4..62d6a2a 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/BussinessTypeController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/BussinessTypeController.java @@ -18,6 +18,7 @@ import com.glxp.sale.admin.req.inout.OrderFilterRequest; import com.glxp.sale.admin.res.PageSimpleResponse; import com.glxp.sale.admin.res.basic.BussinessTypResponse; import com.glxp.sale.admin.service.auth.AuthAdminService; +import com.glxp.sale.admin.service.auth.CustomerService; import com.glxp.sale.admin.service.basic.BussinessLocalTypeService; import com.glxp.sale.admin.service.basic.BussinessTypeService; import com.glxp.sale.admin.service.inout.OrderService; @@ -53,6 +54,8 @@ public class BussinessTypeController { private AuthAdminService authAdminService; @Resource private OrderService orderService; + @Resource + CustomerService customerService; @AuthRuleAnnotation("") @GetMapping("/udiwms/bussinessType/filter") @@ -122,6 +125,8 @@ public class BussinessTypeController { String customerId = getCustomerId(); if (!customerId.equals(Constant.SYSTEM_CUSTOMER_ID)) { bussinessTypeFilterRequest.setSpUse(true); + } else { + bussinessTypeFilterRequest.setUserId(customerService.getUserId()); } List bussinessTypeEntities; bussinessTypeEntities = bussinessTypeService.filterAllByUser(bussinessTypeFilterRequest); @@ -174,6 +179,7 @@ public class BussinessTypeController { // return ResultVOUtils.error(500, "该扫码单据类型已绑定业务单据类型,无法删除!"); // } // } + bussinessTypeService.deleteById(id); return ResultVOUtils.success("删除成功"); } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/CorpExportLogController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/CorpExportLogController.java index 3a129d9..2081164 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/CorpExportLogController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/CorpExportLogController.java @@ -3,13 +3,14 @@ package com.glxp.sale.admin.controller.basic; import com.github.pagehelper.PageInfo; import com.glxp.sale.admin.annotation.AuthRuleAnnotation; import com.glxp.sale.admin.constant.BasicProcessStatus; +import com.glxp.sale.admin.entity.basic.BasicExportStatusEntity; import com.glxp.sale.admin.entity.basic.BasicUnitMaintainEntity; import com.glxp.sale.admin.entity.basic.CorpExportLogEntity; -import com.glxp.sale.admin.req.basic.BasicUnitMaintainFilterRequest; -import com.glxp.sale.admin.req.basic.CorpsExportRequest; -import com.glxp.sale.admin.req.basic.FilterUdiEpLogRequest; +import com.glxp.sale.admin.entity.basic.UdiInfoExportLogEntity; +import com.glxp.sale.admin.req.basic.*; import com.glxp.sale.admin.req.info.DeleteRequest; import com.glxp.sale.admin.res.PageSimpleResponse; +import com.glxp.sale.admin.service.basic.BasicExportService; import com.glxp.sale.admin.service.basic.BasicUnitMaintainService; import com.glxp.sale.admin.service.basic.CorpExportLogService; import com.glxp.sale.admin.thread.BasicGenExcelService; @@ -39,6 +40,8 @@ public class CorpExportLogController { CorpExportLogService corpExportLogService; @Resource private BasicUnitMaintainService basicUnitMaintainService; + @Resource + BasicExportService basicExportService; @AuthRuleAnnotation("") @GetMapping("/udiwms/corps/exportLog/filter") @@ -107,7 +110,7 @@ public class CorpExportLogController { } - //往来单位导出生成Excel,并创建生成记录 + //往来单位导出生成jSON,并创建生成记录 @AuthRuleAnnotation("") @PostMapping("/udiwms/corps/importLog/export") public BaseResponse excelDownload(@RequestBody CorpsExportRequest corpsExportRequest) { @@ -126,6 +129,38 @@ public class CorpExportLogController { return ResultVOUtils.success("后台正在导出生成udi文件,请稍后刷新查看!"); } + + //来单位导出生成记录状态表,并创建生成记录 + @AuthRuleAnnotation("") + @PostMapping("/udiwms/corps/importLog/exportStatus") + public BaseResponse exportStatus(@RequestBody CorpsExportRequest corpsExportRequest) { + + CorpExportLogEntity corpExportLogEntity = new CorpExportLogEntity(); + corpExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_PROCESS); + String genKey = CustomUtil.getId(); + corpExportLogEntity.setGenKey(genKey); + corpExportLogEntity.setUpdateTime(new Date()); + corpExportLogEntity.setDlCount(0); + corpExportLogEntity.setType(BasicProcessStatus.EXPORT_SMP); + corpExportLogService.insertCorpExportLog(corpExportLogEntity); + basicGenExcelService.exportCorpStatusLog(genKey, corpsExportRequest); + return ResultVOUtils.success("后台正在导出生成udi件,请稍后刷新查看!"); + } + + @AuthRuleAnnotation("") + @GetMapping("/udiwms/basic/corps/getStatus") + public BaseResponse getStatus(BasicExportStatusRequest basicExportStatusRequest) { + List basicExportStatusEntities = basicExportService.filterExportStatus(basicExportStatusRequest); + return ResultVOUtils.success(basicExportStatusEntities); + } + + @AuthRuleAnnotation("") + @PostMapping("/udiwms/basic/corps/downloadByStatus") + public BaseResponse downloadByStatus(@RequestBody CorpsExportRequest filterUdiInfoRequest) { + return ResultVOUtils.success(basicGenExcelService.genCorpJsonData(filterUdiInfoRequest)); + } + + //往来单位上传SMP,并创建生成记录 @AuthRuleAnnotation("") @PostMapping("/udiwms/corps/importLog/uploadSmp") diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/UdiInfoExportLogController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/UdiInfoExportLogController.java index cb776ba..288a9b8 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/UdiInfoExportLogController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/UdiInfoExportLogController.java @@ -3,13 +3,16 @@ package com.glxp.sale.admin.controller.basic; import com.github.pagehelper.PageInfo; import com.glxp.sale.admin.annotation.AuthRuleAnnotation; import com.glxp.sale.admin.constant.BasicProcessStatus; +import com.glxp.sale.admin.entity.basic.BasicExportStatusEntity; import com.glxp.sale.admin.entity.basic.UdiInfoExportLogEntity; +import com.glxp.sale.admin.req.basic.BasicExportStatusRequest; import com.glxp.sale.admin.req.basic.FilterUdiEpLogRequest; import com.glxp.sale.admin.req.basic.FilterUdiInfoRequest; import com.glxp.sale.admin.req.basic.UdiInfoExportRequest; import com.glxp.sale.admin.req.info.DeleteRequest; import com.glxp.sale.admin.res.PageSimpleResponse; import com.glxp.sale.admin.res.basic.UdiRelevanceResponse; +import com.glxp.sale.admin.service.basic.BasicExportService; import com.glxp.sale.admin.service.basic.UdiInfoExportLogService; import com.glxp.sale.admin.service.basic.UdiRelevanceService; import com.glxp.sale.admin.thread.BasicGenExcelService; @@ -43,6 +46,8 @@ public class UdiInfoExportLogController { UdiRelevanceService udiRelevanceService; @Resource BasicGenExcelService basicGenExcelService; + @Resource + BasicExportService basicExportService; @AuthRuleAnnotation("") @GetMapping("/udiwms/products/exportLog/filter") @@ -111,7 +116,7 @@ public class UdiInfoExportLogController { } - //产品信息导出生成Excel,并创建生成记录 + //产品信息导出生成json,并创建生成记录 @AuthRuleAnnotation("") @PostMapping("/udiwms/products/importLog/export") public BaseResponse excelDownload(@RequestBody UdiInfoExportRequest udiInfoExportRequest) { @@ -120,7 +125,7 @@ public class UdiInfoExportLogController { UdiInfoExportLogEntity udiInfoExportLogEntity = new UdiInfoExportLogEntity(); udiInfoExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_PROCESS); String genKey = CustomUtil.getId(); - String fileName = "D:\\udiwms\\exportFile\\" + "器械信息" + genKey + ".udi"; + String fileName = "D:\\udiwms\\exportFile\\" + "耗材字典" + genKey + ".udi"; udiInfoExportLogEntity.setGenKey(genKey); udiInfoExportLogEntity.setFilePath(fileName); udiInfoExportLogEntity.setUpdateTime(new Date()); @@ -132,6 +137,50 @@ public class UdiInfoExportLogController { } + //产品信息导出生成记录状态表,并创建生成记录 + @AuthRuleAnnotation("") + @PostMapping("/udiwms/products/importLog/exportStatus") + public BaseResponse exportStatus(@RequestBody UdiInfoExportRequest udiInfoExportRequest) { + + UdiInfoExportLogEntity udiInfoExportLogEntity = new UdiInfoExportLogEntity(); + udiInfoExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_PROCESS); + String genKey = CustomUtil.getId(); + udiInfoExportLogEntity.setGenKey(genKey); + udiInfoExportLogEntity.setUpdateTime(new Date()); + udiInfoExportLogEntity.setDlCount(0); + udiInfoExportLogEntity.setType(BasicProcessStatus.EXPORT_SMP); + udiInfoExportLogService.insertUdiInfoExportLog(udiInfoExportLogEntity); + basicGenExcelService.exportStatusLog(genKey, udiInfoExportRequest); + return ResultVOUtils.success("后台正在导出生成udi件,请稍后刷新查看!"); + + } + + @AuthRuleAnnotation("") + @GetMapping("/udiwms/basic/udiinfo/getStatus") + public BaseResponse getStatus(BasicExportStatusRequest basicExportStatusRequest) { + List basicExportStatusEntities = basicExportService.filterExportStatus(basicExportStatusRequest); + return ResultVOUtils.success(basicExportStatusEntities); + } + + + @AuthRuleAnnotation("") + @PostMapping("/udiwms/basic/udiinfo/downloadByStatus") + public BaseResponse downloadByStatus(@RequestBody FilterUdiInfoRequest filterUdiInfoRequest) { + return ResultVOUtils.success(basicGenExcelService.genJsonData(filterUdiInfoRequest)); + } + + @AuthRuleAnnotation("") + @PostMapping("/udiwms/basic/udiinfo/deleteByStatus") + public BaseResponse deleteByStatus(@RequestBody DeleteRequest deleteRequest) { + + boolean b = basicExportService.deleteById(Integer.parseInt(deleteRequest.getId())); + if (b) + return ResultVOUtils.success("删除成功!"); + else + return ResultVOUtils.error(500, "删除失败!"); + } + + //产品信息上传SMP,并创建生成记录 @AuthRuleAnnotation("") @PostMapping("/udiwms/products/importLog/uploadSmp") diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/IOOrderStatusController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/IOOrderStatusController.java index 72e991c..96ca177 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/IOOrderStatusController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/IOOrderStatusController.java @@ -78,11 +78,11 @@ public class IOOrderStatusController { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } - //boolean b = ioOrderStatusService.deleteByOrderId(orderStatusFilterRequest.getOrderId()); - IOOrderStatusEntity ioOrderStatusEntity = new IOOrderStatusEntity(); - ioOrderStatusEntity.setOrderId(orderStatusFilterRequest.getOrderId()); - ioOrderStatusEntity.setStatus(orderStatusFilterRequest.getStatus()); - boolean b = ioOrderStatusService.updateOrderStatus(ioOrderStatusEntity); + boolean b = ioOrderStatusService.deleteByOrderId(orderStatusFilterRequest.getOrderId()); +// IOOrderStatusEntity ioOrderStatusEntity = new IOOrderStatusEntity(); +// ioOrderStatusEntity.setOrderId(orderStatusFilterRequest.getOrderId()); +// ioOrderStatusEntity.setStatus(orderStatusFilterRequest.getStatus()); +// boolean b = ioOrderStatusService.updateOrderStatus(ioOrderStatusEntity); if (!b) { return ResultVOUtils.error(ResultEnum.NOT_NETWORK); } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/WareHouseController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/WareHouseController.java index bfa8471..037f4d4 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/WareHouseController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/WareHouseController.java @@ -286,7 +286,7 @@ public class WareHouseController { if (StringUtils.isBlank(orderId)) { - orderId = System.currentTimeMillis() + new Random().nextInt(10) + ""; + orderId = "SM" + CustomUtil.getId(); OrderEntity orderSaveRequest = new OrderEntity(); orderSaveRequest.setId(orderId); if (addOrderRequest.getActDate() != null) { @@ -307,7 +307,7 @@ public class WareHouseController { orderSaveRequest.setContrastStatus(ConstantStatus.ORDER_CHECK_UN); orderSaveRequest.setSignStatus(ConstantStatus.ORDER_SIGN_UN); orderSaveRequest.setReceiveStatus(ConstantStatus.RECEIVE_UN); - orderSaveRequest.setCustomerId(addOrderRequest.getCustomerId()); + orderSaveRequest.setCustomerId(customerService.getCustomerId() + ""); orderSaveRequest.setCreateUser(userId); orderService.insertOrder(orderSaveRequest); } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/inventory/InvWarehouseController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/inventory/InvWarehouseController.java index 05618c0..87b1867 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/inventory/InvWarehouseController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/inventory/InvWarehouseController.java @@ -5,7 +5,12 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.github.pagehelper.PageInfo; import com.glxp.sale.admin.annotation.AuthRuleAnnotation; +import com.glxp.sale.admin.constant.BasicProcessStatus; +import com.glxp.sale.admin.entity.auth.AuthAdmin; +import com.glxp.sale.admin.entity.basic.BasicExportStatusEntity; import com.glxp.sale.admin.entity.inventory.InvWarehouseEntity; +import com.glxp.sale.admin.entity.thrsys.ThrInvWarehouseEntity; +import com.glxp.sale.admin.req.basic.BasicExportStatusRequest; import com.glxp.sale.admin.req.basic.FilterBasicThirdSysRequest; import com.glxp.sale.admin.req.info.DeleteRequest; import com.glxp.sale.admin.req.inventory.FilterInvWarehouseRequest; @@ -14,7 +19,9 @@ import com.glxp.sale.admin.res.inventory.InvWarehouseExportResponse; import com.glxp.sale.admin.res.inventory.InvWarehouseResponse; import com.glxp.sale.admin.res.inventory.InvWarehouseThirdSysResponse; import com.glxp.sale.admin.service.auth.CustomerService; +import com.glxp.sale.admin.service.basic.BasicExportService; import com.glxp.sale.admin.service.inventory.InvWarehouseService; +import com.glxp.sale.admin.service.thrsys.ThrInvWarehouseService; import com.glxp.sale.admin.util.DateUtil; import com.glxp.sale.admin.util.FileUtils; import com.glxp.sale.common.enums.ResultEnum; @@ -31,10 +38,7 @@ import javax.validation.Valid; import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; @RestController public class InvWarehouseController { @@ -42,11 +46,14 @@ public class InvWarehouseController { @Resource InvWarehouseService invWarehouseService; @Resource + ThrInvWarehouseService thrInvWarehouseService; + @Resource CustomerService customerService; + @Resource + BasicExportService basicExportService; @AuthRuleAnnotation("") @GetMapping("spms/inv/warehouse/filter") - public BaseResponse filterInvWarehouse(FilterInvWarehouseRequest filterInvWarehouseRequest) { List invWarehouseEntities = invWarehouseService.filterInvWarehouse(filterInvWarehouseRequest); List merge = merge(invWarehouseEntities, 0); @@ -67,11 +74,18 @@ public class InvWarehouseController { @AuthRuleAnnotation("") @GetMapping("spms/inv/warehouse/filterAllByUser") public BaseResponse filterAllByUser(FilterInvWarehouseRequest filterInvWarehouseRequest) { - Integer userId = customerService.getUserId(); - filterInvWarehouseRequest.setUserId(userId); - filterInvWarehouseRequest.setPid(0); - List invWarehouseEntities = invWarehouseService.filterAllByUser(filterInvWarehouseRequest); + List invWarehouseEntities; + AuthAdmin authAdmin = customerService.getUserBean(); + if (authAdmin.getCustomerId() != 110) { + filterInvWarehouseRequest.setPcode("0"); + invWarehouseEntities = invWarehouseService.filterGroupInvWarehouse(filterInvWarehouseRequest); + } else { + filterInvWarehouseRequest.setUserId(authAdmin.getId().intValue()); + filterInvWarehouseRequest.setPid(0); + invWarehouseEntities = invWarehouseService.filterAllByUser(filterInvWarehouseRequest); + } return ResultVOUtils.success(invWarehouseEntities); + } @@ -183,6 +197,47 @@ public class InvWarehouseController { } + @AuthRuleAnnotation("") + @PostMapping("/spms/inv/warehouse/upload") + public BaseResponse uploadStatus(@RequestBody DeleteRequest deleteRequest) { + FilterInvWarehouseRequest filterInvWarehouseRequest = new FilterInvWarehouseRequest(); + List invWarehouseEntities = invWarehouseService.filterInvWarehouse(filterInvWarehouseRequest); + List results = new ArrayList<>(); + invWarehouseEntities.forEach( + item -> { + results.add(item.getId() + ""); + } + ); + BasicExportStatusEntity basicExportStatusEntity = new BasicExportStatusEntity(); + basicExportStatusEntity.setStatus(0); + basicExportStatusEntity.setType(BasicProcessStatus.BASIC_INV); + basicExportStatusEntity.setUpdateTime(new Date()); + basicExportStatusEntity.setIdDatas(JSON.toJSON(results).toString()); + basicExportService.insertExportStatus(basicExportStatusEntity); + return ResultVOUtils.success("上传成功,等待中继服务下载!"); + } + + + @AuthRuleAnnotation("") + @GetMapping("/spms/inv/warehouse/getStatus") + public BaseResponse getStatus(BasicExportStatusRequest basicExportStatusRequest) { + basicExportStatusRequest.setType(BasicProcessStatus.BASIC_INV); + List basicExportStatusEntities = basicExportService.filterExportStatus(basicExportStatusRequest); + return ResultVOUtils.success(basicExportStatusEntities); + } + + + @AuthRuleAnnotation("") + @PostMapping("/spms/inv/warehouse/downloadByStatus") + public BaseResponse downloadByStatus(@RequestBody FilterInvWarehouseRequest filterInvWarehouseRequest) { + List invWarehouseEntities = invWarehouseService.filterInvWarehouse(filterInvWarehouseRequest); + InvWarehouseExportResponse invWarehouseExportResponse = new InvWarehouseExportResponse(); + invWarehouseExportResponse.setInvWarehouseEntities(invWarehouseEntities); +// String json = JSONObject.toJSON(invWarehouseExportResponse).toString(); + return ResultVOUtils.success(invWarehouseExportResponse); + } + + //仓库信息文件导入 @AuthRuleAnnotation("") @PostMapping("/spms/inv/warehouse/uploadJson") @@ -205,6 +260,11 @@ public class InvWarehouseController { if (invWarehouseEntities != null) { invWarehouseService.importInvWarehouse(invWarehouseEntities); } + List thrInvWarehouseEntities = invWarehouseExportResponse.getThrInvWarehouseEntities(); + if (invWarehouseEntities != null) { + thrInvWarehouseService.insertInvWarehouses(thrInvWarehouseEntities); + } + } catch (IOException e) { e.printStackTrace(); } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/test/TestController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/test/TestController.java index 3adc40b..23eb893 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/test/TestController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/test/TestController.java @@ -1,16 +1,29 @@ package com.glxp.sale.admin.controller.test; import com.alibaba.fastjson.JSON; +import com.github.pagehelper.PageInfo; +import com.glxp.sale.admin.entity.param.SystemPDFModuleEntity; +import com.glxp.sale.admin.entity.param.SystemPDFTemplateEntity; +import com.glxp.sale.admin.req.param.SystemPDFModuleRequest; +import com.glxp.sale.admin.res.PageSimpleResponse; +import com.glxp.sale.admin.res.param.SystemPDFModuleResponse; import com.glxp.sale.admin.util.Md5Utils; +import com.glxp.sale.common.enums.ResultEnum; import com.glxp.sale.common.res.BaseResponse; import com.glxp.sale.common.util.ResultVOUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.BeanUtils; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import javax.validation.Valid; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; +import java.util.List; +import java.util.stream.Collectors; @RestController public class TestController { @@ -52,9 +65,9 @@ public class TestController { // String url = "appId=" + headRequest.getAppId() + "&secretKey=" + headRequest.getSecretKey() + "&time=" + headRequest.getTime() // + "&userName=" + headRequest.getUserName(); -// String body = "&body=" + "{\"page\":0,\"pageSize\":5}"; + String body = "&body=" + "{\"hisOrderId\":\"11111\",\"remark\":\"医院采购计划备注\",\"shippingAddress\":\"南诏镇澹园街江厝寨前路65号\",\"shippingLinkMan\":\"叶\",\"shippingLinkTel\":\"17705920868\",\"shippingInvoice\":\"诏安县医院\",\"planTime\":\"\",\"items\":[{\"hisOrderDetailId\":\"5839116516\",\"hospHisCode\":\"3558308\",\"planBuyNum\":\"2\",\"purchaseRemark\":\"自定义订单备注信息\",\"productSpecId\":\"5071763\",\"spec\":\"镍铬合金铸造冠\",\"model\":\"镍铬合金铸造冠\"}]}"; - String url = "appId=" + headRequest.getAppId() + "&body=[{\"hospHisCode\":\"6666666\",\"projectGoodsCode\":\"HXQX0000LU2B\",\"productName\":\"新型冠状病毒(2019-nCoV)IgM/IgG抗体检测试剂盒(胶体金法)\",\"brandName\":\"新型冠状病毒(2019-nCoV)IgM/IgG抗体检测试剂盒(胶体金法)\",\"model\":\"50人份/盒\",\"spec\":\"50人份/盒\",\"prodMaterial\":\"玻璃瓶\",\"priceUnitText\":\"盒\",\"negotiatedPrice\":\"46\",\"regNum\":\"国械注准20203400239\",\"regName\":\"新型冠状病毒(2019-nCoV)IgM/IgG抗体检测试剂盒(胶体金法)\",\"regValidTo\":\"1615478400000\",\"manufactureId\":\"23290\",\"distributorId\":\"8893\",\"proxyId\":\"\",\"addReason\":\"\",\"remarkHosp\":\"\"}]" + "&secretKey=" + headRequest.getSecretKey() + "&time=" + headRequest.getTime() + String url = "appId=" + headRequest.getAppId() + body + "&secretKey=" + headRequest.getSecretKey() + "&time=" + headRequest.getTime() + "&userName=" + headRequest.getUserName(); // String sign = Md5Utils.stringToMD5(url); diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/thrsys/BasicExportUploadController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/thrsys/BasicExportUploadController.java new file mode 100644 index 0000000..4a78013 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/thrsys/BasicExportUploadController.java @@ -0,0 +1,181 @@ +package com.glxp.sale.admin.controller.thrsys; + + +import com.alibaba.fastjson.JSON; +import com.glxp.sale.admin.entity.inventory.InvWarehouseEntity; +import com.glxp.sale.admin.entity.param.SystemParamConfigEntity; +import com.glxp.sale.admin.entity.thrsys.ThrCorpEntity; +import com.glxp.sale.admin.entity.thrsys.ThrCorpImportDetailEntity; +import com.glxp.sale.admin.entity.thrsys.ThrInvWarehouseEntity; +import com.glxp.sale.admin.entity.thrsys.ThrProductsEntity; +import com.glxp.sale.admin.req.thrsys.PostThrCorpRequest; +import com.glxp.sale.admin.req.thrsys.PostThrProductsRequest; +import com.glxp.sale.admin.res.basic.BasicUnitMaintainExportResponse; +import com.glxp.sale.admin.res.basic.ErpProductsResponse; +import com.glxp.sale.admin.res.basic.ErpUnitsResponse; +import com.glxp.sale.admin.res.basic.UdiRelevanceExportJsonResponse; +import com.glxp.sale.admin.res.inventory.InvWarehouseExportResponse; +import com.glxp.sale.admin.res.thrsys.ThrOrderExportJsonResponse; +import com.glxp.sale.admin.service.basic.UdiInfoImportDetailService; +import com.glxp.sale.admin.service.inventory.InvWarehouseService; +import com.glxp.sale.admin.service.param.SystemParamConfigService; +import com.glxp.sale.admin.service.thrsys.ThrCorpService; +import com.glxp.sale.admin.service.thrsys.ThrInvWarehouseService; +import com.glxp.sale.admin.service.thrsys.ThrProductsService; +import com.glxp.sale.admin.thread.BasicCorpImportService; +import com.glxp.sale.admin.thread.ThrOrderImportService; +import com.glxp.sale.admin.util.CustomUtil; +import com.glxp.sale.admin.util.FileUtils; +import com.glxp.sale.common.enums.ResultEnum; +import com.glxp.sale.common.res.BaseResponse; +import com.glxp.sale.common.util.ResultVOUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.validation.BindingResult; +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.Date; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 接收下游上传数据 + */ + +@RestController +public class BasicExportUploadController { + + @Resource + SystemParamConfigService systemParamConfigService; + + @Resource + UdiInfoImportDetailService udiInfoImportDetailService; + @Resource + BasicCorpImportService basicCorpImportService; + @Resource + InvWarehouseService invWarehouseService; + @Resource + ThrInvWarehouseService thrInvWarehouseService; + @Resource + ThrProductsService thrProductsService; + @Resource + ThrCorpService thrCorpService; + @Resource + ThrOrderImportService thrOrderImportService; + + @PostMapping("/spssync/basic/udiinfo/upload") + public BaseResponse postUdiInfo(@RequestBody UdiRelevanceExportJsonResponse udiRelevanceExportJsonResponse, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + udiInfoImportDetailService.importJsonData(udiRelevanceExportJsonResponse); + return ResultVOUtils.success("上传成功,等待导入到数据库!"); + } + + + @PostMapping("/spssync/basic/corp/upload") + public BaseResponse postCorp(@RequestBody BasicUnitMaintainExportResponse basicUnitMaintainExportResponse, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + basicCorpImportService.importJsonData(basicUnitMaintainExportResponse); + return ResultVOUtils.success("上传成功,等待导入到数据库!"); + } + + + @PostMapping("/spssync/basic/inv/upload") + public BaseResponse postInv(@RequestBody InvWarehouseExportResponse invWarehouseExportResponse, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + if (invWarehouseExportResponse != null) { + List invWarehouseEntities = invWarehouseExportResponse.getInvWarehouseEntities(); + if (invWarehouseEntities != null) { + invWarehouseService.importInvWarehouse(invWarehouseEntities); + } + List thrInvWarehouseEntities = invWarehouseExportResponse.getThrInvWarehouseEntities(); + if (invWarehouseEntities != null) { + thrInvWarehouseService.insertInvWarehouses(thrInvWarehouseEntities); + } + return ResultVOUtils.success("上传成功,等待导入到数据库!"); + } else { + return ResultVOUtils.error(500, "上传数据不能为空"); + } + + } + + + @PostMapping("/spssync/thirdsys/products/upload") + public BaseResponse postThirdProducts(@RequestBody PostThrProductsRequest postThrProductsRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + List datas = postThrProductsRequest.getDatas(); + List thrProductsEntities; + thrProductsEntities = datas.stream().map( + item -> { + ThrProductsEntity thrProductsEntity = new ThrProductsEntity(); + BeanUtils.copyProperties(item, thrProductsEntity); + thrProductsEntity.setUpdateTime(new Date()); + thrProductsEntity.setThirdSysFk(postThrProductsRequest.getThirdSys()); + return thrProductsEntity; + } + ).collect(Collectors.toList()); + + if (thrProductsEntities != null && thrProductsEntities.size() > 0) { + List> splits = CustomUtil.splitList(thrProductsEntities, 100); + for (List temps : splits) { + thrProductsService.insertThrProductss(temps); + } + } + return ResultVOUtils.success("上传成功,等待导入到数据库!"); + } + + @PostMapping("/spssync/thirdsys/corp/upload") + public BaseResponse postThridCorp(@RequestBody PostThrCorpRequest postThrCorpRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + List thrCorpEntities; + List corps = postThrCorpRequest.getDatas(); + thrCorpEntities = corps.stream().map( + item -> { + ThrCorpEntity thrCorpEntity = new ThrCorpEntity(); + BeanUtils.copyProperties(item, thrCorpEntity); + thrCorpEntity.setUnitId(item.getId()); + thrCorpEntity.setUpdateTime(new Date()); + thrCorpEntity.setThirdSysFk(postThrCorpRequest.getThirdSys()); + return thrCorpEntity; + } + ).collect(Collectors.toList()); + thrCorpService.insertThrCorpss(thrCorpEntities); + return ResultVOUtils.success("上传成功,等待导入到数据库!"); + } + + + @PostMapping("/spssync/thirdsys/order/upload") + public BaseResponse postThridOrder(@RequestBody ThrOrderExportJsonResponse thrOrderExportJsonResponse, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + thrOrderImportService.importJsonData(thrOrderExportJsonResponse); + return ResultVOUtils.success("上传成功,等待导入到数据库!"); + } + +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/thrsys/ThrOrderImportLogController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/thrsys/ThrOrderImportLogController.java index bed8a8f..1de75f4 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/thrsys/ThrOrderImportLogController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/thrsys/ThrOrderImportLogController.java @@ -1,14 +1,19 @@ package com.glxp.sale.admin.controller.thrsys; +import cn.hutool.core.io.IoUtil; +import cn.hutool.json.JSONUtil; import com.github.pagehelper.PageInfo; import com.glxp.sale.admin.annotation.AuthRuleAnnotation; import com.glxp.sale.admin.constant.BasicProcessStatus; +import com.glxp.sale.admin.entity.basic.CorpImportLogEntity; import com.glxp.sale.admin.entity.thrsys.ThrOrderImportDetailEntity; import com.glxp.sale.admin.entity.thrsys.ThrOrderImportLogEntity; import com.glxp.sale.admin.req.basic.FilterUdiIpLogRequest; import com.glxp.sale.admin.req.info.DeleteRequest; import com.glxp.sale.admin.res.PageSimpleResponse; +import com.glxp.sale.admin.res.basic.BasicUnitMaintainExportResponse; +import com.glxp.sale.admin.res.thrsys.ThrOrderExportJsonResponse; import com.glxp.sale.admin.service.basic.BussinessTypeService; import com.glxp.sale.admin.service.thrsys.ThrOrderImportDetailService; import com.glxp.sale.admin.service.thrsys.ThrOrderImportLogService; @@ -17,6 +22,7 @@ import com.glxp.sale.admin.util.CustomUtil; import com.glxp.sale.common.enums.ResultEnum; import com.glxp.sale.common.res.BaseResponse; import com.glxp.sale.common.util.ResultVOUtils; +import lombok.extern.slf4j.Slf4j; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; @@ -32,6 +38,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +@Slf4j @RestController public class ThrOrderImportLogController { @@ -114,8 +121,8 @@ public class ThrOrderImportLogController { return ResultVOUtils.error(500, "删除成功"); } - @AuthRuleAnnotation("") - @PostMapping("/udiwms/thrOrder/importLog/upload") + // @AuthRuleAnnotation("") +// @PostMapping("/udiwms/thrOrder/importLog/upload") public BaseResponse uploadProducts(@RequestParam("file") List files, @RequestParam("thirdSys") String thirdSys) { String filePath = "D:\\udiwms\\filePath\\"; @@ -211,7 +218,7 @@ public class ThrOrderImportLogController { // if (bussinessTypeEntity != null) { // corpImportDetailEntity.setBillType(bussinessTypeEntity.getAction()); // } else - corpImportDetailEntity.setBillType(billType); + corpImportDetailEntity.setBillType(billType); } @@ -301,6 +308,51 @@ public class ThrOrderImportLogController { return ResultVOUtils.success("上传成功"); } + + @AuthRuleAnnotation("") + @PostMapping("/udiwms/thrOrder/importLog/upload") + public BaseResponse uploadThrOrder(@RequestParam("file") List files, @RequestParam("thirdSys") String thirdSys) { + + String filePath = "D:\\udiwms\\filePath\\"; + File createFile = new File(filePath); + if (!createFile.exists()) { + createFile.mkdirs(); + } + for (int i = 0; i < files.size(); i++) { + MultipartFile file = files.get(i); + if (file.isEmpty()) { + return ResultVOUtils.error(500, "上传第" + (i++) + "个文件失败"); + } + String fileName = file.getOriginalFilename(); + //解析数据 + try { + String fileType = fileName.substring(fileName.lastIndexOf(".")); + if (".udi".equalsIgnoreCase(fileType)) { + String jsonData = IoUtil.read(file.getInputStream()).toString(); + ThrOrderExportJsonResponse data = JSONUtil.toBean(jsonData, ThrOrderExportJsonResponse.class); + + //导入日志 + ThrOrderImportLogEntity thrOrderImportLogEntity = new ThrOrderImportLogEntity(); + String genKey = CustomUtil.getId(); + thrOrderImportLogEntity.setGenKey(genKey); + thrOrderImportLogEntity.setFromType("文件导入"); + thrOrderImportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_UNPROCESS); + thrOrderImportLogEntity.setUpdateTime(new Date(System.currentTimeMillis())); + thrOrderImportLogService.insertImportLog(thrOrderImportLogEntity); + thrOrderImportService.importJsonData(data); + thrOrderImportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_SUCCESS); + thrOrderImportLogService.updateImportLog(thrOrderImportLogEntity); + } else { + return ResultVOUtils.error(500, "请上传udi文件"); + } + } catch (Exception e) { + log.error("导入往来单位信息错误,文件名为:{}", fileName); + } + } + return ResultVOUtils.success("上传成功"); + } + + public boolean filterEmpty(Row row) { if (row.getCell(0) != null) { diff --git a/api-admin/src/main/java/com/glxp/sale/admin/dao/basic/BasicExportDao.java b/api-admin/src/main/java/com/glxp/sale/admin/dao/basic/BasicExportDao.java new file mode 100644 index 0000000..83a9b44 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/dao/basic/BasicExportDao.java @@ -0,0 +1,22 @@ +package com.glxp.sale.admin.dao.basic; + +import com.glxp.sale.admin.entity.basic.BasicExportStatusEntity; +import com.glxp.sale.admin.req.basic.BasicExportStatusRequest; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface BasicExportDao { + + + List filterExportStatus(BasicExportStatusRequest basicExportStatusRequest); + + boolean insertExportStatus(BasicExportStatusEntity ioOrderStatusEntity); + + boolean deleteById(@Param("id") Integer id); + + boolean updateExportStatus(BasicExportStatusEntity warehouseEntity); + +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/dao/basic/BasicUnitMaintainDao.java b/api-admin/src/main/java/com/glxp/sale/admin/dao/basic/BasicUnitMaintainDao.java index ded532c..7d9a2ef 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/dao/basic/BasicUnitMaintainDao.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/dao/basic/BasicUnitMaintainDao.java @@ -23,6 +23,9 @@ public interface BasicUnitMaintainDao { BasicUnitMaintainEntity selectById(@Param("id") String id); + List batchSelectByIds(@Param("ids") List id); + + BasicUnitMaintainEntity selectByName(@Param("name") String name); diff --git a/api-admin/src/main/java/com/glxp/sale/admin/dao/basic/UdiRelevanceDao.java b/api-admin/src/main/java/com/glxp/sale/admin/dao/basic/UdiRelevanceDao.java index fa800f1..59ab6d3 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/dao/basic/UdiRelevanceDao.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/dao/basic/UdiRelevanceDao.java @@ -21,6 +21,7 @@ public interface UdiRelevanceDao { UdiRelevanceEntity selectById(@Param("id") String id); UdiRelevanceEntity selectByThirdId(FilterUdiInfoRequest filterUdiInfoRequest); + List filterEntity(FilterUdiInfoRequest filterUdiInfoRequest); @@ -42,6 +43,8 @@ public interface UdiRelevanceDao { */ List batchSelectByUuid(@Param("uuids") List uuids); + List batchSelectByIds(@Param("ids") List ids); + /** * 批量导入数据 * diff --git a/api-admin/src/main/java/com/glxp/sale/admin/dao/thrsys/ThrCorpDao.java b/api-admin/src/main/java/com/glxp/sale/admin/dao/thrsys/ThrCorpDao.java index 9f4b2c7..267e81f 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/dao/thrsys/ThrCorpDao.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/dao/thrsys/ThrCorpDao.java @@ -1,7 +1,9 @@ package com.glxp.sale.admin.dao.thrsys; import com.glxp.sale.admin.entity.thrsys.ThrCorpEntity; +import com.glxp.sale.admin.entity.thrsys.ThrProductsEntity; import com.glxp.sale.admin.req.thrsys.FilterThrCorpRequest; +import com.glxp.sale.admin.req.thrsys.FilterThrProductsRequest; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -11,7 +13,7 @@ import java.util.List; public interface ThrCorpDao { List filterThrCorps(FilterThrCorpRequest filterThrCorpRequest); - + List batchSelectByIds(FilterThrCorpRequest filterThrProductsRequest); boolean insertThrCorps(ThrCorpEntity thrCorpEntity); boolean insertThrCorpss(@Param("thrCorpEntitys") List thrCorpEntitys); diff --git a/api-admin/src/main/java/com/glxp/sale/admin/dao/thrsys/ThrInvWarehouseDao.java b/api-admin/src/main/java/com/glxp/sale/admin/dao/thrsys/ThrInvWarehouseDao.java index 175689c..0eac004 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/dao/thrsys/ThrInvWarehouseDao.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/dao/thrsys/ThrInvWarehouseDao.java @@ -14,6 +14,8 @@ public interface ThrInvWarehouseDao { boolean insertThrInvWarehouse(ThrInvWarehouseEntity thrInvWarehouseEntity); + boolean insertInvWarehouses(@Param("thrInvWarehouseEntitys") List thrInvWarehouseEntitys); + boolean updateThrInvWarehouse(ThrInvWarehouseEntity thrInvWarehouseEntity); ThrInvWarehouseEntity selectById(@Param("id") String id); diff --git a/api-admin/src/main/java/com/glxp/sale/admin/dao/thrsys/ThrProductsDao.java b/api-admin/src/main/java/com/glxp/sale/admin/dao/thrsys/ThrProductsDao.java index e5918fd..5fbe498 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/dao/thrsys/ThrProductsDao.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/dao/thrsys/ThrProductsDao.java @@ -13,6 +13,8 @@ public interface ThrProductsDao { List filterThrProductsRequest(FilterThrProductsRequest filterThrProductsRequest); + List batchSelectByIds(FilterThrProductsRequest filterThrProductsRequest); + ThrProductsEntity selectById(@Param("id") String id); boolean insertThrProducts(ThrProductsEntity thrProductsEntity); diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/basic/BasicExportStatusEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/basic/BasicExportStatusEntity.java new file mode 100644 index 0000000..e176785 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/basic/BasicExportStatusEntity.java @@ -0,0 +1,15 @@ +package com.glxp.sale.admin.entity.basic; + +import lombok.Data; + +import java.util.Date; +import java.util.List; + +@Data +public class BasicExportStatusEntity { + private Integer id; + private String idDatas; + private Integer status; + private Integer type; + private Date updateTime; +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/req/basic/BasicExportStatusRequest.java b/api-admin/src/main/java/com/glxp/sale/admin/req/basic/BasicExportStatusRequest.java new file mode 100644 index 0000000..3cd96e1 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/req/basic/BasicExportStatusRequest.java @@ -0,0 +1,11 @@ +package com.glxp.sale.admin.req.basic; + +import com.glxp.sale.admin.req.ListPageRequest; +import lombok.Data; + +@Data +public class BasicExportStatusRequest extends ListPageRequest { + private Integer id; + private Integer status; + private Integer type; +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/req/basic/BussinessTypeFilterRequest.java b/api-admin/src/main/java/com/glxp/sale/admin/req/basic/BussinessTypeFilterRequest.java index 4c67bd2..975637e 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/req/basic/BussinessTypeFilterRequest.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/req/basic/BussinessTypeFilterRequest.java @@ -16,7 +16,7 @@ public class BussinessTypeFilterRequest extends ListPageRequest { private Boolean spUse; private String localAction; private Boolean secCheckEnable; - + private Integer userId; private String filterAction; } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/req/basic/FilterUdiInfoRequest.java b/api-admin/src/main/java/com/glxp/sale/admin/req/basic/FilterUdiInfoRequest.java index 07cb9da..6f50ece 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/req/basic/FilterUdiInfoRequest.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/req/basic/FilterUdiInfoRequest.java @@ -4,6 +4,8 @@ import com.glxp.sale.admin.req.ListPageRequest; import com.glxp.sale.admin.req.inout.StockOrderPostRequest; import lombok.Data; +import java.util.List; + @Data public class FilterUdiInfoRequest extends ListPageRequest { @@ -51,6 +53,7 @@ public class FilterUdiInfoRequest extends ListPageRequest { private String unionFilterStr;//产品名称,规格,批文,生产厂家联合查询 private Boolean isDisable; + List relIds; } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/req/inventory/FilterInvWarehouseRequest.java b/api-admin/src/main/java/com/glxp/sale/admin/req/inventory/FilterInvWarehouseRequest.java index 5dfbd15..bcd87ac 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/req/inventory/FilterInvWarehouseRequest.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/req/inventory/FilterInvWarehouseRequest.java @@ -4,6 +4,7 @@ import com.glxp.sale.admin.req.ListPageRequest; import lombok.Data; import java.util.Date; +import java.util.List; @Data public class FilterInvWarehouseRequest extends ListPageRequest { @@ -18,4 +19,5 @@ public class FilterInvWarehouseRequest extends ListPageRequest { private Integer level; private String pcode; private Integer userId; + private List ids; } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/req/thrsys/FilterThrCorpRequest.java b/api-admin/src/main/java/com/glxp/sale/admin/req/thrsys/FilterThrCorpRequest.java index 1cb3bae..5da5466 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/req/thrsys/FilterThrCorpRequest.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/req/thrsys/FilterThrCorpRequest.java @@ -11,6 +11,7 @@ public class FilterThrCorpRequest extends ListPageRequest { private String thirdSysFk; private String thirdSys; private String unitId; + private List codes; private String name; private String key; List thrCorpEntities; diff --git a/api-admin/src/main/java/com/glxp/sale/admin/req/thrsys/FilterThrProductsRequest.java b/api-admin/src/main/java/com/glxp/sale/admin/req/thrsys/FilterThrProductsRequest.java index a4aa432..3c5943c 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/req/thrsys/FilterThrProductsRequest.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/req/thrsys/FilterThrProductsRequest.java @@ -18,4 +18,5 @@ public class FilterThrProductsRequest extends ListPageRequest { private String thirdSysFk; private String unionCode; private String supName; + private List codes; } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/req/thrsys/PostThrCorpRequest.java b/api-admin/src/main/java/com/glxp/sale/admin/req/thrsys/PostThrCorpRequest.java index 97aeba9..0c76c8c 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/req/thrsys/PostThrCorpRequest.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/req/thrsys/PostThrCorpRequest.java @@ -1,5 +1,6 @@ package com.glxp.sale.admin.req.thrsys; +import com.glxp.sale.admin.entity.thrsys.ThrCorpEntity; import com.glxp.sale.admin.res.basic.ErpUnitsResponse; import lombok.Data; @@ -11,4 +12,5 @@ public class PostThrCorpRequest { private String thirdSys; private String uploadType; private List corps; + private List datas; } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/res/inventory/InvWarehouseExportResponse.java b/api-admin/src/main/java/com/glxp/sale/admin/res/inventory/InvWarehouseExportResponse.java index 97d58dd..7c525bd 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/res/inventory/InvWarehouseExportResponse.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/res/inventory/InvWarehouseExportResponse.java @@ -1,6 +1,7 @@ package com.glxp.sale.admin.res.inventory; import com.glxp.sale.admin.entity.inventory.InvWarehouseEntity; +import com.glxp.sale.admin.entity.thrsys.ThrInvWarehouseEntity; import lombok.Data; import java.util.List; @@ -9,4 +10,5 @@ import java.util.List; public class InvWarehouseExportResponse { List invWarehouseEntities; + List thrInvWarehouseEntities; } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/res/thrsys/ThrOrderExportJsonResponse.java b/api-admin/src/main/java/com/glxp/sale/admin/res/thrsys/ThrOrderExportJsonResponse.java new file mode 100644 index 0000000..6168cab --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/res/thrsys/ThrOrderExportJsonResponse.java @@ -0,0 +1,15 @@ +package com.glxp.sale.admin.res.thrsys; + +import com.glxp.sale.admin.entity.thrsys.ThrOrderDetailEntity; +import com.glxp.sale.admin.entity.thrsys.ThrOrderEntity; +import lombok.Data; +import java.util.List; + +@Data +public class ThrOrderExportJsonResponse { + + private List thrOrderEntityList; + + private List thrOrderDetailEntities; + +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/basic/BasicExportService.java b/api-admin/src/main/java/com/glxp/sale/admin/service/basic/BasicExportService.java new file mode 100644 index 0000000..b6b10e6 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/basic/BasicExportService.java @@ -0,0 +1,19 @@ +package com.glxp.sale.admin.service.basic; + + +import com.glxp.sale.admin.entity.basic.BasicExportStatusEntity; +import com.glxp.sale.admin.req.basic.BasicExportStatusRequest; + +import java.util.List; + +public interface BasicExportService { + + + List filterExportStatus(BasicExportStatusRequest basicExportStatusRequest); + + boolean insertExportStatus(BasicExportStatusEntity ioOrderStatusEntity); + + boolean deleteById(Integer id); + + boolean updateExportStatus(BasicExportStatusEntity warehouseEntity); +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/basic/BasicUnitMaintainService.java b/api-admin/src/main/java/com/glxp/sale/admin/service/basic/BasicUnitMaintainService.java index dea934f..fbeb85f 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/service/basic/BasicUnitMaintainService.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/basic/BasicUnitMaintainService.java @@ -24,6 +24,8 @@ public interface BasicUnitMaintainService { BasicUnitMaintainEntity selectByThirdId(String thirdId, String thirdSys); + List batchSelectByIds(List id); + BasicUnitMaintainEntity selectById(String id); BasicUnitMaintainEntity selectByErpId(String id); diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/basic/UdiRelevanceService.java b/api-admin/src/main/java/com/glxp/sale/admin/service/basic/UdiRelevanceService.java index 8036701..1a290ba 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/service/basic/UdiRelevanceService.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/basic/UdiRelevanceService.java @@ -26,6 +26,8 @@ public interface UdiRelevanceService { List batchSelectByUuid(List uuids); + List batchSelectByIds(List ids); + List selectByUuid(String uuid); UdiRelevanceEntity selectById(String id); diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/basic/impl/BasicExportServiceImpl.java b/api-admin/src/main/java/com/glxp/sale/admin/service/basic/impl/BasicExportServiceImpl.java new file mode 100644 index 0000000..6670746 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/basic/impl/BasicExportServiceImpl.java @@ -0,0 +1,46 @@ +package com.glxp.sale.admin.service.basic.impl; + +import com.github.pagehelper.PageHelper; +import com.glxp.sale.admin.dao.basic.BasicExportDao; +import com.glxp.sale.admin.entity.basic.BasicExportStatusEntity; +import com.glxp.sale.admin.req.basic.BasicExportStatusRequest; +import com.glxp.sale.admin.service.basic.BasicExportService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; + +@Service +public class BasicExportServiceImpl implements BasicExportService { + + @Resource + BasicExportDao basicExportDao; + + @Override + public List filterExportStatus(BasicExportStatusRequest basicExportStatusRequest) { + if (basicExportStatusRequest == null) { + return Collections.emptyList(); + } + if (basicExportStatusRequest.getPage() != null) { + int offset = (basicExportStatusRequest.getPage() - 1) * basicExportStatusRequest.getLimit(); + PageHelper.offsetPage(offset, basicExportStatusRequest.getLimit()); + } + return basicExportDao.filterExportStatus(basicExportStatusRequest); + } + + @Override + public boolean insertExportStatus(BasicExportStatusEntity basicExportStatusEntity) { + return basicExportDao.insertExportStatus(basicExportStatusEntity); + } + + @Override + public boolean deleteById(Integer id) { + return basicExportDao.deleteById(id); + } + + @Override + public boolean updateExportStatus(BasicExportStatusEntity basicExportStatusEntity) { + return basicExportDao.updateExportStatus(basicExportStatusEntity); + } +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/basic/impl/BasicUnitMaintainServiceImpl.java b/api-admin/src/main/java/com/glxp/sale/admin/service/basic/impl/BasicUnitMaintainServiceImpl.java index 8fb48e8..38ebb22 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/service/basic/impl/BasicUnitMaintainServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/basic/impl/BasicUnitMaintainServiceImpl.java @@ -71,6 +71,11 @@ public class BasicUnitMaintainServiceImpl implements BasicUnitMaintainService { return basicUnitMaintainDao.selectByThirdId(filterUdiInfoRequest); } + @Override + public List batchSelectByIds(List ids) { + return basicUnitMaintainDao.batchSelectByIds(ids); + } + @Override public BasicUnitMaintainEntity selectById(String id) { return basicUnitMaintainDao.selectById(id); diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/basic/impl/UdiRelevanceServiceImpl.java b/api-admin/src/main/java/com/glxp/sale/admin/service/basic/impl/UdiRelevanceServiceImpl.java index bf2de3f..412eb7a 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/service/basic/impl/UdiRelevanceServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/basic/impl/UdiRelevanceServiceImpl.java @@ -100,6 +100,11 @@ public class UdiRelevanceServiceImpl implements UdiRelevanceService { return udiRelevanceDao.batchSelectByUuid(uuids); } + @Override + public List batchSelectByIds(List ids) { + return udiRelevanceDao.batchSelectByIds(ids); + } + @Override public List selectByUuid(String uuid) { return udiRelevanceDao.selectByUuid(uuid); diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/thrsys/ThrInvWarehouseService.java b/api-admin/src/main/java/com/glxp/sale/admin/service/thrsys/ThrInvWarehouseService.java index 1f8b2df..9358afa 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/service/thrsys/ThrInvWarehouseService.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/thrsys/ThrInvWarehouseService.java @@ -17,6 +17,8 @@ public interface ThrInvWarehouseService { boolean insertInvWarehouse(ThrInvWarehouseEntity thrInvWarehouseEntity); + boolean insertInvWarehouses(List thrInvWarehouseEntitys); + boolean updateInvWarehouse(ThrInvWarehouseEntity thrInvWarehouseEntity); ThrInvWarehouseEntity selectById(String id); diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/thrsys/impl/ThrInvWarehouseServiceImpl.java b/api-admin/src/main/java/com/glxp/sale/admin/service/thrsys/impl/ThrInvWarehouseServiceImpl.java index 4c417b9..912e421 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/service/thrsys/impl/ThrInvWarehouseServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/thrsys/impl/ThrInvWarehouseServiceImpl.java @@ -59,6 +59,11 @@ public class ThrInvWarehouseServiceImpl implements ThrInvWarehouseService { return thrInvWarehouseDao.insertThrInvWarehouse(thrInvWarehouseEntity); } + @Override + public boolean insertInvWarehouses(List thrInvWarehouseEntitys) { + return thrInvWarehouseDao.insertInvWarehouses(thrInvWarehouseEntitys); + } + @Override public boolean updateInvWarehouse(ThrInvWarehouseEntity thrInvWarehouseEntity) { return thrInvWarehouseDao.updateThrInvWarehouse(thrInvWarehouseEntity); diff --git a/api-admin/src/main/java/com/glxp/sale/admin/thread/BasicGenExcelService.java b/api-admin/src/main/java/com/glxp/sale/admin/thread/BasicGenExcelService.java index b0373e5..35e7e00 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/thread/BasicGenExcelService.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/thread/BasicGenExcelService.java @@ -6,6 +6,7 @@ import cn.hutool.core.io.file.FileWriter; import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSON; import com.glxp.sale.admin.constant.BasicProcessStatus; import com.glxp.sale.admin.constant.ConstantStatus; import com.glxp.sale.admin.dao.basic.UdiInfoDao; @@ -36,10 +37,7 @@ import javax.annotation.Resource; import java.io.File; import java.io.IOException; import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; @Slf4j @Service @@ -64,8 +62,11 @@ public class BasicGenExcelService { ThrProductsDao thrProductsDao; @Resource ThrCorpDao thrCorpDao; + @Resource + BasicExportService basicExportService; + - //往来单位 + //往来单位导出json文件 @Async public void exportCorp(String genKey, CorpsExportRequest corpsExportRequest) { CorpExportLogEntity corpExportLogEntity = corpExportLogService.selectByGenKey(genKey); @@ -97,6 +98,49 @@ public class BasicGenExcelService { corpExportLogService.updateCorpExportLog(corpExportLogEntity); } + //往来单位导出到日志状态表等待下载 + @Async + public void exportCorpStatusLog(String genKey, CorpsExportRequest corpsExportRequest) { + CorpExportLogEntity corpExportLogEntity = corpExportLogService.selectByGenKey(genKey); + List results = new ArrayList<>(); + if (corpsExportRequest.getIds() != null && corpsExportRequest.getIds().size() > 0) { + List ids = corpsExportRequest.getIds(); + ids.forEach(id -> { + results.add(id + ""); + }); + } else { //一键导出 + BasicUnitMaintainFilterRequest filterRequest = new BasicUnitMaintainFilterRequest(); + BeanUtils.copyProperties(corpsExportRequest, filterRequest); + filterRequest.setPage(null); + List basicUnitMaintainEntities = basicUnitMaintainService.filterList(filterRequest); + basicUnitMaintainEntities.forEach( + item -> { + results.add(item.getId() + ""); + } + ); + } + BasicExportStatusEntity basicExportStatusEntity = new BasicExportStatusEntity(); + basicExportStatusEntity.setStatus(0); + basicExportStatusEntity.setType(BasicProcessStatus.BASIC_CORP); + basicExportStatusEntity.setUpdateTime(new Date()); + basicExportStatusEntity.setIdDatas(JSON.toJSON(results).toString()); + basicExportService.insertExportStatus(basicExportStatusEntity); + corpExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_SUCCESS); + corpExportLogService.updateCorpExportLog(corpExportLogEntity); + } + + //往来单位下载返回json数据 + public BasicUnitMaintainExportResponse genCorpJsonData(CorpsExportRequest corpsExportRequest) { + BasicUnitMaintainExportResponse exportData = new BasicUnitMaintainExportResponse(); + List unitMaintainEntities = new ArrayList<>(); + List basicUnitMaintainEntities = basicUnitMaintainService.batchSelectByIds(corpsExportRequest.getIds()); + unitMaintainEntities.addAll(basicUnitMaintainEntities); + getThrCorpList(exportData, basicUnitMaintainEntities); + exportData.setCorpList(unitMaintainEntities); + return exportData; + } + + /** * 查询第三方往来单位信息 * @@ -123,6 +167,72 @@ public class BasicGenExcelService { } } }); + + Map> codesMap = new HashMap<>(); + basicUnitMaintainEntities.forEach(basicUnitMaintainEntity -> { + for (Field field : fields) { //过滤分类,不止thirdId,其他系统也要 + Object fieldValue = ReflectUtil.getFieldValue(basicUnitMaintainEntity, field); + if (field.getName().contains("thirdId")) { + if (null != fieldValue) { + if (codesMap.get("thirdId") != null) { + codesMap.get("thirdId").add(String.valueOf(fieldValue)); + } else { + List temps = new ArrayList<>(); + temps.add(String.valueOf(fieldValue)); + codesMap.put("thirdId", temps); + } + } + } else if (field.getName().contains("thirdId1")) { + if (null != fieldValue) { + if (codesMap.get("thirdId1") != null) { + codesMap.get("thirdId1").add(String.valueOf(fieldValue)); + } else { + List temps = new ArrayList<>(); + temps.add(String.valueOf(fieldValue)); + codesMap.put("thirdId1", temps); + } + } + } else if (field.getName().contains("thirdId2")) { + if (null != fieldValue) { + if (codesMap.get("thirdId2") != null) { + codesMap.get("thirdId2").add(String.valueOf(fieldValue)); + } else { + List temps = new ArrayList<>(); + temps.add(String.valueOf(fieldValue)); + codesMap.put("thirdId2", temps); + } + } + } else if (field.getName().contains("thirdId3")) { + if (null != fieldValue) { + if (codesMap.get("thirdId3") != null) { + codesMap.get("thirdId3").add(String.valueOf(fieldValue)); + } else { + List temps = new ArrayList<>(); + temps.add(String.valueOf(fieldValue)); + codesMap.put("thirdId3", temps); + } + } + } else if (field.getName().contains("thirdId4")) { + if (null != fieldValue) { + if (codesMap.get("thirdId4") != null) { + codesMap.get("thirdId4").add(String.valueOf(fieldValue)); + } else { + List temps = new ArrayList<>(); + temps.add(String.valueOf(fieldValue)); + codesMap.put("thirdId4", temps); + } + } + } + } + }); + for (Map.Entry> entry : codesMap.entrySet()) { + System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue()); + FilterThrCorpRequest filter = new FilterThrCorpRequest(); + filter.setCodes(entry.getValue()); + filter.setThirdSysFk(entry.getKey()); + List result = thrCorpDao.batchSelectByIds(filter); + thrCorpEntities.addAll(result); + } if (CollUtil.isNotEmpty(thrCorpEntities)) { exportData.setThrCorpEntities(thrCorpEntities); } @@ -257,6 +367,8 @@ public class BasicGenExcelService { udiInfoExportLogService.updateUdiInfoExportLog(udiInfoExportLogEntity); } + + //耗材字典导出json文件 @Async public void exportJsonUdiInfo(String genKey, UdiInfoExportRequest udiInfoExportRequest) { UdiInfoExportLogEntity udiInfoExportLogEntity = udiInfoExportLogService.selectByGenKey(genKey); @@ -301,6 +413,62 @@ public class BasicGenExcelService { } + //耗材字典导出到日志状态表等待下载 + @Async + public void exportStatusLog(String genKey, UdiInfoExportRequest udiInfoExportRequest) { + UdiInfoExportLogEntity udiInfoExportLogEntity = udiInfoExportLogService.selectByGenKey(genKey); + UdiRelevanceExportJsonResponse exportData = new UdiRelevanceExportJsonResponse(); + //选中导出 + List results = new ArrayList<>(); + if (CollUtil.isNotEmpty(udiInfoExportRequest.getUuids())) { + List uuids = udiInfoExportRequest.getUuids(); + + uuids.forEach(uuid -> { + FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest(); + filterUdiInfoRequest.setUuid(uuid); + List udiRelevanceResponses = udiRelevanceService.filterUdiRelevance(filterUdiInfoRequest); + udiRelevanceResponses.forEach( + item -> { + results.add(item.getId() + ""); + } + ); + }); + } else { + //一键导出 + FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest(); + BeanUtil.copyProperties(udiInfoExportRequest, filterUdiInfoRequest); + filterUdiInfoRequest.setPage(null); + List data = udiRelevanceService.filterUdiRelevance(filterUdiInfoRequest); + data.forEach( + item -> { + results.add(item.getId() + ""); + } + ); + + } + BasicExportStatusEntity basicExportStatusEntity = new BasicExportStatusEntity(); + basicExportStatusEntity.setStatus(0); + basicExportStatusEntity.setType(BasicProcessStatus.BASIC_UDI); + basicExportStatusEntity.setUpdateTime(new Date()); + basicExportStatusEntity.setIdDatas(JSON.toJSON(results).toString()); + basicExportService.insertExportStatus(basicExportStatusEntity); + udiInfoExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_SUCCESS); + udiInfoExportLogService.updateUdiInfoExportLog(udiInfoExportLogEntity); + } + + //耗材字典下载返回json数据 + public UdiRelevanceExportJsonResponse genJsonData(FilterUdiInfoRequest filterUdiInfoRequest) { + + UdiRelevanceExportJsonResponse udiExportJsonResponse = new UdiRelevanceExportJsonResponse(); + List udiRelevanceResponses = udiRelevanceService.batchSelectByIds(filterUdiInfoRequest.getRelIds()); + if (CollUtil.isNotEmpty(udiRelevanceResponses)) { + parseUdiRelevanceEntitys(udiExportJsonResponse, udiRelevanceResponses); + } + List companyProductRelevanceEntities = companyProductRelevanceService.filterCompanyProductRelevance(new FilterCompanyProductRelevanceRequest()); + udiExportJsonResponse.setCompanyProductRelevanceEntities(companyProductRelevanceEntities); + return udiExportJsonResponse; + } + @Async public void uploadProductsSmp(String genKey, UdiInfoExportRequest udiInfoExportRequest) { UdiInfoExportLogEntity udiInfoExportLogEntity = udiInfoExportLogService.selectByGenKey(genKey); @@ -354,26 +522,6 @@ public class BasicGenExcelService { return excelData; } - public UdiExportJsonResponse genJsonData(FilterUdiInfoRequest filterUdiInfoRequest) { - List udiRelevanceResponses = udiRelevanceService.filterUdiRelevance(filterUdiInfoRequest); - List udiRelevanceEntities = new ArrayList<>(); - Map filterUuid = new HashMap<>(); - for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) { - UdiRelevanceEntity udiRelevanceEntity = new UdiRelevanceEntity(); - BeanUtils.copyProperties(udiRelevanceResponse, udiRelevanceEntity); - udiRelevanceEntities.add(udiRelevanceEntity); - filterUuid.put(udiRelevanceEntity.getUuid(), udiRelevanceEntity.getUuid()); - } - List udiInfoEntities = new ArrayList<>(); - filterUuid.forEach((key, value) -> { - List udiInfoEntities1 = udiInfoService.findByUuids(key); - udiInfoEntities.addAll(udiInfoEntities1); - }); - UdiExportJsonResponse udiExportJsonResponse = new UdiExportJsonResponse(); - udiExportJsonResponse.setUdiInfoEntities(udiInfoEntities); - udiExportJsonResponse.setUdiRelevanceEntities(udiRelevanceEntities); - return udiExportJsonResponse; - } public List genSmpData(FilterUdiInfoRequest filterUdiInfoRequest) { List udiInfoImportDetailEntities = new ArrayList<>(); @@ -415,22 +563,164 @@ public class BasicGenExcelService { if (CollUtil.isNotEmpty(udiRelevanceEntities)) { List thrProductsEntities = new ArrayList<>(udiRelevanceEntities.size()); Field[] fields = ReflectUtil.getFields(UdiRelevanceEntity.class); + + Map> codesMap = new HashMap<>(); udiRelevanceEntities.forEach(udiRelevanceEntity -> { - for (Field field : fields) { + for (Field field : fields) { //过滤分类,不止thirdId,其他系统也要 + Object fieldValue = ReflectUtil.getFieldValue(udiRelevanceEntity, field); if (field.getName().contains("thirdId")) { - Object fieldValue = ReflectUtil.getFieldValue(udiRelevanceEntity, field); if (null != fieldValue) { - FilterThrProductsRequest filter = new FilterThrProductsRequest(); - filter.setCode(String.valueOf(fieldValue)); - filter.setThirdSysFk("thirdId"); - List result = thrProductsDao.filterThrProductsRequest(filter); - if (CollUtil.isNotEmpty(result)) { - thrProductsEntities.addAll(result); + if (codesMap.get("thirdId") != null) { + codesMap.get("thirdId").add(String.valueOf(fieldValue)); + } else { + List temps = new ArrayList<>(); + temps.add(String.valueOf(fieldValue)); + codesMap.put("thirdId", temps); + } + } + } else if (field.getName().contains("thirdId1")) { + if (null != fieldValue) { + if (codesMap.get("thirdId1") != null) { + codesMap.get("thirdId1").add(String.valueOf(fieldValue)); + } else { + List temps = new ArrayList<>(); + temps.add(String.valueOf(fieldValue)); + codesMap.put("thirdId1", temps); + } + } + } else if (field.getName().contains("thirdId2")) { + if (null != fieldValue) { + if (codesMap.get("thirdId2") != null) { + codesMap.get("thirdId2").add(String.valueOf(fieldValue)); + } else { + List temps = new ArrayList<>(); + temps.add(String.valueOf(fieldValue)); + codesMap.put("thirdId2", temps); + } + } + } else if (field.getName().contains("thirdId3")) { + if (null != fieldValue) { + if (codesMap.get("thirdId3") != null) { + codesMap.get("thirdId3").add(String.valueOf(fieldValue)); + } else { + List temps = new ArrayList<>(); + temps.add(String.valueOf(fieldValue)); + codesMap.put("thirdId3", temps); + } + } + } else if (field.getName().contains("thirdId4")) { + if (null != fieldValue) { + if (codesMap.get("thirdId4") != null) { + codesMap.get("thirdId4").add(String.valueOf(fieldValue)); + } else { + List temps = new ArrayList<>(); + temps.add(String.valueOf(fieldValue)); + codesMap.put("thirdId4", temps); + } + } + } + } + }); + + for (Map.Entry> entry : codesMap.entrySet()) { + System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue()); + FilterThrProductsRequest filter = new FilterThrProductsRequest(); + filter.setCodes(entry.getValue()); + filter.setThirdSysFk(entry.getKey()); + List result = thrProductsDao.batchSelectByIds(filter); + thrProductsEntities.addAll(result); + } + + if (CollUtil.isNotEmpty(thrProductsEntities)) { + exportData.setThrProductsEntities(thrProductsEntities); + } + } + List udiInfo = exportData.getUdiInfoEntities(); + List udiRelevance = exportData.getUdiRelevanceEntities(); + udiInfo.addAll(udiInfoEntities); + udiRelevance.addAll(udiRelevanceEntities); + exportData.setUdiInfoEntities(udiInfo); + exportData.setUdiRelevanceEntities(udiRelevance); + } + + private void parseUdiRelevanceEntitys(UdiRelevanceExportJsonResponse exportData, List udiRelevanceResponses) { + List uuids = new ArrayList<>(udiRelevanceResponses.size()); + udiRelevanceResponses.forEach(udi -> { + uuids.add(udi.getUuid()); + }); + List udiInfoEntities = udiInfoDao.batchSelectByUuid(uuids); + List udiRelevanceEntities = udiRelevanceDao.batchSelectByUuid(uuids); + if (CollUtil.isNotEmpty(udiRelevanceEntities)) { + List thrProductsEntities = new ArrayList<>(udiRelevanceEntities.size()); + Field[] fields = ReflectUtil.getFields(UdiRelevanceEntity.class); + + Map> codesMap = new HashMap<>(); + udiRelevanceEntities.forEach(udiRelevanceEntity -> { + for (Field field : fields) { //过滤分类,不止thirdId,其他系统也要 + Object fieldValue = ReflectUtil.getFieldValue(udiRelevanceEntity, field); + if (field.getName().contains("thirdId")) { + if (null != fieldValue) { + if (codesMap.get("thirdId") != null) { + codesMap.get("thirdId").add(String.valueOf(fieldValue)); + } else { + List temps = new ArrayList<>(); + temps.add(String.valueOf(fieldValue)); + codesMap.put("thirdId", temps); + } + } + } else if (field.getName().contains("thirdId1")) { + if (null != fieldValue) { + if (codesMap.get("thirdId1") != null) { + codesMap.get("thirdId1").add(String.valueOf(fieldValue)); + } else { + List temps = new ArrayList<>(); + temps.add(String.valueOf(fieldValue)); + codesMap.put("thirdId1", temps); + } + } + } else if (field.getName().contains("thirdId2")) { + if (null != fieldValue) { + if (codesMap.get("thirdId2") != null) { + codesMap.get("thirdId2").add(String.valueOf(fieldValue)); + } else { + List temps = new ArrayList<>(); + temps.add(String.valueOf(fieldValue)); + codesMap.put("thirdId2", temps); + } + } + } else if (field.getName().contains("thirdId3")) { + if (null != fieldValue) { + if (codesMap.get("thirdId3") != null) { + codesMap.get("thirdId3").add(String.valueOf(fieldValue)); + } else { + List temps = new ArrayList<>(); + temps.add(String.valueOf(fieldValue)); + codesMap.put("thirdId3", temps); + } + } + } else if (field.getName().contains("thirdId4")) { + if (null != fieldValue) { + if (codesMap.get("thirdId4") != null) { + codesMap.get("thirdId4").add(String.valueOf(fieldValue)); + } else { + List temps = new ArrayList<>(); + temps.add(String.valueOf(fieldValue)); + codesMap.put("thirdId4", temps); } } } } }); + + for (Map.Entry> entry : codesMap.entrySet()) { + System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue()); + FilterThrProductsRequest filter = new FilterThrProductsRequest(); + filter.setCodes(entry.getValue()); + filter.setThirdSysFk(entry.getKey()); + List result = thrProductsDao.batchSelectByIds(filter); + thrProductsEntities.addAll(result); + } + if (CollUtil.isNotEmpty(thrProductsEntities)) { exportData.setThrProductsEntities(thrProductsEntities); } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/thread/ThrOrderImportService.java b/api-admin/src/main/java/com/glxp/sale/admin/thread/ThrOrderImportService.java index 8199d2d..a8dc599 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/thread/ThrOrderImportService.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/thread/ThrOrderImportService.java @@ -1,19 +1,27 @@ package com.glxp.sale.admin.thread; +import cn.hutool.core.collection.CollUtil; import com.glxp.sale.admin.constant.BasicProcessStatus; +import com.glxp.sale.admin.dao.basic.BasicUnitMaintainDao; +import com.glxp.sale.admin.dao.thrsys.ThrCorpDao; +import com.glxp.sale.admin.dao.thrsys.ThrOrderDao; +import com.glxp.sale.admin.dao.thrsys.ThrOrderDetailDao; import com.glxp.sale.admin.entity.basic.BasicUnitMaintainEntity; import com.glxp.sale.admin.entity.basic.BussinessTypeEntity; -import com.glxp.sale.admin.entity.thrsys.ThrOrderDetailEntity; -import com.glxp.sale.admin.entity.thrsys.ThrOrderEntity; -import com.glxp.sale.admin.entity.thrsys.ThrOrderImportDetailEntity; -import com.glxp.sale.admin.entity.thrsys.ThrOrderImportLogEntity; +import com.glxp.sale.admin.entity.thrsys.*; import com.glxp.sale.admin.req.basic.FilterUdiIpLogRequest; +import com.glxp.sale.admin.res.basic.BasicUnitMaintainExportResponse; +import com.glxp.sale.admin.res.thrsys.ThrOrderExportJsonResponse; import com.glxp.sale.admin.service.basic.BasicUnitMaintainService; import com.glxp.sale.admin.service.basic.BussinessTypeService; import com.glxp.sale.admin.service.thrsys.ThrOrderDetailService; import com.glxp.sale.admin.service.thrsys.ThrOrderImportDetailService; import com.glxp.sale.admin.service.thrsys.ThrOrderImportLogService; import com.glxp.sale.admin.service.thrsys.ThrOrderService; +import org.apache.ibatis.session.ExecutorType; +import org.apache.ibatis.session.SqlSession; +import org.apache.ibatis.session.SqlSessionFactory; +import org.apache.ibatis.session.TransactionIsolationLevel; import org.springframework.beans.BeanUtils; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; @@ -39,6 +47,8 @@ public class ThrOrderImportService { BussinessTypeService bussinessTypeService; @Resource BasicUnitMaintainService basicUnitMaintainService; + @Resource + SqlSessionFactory sqlSessionFactory; @Async public void importThrOrder(String genKey) { @@ -60,7 +70,7 @@ public class ThrOrderImportService { thrOrderEntity.setBillType(bussinessTypeEntity.getAction()); thrOrderEntity.setThirdSysFk(bussinessTypeEntity.getThirdSysFk()); BasicUnitMaintainEntity basicUnitMaintainEntity = basicUnitMaintainService.selectByThirdId(thrOrderImportDetailEntity.getCorpId(), thrOrderImportDetailEntity.getThirdSysFk()); - if(basicUnitMaintainEntity!=null){ + if (basicUnitMaintainEntity != null) { thrOrderEntity.setUnitIdFk(basicUnitMaintainEntity.getErpId()); } } @@ -87,4 +97,31 @@ public class ThrOrderImportService { } } + + public void importJsonData(ThrOrderExportJsonResponse importData) { + if (null != importData) { + SqlSession batchSession = sqlSessionFactory.openSession(ExecutorType.BATCH, TransactionIsolationLevel.READ_COMMITTED); + if (CollUtil.isNotEmpty(importData.getThrOrderEntityList())) { + List thrOrderEntityList = importData.getThrOrderEntityList(); + ThrOrderDao mapper = batchSession.getMapper(ThrOrderDao.class); + for (ThrOrderEntity thrOrderEntity : thrOrderEntityList) { + mapper.insertThrOrder(thrOrderEntity); + } + batchSession.commit(); + } + + if (CollUtil.isNotEmpty(importData.getThrOrderDetailEntities())) { + try { + List thrOrderDetailEntities = importData.getThrOrderDetailEntities(); + ThrOrderDetailDao mapper = batchSession.getMapper(ThrOrderDetailDao.class); + thrOrderDetailEntities.forEach(thrOrderDetailEntity -> { + mapper.insertThrOrderDetail(thrOrderDetailEntity); + }); + batchSession.commit(); + } catch (Exception e) { + } + } + } + } + } diff --git a/api-admin/src/main/resources/mybatis/mapper/basic/BasicExportDao.xml b/api-admin/src/main/resources/mybatis/mapper/basic/BasicExportDao.xml new file mode 100644 index 0000000..fd9175a --- /dev/null +++ b/api-admin/src/main/resources/mybatis/mapper/basic/BasicExportDao.xml @@ -0,0 +1,51 @@ + + + + + + + + + + replace + INTO basic_export_status(idDatas,status,type,updateTime) + values( + #{idDatas}, + #{status}, + #{type}, + #{updateTime} + ) + + + + UPDATE basic_export_status + + idDatas=#{idDatas}, + status=#{status}, + type=#{type}, + updateTime=#{updateTime}, + + WHERE orderId = #{orderId} + + + DELETE + FROM basic_export_status + WHERE id = #{id} + + + \ No newline at end of file diff --git a/api-admin/src/main/resources/mybatis/mapper/basic/BasicThirdSysDao.xml b/api-admin/src/main/resources/mybatis/mapper/basic/BasicThirdSysDao.xml index 7b2c610..6d4d189 100644 --- a/api-admin/src/main/resources/mybatis/mapper/basic/BasicThirdSysDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/basic/BasicThirdSysDao.xml @@ -41,7 +41,7 @@ AND thirdName = #{thirdName} - + AND enabled = #{enabled} @@ -50,6 +50,8 @@ \ 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 index e7b2445..c5ada2b 100644 --- a/api-admin/src/main/resources/mybatis/mapper/basic/BasicUnitMaintainDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/basic/BasicUnitMaintainDao.xml @@ -158,6 +158,15 @@ WHERE id = #{id} + + + + + replace into basic_udirel (id, thirdId, thirdName, uuid, isUseDy, updateTime, thirdId1, thirdId2, thirdId3, thirdId4, thirdName1, thirdName2, thirdName3, thirdName4, ybbm, sptm, manufactory, diff --git a/api-admin/src/main/resources/mybatis/mapper/inventory/InvWarehouseDao.xml b/api-admin/src/main/resources/mybatis/mapper/inventory/InvWarehouseDao.xml index 0bfec3b..7bc3c4a 100644 --- a/api-admin/src/main/resources/mybatis/mapper/inventory/InvWarehouseDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/inventory/InvWarehouseDao.xml @@ -137,6 +137,9 @@ AND isDefault = #{isDefault} + + AND pcode = #{pcode} + diff --git a/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrCorpDao.xml b/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrCorpDao.xml index 0ff5b1b..c3040f2 100644 --- a/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrCorpDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrCorpDao.xml @@ -19,7 +19,14 @@ ORDER BY updateTime DESC - + replace @@ -100,27 +107,29 @@ replace INTO thr_corp - (id, unitId, name, spell, addr, creditNo, - contact, mobile, thirdSysFk, updateTime) - values + (id, unitId, name, spell, addr, creditNo, + contact, mobile, thirdSysFk, updateTime) + values (#{item.id}, - #{item.unitId}, - #{item.name}, - #{item.spell}, - #{item.addr}, - #{item.creditNo}, - #{item.contact}, - #{item.mobile}, - #{item.thirdSysFk}, #{item.updateTime}) + #{item.unitId}, + #{item.name}, + #{item.spell}, + #{item.addr}, + #{item.creditNo}, + #{item.contact}, + #{item.mobile}, + #{item.thirdSysFk}, #{item.updateTime}) - replace into thr_corp (id, unitId, spell, addr, creditNo, contact, mobile, thirdSysFk, name, updateTime) - values (#{id}, + replace + into thr_corp (id, unitId, spell, addr, creditNo, contact, mobile, thirdSysFk, name, updateTime) + values ( + #{id}, #{unitId}, #{spell}, #{addr}, @@ -129,6 +138,7 @@ #{mobile}, #{thirdSysFk}, #{name}, - #{updateTime}) + #{updateTime} + ) \ No newline at end of file diff --git a/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrInvWarehouseDao.xml b/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrInvWarehouseDao.xml index 7ff6c38..4a7338d 100644 --- a/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrInvWarehouseDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrInvWarehouseDao.xml @@ -67,14 +67,27 @@ insert INTO thr_inv_warehouse - (pid, code, name, advanceType, isDefault, - status, updateTime, remark) + (pid, code, name, advanceType, isDefault, + status, updateTime, remark) values (#{pid}, #{code}, #{name}, #{advanceType}, #{isDefault}, #{status}, #{updateTime}, #{remark}) - + + insert INTO thr_inv_warehouse + (pid, code, name, advanceType, isDefault, + status, updateTime, remark) + VALUES + + ( + #{item.pid}, #{item.code}, + #{item.name}, #{item.advanceType}, #{item.isDefault}, + #{item.status}, #{item.updateTime}, + #{item.remark}) + + DELETE @@ -98,7 +111,9 @@ + + + + +