diff --git a/src/main/java/com/glxp/api/constant/ConstantStatus.java b/src/main/java/com/glxp/api/constant/ConstantStatus.java index ecd40a8a..7fe62522 100644 --- a/src/main/java/com/glxp/api/constant/ConstantStatus.java +++ b/src/main/java/com/glxp/api/constant/ConstantStatus.java @@ -198,7 +198,7 @@ public class ConstantStatus { public static final int FROM_PDAUN = 4; //pda未校验 public static final int FROM_PC = 5; //pc端扫码精灵 public static final int FROM_CHANGE = 6; //单据流转 - public static final int FROM_UDISP = 7; //供应商平台 + public static final int FROM_UDISP = 7; //供应商平台||UDI管理系统 public static final int FROM_PEACE_CHANGE = 8; //平衡补单 public static final int FROM_REVIEW = 9; //单据验收直接补单 public static final int FROM_COPY = 10; //单据复制 diff --git a/src/main/java/com/glxp/api/controller/basic/BasicBusTypePreController.java b/src/main/java/com/glxp/api/controller/basic/BasicBusTypePreController.java index 821d0a10..df305059 100644 --- a/src/main/java/com/glxp/api/controller/basic/BasicBusTypePreController.java +++ b/src/main/java/com/glxp/api/controller/basic/BasicBusTypePreController.java @@ -165,7 +165,7 @@ public class BasicBusTypePreController { //判断是否重复添加 boolean result = basicBusTypePreService.verifyExists(basicBusTypePreEntity); if (result) { - return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "重复添加!"); + return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "原单据类型已存在,不允许重复添加!"); } basicBusTypePreService.updateBusChangeType(basicBusTypePreEntity); @@ -191,7 +191,7 @@ public class BasicBusTypePreController { //判断是否重复添加 boolean result = basicBusTypePreService.verifyExists(basicBusTypePreEntity); if (result) { - return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "重复添加!"); + return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "原单据类型已存在,不允许重复添加!"); } if (StrUtil.isNotBlank(basicBusTypePreEntity.getDefaultInvCode())) { diff --git a/src/main/java/com/glxp/api/controller/basic/BasicBussinessTypeController.java b/src/main/java/com/glxp/api/controller/basic/BasicBussinessTypeController.java index 8dfd6d49..e2724b63 100644 --- a/src/main/java/com/glxp/api/controller/basic/BasicBussinessTypeController.java +++ b/src/main/java/com/glxp/api/controller/basic/BasicBussinessTypeController.java @@ -9,6 +9,7 @@ import com.glxp.api.annotation.AuthRuleAnnotation; import com.glxp.api.common.enums.ResultEnum; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.constant.ConstantType; import com.glxp.api.controller.BaseController; import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.req.basic.BusNoUserRequest; @@ -366,4 +367,40 @@ public class BasicBussinessTypeController extends BaseController { return ResultVOUtils.success(pageSimpleResponse); } + + @AuthRuleAnnotation("") + @GetMapping("/udiwms/busType/change/origin") + public BaseResponse changeOrigins(FilterBussinessTypeRequest bussinessTypeFilterRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + bussinessTypeFilterRequest.setEnable(true); + + List bussinessTypeEntities; + bussinessTypeEntities = basicBussinessTypeService.filterList(bussinessTypeFilterRequest); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setList(bussinessTypeEntities); + return ResultVOUtils.success(pageSimpleResponse); + } + + + @AuthRuleAnnotation("") + @GetMapping("/udiwms/busType/change/target") + public BaseResponse changeTarget(FilterBussinessTypeRequest bussinessTypeFilterRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + bussinessTypeFilterRequest.setEnable(true); + bussinessTypeFilterRequest.setMainAction(ConstantType.TYPE_PUT); + List bussinessTypeEntities; + bussinessTypeEntities = basicBussinessTypeService.filterList(bussinessTypeFilterRequest); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setList(bussinessTypeEntities); + return ResultVOUtils.success(pageSimpleResponse); + } + } diff --git a/src/main/java/com/glxp/api/controller/inv/InvRemindSetController.java b/src/main/java/com/glxp/api/controller/inv/InvRemindSetController.java index 8097bd7d..f7d7fde3 100644 --- a/src/main/java/com/glxp/api/controller/inv/InvRemindSetController.java +++ b/src/main/java/com/glxp/api/controller/inv/InvRemindSetController.java @@ -1,5 +1,6 @@ package com.glxp.api.controller.inv; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageInfo; import com.glxp.api.common.enums.ResultEnum; @@ -59,6 +60,9 @@ public class InvRemindSetController { */ @PostMapping("/udiwms/inv/remind/set/batchAddInvRemindSet") public BaseResponse batchAddInvRemindSet(@RequestBody AddInvRemindSetRequest addInvRemindSetRequest) { + if (null == addInvRemindSetRequest || CollUtil.isEmpty(addInvRemindSetRequest.getRelIdList())) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } return invRemindSetService.batchAddInvRemindSet(addInvRemindSetRequest); } diff --git a/src/main/java/com/glxp/api/controller/purchase/SupCertController.java b/src/main/java/com/glxp/api/controller/purchase/SupCertController.java index a7d6c9c1..9ff760e9 100644 --- a/src/main/java/com/glxp/api/controller/purchase/SupCertController.java +++ b/src/main/java/com/glxp/api/controller/purchase/SupCertController.java @@ -444,8 +444,8 @@ public class SupCertController { supData.put("index", String.valueOf(i)); supData.put("name", obj.getName() == null ? ' ' : obj.getName()); supData.put("code", obj.getCode() == null ? ' ' : obj.getCode()); - supData.put("vaiDate", formatter.format(obj.getVailDate())); - supData.put("expireDate", formatter.format(obj.getExpireDate())); + supData.put("vaiDate", obj.getVailDate() == null ? ' ' : formatter.format(obj.getVailDate())); + supData.put("expireDate", obj.getExpireDate() == null ? ' ' : formatter.format(obj.getExpireDate())); supData.put("status", obj.getStatus() == 0 ? "有效" : "失效"); supData.put("auditStatus", getAuditStatus(obj.getAuditStatus())); supData.put("remark2", obj.getRemark() == null ? ' ' : obj.getRemark()); @@ -510,8 +510,8 @@ public class SupCertController { supData.put("index", String.valueOf(i)); supData.put("name", obj.getName() == null ? ' ' : obj.getName()); supData.put("code", obj.getCode() == null ? ' ' : obj.getCode()); - supData.put("vaiDate", formatter.format(obj.getVailDate())); - supData.put("expireDate", formatter.format(obj.getExpireDate())); + supData.put("vaiDate", obj.getVailDate() == null ? ' ' : formatter.format(obj.getVailDate())); + supData.put("expireDate", obj.getExpireDate() == null ? ' ' : formatter.format(obj.getExpireDate())); supData.put("status", obj.getStatus() == 0 ? "有效" : "失效"); supData.put("auditStatus", getAuditStatus(obj.getAuditStatus())); supData.put("remark2", obj.getRemark() == null ? ' ' : obj.getRemark()); diff --git a/src/main/java/com/glxp/api/controller/purchase/SupManufacturerController.java b/src/main/java/com/glxp/api/controller/purchase/SupManufacturerController.java index 5915aa33..f85349ec 100644 --- a/src/main/java/com/glxp/api/controller/purchase/SupManufacturerController.java +++ b/src/main/java/com/glxp/api/controller/purchase/SupManufacturerController.java @@ -114,7 +114,7 @@ public class SupManufacturerController { if (supManufacturerEntity.getAuditStatus() == ConstantStatus.AUDIT_CHANGE || supManufacturerEntity.getAuditStatus() == ConstantStatus.AUDIT_UN) { //判断是否上级供应商是否审核通过 SupCompanyEntity supCompanyEntity = supCompanyService.findCompany(supManufacturerEntity.getCustomerId()); - if (supCompanyEntity.getAuditStatus() != ConstantStatus.AUDIT_PASS + if (supCompanyEntity.getAuditStatus()==null || supCompanyEntity.getAuditStatus() != ConstantStatus.AUDIT_PASS ) { return ResultVOUtils.error(500, "所属配送企业资质未通过审核,暂时无法提交!"); } diff --git a/src/main/java/com/glxp/api/controller/sync/SpsSyncDownloadController.java b/src/main/java/com/glxp/api/controller/sync/SpsSyncDownloadController.java new file mode 100644 index 00000000..248193e7 --- /dev/null +++ b/src/main/java/com/glxp/api/controller/sync/SpsSyncDownloadController.java @@ -0,0 +1,48 @@ +package com.glxp.api.controller.sync; + +import cn.hutool.core.collection.CollUtil; +import com.glxp.api.annotation.AuthRuleAnnotation; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.constant.ConstantStatus; +import com.glxp.api.entity.sync.BasicExportStatusEntity; +import com.glxp.api.req.sync.SpsSyncDataRequest; +import com.glxp.api.res.sync.SpsSyncOrderResponse; +import com.glxp.api.service.sync.BasicExportService; +import com.glxp.api.service.sync.SpsSyncDownloadService; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +@RestController +public class SpsSyncDownloadController { + + @Resource + SpsSyncDownloadService spsSyncDownloadService; + @Resource + BasicExportService basicExportService; + + @AuthRuleAnnotation("") + @GetMapping("sps/sync/order") + public BaseResponse findOrder(SpsSyncDataRequest spsSyncDataRequest) { + BaseResponse baseResponse = spsSyncDownloadService.findOrder(spsSyncDataRequest); + BasicExportStatusEntity basicExportStatusEntity = basicExportService.findByData(ConstantStatus.SYNC_SCAN_ORDER, 0); + String logs = ""; + if (basicExportStatusEntity != null) { + logs = logs + "单据:" + baseResponse.getData().getOrderEntities().size() + "条\n"; + if (CollUtil.isNotEmpty(baseResponse.getData().getOrderDetailBizEntities())) + logs = logs + "单据详情:" + baseResponse.getData().getOrderDetailBizEntities().size() + "条\n"; + if (CollUtil.isNotEmpty(baseResponse.getData().getCodeEntities())) + logs = logs + "单据条码信息:" + baseResponse.getData().getCodeEntities().size() + "条\n"; + + basicExportStatusEntity.setRemark(logs); + basicExportService.updateExportStatus(basicExportStatusEntity); + SpsSyncOrderResponse spsSyncOrderResponse = baseResponse.getData(); + spsSyncOrderResponse.setTaskId(basicExportStatusEntity.getId()); + baseResponse.setData(spsSyncOrderResponse); + } + return baseResponse; + } + +} + diff --git a/src/main/java/com/glxp/api/controller/thrsys/ThrProductsAddDiController.java b/src/main/java/com/glxp/api/controller/thrsys/ThrProductsAddDiController.java index 98427c13..33e51b16 100644 --- a/src/main/java/com/glxp/api/controller/thrsys/ThrProductsAddDiController.java +++ b/src/main/java/com/glxp/api/controller/thrsys/ThrProductsAddDiController.java @@ -219,8 +219,7 @@ public class ThrProductsAddDiController { udiProductEntity.setBasicPrductRemak6(thrProductsAddDiResponse.getBasicPrductRemak6()); udiProductEntity.setBasicPrductRemak7(thrProductsAddDiResponse.getBasicPrductRemak7()); udiProductEntity.setBasicPrductRemak8(thrProductsAddDiResponse.getBasicPrductRemak8()); - udiProductService.updateUdiInfo(udiProductEntity); - + udiProductService.updateUdiInfoByUuid(udiProductEntity); UdiRelevanceEntity udiRelevanceEntity1 = new UdiRelevanceEntity(); BeanUtils.copyProperties(udiRelevanceEntity, udiRelevanceEntity1); udiRelevanceService.updateUdiRelevance(udiRelevanceEntity1); @@ -250,12 +249,11 @@ public class ThrProductsAddDiController { } } } - } } - return ResultVOUtils.success(); + return ResultVOUtils.success("更新成功"); } /** diff --git a/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java b/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java index 9ba457a3..9567cc3c 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java @@ -226,4 +226,9 @@ public class IoOrderEntity { @TableField(value = "inCodeStatus") private int inCodeStatus; //内部码生成状态 + @TableField(value = "relKey") + private String relKey; //关联单据唯一键 + @TableField(value = "suppleCount") + private Integer suppleCount; //补单次数 + } diff --git a/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java b/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java index 9906eb77..cac24226 100644 --- a/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java +++ b/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java @@ -176,5 +176,6 @@ public class FilterOrderRequest extends ListPageRequest { private Integer busType; private Integer inCodeStatus; + private String relKey; } diff --git a/src/main/java/com/glxp/api/res/inout/IoOrderResponse.java b/src/main/java/com/glxp/api/res/inout/IoOrderResponse.java index c047b9e7..c64a0fac 100644 --- a/src/main/java/com/glxp/api/res/inout/IoOrderResponse.java +++ b/src/main/java/com/glxp/api/res/inout/IoOrderResponse.java @@ -1,6 +1,7 @@ package com.glxp.api.res.inout; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.annotation.TableField; import lombok.Data; import java.util.Date; @@ -229,6 +230,9 @@ public class IoOrderResponse { private Integer busType; //1:正常;2:送货;3.到货 + private String relKey; //关联单据唯一键 + private Integer suppleCount; //补单次数 + public String getFromName() { diff --git a/src/main/java/com/glxp/api/res/sync/SpsSyncOrderResponse.java b/src/main/java/com/glxp/api/res/sync/SpsSyncOrderResponse.java new file mode 100644 index 00000000..c10f855c --- /dev/null +++ b/src/main/java/com/glxp/api/res/sync/SpsSyncOrderResponse.java @@ -0,0 +1,22 @@ +package com.glxp.api.res.sync; + +import com.glxp.api.entity.inout.*; +import lombok.Data; + +import java.util.List; + +@Data +public class SpsSyncOrderResponse { + + //同步任务ID + private String taskId; + List orderEntities; + List codeEntities; + List orderDetailBizEntities; + List orderDetailCodeEntities; + List orderDetailResultEntities; + + + + +} diff --git a/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java index e1dcaa9a..e61da7c5 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java @@ -222,11 +222,11 @@ public class BasicBussinessTypeServiceImpl implements IBasicBussinessTypeService if (StrUtil.isNotEmpty(deliveryInstock) && deliveryInstock.equals("1")) { bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() .eq("mainAction", ConstantType.TYPE_PUT).eq("corpType", ConstantStatus.CORP_TYPE_OUT) - .gt("spUse", 0).eq("enable", true)); + .gt("spUse", 1).eq("enable", true)); } else { bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() .eq("mainAction", ConstantType.TYPE_PUT).eq("corpType", ConstantStatus.CORP_TYPE_OUT) - .gt("spUse", 0).eq("inStock", false).eq("enable", true)); + .gt("spUse", 1).eq("inStock", false).eq("enable", true)); } break; @@ -240,7 +240,7 @@ public class BasicBussinessTypeServiceImpl implements IBasicBussinessTypeService case Constant.ORDER_ACTION_SUP_DELAUDIT: //供应商审核送货单 bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() .eq("mainAction", ConstantType.TYPE_PUT).eq("corpType", ConstantStatus.CORP_TYPE_OUT) - .gt("spUse", 0).eq("enable", true)); + .gt("spUse", 1).eq("enable", true)); break; case Constant.ORDER_ACTION_SUP_INOUT: //供应商查询出入库单 diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvRemindSetServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvRemindSetServiceImpl.java index a520c462..e2cf2965 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvRemindSetServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvRemindSetServiceImpl.java @@ -161,12 +161,13 @@ public class InvRemindSetServiceImpl implements InvRemindSetService { InvRemindSetEntity invRemindSetEntity = invRemindSetDao.selectOne(new QueryWrapper() .eq("invCode", addInvRemindSetRequest.getInvCode()) .eq(StrUtil.isNotBlank(addInvRemindSetRequest.getInvSpaceCode()), "invSpaceCode", addInvRemindSetRequest.getInvSpaceCode()) - .eq(StrUtil.isNotBlank(addInvRemindSetRequest.getRelId()), "relId", addInvRemindSetRequest.getRelId()) + .eq("relId", relId) .eq(StrUtil.isNotBlank(addInvRemindSetRequest.getGgxh()), "ggxh", addInvRemindSetRequest.getGgxh()) ); if (null == invRemindSetEntity) { invRemindSetEntity = new InvRemindSetEntity(); BeanUtil.copyProperties(addInvRemindSetRequest, invRemindSetEntity); + invRemindSetEntity.setRelId(relId); verifySetParams(invRemindSetEntity); setUpdateInfo(invRemindSetEntity); invRemindSetDao.insert(invRemindSetEntity); @@ -184,10 +185,13 @@ public class InvRemindSetServiceImpl implements InvRemindSetService { //查询有无相同设置,有则更新时间 InvRemindSetEntity invRemindSetEntity = invRemindSetDao.selectOne(new QueryWrapper() .eq("invCode", addInvRemindSetRequest.getInvCode()) - .eq(StrUtil.isNotBlank(addInvRemindSetRequest.getInvSpaceCode()), "invSpaceCode", addInvRemindSetRequest.getInvSpaceCode())); + .eq(StrUtil.isNotBlank(addInvRemindSetRequest.getInvSpaceCode()), "invSpaceCode", addInvRemindSetRequest.getInvSpaceCode()) + .isNull("relId") + ); if (null == invRemindSetEntity) { invRemindSetEntity = new InvRemindSetEntity(); BeanUtil.copyProperties(addInvRemindSetRequest, invRemindSetEntity); + invRemindSetEntity.setStatus(1); setUpdateInfo(invRemindSetEntity); invRemindSetDao.insert(invRemindSetEntity); } else { diff --git a/src/main/java/com/glxp/api/service/sync/SpsSyncDownloadService.java b/src/main/java/com/glxp/api/service/sync/SpsSyncDownloadService.java new file mode 100644 index 00000000..48bb1153 --- /dev/null +++ b/src/main/java/com/glxp/api/service/sync/SpsSyncDownloadService.java @@ -0,0 +1,204 @@ +package com.glxp.api.service.sync; + +import cn.hutool.core.collection.CollUtil; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.constant.BasicProcessStatus; +import com.glxp.api.constant.ConstantStatus; +import com.glxp.api.entity.inout.*; +import com.glxp.api.entity.sync.BasicExportStatusEntity; +import com.glxp.api.entity.sync.BasicExportStatusTimeEntity; +import com.glxp.api.entity.sync.SyncDataBustypeEntity; +import com.glxp.api.req.inout.FilterOrderRequest; +import com.glxp.api.req.sync.SpsSyncDataRequest; +import com.glxp.api.res.sync.SpsSyncOrderResponse; +import com.glxp.api.res.system.SyncDataSetResponse; +import com.glxp.api.service.inout.*; +import com.glxp.api.util.CustomUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Slf4j +@Service +public class SpsSyncDownloadService { + + + //已完成扫码单据 + @Resource + IoOrderService orderService; + @Resource + IoCodeService codesService; + @Resource + SyncDataSetService syncDataSetService; + @Resource + IoOrderDetailBizService orderDetailBizService; + @Resource + IoOrderDetailCodeService orderDetailCodeService; + @Resource + IoOrderDetailResultService orderDetailResultService; + @Resource + BasicExportService basicExportService; + @Resource + BasicExportTimeService basicExportTimeService; + + public void syncOrderUpdateTime() { + + log.info("创建单据同步任务"); + //自动创建要求被下载已完成单据任务 + BasicExportStatusEntity basicExportStatusEntity1 = basicExportService.findByData(ConstantStatus.SYNC_SCAN_ORDER, 0); + if (basicExportStatusEntity1 == null) { + BaseResponse baseResponse = findOrder(getRequest(ConstantStatus.SYNC_SCAN_ORDER)); + SpsSyncOrderResponse syncOrderResponse = baseResponse.getData(); + if (CollUtil.isNotEmpty(syncOrderResponse.getOrderEntities())) { + 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); + } + } + } + + + public BaseResponse findOrder(SpsSyncDataRequest spsSyncDataRequest) { + SpsSyncOrderResponse syncOrderResponse = new SpsSyncOrderResponse(); + //查询数据同步设置 + SyncDataSetResponse syncDataSetEntity = syncDataSetService.selectSet(); + List orderEntities = new ArrayList<>(); + + + //待校验 + if (syncDataSetEntity.isOrderUnCheck()) { + FilterOrderRequest orderFilterRequest = new FilterOrderRequest(); + BeanUtils.copyProperties(spsSyncDataRequest, orderFilterRequest); + + if (CollUtil.isNotEmpty(syncDataSetEntity.getBusTypes())) { + for (SyncDataBustypeEntity syncDataBustypeEntity : syncDataSetEntity.getBusTypes()) { + List filterList = new ArrayList<>(); + filterList.add(syncDataBustypeEntity.getAction()); + orderFilterRequest.setActions(filterList); + orderFilterRequest.setStatus(ConstantStatus.ORDER_STATUS_CHECK); + List temps = orderService.filterOrderList(orderFilterRequest); + if (CollUtil.isNotEmpty(temps)) { + orderEntities.addAll(temps); + } + } + } + } + + //待核对 + if (syncDataSetEntity.isOrderUnCheck()) { + FilterOrderRequest orderFilterRequest = new FilterOrderRequest(); + BeanUtils.copyProperties(spsSyncDataRequest, orderFilterRequest); + + if (CollUtil.isNotEmpty(syncDataSetEntity.getBusTypes())) { + for (SyncDataBustypeEntity syncDataBustypeEntity : syncDataSetEntity.getBusTypes()) { + List filterList = new ArrayList<>(); + filterList.add(syncDataBustypeEntity.getAction()); + orderFilterRequest.setActions(filterList); + orderFilterRequest.setStatus(ConstantStatus.ORDER_STATUS_CHECK_SUCCESS); + List temps = orderService.filterOrderList(orderFilterRequest); + if (CollUtil.isNotEmpty(temps)) { + orderEntities.addAll(temps); + } + } + } + + } + + //待审核 + if (syncDataSetEntity.isOrderUnReceive()) { + FilterOrderRequest orderFilterRequest = new FilterOrderRequest(); + BeanUtils.copyProperties(spsSyncDataRequest, orderFilterRequest); + + if (CollUtil.isNotEmpty(syncDataSetEntity.getBusTypes())) { + for (SyncDataBustypeEntity syncDataBustypeEntity : syncDataSetEntity.getBusTypes()) { + List filterList = new ArrayList<>(); + filterList.add(syncDataBustypeEntity.getAction()); + orderFilterRequest.setActions(filterList); + orderFilterRequest.setStatus(ConstantStatus.ORDER_STATUS_CHECK_REW); + List temps = orderService.filterOrderList(orderFilterRequest); + if (CollUtil.isNotEmpty(temps)) { + orderEntities.addAll(temps); + } + } + } + } + + //已完成 + if (syncDataSetEntity.isOrderScanFinish()) { + FilterOrderRequest orderFilterRequest = new FilterOrderRequest(); + BeanUtils.copyProperties(spsSyncDataRequest, orderFilterRequest); + + if (CollUtil.isNotEmpty(syncDataSetEntity.getBusTypes())) { + for (SyncDataBustypeEntity syncDataBustypeEntity : syncDataSetEntity.getBusTypes()) { + List filterList = new ArrayList<>(); + filterList.add(syncDataBustypeEntity.getAction()); + orderFilterRequest.setActions(filterList); + orderFilterRequest.setStatus(ConstantStatus.ORDER_STATUS_AUDITED); + List temps = orderService.filterOrderList(orderFilterRequest); + if (CollUtil.isNotEmpty(temps)) { + orderEntities.addAll(temps); + } + } + } + } + + + syncOrderResponse.setOrderEntities(orderEntities); + List codeEntities = new ArrayList<>(); + List orderDetailBizEntities = new ArrayList<>(); + List orderDetailCodeEntities = new ArrayList<>(); + List orderDetailResultEntities = new ArrayList<>(); + if (CollUtil.isNotEmpty(orderEntities)) { + for (IoOrderEntity orderEntity : orderEntities) { + + List codes = codesService.findByOrderId(orderEntity.getBillNo()); + if (CollUtil.isNotEmpty(codes)) { + codeEntities.addAll(codes); + } + + List bizEntities = orderDetailBizService.findByOrderId(orderEntity.getBillNo()); + if (CollUtil.isNotEmpty(bizEntities)) { + orderDetailBizEntities.addAll(bizEntities); + } + + + List detailCodeEntities = orderDetailCodeService.findByOrderId(orderEntity.getBillNo()); + if (CollUtil.isNotEmpty(detailCodeEntities)) { + orderDetailCodeEntities.addAll(detailCodeEntities); + } + + + List detailResultEntities = orderDetailResultService.findByOrderId(orderEntity.getBillNo()); + if (CollUtil.isNotEmpty(detailResultEntities)) { + orderDetailResultEntities.addAll(detailResultEntities); + } + } + } + + syncOrderResponse.setOrderDetailBizEntities(orderDetailBizEntities); + syncOrderResponse.setOrderDetailCodeEntities(orderDetailCodeEntities); + syncOrderResponse.setOrderDetailResultEntities(orderDetailResultEntities); + return ResultVOUtils.success(syncOrderResponse); + } + + public SpsSyncDataRequest getRequest(String type) { + SpsSyncDataRequest spsSyncDataRequest = new SpsSyncDataRequest(); + spsSyncDataRequest.setPage(1); + spsSyncDataRequest.setLimit(1); + BasicExportStatusTimeEntity basicExportStatusTimeEntity = basicExportTimeService.findByType(type); + spsSyncDataRequest.setLastUpdateTime(basicExportStatusTimeEntity.getLastUpdateTime()); + return spsSyncDataRequest; + } +} diff --git a/src/main/java/com/glxp/api/task/AsyncHeartTask.java b/src/main/java/com/glxp/api/task/AsyncHeartTask.java new file mode 100644 index 00000000..c1d3eafa --- /dev/null +++ b/src/main/java/com/glxp/api/task/AsyncHeartTask.java @@ -0,0 +1,76 @@ +package com.glxp.api.task; + +import com.glxp.api.dao.schedule.ScheduledDao; +import com.glxp.api.entity.system.ScheduledEntity; +import com.glxp.api.req.system.ScheduledRequest; +import com.glxp.api.res.system.SyncDataSetResponse; +import com.glxp.api.service.basic.BasicBackUpdateProductService; +import com.glxp.api.service.sync.SpsSyncDownloadService; +import com.glxp.api.service.sync.SyncDataSetService; +import com.glxp.api.util.RedisUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.support.CronTrigger; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + + +@Component +@EnableScheduling +public class AsyncHeartTask implements SchedulingConfigurer { + + final Logger logger = LoggerFactory.getLogger(AsyncHeartTask.class); + @Resource + protected ScheduledDao scheduledDao; + @Resource + RedisUtil redisUtil; + @Resource + private SyncDataSetService syncDataSetService; + @Resource + SpsSyncDownloadService spsSyncDownloadService; + + @Override + public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { + + scheduledTaskRegistrar.addTriggerTask(() -> process(), + triggerContext -> { + ScheduledRequest scheduledRequest = new ScheduledRequest(); + scheduledRequest.setCronName("heartTask"); + ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest); + String cron = scheduledEntity.getCron(); + if (cron.isEmpty()) { + logger.error("cron is null"); + } + return new CronTrigger(cron).nextExecutionTime(triggerContext); + }); + } + + + private void process() { + + SyncDataSetResponse syncDataSetEntity = syncDataSetService.selectSet(); + if (syncDataSetEntity.isDownstreamEnable()) { + + //定时同步单据最近更新数据至任务表,等待下载 + if (syncDataSetEntity.getOrderSyncTime() != null) { + long timeInterval = syncDataSetEntity.getOrderSyncTime() * 60 * 1000; + long curTime = System.currentTimeMillis(); + Long lastTime = (Long) redisUtil.get("SPS_ORDER_SYNC_GEN_DATA"); + if (lastTime == null) { + lastTime = System.currentTimeMillis(); + redisUtil.set("SPS_ORDER_SYNC_GEN_DATA", lastTime); + } + if (curTime - lastTime > timeInterval) { + spsSyncDownloadService.syncOrderUpdateTime(); + redisUtil.set("SPS_ORDER_SYNC_GEN_DATA", curTime); + } + } + } + } + + +} diff --git a/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml b/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml index feea458e..5c544687 100644 --- a/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml +++ b/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml @@ -1090,7 +1090,7 @@ diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml b/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml index dd5c7cfd..fcd2f40e 100644 --- a/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml @@ -49,6 +49,11 @@ AND inCodeStatus = #{inCodeStatus} + + + AND relKey = #{relKey} + + AND date_format(createTime, '%Y-%m-%d') between date_format(#{startTime}, '%Y-%m-%d') and date_format(#{endTime}, '%Y-%m-%d') diff --git a/src/main/resources/mybatis/mapper/inv/invProductDao.xml b/src/main/resources/mybatis/mapper/inv/invProductDao.xml index 0b2e3bf1..7243cfaa 100644 --- a/src/main/resources/mybatis/mapper/inv/invProductDao.xml +++ b/src/main/resources/mybatis/mapper/inv/invProductDao.xml @@ -316,11 +316,13 @@ ip.deptCode, ip.invCode from inv_product ip - inner join basic_udirel on ip.relIdFk = basic_udirel.id - inner join basic_products bp on basic_udirel.uuid = bp.uuid - left join basic_corp on ip.supId = basic_corp.erpId - left join auth_dept on auth_dept.code = ip.deptCode - left join auth_warehouse on auth_warehouse.code = ip.invCode + inner join basic_udirel on ip.relIdFk = basic_udirel.id + inner join basic_products bp on basic_udirel.uuid = bp.uuid + left join basic_corp on ip.supId = basic_corp.erpId + left join auth_dept on auth_dept.code = ip.deptCode + left join auth_warehouse on auth_warehouse.code = ip.invCode + left join inv_product_detail ipd on ip.invCode = ipd.invCode and ip.relIdFk = ipd.relId and + ifnull(ip.batchNo, 'empty') = ifnull(ipd.batchNo, 'empty') bp.diType = 1 @@ -371,6 +373,9 @@ AND basic_corp.name like concat('%', #{supName}, '%') + + AND ipd.invSpaceCode = #{invSpaceCode} + group by ip.relIdFk order by ip.updateTime desc diff --git a/src/main/resources/schemas/schema_v2.1.sql b/src/main/resources/schemas/schema_v2.1.sql index 6e140f6e..faa62d1c 100644 --- a/src/main/resources/schemas/schema_v2.1.sql +++ b/src/main/resources/schemas/schema_v2.1.sql @@ -6,6 +6,9 @@ CALL Pro_Temp_ColumnWork('io_order', 'busType', 'tinyint ', 1); CALL Pro_Temp_ColumnWork('io_order', 'deliveryStatus', 'tinyint ', 1); CALL Pro_Temp_ColumnWork('io_order', 'inCodeStatus', 'tinyint ', 1); CALL Pro_Temp_ColumnWork('io_order', 'processStatus', 'tinyint ', 1); + +CALL Pro_Temp_ColumnWork('io_order', 'suppleCount', 'tinyint ', 1); + CALL Pro_Temp_ColumnWork('io_code_lost', 'nameCode', 'varchar(255) ', 1); CALL Pro_Temp_ColumnWork('thr_bustype_origin', 'thirdSysName', 'varchar(255) ', 3);