From b933e0e7e76edd93c6b7132fe10373ba05143180 Mon Sep 17 00:00:00 2001 From: x_z Date: Mon, 19 Dec 2022 15:55:13 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=B7=BB=E5=8A=A0UDI=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E6=8B=89=E5=8F=96=E6=95=B0=E6=8D=AE=E7=AB=8B?= =?UTF-8?q?=E5=8D=B3=E7=94=9F=E6=88=90=E5=90=8C=E6=AD=A5=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/SpsSyncDownloadController.java | 24 ++- .../basic/SpsSyncDownloadService.java | 138 +++++++++++++++++- .../admin/req/thrsys/PostDownloadInfo.java | 16 ++ 3 files changed, 173 insertions(+), 5 deletions(-) create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/req/thrsys/PostDownloadInfo.java diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/SpsSyncDownloadController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/SpsSyncDownloadController.java index 430e63d..d4b2519 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/SpsSyncDownloadController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/SpsSyncDownloadController.java @@ -1,18 +1,25 @@ package com.glxp.sale.admin.controller.basic; import cn.hutool.core.collection.CollUtil; +import com.glxp.sale.admin.annotation.AuthRuleAnnotation; import com.glxp.sale.admin.constant.ConstantStatus; import com.glxp.sale.admin.entity.basic.BasicExportStatusEntity; import com.glxp.sale.admin.entity.inout.OrderEntity; import com.glxp.sale.admin.req.basic.SpsSyncDataRequest; +import com.glxp.sale.admin.req.thrsys.PostDownloadInfo; import com.glxp.sale.admin.res.basic.SpSyncUdiResponse; import com.glxp.sale.admin.res.basic.SpsSyncBusResponse; import com.glxp.sale.admin.res.basic.SpsSyncDataResponse; import com.glxp.sale.admin.res.basic.SpsSyncOrderResponse; import com.glxp.sale.admin.service.basic.BasicExportService; import com.glxp.sale.admin.service.inout.OrderService; +import com.glxp.sale.common.enums.ResultEnum; import com.glxp.sale.common.res.BaseResponse; +import com.glxp.sale.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; @@ -169,8 +176,23 @@ public class SpsSyncDownloadController { baseResponse.setData(spSyncUdiResponse); } return baseResponse; + } - + /** + * 立即创建同步任务 + * + * @param postDownloadInfo + * @param bindingResult + * @return + */ + @AuthRuleAnnotation("") + @PostMapping("/sps/sync/data/downloadNow") + public BaseResponse downloadNow(@RequestBody PostDownloadInfo postDownloadInfo, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + return spsSyncDownloadService.downloadNow(postDownloadInfo); } + } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/SpsSyncDownloadService.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/SpsSyncDownloadService.java index ecce866..dacec98 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/SpsSyncDownloadService.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/SpsSyncDownloadService.java @@ -2,7 +2,7 @@ package com.glxp.sale.admin.controller.basic; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; -import cn.hutool.db.sql.Order; +import com.glxp.sale.admin.constant.BasicProcessStatus; import com.glxp.sale.admin.constant.ConstantStatus; import com.glxp.sale.admin.dao.basic.UdiInfoDao; import com.glxp.sale.admin.entity.auth.AuthAdmin; @@ -28,12 +28,10 @@ import com.glxp.sale.admin.req.inout.OrderFilterRequest; import com.glxp.sale.admin.req.inventory.FilterInvUserRequest; import com.glxp.sale.admin.req.inventory.FilterInvWarehouseRequest; import com.glxp.sale.admin.req.purchase.FilterPoductRequest; -import com.glxp.sale.admin.req.purchase.FilterSupCertRequest; import com.glxp.sale.admin.req.purchase.FilterSupCompanyRequest; import com.glxp.sale.admin.req.purchase.FilterSupManufacturerRequest; import com.glxp.sale.admin.req.receipt.ProductInfoFilterRequest; import com.glxp.sale.admin.req.thrsys.*; -import com.glxp.sale.admin.res.auth.AuthAdminRoleResponse; import com.glxp.sale.admin.res.basic.SpSyncUdiResponse; import com.glxp.sale.admin.res.basic.SpsSyncBusResponse; import com.glxp.sale.admin.res.basic.SpsSyncDataResponse; @@ -55,13 +53,14 @@ import com.glxp.sale.admin.service.purchase.SupProductService; import com.glxp.sale.admin.service.receipt.ProductInfoService; import com.glxp.sale.admin.service.thrsys.*; import com.glxp.sale.admin.util.BeanUtils; +import com.glxp.sale.admin.util.CustomUtil; import com.glxp.sale.common.res.BaseResponse; import com.glxp.sale.common.util.ResultVOUtils; import org.springframework.stereotype.Service; -import org.springframework.web.bind.annotation.GetMapping; import javax.annotation.Resource; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -120,6 +119,10 @@ public class SpsSyncDownloadService { SupProductService supProductService; @Resource SupCertService supCertService; + @Resource + private BasicExportTimeService basicExportTimeService; + @Resource + private BasicExportService basicExportService; public BaseResponse findProductInfo(SpsSyncDataRequest spsSyncDataRequest) { @@ -584,4 +587,131 @@ public class SpsSyncDownloadService { } + /** + * 根据UDI管理系统的请求,创建同步任务 + * + * @param postDownloadInfo + * @return + */ + public BaseResponse downloadNow(PostDownloadInfo postDownloadInfo) { + //根据请求类型,生成同步任务 + if (postDownloadInfo.getType() == 1) { + //基础信息 + BaseResponse baseResponse = findProductInfo(getRequest(ConstantStatus.SYNC_BASIC_DATA, null)); + SpsSyncDataResponse spsSyncDataResponse = baseResponse.getData(); + + if (CollUtil.isNotEmpty(spsSyncDataResponse.getThrOrderDetailEntities()) + || CollUtil.isNotEmpty(spsSyncDataResponse.getThrOrderEntities()) + || CollUtil.isNotEmpty(spsSyncDataResponse.getInvWarehouseEntities()) + || CollUtil.isNotEmpty(spsSyncDataResponse.getBasicUnitMaintainEntities()) + || CollUtil.isNotEmpty(spsSyncDataResponse.getCompanyProductRelevanceEntities()) + || CollUtil.isNotEmpty(spsSyncDataResponse.getThrCorpEntities()) + || CollUtil.isNotEmpty(spsSyncDataResponse.getUdiInfoEntities()) + || CollUtil.isNotEmpty(spsSyncDataResponse.getUdiRelevanceEntities()) + || CollUtil.isNotEmpty(spsSyncDataResponse.getThrProductsEntities()) + || CollUtil.isNotEmpty(spsSyncDataResponse.getThrInvWarehouseEntities()) + || CollUtil.isNotEmpty(spsSyncDataResponse.getAuthAdminList()) + || CollUtil.isNotEmpty(spsSyncDataResponse.getDeptEntityList()) + || CollUtil.isNotEmpty(spsSyncDataResponse.getNewUploadDiEntities()) + || CollUtil.isNotEmpty(spsSyncDataResponse.getSupCompanyEntities()) + || CollUtil.isNotEmpty(spsSyncDataResponse.getSupManufacturerEntities()) + || CollUtil.isNotEmpty(spsSyncDataResponse.getSupProductEntities()) + ) { + BasicExportStatusTimeEntity basicExportStatusTimeEntity = basicExportTimeService.findByType(ConstantStatus.SYNC_BASIC_DATA); + basicExportTimeService.updateExportStatus(basicExportStatusTimeEntity); + BasicExportStatusEntity basicExportStatusEntity = new BasicExportStatusEntity(); + basicExportStatusEntity.setId(CustomUtil.getId()); + basicExportStatusEntity.setIdDatas(ConstantStatus.SYNC_BASIC_DATA); + basicExportStatusEntity.setType(BasicProcessStatus.NEW_ALL_DATA); + basicExportStatusEntity.setUpdateTime(new Date()); + basicExportStatusEntity.setStatus(0); + basicExportStatusEntity.setStartTime(new Date()); + basicExportStatusEntity.setScheduleType(BasicProcessStatus.SCHEDULE_NORMAL); + basicExportService.insertExportStatus(basicExportStatusEntity); + } else { + return ResultVOUtils.error(501, "当前暂无更新数据需要同步!"); + } + } else if (postDownloadInfo.getType() == 2) { + //单据类型 + BaseResponse baseResponse = findBusType(getRequest(ConstantStatus.SYNC_BUS_TYPE, null)); + SpsSyncBusResponse spsSyncBusResponse = baseResponse.getData(); + if (CollUtil.isNotEmpty(spsSyncBusResponse.getBussinessLocalTypeEntities()) + || CollUtil.isNotEmpty(spsSyncBusResponse.getBussinessOriginTypeEntities()) + || CollUtil.isNotEmpty(spsSyncBusResponse.getBussinessTypeEntities()) || CollUtil.isNotEmpty(spsSyncBusResponse.getEntrustReceEntities())) { + BasicExportStatusTimeEntity basicExportStatusTimeEntity = basicExportTimeService.findByType(ConstantStatus.SYNC_BUS_TYPE); + if (basicExportStatusTimeEntity != null) { + basicExportTimeService.updateExportStatus(basicExportStatusTimeEntity); + } + BasicExportStatusEntity busTypetatusEntity = new BasicExportStatusEntity(); + busTypetatusEntity.setId(CustomUtil.getId()); + busTypetatusEntity.setIdDatas(ConstantStatus.SYNC_BUS_TYPE); + busTypetatusEntity.setType(BasicProcessStatus.NEW_ALL_BUS); + busTypetatusEntity.setUpdateTime(new Date()); + busTypetatusEntity.setStatus(0); + busTypetatusEntity.setStartTime(new Date()); + busTypetatusEntity.setScheduleType(BasicProcessStatus.SCHEDULE_NORMAL); + basicExportService.insertExportStatus(busTypetatusEntity); + } else { + return ResultVOUtils.error(501, "当前暂无更新数据需要同步!"); + } + } else if (postDownloadInfo.getType() == 3) { + //扫码单据 + BaseResponse baseResponse = findOrder(getRequest(ConstantStatus.SYNC_SCAN_ORDER, null)); + SpsSyncOrderResponse syncOrderResponse = baseResponse.getData(); + if (CollUtil.isNotEmpty(syncOrderResponse.getOrderEntities())) { + BasicExportStatusTimeEntity basicExportStatusTimeEntity = basicExportTimeService.findByType(ConstantStatus.SYNC_SCAN_ORDER); + if (basicExportStatusTimeEntity != null) { + basicExportTimeService.updateExportStatus(basicExportStatusTimeEntity); + } + + BasicExportStatusEntity orderStatusEntity = new BasicExportStatusEntity(); + orderStatusEntity.setId(CustomUtil.getId()); + orderStatusEntity.setIdDatas(ConstantStatus.SYNC_SCAN_ORDER); + orderStatusEntity.setType(BasicProcessStatus.NEW_ALL_ORDER); + orderStatusEntity.setUpdateTime(new Date()); + orderStatusEntity.setStatus(0); + orderStatusEntity.setStartTime(new Date()); + orderStatusEntity.setScheduleType(BasicProcessStatus.SCHEDULE_NORMAL); + basicExportService.insertExportStatus(orderStatusEntity); + } else { + return ResultVOUtils.error(501, "当前暂无更新数据需要同步!"); + } + } else if (postDownloadInfo.getType() == 4) { + //国家库数据 + BaseResponse baseResponse = syncUdi(getRequest(ConstantStatus.SYNC_DI_PRODUCTS, null)); + SpSyncUdiResponse spSyncUdiResponse = baseResponse.getData(); + if (CollUtil.isNotEmpty(spSyncUdiResponse.getProductInfoEntityList()) + || CollUtil.isNotEmpty(spSyncUdiResponse.getUdiCompanyEntities())) { + BasicExportStatusTimeEntity basicExportStatusTimeEntity = basicExportTimeService.findByType(ConstantStatus.SYNC_DI_PRODUCTS); + if (basicExportStatusTimeEntity != null) { + basicExportTimeService.updateExportStatus(basicExportStatusTimeEntity); + } + BasicExportStatusEntity basicExportStatusEntity = new BasicExportStatusEntity(); + basicExportStatusEntity.setId(CustomUtil.getId()); + basicExportStatusEntity.setIdDatas(ConstantStatus.SYNC_DI_PRODUCTS); + basicExportStatusEntity.setType(BasicProcessStatus.NEW_ALL_DI); + basicExportStatusEntity.setUpdateTime(new Date()); + basicExportStatusEntity.setStatus(0); + basicExportStatusEntity.setStartTime(new Date()); + basicExportStatusEntity.setScheduleType(BasicProcessStatus.SCHEDULE_NORMAL); + basicExportService.insertExportStatus(basicExportStatusEntity); + } else { + return ResultVOUtils.error(501, "当前暂无更新数据需要同步!"); + } + } + return ResultVOUtils.success("同步任务创建成功!"); + } + + public SpsSyncDataRequest getRequest(String type, String syncTime) { + SpsSyncDataRequest spsSyncDataRequest = new SpsSyncDataRequest(); + spsSyncDataRequest.setPage(1); + spsSyncDataRequest.setLimit(1); + if (StrUtil.isEmpty(syncTime)) { + BasicExportStatusTimeEntity basicExportStatusTimeEntity = basicExportTimeService.findByType(type); + spsSyncDataRequest.setLastUpdateTime(basicExportStatusTimeEntity.getLastUpdateTime()); + } else { + spsSyncDataRequest.setLastUpdateTime(syncTime); + } + return spsSyncDataRequest; + } } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/req/thrsys/PostDownloadInfo.java b/api-admin/src/main/java/com/glxp/sale/admin/req/thrsys/PostDownloadInfo.java new file mode 100644 index 0000000..89cf57d --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/req/thrsys/PostDownloadInfo.java @@ -0,0 +1,16 @@ +package com.glxp.sale.admin.req.thrsys; + +import lombok.Data; + +/** + * 下载任务信息 + */ +@Data +public class PostDownloadInfo { + + /** + * 下载类型 + */ + private Integer type; + +}