diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/app/PmsCommonRes.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/app/PmsCommonRes.java new file mode 100644 index 00000000..e4c02e54 --- /dev/null +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/app/PmsCommonRes.java @@ -0,0 +1,36 @@ +package com.ruoyi.quartz.domain.app; + + +public class PmsCommonRes { + + + private Integer code; + + private String message; + + public Object value; + + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public Object getValue() { + return value; + } + + public void setValue(Object value) { + this.value = value; + } +} diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/app/PmsInComplete.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/app/PmsInComplete.java index ffe1d28d..3749bec0 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/app/PmsInComplete.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/app/PmsInComplete.java @@ -39,8 +39,6 @@ public class PmsInComplete { private String receiveAddress; - private List detailList; - public String getCrmOrder() { return crmOrder; } @@ -161,11 +159,4 @@ public class PmsInComplete { this.receiveAddress = receiveAddress; } - public List getDetailList() { - return detailList; - } - - public void setDetailList(List detailList) { - this.detailList = detailList; - } } diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/app/PmsInFeedBack.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/app/PmsInFeedBack.java new file mode 100644 index 00000000..3bb9a94a --- /dev/null +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/app/PmsInFeedBack.java @@ -0,0 +1,28 @@ +package com.ruoyi.quartz.domain.app; + +import java.util.List; + +public class PmsInFeedBack { + + + private PmsInComplete headerInfo; + + private List detailList; + + + public PmsInComplete getHeaderInfo() { + return headerInfo; + } + + public void setHeaderInfo(PmsInComplete headerInfo) { + this.headerInfo = headerInfo; + } + + public List getDetailList() { + return detailList; + } + + public void setDetailList(List detailList) { + this.detailList = detailList; + } +} diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/app/PmsOutFeedBack.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/app/PmsOutFeedBack.java new file mode 100644 index 00000000..1805933e --- /dev/null +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/app/PmsOutFeedBack.java @@ -0,0 +1,17 @@ +package com.ruoyi.quartz.domain.app; + +/** + * PMS 出库反馈接口 + */ +public class PmsOutFeedBack { + + private PmsOutFeedBackRecordList recordList; + + public PmsOutFeedBackRecordList getRecordList() { + return recordList; + } + + public void setRecordList(PmsOutFeedBackRecordList recordList) { + this.recordList = recordList; + } +} diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/app/PmsOutFeedBackRecordList.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/app/PmsOutFeedBackRecordList.java new file mode 100644 index 00000000..35c13e84 --- /dev/null +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/app/PmsOutFeedBackRecordList.java @@ -0,0 +1,35 @@ +package com.ruoyi.quartz.domain.app; + +public class PmsOutFeedBackRecordList { + + + private Integer amount; + + private String businessOrder; + + private String materialsNo; + + public Integer getAmount() { + return amount; + } + + public void setAmount(Integer amount) { + this.amount = amount; + } + + public String getBusinessOrder() { + return businessOrder; + } + + public void setBusinessOrder(String businessOrder) { + this.businessOrder = businessOrder; + } + + public String getMaterialsNo() { + return materialsNo; + } + + public void setMaterialsNo(String materialsNo) { + this.materialsNo = materialsNo; + } +} diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/TaskExecutor.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/TaskExecutor.java index d8f7349d..492a18a4 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/TaskExecutor.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/TaskExecutor.java @@ -2,12 +2,11 @@ package com.ruoyi.quartz.task; import com.alibaba.fastjson2.JSON; import com.ruoyi.app.domain.*; +import com.ruoyi.quartz.domain.app.*; import com.ruoyi.app.service.*; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.http.HttpUtils; import com.ruoyi.common.utils.uuid.IdUtils; -import com.ruoyi.quartz.domain.app.WcsCommonRes; -import com.ruoyi.quartz.domain.app.WcsStackerTaskReq; import com.ruoyi.system.service.ISysConfigService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -220,7 +219,30 @@ public class TaskExecutor { appPendingStorageService.deleteAppPendingStorageByRecordId(pendingStorage.getRecordId()); // 删除码盘数据 // 如果是PMS入库则发送PMS入库完成 if(pendingStorage.getStorageType().compareTo(2) == 0) { - + PmsInFeedBack pmsInFeedBack = new PmsInFeedBack(); + PmsInComplete pmsInComplete = new PmsInComplete(); + pmsInComplete.setCrmOrder(pendingStorage.getListId()); + pmsInComplete.setSapCode("2290"); + pmsInComplete.setInArea(""); + pmsInComplete.setInLocation(""); + pmsInComplete.setOutArea(""); + pmsInComplete.setOutLocation(""); + pmsInFeedBack.setHeaderInfo(pmsInComplete); + List pmsInCompleteDetails = new ArrayList<>(); + PmsInCompleteDetail pmsInCompleteDetail = new PmsInCompleteDetail(); + pmsInCompleteDetail.setMaterialNo(pendingStorage.getGoodsId()); + pmsInCompleteDetail.setMaterialName(pendingStorage.getGoodsDesc()); + pmsInCompleteDetail.setAmount(pendingStorage.getGoodsNum().intValue()); + pmsInCompleteDetail.setUnit(pendingStorage.getUnit()); + pmsInCompleteDetail.setBarcode(pendingStorage.getGoodsCode()); + pmsInCompleteDetails.add(pmsInCompleteDetail); + pmsInFeedBack.setDetailList(pmsInCompleteDetails); + String url = sysConfigService.selectConfigByKey("pms.intComplete"); + if (StringUtils.isEmpty(url)) { + return; + } + PmsCommonRes pmsCommonRes = JSON.parseObject(HttpUtils.sendPost(url, JSON.toJSONString(pmsInFeedBack)), PmsCommonRes.class); + logger.info("pms入库反馈请求信息:{},结果:{}", JSON.toJSONString(pmsInFeedBack), JSON.toJSONString(pmsCommonRes)); } } @@ -261,8 +283,29 @@ public class TaskExecutor { return; } for (AppStock stock : appStocks) { - appStockService.deleteAppStockByStockId(stock.getStockId()); + int deleteAppStockByStockId = appStockService.deleteAppStockByStockId(stock.getStockId()); logger.info("删除库存:{}", JSON.toJSONString(stock)); + if(deleteAppStockByStockId > 0) { + AppTask updateRemark = new AppTask(); + updateRemark.setTaskId(task.getTaskId()); + updateRemark.setRemark("出库完成"); + appTaskService.updateAppTask(updateRemark); // 更新备注信息 + AppTaskBak appTaskBak = new AppTaskBak(); + BeanUtils.copyProperties(task, appTaskBak); + logger.info("出库任务数据归档成功。{}", JSON.toJSONString(appTaskBak)); + } + // 调用 pms 接口 + PmsOutFeedBack pmsOutFeedBack = new PmsOutFeedBack(); + PmsOutFeedBackRecordList recordList = new PmsOutFeedBackRecordList(); + recordList.setAmount(task.getOpNum().intValue()); + recordList.setBusinessOrder(task.getOrderId()); + recordList.setMaterialsNo(task.getGoodsId()); + String url = sysConfigService.selectConfigByKey("pms.outComplete"); + if (StringUtils.isEmpty(url)) { + return; + } + PmsCommonRes pmsCommonRes = JSON.parseObject(HttpUtils.sendPost(url, JSON.toJSONString(recordList)), PmsCommonRes.class); + logger.info("pms出库反馈请求信息:{},结果:{}", JSON.toJSONString(recordList), JSON.toJSONString(pmsCommonRes)); } } // 如果小于的话就不做处理 diff --git a/ruoyi-system/src/main/java/com/ruoyi/app/domain/AppTask.java b/ruoyi-system/src/main/java/com/ruoyi/app/domain/AppTask.java index 3cd4cb2d..edf28411 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/app/domain/AppTask.java +++ b/ruoyi-system/src/main/java/com/ruoyi/app/domain/AppTask.java @@ -21,6 +21,16 @@ public class AppTask extends BaseEntity /** 任务号 */ private String taskId; + private String orderId; + + public String getOrderId() { + return orderId; + } + + public void setOrderId(String orderId) { + this.orderId = orderId; + } + /** 任务类型 */ @Excel(name = "任务类型") private Integer taskType;