diff --git a/src/main/java/com/gaotao/modules/schedule/controller/ScheduleController.java b/src/main/java/com/gaotao/modules/schedule/controller/ScheduleController.java index 71a76f7..5995180 100644 --- a/src/main/java/com/gaotao/modules/schedule/controller/ScheduleController.java +++ b/src/main/java/com/gaotao/modules/schedule/controller/ScheduleController.java @@ -1154,5 +1154,37 @@ public class ScheduleController { .put("msg", "操作成功!"); } + /** + * @Author LR + * @Description 校验是否可以合并卷 + * @DateTime 2022/2/20 16:24 + * @Param [inData] + * @return com.gaotao.common.utils.R + **/ + @RequestMapping(value = "checkMergeSfdcRoll") + public R checkMergeSfdcRoll(@RequestBody SearchScheduleData inData) { + Map resultMap = scheduleService.checkMergeSfdcRoll(inData); + return R.ok() + .put("code", 200) + .put("msg", "操作成功!") + .put("resultMap", resultMap); + } + + /** + * @Author LR + * @Description 合并sfdc卷数据 + * @DateTime 2022/2/20 16:37 + * @Param [inData] + * @return com.gaotao.common.utils.R + **/ + @RequestMapping(value = "processMergeSfdcRoll") + public R processMergeSfdcRoll(@RequestBody SearchScheduleData inData){ + scheduleService.processMergeSfdcRoll(inData); + return R.ok() + .put("code", 200) + .put("success", true) + .put("msg", "操作成功!"); + } + } diff --git a/src/main/java/com/gaotao/modules/schedule/data/SearchScheduleData.java b/src/main/java/com/gaotao/modules/schedule/data/SearchScheduleData.java index 3629666..4927af0 100644 --- a/src/main/java/com/gaotao/modules/schedule/data/SearchScheduleData.java +++ b/src/main/java/com/gaotao/modules/schedule/data/SearchScheduleData.java @@ -99,8 +99,10 @@ public class SearchScheduleData extends BaseData { private Float transQty;//交易的数量 private String oriRollNo;//原始卷号 private String newRollNo;//新切换的卷号 + private Float newRollQty;//新卷的数量 private Float rollQty;//当前卷的良品数量 private Integer rollNums;//当前卷的数量 + private boolean newRollFlag;//是否是新卷 public SearchScheduleData() { } @@ -688,4 +690,20 @@ public class SearchScheduleData extends BaseData { public void setRollNums(Integer rollNums) { this.rollNums = rollNums; } + + public Float getNewRollQty() { + return newRollQty; + } + + public void setNewRollQty(Float newRollQty) { + this.newRollQty = newRollQty; + } + + public boolean isNewRollFlag() { + return newRollFlag; + } + + public void setNewRollFlag(boolean newRollFlag) { + this.newRollFlag = newRollFlag; + } } \ No newline at end of file diff --git a/src/main/java/com/gaotao/modules/schedule/service/ScheduleService.java b/src/main/java/com/gaotao/modules/schedule/service/ScheduleService.java index 1cac655..0376220 100644 --- a/src/main/java/com/gaotao/modules/schedule/service/ScheduleService.java +++ b/src/main/java/com/gaotao/modules/schedule/service/ScheduleService.java @@ -652,4 +652,22 @@ public interface ScheduleService { * @return void **/ void finishPartRollWithNoFqc(Map inMap); + + /** + * @Author LR + * @Description 校验是否可以合并卷 + * @DateTime 2022/2/20 16:25 + * @Param [inData] + * @return java.util.Map + **/ + Map checkMergeSfdcRoll(SearchScheduleData inData); + + /** + * @Author LR + * @Description 合并sfdc卷数据 + * @DateTime 2022/2/20 16:37 + * @Param [inData] + * @return void + **/ + void processMergeSfdcRoll(SearchScheduleData inData); } \ No newline at end of file diff --git a/src/main/java/com/gaotao/modules/schedule/service/impl/ScheduleServiceImpl.java b/src/main/java/com/gaotao/modules/schedule/service/impl/ScheduleServiceImpl.java index bb0917f..57e3993 100644 --- a/src/main/java/com/gaotao/modules/schedule/service/impl/ScheduleServiceImpl.java +++ b/src/main/java/com/gaotao/modules/schedule/service/impl/ScheduleServiceImpl.java @@ -3081,13 +3081,8 @@ public class ScheduleServiceImpl implements ScheduleService { Integer itemNo = pageData.getItemNo(); String seqNo = pageData.getSeqNo(); String rollNo = pageData.getRollNo(); - String username = pageData.getOperatorId(); Float approvedQty = pageData.getApprovedQty(); Float editReportQty = pageData.getSfdcReportedQty(); - Float editTotalReportQty = pageData.getTotalQty();//总数量 - Float editTotalApprovedQty = pageData.getApprovedQty();//总量数量 - Float otherRollQty = pageData.getOtherRollQty(); - Float editNewRollQty = pageData.getEditNewRollQty(); String scheduledDate = pageData.getScheduledDate(); String shiftDesc = pageData.getShiftDesc(); String shiftNo = pageData.getShiftNo(); @@ -3224,5 +3219,155 @@ public class ScheduleServiceImpl implements ScheduleService { procedureMapper.execProduceData("finishPartRollProcessSfdcAndSchedule", params); } + @Override + public Map checkMergeSfdcRoll(SearchScheduleData inData) { + //公共参数 + String site = inData.getSite(); + String orderNo = inData.getOrderNo(); + Integer itemNo = inData.getItemNo(); + String seqNo = inData.getSeqNo(); + String rollNo = inData.getRollNo(); + Float rollQty = inData.getRollQty(); + String newRollNo = inData.getNewRollNo(); + Float newRollQty = inData.getNewRollQty(); + boolean newRollFlag = inData.isNewRollFlag(); + Float editReportQty = inData.getSfdcReportedQty(); + String username = inData.getOperatorId(); + //1.先校验的存储过程 + Map checkMap = this.checkMergeSfdcRoll(site, orderNo, itemNo, seqNo, rollNo, newRollNo, rollQty, newRollQty, "N"); + //判断是否检验成功 + String checkCode = String.valueOf(checkMap.get("resultCode")); + if ("400".equalsIgnoreCase(checkCode)) { + String msg = String.valueOf(checkMap.get("resultMsg")); + throw new RRException(msg); + } + + //2.存储过程 区分当前卷和参与合并的卷 + if (newRollFlag){ + Map resultMap = this.checkMergeSfdcRollQty(site, orderNo, newRollNo, newRollQty, "N"); + //判断是否检验成功 + String resultCode = String.valueOf(resultMap.get("resultCode")); + if ("400".equalsIgnoreCase(resultCode)) { + String msg = String.valueOf(resultMap.get("resultMsg")); + throw new RRException(msg); + } + return resultMap; + }else { + Map resultMap = this.checkMergeSfdcRollQty(site, orderNo, rollNo, rollQty, "N"); + //判断是否检验成功 + String resultCode = String.valueOf(resultMap.get("resultCode")); + if ("400".equalsIgnoreCase(resultCode)) { + String msg = String.valueOf(resultMap.get("resultMsg")); + throw new RRException(msg); + } + return resultMap; + } + } + + /** + * @Author LR + * @Description 存储过程 校验是否合并卷 + * @DateTime 2022/2/20 16:44 + * @Param [site, orderNo, itemNo, seqNo, rollNo, newRollNo, rollQty, newRollQty, n] + * @return java.util.Map + **/ + public Map checkMergeSfdcRoll(String site, String orderNo, Integer itemNo, String seqNo, String rollNo, String newRollNo, + Float rollQty, Float newRollQty, String rePackFlag) { + List params = new ArrayList<>(); + params.add(site); + params.add(orderNo); + params.add(itemNo); + params.add(seqNo); + params.add(rollNo); + params.add(newRollNo); + params.add(rollQty); + params.add(newRollQty); + params.add(rePackFlag); + //调用存储过程 + List> resultList = procedureMapper.getProcedureData("combineroll_check", params); + //处理返回的结果 + return resultList.get(0); + } + + /** + * @Author LR + * @Description 校验是否可以合并卷 + * @DateTime 2022/2/20 16:34 + * @Param [site, orderNo, newRollNo, newRollQty, n] + * @return java.util.Map + **/ + public Map checkMergeSfdcRollQty(String site, String orderNo, String rollNo, Float rollQty, String rePackFlag) { + List params = new ArrayList<>(); + params.add(site); + params.add(orderNo); + params.add(rollNo); + params.add(rollQty); + params.add(rePackFlag); + //调用存储过程 + List> resultList = procedureMapper.getProcedureData("combineroll_check_isoverqty", params); + //处理返回的结果 + return resultList.get(0); + } + + + @Override + @Transactional + public void processMergeSfdcRoll(SearchScheduleData inData) { + //公共参数 + String site = inData.getSite(); + String orderNo = inData.getOrderNo(); + Integer itemNo = inData.getItemNo(); + String seqNo = inData.getSeqNo(); + String rollNo = inData.getRollNo(); + Float rollQty = inData.getRollQty(); + String newRollNo = inData.getNewRollNo(); + Float newRollQty = inData.getNewRollQty(); + boolean newRollFlag = inData.isNewRollFlag(); + Float editReportQty = inData.getSfdcReportedQty(); + String username = inData.getOperatorId(); + + //1.先校验当前卷 + inData.setNewRollFlag(false); + Map oldMap = this.checkMergeSfdcRoll(inData); + //2.后校验合并的新卷 + inData.setNewRollFlag(true); + Map newMap = this.checkMergeSfdcRoll(inData); + + //校验完成调用存储过程 + Map resultMap = this.processMergeSfdcRoll(site, orderNo, itemNo, seqNo, rollNo, newRollNo, rollQty, newRollQty, "N", "", username); + //判断是否检验成功 + String resultCode = String.valueOf(resultMap.get("resultCode")); + if ("400".equalsIgnoreCase(resultCode)) { + String msg = String.valueOf(resultMap.get("resultMsg")); + throw new RRException(msg); + } + } + /** + * @Author LR + * @Description 执行存储过程 + * @DateTime 2022/2/20 17:05 + * @Param [site, orderNo, itemNo, seqNo, rollNo, newRollNo, rollQty, newRollQty, rePackFlag, userId, username] + * @return java.util.Map + **/ + public Map processMergeSfdcRoll(String site, String orderNo, Integer itemNo, String seqNo, String rollNo, String newRollNo, Float rollQty, + Float newRollQty, String rePackFlag, String userId, String username) { + List params = new ArrayList<>(); + params.add(site); + params.add(orderNo); + params.add(itemNo); + params.add(seqNo); + params.add(rollNo); + params.add(newRollNo); + params.add(rollQty); + params.add(newRollQty); + params.add(rePackFlag); + params.add(userId); + params.add(username); + //调用存储过程 + List> resultList = procedureMapper.getProcedureData("combineroll_action", params); + //处理返回的结果 + return resultList.get(0); + } + } \ No newline at end of file