From a48b90837fe03c422853e14d76b5b51f8d1a24d0 Mon Sep 17 00:00:00 2001 From: Rui_Li <877258667@qq.com> Date: Wed, 26 Jan 2022 18:02:17 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=93=E6=9D=9F=E5=8D=B7=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ScheduleController.java | 63 +- .../schedule/data/SearchScheduleData.java | 172 ++++++ .../schedule/service/ScheduleService.java | 39 +- .../service/impl/ScheduleServiceImpl.java | 572 ++++++++++++++---- .../mapper/schedule/ScheduleMapper.xml | 4 +- 5 files changed, 676 insertions(+), 174 deletions(-) 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 9a41c95..3fdd64c 100644 --- a/src/main/java/com/gaotao/modules/schedule/controller/ScheduleController.java +++ b/src/main/java/com/gaotao/modules/schedule/controller/ScheduleController.java @@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.text.ParseException; import java.util.List; import java.util.Map; @@ -432,7 +433,7 @@ public class ScheduleController { * @return com.gaotao.common.utils.R **/ @RequestMapping(value = "getScheduleShiftData") - public R getScheduleShiftData(@RequestBody SearchScheduleData inData){ + public R getScheduleShiftData(@RequestBody SearchScheduleData inData) throws ParseException { Map result = scheduleService.getScheduleShiftData(inData); return R.ok() .put("code", 200) @@ -752,36 +753,6 @@ public class ScheduleController { .put("msg", "操作成功!"); } - /** - * TODO 检查是否可以结束卷操作 - * @author LR - * @date 2022/1/13 16:55 - * @param inMap - * @return com.gaotao.common.utils.R - **/ - @RequestMapping(value = "checkFinishRoll") - public R checkFinishRoll(@RequestBody Map inMap){ - Map resultMap = scheduleService.checkFinishRoll(inMap); - return R.ok() - .put("resultMap", resultMap); - } - - /** - * TODO 结束卷操作 - * @author LR - * @date 2022/1/13 17:38 - * @param inMap - * @return com.gaotao.common.utils.R - **/ - @RequestMapping(value = "finishRoll") - public R finishRoll(@RequestBody Map inMap){ - scheduleService.finishRoll(inMap); - return R.ok() - .put("code", 200) - .put("success", true) - .put("msg", "操作成功!"); - } - /** * TODO 工具的使用的数量 * @author LR @@ -859,4 +830,34 @@ public class ScheduleController { .put("msg", "操作成功!"); } + /** + * @Author LR 结束卷校验--非FQC和最后一道 + * @Description + * @DateTime 2022/1/25 13:30 + * @Param [inMap] + * @return com.gaotao.common.utils.R + **/ + @RequestMapping(value = "checkFinishRollWithNoFqc") + public R checkFinishRollWithNoFqc(@RequestBody Map inMap){ + Map resultMap = scheduleService.checkFinishRollWithNoFqc(inMap); + return R.ok() + .put("resultMap", resultMap); + } + + /** + * TODO 结束卷操作--非FQC和最后一道 + * @author LR + * @date 2022/1/19 14:46 + * @param inMap + * @return com.gaotao.common.utils.R + **/ + @RequestMapping(value = "finishRollNoWithNoFqc") + public R finishRollNoWithNoFqc(@RequestBody Map inMap){ + scheduleService.finishRollNoWithNoFqc(inMap); + 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 a733d06..6461b69 100644 --- a/src/main/java/com/gaotao/modules/schedule/data/SearchScheduleData.java +++ b/src/main/java/com/gaotao/modules/schedule/data/SearchScheduleData.java @@ -68,11 +68,31 @@ public class SearchScheduleData extends BaseData { private Float defectQty;//不良的数量 private String toolInstanceId;//工具实例的编码 private String shiftNo;//班次信息 + private String shiftDesc;//班次信息 private Float approvedQty;//良品的总数量 private String reportedTime;//组合好的日期 private String oriToolInstanceId;//原工具实例的编码 private Float consumeQty;//使用的数量 private Float downTimeQty;//停机的时长 + private Float sfdcReportedQty;//报告数量 + private Float totalQty;//总数量 + private Float otherRollQty;//其他卷的数量 + private Float editNewRollQty; // 未生产的下机拆卷 + private Float sfdcApprovedQty;//合格数量 + private Float defectedQty;//不良的数量 + private Float sfdcSetupTime;//调机时间 + private Float sfdcProdTime;//生产时间 + private Float sfdcDownTime;//停机时间 + private String eventTime;//开工时间 + private String tillTime;//完工时间 + private String scheduledDate;//排产时间 + private String remark;//备注 + private Float sfdcSetupDownTime;//调机停机 + private Float sfdcProdSetupTime;//生产调机 + private Float sfdcManufactureTime;//制造时间 + private String exceptionFlag;//异常标记 + private String exceptionReason;//异常的原因 + public SearchScheduleData() { } @@ -405,6 +425,14 @@ public class SearchScheduleData extends BaseData { this.shiftNo = shiftNo; } + public String getShiftDesc() { + return shiftDesc; + } + + public void setShiftDesc(String shiftDesc) { + this.shiftDesc = shiftDesc; + } + public Float getApprovedQty() { return approvedQty; } @@ -436,4 +464,148 @@ public class SearchScheduleData extends BaseData { public void setDownTimeQty(Float downTimeQty) { this.downTimeQty = downTimeQty; } + + public Float getSfdcReportedQty() { + return sfdcReportedQty; + } + + public void setSfdcReportedQty(Float sfdcReportedQty) { + this.sfdcReportedQty = sfdcReportedQty; + } + + public Float getTotalQty() { + return totalQty; + } + + public void setTotalQty(Float totalQty) { + this.totalQty = totalQty; + } + + public Float getOtherRollQty() { + return otherRollQty; + } + + public void setOtherRollQty(Float otherRollQty) { + this.otherRollQty = otherRollQty; + } + + public Float getEditNewRollQty() { + return editNewRollQty; + } + + public void setEditNewRollQty(Float editNewRollQty) { + this.editNewRollQty = editNewRollQty; + } + + public Float getSfdcApprovedQty() { + return sfdcApprovedQty; + } + + public void setSfdcApprovedQty(Float sfdcApprovedQty) { + this.sfdcApprovedQty = sfdcApprovedQty; + } + + public Float getDefectedQty() { + return defectedQty; + } + + public void setDefectedQty(Float defectedQty) { + this.defectedQty = defectedQty; + } + + public Float getSfdcSetupTime() { + return sfdcSetupTime; + } + + public void setSfdcSetupTime(Float sfdcSetupTime) { + this.sfdcSetupTime = sfdcSetupTime; + } + + public Float getSfdcProdTime() { + return sfdcProdTime; + } + + public void setSfdcProdTime(Float sfdcProdTime) { + this.sfdcProdTime = sfdcProdTime; + } + + public Float getSfdcDownTime() { + return sfdcDownTime; + } + + public void setSfdcDownTime(Float sfdcDownTime) { + this.sfdcDownTime = sfdcDownTime; + } + + public String getEventTime() { + return eventTime; + } + + public void setEventTime(String eventTime) { + this.eventTime = eventTime; + } + + public String getTillTime() { + return tillTime; + } + + public void setTillTime(String tillTime) { + this.tillTime = tillTime; + } + + public String getScheduledDate() { + return scheduledDate; + } + + public void setScheduledDate(String scheduledDate) { + this.scheduledDate = scheduledDate; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public Float getSfdcSetupDownTime() { + return sfdcSetupDownTime; + } + + public void setSfdcSetupDownTime(Float sfdcSetupDownTime) { + this.sfdcSetupDownTime = sfdcSetupDownTime; + } + + public Float getSfdcProdSetupTime() { + return sfdcProdSetupTime; + } + + public void setSfdcProdSetupTime(Float sfdcProdSetupTime) { + this.sfdcProdSetupTime = sfdcProdSetupTime; + } + + public Float getSfdcManufactureTime() { + return sfdcManufactureTime; + } + + public void setSfdcManufactureTime(Float sfdcManufactureTime) { + this.sfdcManufactureTime = sfdcManufactureTime; + } + + public String getExceptionFlag() { + return exceptionFlag; + } + + public void setExceptionFlag(String exceptionFlag) { + this.exceptionFlag = exceptionFlag; + } + + public String getExceptionReason() { + return exceptionReason; + } + + public void setExceptionReason(String exceptionReason) { + this.exceptionReason = exceptionReason; + } } \ 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 e557641..e4f003d 100644 --- a/src/main/java/com/gaotao/modules/schedule/service/ScheduleService.java +++ b/src/main/java/com/gaotao/modules/schedule/service/ScheduleService.java @@ -4,6 +4,7 @@ import com.gaotao.modules.schedule.data.*; import com.gaotao.modules.shopOrder.entity.OperatorData; import org.springframework.web.bind.annotation.RequestBody; +import java.text.ParseException; import java.util.List; import java.util.Map; @@ -238,7 +239,7 @@ public interface ScheduleService { * @param inData * @return java.util.Map **/ - Map getScheduleShiftData(SearchScheduleData inData); + Map getScheduleShiftData(SearchScheduleData inData) throws ParseException; /** * TODO 获取sfdc表的时间汇总 @@ -420,24 +421,6 @@ public interface ScheduleService { **/ void endTuningAndStartProduce(Map inMap); - /** - * TODO 检查是否可以结束卷操作 - * @author LR - * @date 2022/1/13 16:56 - * @param inMap - * @return java.util.Map - **/ - Map checkFinishRoll(@RequestBody Map inMap); - - /** - * TODO 结束卷操作 - * @author LR - * @date 2022/1/13 17:39 - * @param inMap - * @return void - **/ - void finishRoll(Map inMap); - /** * TODO 工具的使用的数量 * @author LR @@ -482,4 +465,22 @@ public interface ScheduleService { * @return void **/ void connectMaterialRoll(SearchScheduleData inData); + + /** + * @Author LR 结束卷校验--非FQC和最后一道 + * @Description + * @DateTime 2022/1/25 13:32 + * @Param [inMap] + * @return java.util.Map + **/ + Map checkFinishRollWithNoFqc(Map inMap); + + /** + * @Author LR + * @Description 结束卷操作--非FQC和最后一道 + * @DateTime 2022/1/25 13:33 + * @Param [inMap] + * @return void + **/ + void finishRollNoWithNoFqc(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 449665e..dd30c7e 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 @@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.RequestBody; import javax.jws.soap.SOAPBinding; import java.math.BigDecimal; +import java.text.ParseException; import java.util.*; /** @@ -63,6 +64,14 @@ public class ScheduleServiceImpl implements ScheduleService { if(!searchFlag){ return new ArrayList(); } + //把查询时间结束参数添加一天 + Date planStartTime2 = inData.getPlanStartTime2(); + //判断是否是null + if(planStartTime2 != null){ + planStartTime2 = DateUtils.addDateDays(planStartTime2, 1); + //重置参数 + inData.setPlanStartTime2(planStartTime2); + } return scheduleMapper.getProduceScheduleData(inData); } @@ -196,7 +205,8 @@ public class ScheduleServiceImpl implements ScheduleService { Float totalDowntimeTimeSetup = Float.parseFloat(strTotalDowntimeTimeSetup); //减法算净调机时间 Float totalPureSetupTime = totalSetupTime - totalDowntimeTimeSetup; - + BigDecimal bgTotalPureSetupTime = new BigDecimal(totalPureSetupTime).setScale(2, BigDecimal.ROUND_UP); + totalPureSetupTime = bgTotalPureSetupTime.floatValue(); //处理生产的时间 String strTotalProdTime = String.valueOf(result.get("totalProdTime")); //判断null @@ -352,7 +362,7 @@ public class ScheduleServiceImpl implements ScheduleService { } @Override - public Map getScheduleShiftData(SearchScheduleData inData) { + public Map getScheduleShiftData(SearchScheduleData inData) throws ParseException { //设置查询的条件 inData.setCurrentDate(DateUtil.getStringDate(new Date(), "yyyy-MM-dd")); inData.setCurrentTime(DateUtil.getStringDate(new Date(), "yyyy-MM-dd HH:mm:ss")); @@ -362,7 +372,24 @@ public class ScheduleServiceImpl implements ScheduleService { List> resultList = scheduleMapper.getScheduleShiftData(inData); //判断是否查询到结果数据 if(resultList.size() > 0){ - result = resultList.get(0); + //循环处理数据 + for (int i = 0; i < resultList.size(); i++){ + Map tempMap = resultList.get(i); + Float curTime = Float.parseFloat(String.valueOf(tempMap.get("curTime"))); + Float startTime = Float.parseFloat(String.valueOf(tempMap.get("startTime"))); + Float endTime = Float.parseFloat(String.valueOf(tempMap.get("endTime"))); + //区分各类情况 + if (curTime < startTime){ + result.put("code", "500"); + result.put("shiftDesc", "无班次"); + break; + }else if (curTime >= startTime && curTime <= endTime){ + result = resultList.get(i); + break; + }else{ + result = resultList.get(i); + } + } result.put("code", "200"); }else{ result.put("code", "500"); @@ -1462,125 +1489,6 @@ public class ScheduleServiceImpl implements ScheduleService { procedureMapper.execProduceData("endTuning", params); } - @Override - public Map checkFinishRoll(@RequestBody 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 resourceId = pageData.getResourceId(); - String shiftNo = pageData.getShiftNo(); - Float approvedQty = pageData.getApprovedQty(); - Date scheduleDate = pageData.getScheduleDate(); - String scheduleTime = DateUtil.getStringDate(scheduleDate, "yyyy-MM-dd"); - String reportedTime = pageData.getReportedTime(); - //判断报工的数量是否为正整数 - Double remainderQty = approvedQty % 1.0; - if(remainderQty > 0){ - throw new RRException("总良品数量不允许输入小数!"); - } - //先循环验证参数是否符合规则 - for (int i = 0; i < sfdcMaterialList.size(); i++){ - SfdcMaterialData sfdcMaterialData = sfdcMaterialList.get(0); - Float transQty = sfdcMaterialData.getTransQty(); - Float netIssueQty = sfdcMaterialData.getNetIssueQty(); - //判断是否符合规则 - if (netIssueQty == null){ - throw new RRException("材料上本卷耗用数量不能为空!"); - } - if (netIssueQty <= 0){ - throw new RRException("材料上本卷耗用数量必须大于0!"); - } - if (netIssueQty > transQty){ - 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); - } - - //检查是否可以开始生产 - Map resultMap = this.checkFinishRoll(site, orderNo, itemNo, seqNo, rollNo, scheduleTime, resourceId, shiftNo); - //判断是否是异常 - String resultCode = String.valueOf(resultMap.get("resultCode")); - if ("400".equalsIgnoreCase(resultCode)){ - String resultMsg = String.valueOf(resultMap.get("resultMsg")); - throw new RRException(resultMsg); - } - return resultMap; - } - - /** - * TODO 结束卷校验 - * @author LR - * @date 2022/1/13 18:11 - * @return java.util.Map - **/ - public Map checkFinishRoll(String site, String orderNo, Integer itemNo, String seqNo, String rollNo, String scheduleTime, String resourceId, String shiftNo) { - List params = new ArrayList<>(); - params.add(site); - params.add(orderNo); - params.add(itemNo); - params.add(seqNo); - params.add(rollNo); - params.add(scheduleTime); - params.add(resourceId); - params.add(shiftNo); - //执行存储过程 - List> resultList = procedureMapper.getProcedureData("checkFinishRoll", params); - //返回执行的结果 - return resultList.get(0); - } - - - @Override - @Transactional - public void finishRoll(Map inMap) { - //先验证是否可以结束卷的操作 - this.checkFinishRoll(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(); - Float approvedQty = pageData.getApprovedQty(); - Date scheduleDate = pageData.getScheduleDate(); - String scheduleTime = DateUtil.getStringDate(scheduleDate, "yyyy-MM-dd"); - //判断报工的数量是否为正整数 - Double remainderQty = approvedQty % 1.0; - if(remainderQty > 0){ - throw new RRException("总良品数量不允许输入小数!"); - } - } - @Override public Float countToolUsedQty(SearchScheduleData inData) { Float usedQty = scheduleMapper.countToolUsedQty(inData); @@ -1806,4 +1714,424 @@ public class ScheduleServiceImpl implements ScheduleService { procedureMapper.execProduceData( "connectMaterialRoll", params); } + + @Override + public Map checkFinishRollWithNoFqc(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(); + + //判断报工的数量是否为正整数 + 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, shiftDesc); + //判断是否检验成功 + 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; + } + + /** + * @Author LR + * @Description 存储过程校验 单个材料的校验数据 + * @DateTime 2022/1/25 15:05 + * @Param [site, orderNo, itemNo, rollNo, seqNo, editTotalReportQty, otherRollQty, editNewRollQty, netIssueQty, histSeqNo] + * @return java.util.Map + **/ + public Map checkFinishRollWithSfdcMaterialHist(String site, String orderNo, Integer itemNo, String rollNo, String seqNo, Float editTotalReportQty, Float otherRollQty, + Float editNewRollQty, Float netIssueQty, Integer histSeqNo, String username) { + List params = new ArrayList<>(); + params.add(site); + params.add(orderNo); + params.add(itemNo); + params.add(seqNo); + params.add(rollNo); + params.add(editTotalReportQty); + params.add(otherRollQty); + params.add(editNewRollQty); + params.add(netIssueQty); + params.add(histSeqNo); + params.add(username); + //执行存储过程 + List> resultList = procedureMapper.getProcedureData( "checkFinishRollWithSfdcMaterialHist", params); + //返回执行的结果 + return resultList.get(0); + } + + /** + * @Author LR + * @Description 调用存储过程 校验工单 派工单 上机卷 信息是否符合条件 + * @DateTime 2022/1/25 13:44 + * @Param [site, orderNo, itemNo, seqNo, rollNo] + * @return java.util.Map + **/ + public Map checkFinishRollWithScheduleOpsShift(String site, String orderNo, Integer itemNo, String seqNo, String rollNo, String scheduledDate, String shiftDesc) { + List params = new ArrayList<>(); + params.add(site); + params.add(orderNo); + params.add(itemNo); + params.add(seqNo); + params.add(rollNo); + params.add(scheduledDate); + params.add(shiftDesc); + //执行存储过程 + List> resultList = procedureMapper.getProcedureData( "checkFinishRollWithScheduleOpsShift", params); + //返回执行的结果 + return resultList.get(0); + } + + /** + * @Author LR + * @Description + * @DateTime 2022/1/25 13:55 + * @Param [site, orderNo, itemNo, seqNo, rollNo] + * @return java.util.Map + **/ + public Map checkFinishRollWithSfdcRoll(String site, String orderNo, Integer itemNo, String seqNo, String rollNo) { + List params = new ArrayList<>(); + params.add(site); + params.add(orderNo); + params.add(itemNo); + params.add(seqNo); + params.add(rollNo); + //执行存储过程 + List> resultList = procedureMapper.getProcedureData( "checkFinishRollWithSfdcRoll", params); + //返回执行的结果 + return resultList.get(0); + } + + /** + * @Author LR + * @Description 调用存储过程 校验不同工序间数量大小 + * @DateTime 2022/1/25 14:13 + * @Param [site, orderNo, itemNo, editReportQty] + * @return java.util.Map + **/ + public Map checkFinishRollWithSoRoutingQty(String site, String orderNo, Integer itemNo, Float editReportQty) { + List params = new ArrayList<>(); + params.add(site); + params.add(orderNo); + params.add(itemNo); + params.add(editReportQty); + //执行存储过程 + List> resultList = procedureMapper.getProcedureData( "checkFinishRollWithSoRoutingQty", params); + //返回执行的结果 + return resultList.get(0); + } + + @Override + @Transactional + public void finishRollNoWithNoFqc(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 editTotalReportQty = pageData.getTotalQty();//总数量 + Float totalApprovedQty = pageData.getApprovedQty();//总良数量 + Float otherRollQty = pageData.getOtherRollQty(); + Float defectedQty = pageData.getDefectedQty(); + + Float editNewRollQty = pageData.getEditNewRollQty(); + String reportedTime = pageData.getReportedTime(); + Float sfdcReportedQty = pageData.getSfdcReportedQty();//报告数量 + Float sfdcApprovedQty = pageData.getSfdcApprovedQty();//合格数量 + Float sfdcSetupTime = pageData.getSfdcSetupTime();//调机时间 + Float sfdcProdTime = pageData.getSfdcProdTime(); //生产时间 + Float sfdcDownTime = pageData.getSfdcDownTime();//停机时间 + String eventTime = pageData.getEventTime();//开工时间 + String tillTime = pageData.getTillTime();//完工时间 + String remark = pageData.getRemark();//备注 + Float sfdcSetupDownTime = pageData.getSfdcSetupDownTime();//调机停机 + Float sfdcProdSetupTime = pageData.getSfdcProdSetupTime();//生产调机 + Float sfdcManufactureTime = pageData.getSfdcManufactureTime();//制造时间 + String exceptionFlag = pageData.getExceptionFlag(); + String exceptionReason = pageData.getExceptionReason(); + //首先调用校验的方法 + this.checkFinishRollWithNoFqc(inMap); + + //1.调用存储过程 处理SfdcTimeHist的信息 + this.finishRollProcessSfdcTimeHist(site, orderNo, itemNo, seqNo, rollNo, username, reportedTime); + //2.调用存储过程 处理SfdcToolHist的信息 + this.finishRollProcessSfdcToolHist(site, orderNo, itemNo, seqNo, rollNo, editTotalReportQty, username, reportedTime); + //3.调用存储过程 处理SfdcMaterialHist的信息 --主材 + //循环for循环处理 + for (int i = 0; i < sfdcMaterialList.size(); i++){ + SfdcMaterialData sfdcMaterialData = sfdcMaterialList.get(0); + Float netIssueQty = sfdcMaterialData.getNetIssueQty(); + Integer histSeqNo = sfdcMaterialData.getHistSeqNo(); + this.finishRollProcessSfdcMaterialHistWithKeyRm(site, orderNo, itemNo, seqNo, rollNo, netIssueQty, histSeqNo, username, reportedTime); + } + //4.调用存储过程 处理SfdcMaterialHist的信息 --非主材 + this.finishRollProcessSfdcMaterialHistWithNotKeyRm(site, orderNo, itemNo, seqNo, rollNo, username, reportedTime); + //5.调用存储过程 处理SfdcRoll和SfdcRoollOps + this.finishRollProcessSfdcRollAndOps(site, orderNo, itemNo, seqNo, rollNo, totalApprovedQty, sfdcApprovedQty, defectedQty, username, reportedTime); + //6.调用存储过程 处理Sfdc和派工单 + this.finishRollProcessSfdcAndSchedule(site, orderNo, itemNo, seqNo, rollNo, sfdcReportedQty, sfdcApprovedQty, + sfdcSetupTime, sfdcProdTime, sfdcDownTime, eventTime, tillTime, remark, + sfdcSetupDownTime, sfdcProdSetupTime, defectedQty, sfdcManufactureTime, username); + //7.调用存储过程 处理异常信息 + if("Y".equalsIgnoreCase(exceptionFlag)){ + this.finishRollProcessException(site, orderNo, itemNo, seqNo, rollNo, exceptionReason, username); + } + } + + /** + * @Author LR + * @Description 调用存储过程 处理异常信息 + * @DateTime 2022/1/26 14:00 + * @Param [site, orderNo, itemNo, seqNo, rollNo, exceptionReason] + * @return void + **/ + public void finishRollProcessException(String site, String orderNo, Integer itemNo, String seqNo, String rollNo, String exceptionReason, String username) { + List params = new ArrayList<>(); + params.add(site); + params.add(orderNo); + params.add(itemNo); + params.add(seqNo); + params.add(rollNo); + params.add(exceptionReason); + params.add(username); + //执行存储过程 + procedureMapper.execProduceData( "finishRollProcessException", params); + } + + /** + * @Author LR + * @Description 处理Sfdc和派工单 + * @DateTime 2022/1/25 17:50 + * @return void + **/ + public void finishRollProcessSfdcAndSchedule(String site, String orderNo, Integer itemNo, String seqNo, String rollNo, Float sfdcReportedQty, Float sfdcApproveQty, + Float sfdcSetupTime, Float sfdcProdTime, Float sfdcDownTime, String eventTime, String tillTime, String remark, + Float sfdcSetupDownTime, Float sfdcProdSetupTime, Float defectedQty, Float sfdcManufactureTime, String username) { + List params = new ArrayList<>(); + params.add(site); + params.add(orderNo); + params.add(itemNo); + params.add(seqNo); + params.add(rollNo); + params.add(sfdcReportedQty); + params.add(sfdcApproveQty); + + params.add(sfdcSetupTime); + params.add(sfdcProdTime); + params.add(sfdcDownTime); + params.add(eventTime); + params.add(tillTime); + params.add(remark); + + params.add(sfdcSetupDownTime); + params.add(sfdcProdSetupTime); + params.add(defectedQty); + params.add(sfdcManufactureTime); + params.add(username); + //执行存储过程 + procedureMapper.execProduceData( "finishRollProcessSfdcAndSchedule", params); + } + + /** + * @Author LR + * @Description 调用存储过程 处理SfdcRoll和SfdcRoollOps + * @DateTime 2022/1/25 16:53 + * @Param [site, orderNo, itemNo, seqNo, rollNo, totalApprovedQty, sfdcApproveQty, defectedQty] + * @return void + **/ + public void finishRollProcessSfdcRollAndOps(String site, String orderNo, Integer itemNo, String seqNo, String rollNo, + Float totalApprovedQty, Float sfdcApproveQty, Float defectedQty, String username, String reportedTime) { + List params = new ArrayList<>(); + params.add(site); + params.add(orderNo); + params.add(itemNo); + params.add(seqNo); + params.add(rollNo); + params.add(totalApprovedQty); + params.add(sfdcApproveQty); + params.add(defectedQty); + params.add(username); + params.add(reportedTime); + //执行存储过程 + procedureMapper.execProduceData( "finishRollProcessSfdcRollAndOps", params); + } + + /** + * @Author LR + * @Description 调用存储过程 处理SfdcMaterialHist的信息 --非主材 + * @DateTime 2022/1/25 15:39 + * @Param [site, orderNo, itemNo, seqNo, rollNo, username, reportedTime] + * @return void + **/ + public void finishRollProcessSfdcMaterialHistWithNotKeyRm(String site, String orderNo, Integer itemNo, String seqNo, String rollNo, String username, String reportedTime) { + List params = new ArrayList<>(); + params.add(site); + params.add(orderNo); + params.add(itemNo); + params.add(seqNo); + params.add(rollNo); + params.add(username); + params.add(reportedTime); + //执行存储过程 + procedureMapper.execProduceData( "finishRollProcessSfdcMaterialHistWithNotKeyRm", params); + } + + /** + * @Author LR + * @Description 处理SfdcMaterialHist的信息 --主材 一次处理一个 + * @DateTime 2022/1/25 15:36 + * @Param [site, orderNo, itemNo, seqNo, rollNo, netIssueQty, histSeqNo, username, reportedTime] + * @return void + **/ + public void finishRollProcessSfdcMaterialHistWithKeyRm(String site, String orderNo, Integer itemNo, String seqNo, String rollNo, Float netIssueQty, Integer histSeqNo, String username, String reportedTime) { + List params = new ArrayList<>(); + params.add(site); + params.add(orderNo); + params.add(itemNo); + params.add(seqNo); + params.add(rollNo); + params.add(netIssueQty); + params.add(histSeqNo); + params.add(username); + params.add(reportedTime); + //执行存储过程 + procedureMapper.execProduceData( "finishRollProcessSfdcMaterialHistWithKeyRm", params); + } + + /** + * @Author LR + * @Description 调用存储过程 处理SfdcToolHist的信息 + * @DateTime 2022/1/25 15:31 + * @Param [site, orderNo, itemNo, seqNo, rollNo, editTotalReportQty, username, reportedTime] + * @return void + **/ + public void finishRollProcessSfdcToolHist(String site, String orderNo, Integer itemNo, String seqNo, String rollNo, Float editTotalReportQty, String username, String reportedTime) { + List params = new ArrayList<>(); + params.add(site); + params.add(orderNo); + params.add(itemNo); + params.add(seqNo); + params.add(rollNo); + params.add(editTotalReportQty); + params.add(username); + params.add(reportedTime); + //执行存储过程 + procedureMapper.execProduceData( "finishRollProcessSfdcToolHist", params); + } + + /** + * @Author LR + * @Description 调用存储过程 处理sfdcTime的信息 + * @DateTime 2022/1/25 15:24 + * @Param [site, orderNo, itemNo, seqNo, rollNo, username, reportedTime] + * @return void + **/ + public void finishRollProcessSfdcTimeHist(String site, String orderNo, Integer itemNo, String seqNo, String rollNo, String username, String reportedTime) { + List params = new ArrayList<>(); + params.add(site); + params.add(orderNo); + params.add(itemNo); + params.add(seqNo); + params.add(rollNo); + params.add(username); + params.add(reportedTime); + //执行存储过程 + procedureMapper.execProduceData( "finishRollProcessSfdcTimeHist", params); + } + } \ No newline at end of file diff --git a/src/main/resources/mapper/schedule/ScheduleMapper.xml b/src/main/resources/mapper/schedule/ScheduleMapper.xml index 2224ac8..ed74fa8 100644 --- a/src/main/resources/mapper/schedule/ScheduleMapper.xml +++ b/src/main/resources/mapper/schedule/ScheduleMapper.xml @@ -675,8 +675,8 @@