From ca7720b25d7a6a1a777de355e9ba80936b577525 Mon Sep 17 00:00:00 2001 From: Rui_Li <877258667@qq.com> Date: Tue, 8 Feb 2022 15:06:04 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=93=E6=9D=9F=E6=B4=BE=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=20=E5=90=8E=E5=8F=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ScheduleController.java | 30 ++ .../schedule/data/SearchScheduleData.java | 9 + .../schedule/service/ScheduleService.java | 18 ++ .../service/impl/ScheduleServiceImpl.java | 263 ++++++++++++++++++ 4 files changed, 320 insertions(+) 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 2a21d86..e15062b 100644 --- a/src/main/java/com/gaotao/modules/schedule/controller/ScheduleController.java +++ b/src/main/java/com/gaotao/modules/schedule/controller/ScheduleController.java @@ -922,4 +922,34 @@ public class ScheduleController { .put("rows", resultList); } + /** + * @Author LR + * @Description 派工单结束检查 + * @DateTime 2022/2/8 9:56 + * @Param [inData] + * @return com.gaotao.common.utils.R + **/ + @RequestMapping(value = "checkFinishScheduleWithNoFqc") + public R checkFinishScheduleWithNoFqc(@RequestBody SearchScheduleData inData) { + Map resultMap = scheduleService.checkFinishScheduleWithNoFqc(inData); + return R.ok() + .put("code", 200) + .put("msg", "操作成功!") + .put("resultMap", resultMap); + } + /** + * @Author LR + * @Description 结束非FQC的派工单 + * @DateTime 2022/2/8 11:24 + * @Param [inData] + * @return com.gaotao.common.utils.R + **/ + @RequestMapping(value = "finishScheduleWithNoFqc") + public R finishScheduleWithNoFqc(@RequestBody SearchScheduleData inData) { + scheduleService.finishScheduleWithNoFqc(inData); + return R.ok() + .put("code", 200) + .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 f090606..514e487 100644 --- a/src/main/java/com/gaotao/modules/schedule/data/SearchScheduleData.java +++ b/src/main/java/com/gaotao/modules/schedule/data/SearchScheduleData.java @@ -95,6 +95,7 @@ public class SearchScheduleData extends BaseData { private String showNoFinishedTimeFlag;//显示时间 private String showNoFinishedToolFlag;//显示工具 private String showNoFinishedMaterialFlag;//显示材料 + private String autoTool;//是否自动处理工具 public SearchScheduleData() { @@ -635,4 +636,12 @@ public class SearchScheduleData extends BaseData { public void setShowNoFinishedMaterialFlag(String showNoFinishedMaterialFlag) { this.showNoFinishedMaterialFlag = showNoFinishedMaterialFlag; } + + public String getAutoTool() { + return autoTool; + } + + public void setAutoTool(String autoTool) { + this.autoTool = autoTool; + } } \ 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 4304644..088e71d 100644 --- a/src/main/java/com/gaotao/modules/schedule/service/ScheduleService.java +++ b/src/main/java/com/gaotao/modules/schedule/service/ScheduleService.java @@ -519,4 +519,22 @@ public interface ScheduleService { * @return java.util.List **/ List getSfdcMaterialHistBySeqNo(SearchScheduleData inData); + + /** + * @Author LR + * @Description 派工单结束检查 + * @DateTime 2022/2/8 10:01 + * @Param [inData] + * @return java.util.Map + **/ + Map checkFinishScheduleWithNoFqc(SearchScheduleData inData); + + /** + * @Author LR + * @Description 结束非FQC的派工单 + * @DateTime 2022/2/8 11:24 + * @Param [inData] + * @return void + **/ + void finishScheduleWithNoFqc(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 5e8c189..829647e 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 @@ -2203,7 +2203,270 @@ public class ScheduleServiceImpl implements ScheduleService { return scheduleMapper.getSfdcMaterialHistBySeqNo(inData); } + @Override + public Map checkFinishScheduleWithNoFqc(SearchScheduleData inData) { + //公共参数 + String site = inData.getSite(); + String orderNo = inData.getOrderNo(); + Integer itemNo = inData.getItemNo(); + String seqNo = inData.getSeqNo(); + String scheduledDate = inData.getScheduledDate(); + String shiftDesc = inData.getShiftDesc(); + Float reportedQty = inData.getApprovedQty();//总良品数量 + Float defectedQty = inData.getDefectedQty();//总不良数量 + String autoTool = inData.getAutoTool();//是否自动结束工具记录 + String username = inData.getOperatorId(); + + //调用存储过程 + //1.调用存储过程 派工单 上机卷 班次的检验 + Map checkMap = this.checkFinishScheduleWithScheduleOpsShift(site, orderNo, itemNo, seqNo, scheduledDate, shiftDesc); + //区分是否抛出异常的信息 + String checkCode = String.valueOf(checkMap.get("resultCode")); + if ("400".equalsIgnoreCase(checkCode)) { + String msg = String.valueOf(checkMap.get("resultMsg")); + throw new RRException(msg); + } + + //2.调用存储过程 校验 是否存在工具记录需要自动处理 + if("N".equalsIgnoreCase(autoTool)){ + Map toolMap = this.checkFinishScheduleSfdcToolHist(site, orderNo, itemNo, seqNo); + //区分是否抛出异常的信息 + String toolCode = String.valueOf(toolMap.get("resultCode")); + if ("400".equalsIgnoreCase(toolCode)) { + String msg = String.valueOf(toolMap.get("resultMsg")); + throw new RRException(msg); + } + } + //3. 调用存储过程 校验 辅料的使用量 + Map resultMap = this.checkFinishScheduleWithNotKeyRm(site, orderNo, itemNo, seqNo, reportedQty, defectedQty, 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; + } + + /** + * @Author LR + * @Description 调用存储过程 校验 是否存在工具记录需要自动处理 + * @DateTime 2022/2/8 13:35 + * @Param [site, orderNo, itemNo, seqNo] + * @return java.util.Map + **/ + public Map checkFinishScheduleSfdcToolHist(String site, String orderNo, Integer itemNo, String seqNo) { + List params = new ArrayList<>(); + params.add(site); + params.add(orderNo); + params.add(itemNo); + params.add(seqNo); + //调用存储过程 + List> resultList = procedureMapper.getProcedureData("checkFinishScheduleSfdcToolHist", params); + //处理返回的结果 + return resultList.get(0); + } + + /** + * @Author LR + * @Description 调用存储过程 校验 辅料的使用量 + * @DateTime 2022/2/8 10:51 + * @Param [site, orderNo, itemNo, seqNo, scheduledDate, shiftDesc] + * @return java.util.Map + **/ + public Map checkFinishScheduleWithNotKeyRm(String site, String orderNo, Integer itemNo, String seqNo, Float reportedQty, Float defectedQty, String username) { + List params = new ArrayList<>(); + params.add(site); + params.add(orderNo); + params.add(itemNo); + params.add(seqNo); + params.add(reportedQty); + params.add(defectedQty); + params.add(username); + //调用存储过程 + List> resultList = procedureMapper.getProcedureData("checkFinishScheduleWithNotKeyRm", params); + //处理返回的结果 + return resultList.get(0); + } + /** + * @Author LR + * @Description 调用存储过程 检验 派工单 上级卷 班次信息 + * @DateTime 2022/2/8 10:45 + * @Param [site, orderNo, itemNo, seqNo, scheduledDate, shiftDesc] + * @return java.util.Map + **/ + public Map checkFinishScheduleWithScheduleOpsShift(String site, String orderNo, Integer itemNo, String seqNo, String scheduledDate, String shiftDesc) { + List params = new ArrayList<>(); + params.add(site); + params.add(orderNo); + params.add(itemNo); + params.add(seqNo); + params.add(scheduledDate); + params.add(shiftDesc); + //调用存储过程 + List> resultList = procedureMapper.getProcedureData("checkFinishScheduleWithScheduleOpsShift", params); + //处理返回的结果 + return resultList.get(0); + } + @Override + @Transactional + public void finishScheduleWithNoFqc(SearchScheduleData inData) { + //公共参数 + String site = inData.getSite(); + String orderNo = inData.getOrderNo(); + Integer itemNo = inData.getItemNo(); + String seqNo = inData.getSeqNo(); + String scheduledDate = inData.getScheduledDate(); + String shiftDesc = inData.getShiftDesc(); + Float reportedQty = inData.getApprovedQty();//总良品数量 + Float defectedQty = inData.getDefectedQty();//总不良数量 + String username = inData.getOperatorId(); + String reportedTime = inData.getReportedTime(); + String exceptionFlag = inData.getExceptionFlag(); + String exceptionReason = inData.getExceptionReason(); + + //1.调用检查的方法 + this.checkFinishScheduleWithNoFqc(inData); + + //调用结束派工单的存储过程 + // 1. 调用存储过程 处理工具的信息 + this.finishScheduleProcessSfdcToolHist(site, orderNo, itemNo, seqNo, reportedTime); + // 2. 调用存储过程 处理时间的信息 + Map timeMap = this.finishScheduleProcessSfdcTimeHist(site, orderNo, itemNo, seqNo, username, reportedTime); + //获取最后的序号 + int histSeqNo = Integer.parseInt(String.valueOf(timeMap.get("histSeqNo"))); + //3.调用存储过程处理 材料历史记录数据 以及原材料的数据 + this.finishScheduleProcessSfdcMaterialHist(site, orderNo, itemNo, seqNo, reportedTime); + //4.调用存储过程处理 派工单和sfdc的信息 + this.finishScheduleProcessSfdcAndSchedule(site, orderNo, itemNo, seqNo, histSeqNo, shiftDesc, username, reportedTime, scheduledDate); + //5.调用存储过程处理 transHeader TransDetail TransDetailSub数据 + this.finishScheduleProcessTransData(site, orderNo, itemNo, seqNo, username, reportedTime); + //6.调用存储过程 处理异常信息 + if ("Y".equalsIgnoreCase(exceptionFlag)) { + this.finishScheduleProcessException(site, orderNo, itemNo, seqNo, exceptionReason, username, reportedTime); + } + //7.调用SAP 处理程序 + //8.反写交易记录表的SAP交易号 + } + + /** + * @Author LR + * @Description + * @DateTime 2022/2/8 14:18 + * @Param [site, orderNo, itemNo, seqNo, exceptionReason, username] + * @return void + **/ + public void finishScheduleProcessException(String site, String orderNo, Integer itemNo, String seqNo, String exceptionReason, String username, String reportedTime) { + List params = new ArrayList<>(); + params.add(site); + params.add(orderNo); + params.add(itemNo); + params.add(seqNo); + params.add(exceptionReason); + params.add(username); + params.add(reportedTime); + //执行存储过程 + procedureMapper.execProduceData("finishScheduleProcessException", params); + } + + /** + * @Author LR + * @Description 调用存储过程处理 transHeader TransDetail TransDetailSub数据 + * @DateTime 2022/2/8 14:12 + * @Param [site, orderNo, itemNo, seqNo, username, reportedTime] + * @return void + **/ + public void finishScheduleProcessTransData(String site, String orderNo, Integer itemNo, String seqNo, String username, String reportedTime) { + List params = new ArrayList<>(); + params.add(site); + params.add(orderNo); + params.add(itemNo); + params.add(seqNo); + params.add(username); + params.add(reportedTime); + //调用存储过程 + procedureMapper.getProcedureData("finishScheduleProcessTransData", params); + } + + /** + * @Author LR + * @Description 调用存储过程处理 派工单和sfdc的信息 + * @DateTime 2022/2/8 14:09 + * @Param [site, orderNo, itemNo, seqNo, histSeqNo, shiftDesc, username, reportedTime, scheduledDate] + * @return void + **/ + public void finishScheduleProcessSfdcAndSchedule(String site, String orderNo, Integer itemNo, String seqNo, int histSeqNo, String shiftDesc, String username, String reportedTime, String scheduledDate) { + List params = new ArrayList<>(); + params.add(site); + params.add(orderNo); + params.add(itemNo); + params.add(seqNo); + params.add(histSeqNo); + params.add(shiftDesc); + params.add(username); + params.add(reportedTime); + params.add(scheduledDate); + //调用存储过程 + procedureMapper.getProcedureData("finishScheduleProcessSfdcAndSchedule", params); + } + + /** + * @Author LR + * @Description 调用存储过程 处理材料上机和原材料表的数据 + * @DateTime 2022/2/8 13:56 + * @Param [site, orderNo, itemNo, seqNo, reportedTime] + * @return void + **/ + public void finishScheduleProcessSfdcMaterialHist(String site, String orderNo, Integer itemNo, String seqNo, String reportedTime) { + List params = new ArrayList<>(); + params.add(site); + params.add(orderNo); + params.add(itemNo); + params.add(seqNo); + params.add(reportedTime); + //调用存储过程 + procedureMapper.getProcedureData("finishScheduleProcessSfdcToolHist", params); + } + + /** + * @Author LR + * @Description 调用存储过程处理时间的记录 并且返回最后一条的序号histSeqNo + * @DateTime 2022/2/8 13:43 + * @Param [site, orderNo, itemNo, seqNo, username, reportedTime] + * @return java.util.Map + **/ + public Map finishScheduleProcessSfdcTimeHist(String site, String orderNo, Integer itemNo, String seqNo, String username, String reportedTime) { + List params = new ArrayList<>(); + params.add(site); + params.add(orderNo); + params.add(itemNo); + params.add(seqNo); + params.add(username); + params.add(reportedTime); + //调用存储过程 + List> resultList = procedureMapper.getProcedureData("finishScheduleProcessSfdcTimeHist", params); + //处理返回的结果 + return resultList.get(0); + } + + /** + * @Author LR + * @Description 处理工具的信息 + * @DateTime 2022/2/8 13:25 + * @Param [site, orderNo, itemNo, seqNo, reportedTime] + * @return java.util.Map + **/ + public void finishScheduleProcessSfdcToolHist(String site, String orderNo, Integer itemNo, String seqNo, String reportedTime) { + List params = new ArrayList<>(); + params.add(site); + params.add(orderNo); + params.add(itemNo); + params.add(seqNo); + params.add(reportedTime); + //调用存储过程 + procedureMapper.getProcedureData("finishScheduleProcessSfdcToolHist", params); + } } \ No newline at end of file