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 4de1178..30f11f7 100644 --- a/src/main/java/com/gaotao/modules/schedule/controller/ScheduleController.java +++ b/src/main/java/com/gaotao/modules/schedule/controller/ScheduleController.java @@ -1122,4 +1122,35 @@ public class ScheduleController { } + /** + * @Author LR + * @Description 产量报告 --检查报告一部分卷数量 + * @DateTime 2022/2/18 17:31 + * @Param [inMap] + * @return com.gaotao.common.utils.R + **/ + @RequestMapping(value = "checkFinishPartRollWithNoFqc") + public R checkFinishPartRollWithNoFqc(@RequestBody Map inMap){ + Map resultMap = scheduleService.checkFinishPartRollWithNoFqc(inMap); + return R.ok() + .put("resultMap", resultMap); + } + + /** + * @Author LR + * @Description 产量报告 --提前报告一部分卷数量 + * @DateTime 2022/2/18 17:31 + * @Param [inMap] + * @return com.gaotao.common.utils.R + **/ + @RequestMapping(value = "finishPartRollWithNoFqc") + public R finishPartRollWithNoFqc(@RequestBody Map inMap){ + scheduleService.finishPartRollWithNoFqc(inMap); + return R.ok() + .put("code", 200) + .put("success", true) + .put("msg", "操作成功!"); + } + + } 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 1b3a2a6..4b71712 100644 --- a/src/main/java/com/gaotao/modules/schedule/service/ScheduleService.java +++ b/src/main/java/com/gaotao/modules/schedule/service/ScheduleService.java @@ -635,4 +635,22 @@ public interface ScheduleService { * @return void **/ void processFinishMaterialWithNoRemainder(SearchScheduleData inData); + + /** + * @Author LR + * @Description 产量报告 --检查报告一部分卷数量 + * @DateTime 2022/2/18 17:32 + * @Param [inMap] + * @return java.util.Map + **/ + Map checkFinishPartRollWithNoFqc(Map inMap); + + /** + * @Author LR + * @Description 产量报告 --提前报告一部分卷数量 + * @DateTime 2022/2/18 17:32 + * @Param [inMap] + * @return void + **/ + void finishPartRollWithNoFqc(Map inMap); } \ 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 3d2f184..c44ce78 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 @@ -3069,5 +3069,119 @@ public class ScheduleServiceImpl implements ScheduleService { return resultList.get(0); } + @Override + public Map checkFinishPartRollWithNoFqc(Map inMap) { + String strPageData = String.valueOf(inMap.get("pageData")); + SearchScheduleData pageData = JSON.parseObject(strPageData, SearchScheduleData.class); + String strSfdcMaterialList = String.valueOf(inMap.get("materialList")); + List sfdcMaterialList = JSON.parseArray(strSfdcMaterialList, SfdcMaterialData.class); + //公共参数 + String site = pageData.getSite(); + String orderNo = pageData.getOrderNo(); + 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(); + + //判断报工的数量是否为正整数 + Double remainderQty = approvedQty % 1.0; + if (remainderQty > 0) { + throw new RRException("总良品数量不允许输入小数!"); + } + + //首先检查材料是否可以开始生产 + Map materialMap = this.checkCompleteMaterialRoll(site, orderNo, itemNo, seqNo, rollNo); + //判断是否可以 + String materialCode = String.valueOf(materialMap.get("resultCode")); + if (!"200".equalsIgnoreCase(materialCode)) { + String materialMsg = String.valueOf(materialMap.get("resultMsg")); + throw new RRException(materialMsg); + } + + //其次检查工具是否可以开始生产 + Map toolMap = this.checkCompleteToolId(site, orderNo, itemNo, seqNo, rollNo); + //判断是否可以 + String toolCode = String.valueOf(materialMap.get("resultCode")); + if (!"200".equalsIgnoreCase(toolCode)) { + String toolMsg = String.valueOf(toolMap.get("resultMsg")); + throw new RRException(toolMsg); + } + + //判断是否有主材上机 + if (sfdcMaterialList.size() == 0) { + throw new RRException("为扫描主材不可结束卷!"); + } + //1.调用存储过程 校验工单 派工单 上机卷 信息是否符合条件 + Map checkMap1 = this.checkFinishRollWithScheduleOpsShift(site, orderNo, itemNo, seqNo, rollNo, scheduledDate, shiftNo); + //判断是否检验成功 + String code1 = String.valueOf(checkMap1.get("resultCode")); + if ("400".equalsIgnoreCase(code1)) { + String msg = String.valueOf(checkMap1.get("resultMsg")); + throw new RRException(msg); + } + + //2.调用存储过程 校验是否可以下机卷 + Map checkMap2 = this.checkFinishRollWithSfdcRoll(site, orderNo, itemNo, seqNo, rollNo); + //判断是否检验成功 + String code2 = String.valueOf(checkMap2.get("resultCode")); + if ("400".equalsIgnoreCase(code2)) { + String msg = String.valueOf(checkMap2.get("resultMsg")); + throw new RRException(msg); + } + + //3.调用存储过程 校验不同工序间数量大小 + Map checkMap3 = this.checkFinishRollWithSoRoutingQty(site, orderNo, itemNo, editReportQty); + //判断是否检验成功 + String code3 = String.valueOf(checkMap3.get("resultCode")); + if ("400".equalsIgnoreCase(code3)) { + String msg = String.valueOf(checkMap3.get("resultMsg")); + throw new RRException(msg); + } + + //4.调用存储过程 上机的主材依次校验 + //先循环验证参数是否符合规则 + for (int i = 0; i < sfdcMaterialList.size(); i++) { + SfdcMaterialData sfdcMaterialData = sfdcMaterialList.get(0); + Float transQty = sfdcMaterialData.getTransQty(); + Float netIssueQty = sfdcMaterialData.getNetIssueQty(); + Integer histSeqNo = sfdcMaterialData.getHistSeqNo(); + //判断是否符合规则 + if (netIssueQty == null) { + throw new RRException("材料上本卷耗用数量不能为空!"); + } + if (netIssueQty <= 0) { + throw new RRException("材料上本卷耗用数量必须大于0!"); + } + if (netIssueQty > transQty) { + throw new RRException("材料上本卷耗用数量大于发料数量!"); + } + //调用存储过程校验每一个卷的数量 + Map resultMap = this.checkFinishRollWithSfdcMaterialHist(site, orderNo, itemNo, rollNo, seqNo, editTotalReportQty, otherRollQty, editNewRollQty, netIssueQty, histSeqNo, username); + //区分是否抛出异常的信息 + String resultCode = String.valueOf(resultMap.get("resultCode")); + if ("400".equalsIgnoreCase(resultCode)) { + String msg = String.valueOf(resultMap.get("resultMsg")); + throw new RRException(msg); + } + return resultMap; + } + return null; + } + + @Override + @Transactional + public void finishPartRollWithNoFqc(Map inMap) { + + } + } \ No newline at end of file