From b43ac0e1d4612caaaba100c7212d03e78e52f1a0 Mon Sep 17 00:00:00 2001 From: rui_li <877258667@qq.com> Date: Wed, 19 Jan 2022 15:47:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=80=E6=A8=A1=E5=88=87=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ScheduleController.java | 47 +++++++ .../schedule/data/SearchScheduleData.java | 36 +++++ .../schedule/mapper/ScheduleMapper.java | 9 ++ .../schedule/service/ScheduleService.java | 27 ++++ .../service/impl/ScheduleServiceImpl.java | 124 +++++++++++++++++- .../mapper/schedule/ScheduleMapper.xml | 7 + 6 files changed, 248 insertions(+), 2 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 9078e49..5a39ebb 100644 --- a/src/main/java/com/gaotao/modules/schedule/controller/ScheduleController.java +++ b/src/main/java/com/gaotao/modules/schedule/controller/ScheduleController.java @@ -782,4 +782,51 @@ public class ScheduleController { .put("msg", "操作成功!"); } + /** + * TODO 工具的使用的数量 + * @author LR + * @date 2022/1/18 14:10 + * @param inData + * @return com.gaotao.common.utils.R + **/ + @RequestMapping(value = "countToolUsedQty") + public R countToolUsedQty(@RequestBody SearchScheduleData inData){ + Float usedQty = scheduleService.countToolUsedQty(inData); + return R.ok() + .put("code", 200) + .put("usedQty", usedQty) + .put("success", true) + .put("msg", "操作成功!"); + } + + /** + * TODO 刀模切换检查 + * @author LR + * @date 2022/1/19 10:32 + * @param inData + * @return com.gaotao.common.utils.R + **/ + @RequestMapping(value = "checkConnectToolInstanceId") + public R checkConnectToolInstanceId(@RequestBody SearchScheduleData inData){ + Map resultMap = scheduleService.checkConnectToolInstanceId(inData); + return R.ok() + .put("resultMap", resultMap); + } + + /** + * TODO换刀操作 + * @author LR + * @date 2022/1/19 14:46 + * @param inData + * @return com.gaotao.common.utils.R + **/ + @RequestMapping(value = "connectToolInstanceId") + public R connectToolInstanceId(@RequestBody SearchScheduleData inData){ + scheduleService.connectToolInstanceId(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 c931d0e..a733d06 100644 --- a/src/main/java/com/gaotao/modules/schedule/data/SearchScheduleData.java +++ b/src/main/java/com/gaotao/modules/schedule/data/SearchScheduleData.java @@ -69,6 +69,10 @@ public class SearchScheduleData extends BaseData { private String toolInstanceId;//工具实例的编码 private String shiftNo;//班次信息 private Float approvedQty;//良品的总数量 + private String reportedTime;//组合好的日期 + private String oriToolInstanceId;//原工具实例的编码 + private Float consumeQty;//使用的数量 + private Float downTimeQty;//停机的时长 public SearchScheduleData() { } @@ -353,6 +357,14 @@ public class SearchScheduleData extends BaseData { this.reportTime = reportTime; } + public String getReportedTime() { + return reportedTime; + } + + public void setReportedTime(String reportedTime) { + this.reportedTime = reportedTime; + } + public Float getTotalTime() { return totalTime; } @@ -400,4 +412,28 @@ public class SearchScheduleData extends BaseData { public void setApprovedQty(Float approvedQty) { this.approvedQty = approvedQty; } + + public String getOriToolInstanceId() { + return oriToolInstanceId; + } + + public void setOriToolInstanceId(String oriToolInstanceId) { + this.oriToolInstanceId = oriToolInstanceId; + } + + public Float getConsumeQty() { + return consumeQty; + } + + public void setConsumeQty(Float consumeQty) { + this.consumeQty = consumeQty; + } + + public Float getDownTimeQty() { + return downTimeQty; + } + + public void setDownTimeQty(Float downTimeQty) { + this.downTimeQty = downTimeQty; + } } \ No newline at end of file diff --git a/src/main/java/com/gaotao/modules/schedule/mapper/ScheduleMapper.java b/src/main/java/com/gaotao/modules/schedule/mapper/ScheduleMapper.java index e96e72b..4ab39e0 100644 --- a/src/main/java/com/gaotao/modules/schedule/mapper/ScheduleMapper.java +++ b/src/main/java/com/gaotao/modules/schedule/mapper/ScheduleMapper.java @@ -359,4 +359,13 @@ public interface ScheduleMapper { * @return java.util.List **/ List getScheduleDefectHist(SearchScheduleData inData); + + /** + * TODO 统计工具实例的使用的数量 + * @author LR + * @date 2022/1/18 14:17 + * @param inData + * @return java.lang.Float + **/ + Float countToolUsedQty(SearchScheduleData inData); } 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 c410daa..7780659 100644 --- a/src/main/java/com/gaotao/modules/schedule/service/ScheduleService.java +++ b/src/main/java/com/gaotao/modules/schedule/service/ScheduleService.java @@ -437,4 +437,31 @@ public interface ScheduleService { * @return void **/ void finishRoll(Map inMap); + + /** + * TODO 工具的使用的数量 + * @author LR + * @date 2022/1/18 14:14 + * @param inData + * @return java.lang.Float + **/ + Float countToolUsedQty(SearchScheduleData inData); + + /** + * TODO 刀模切换检查 + * @author LR + * @date 2022/1/19 10:32 + * @param inData + * @return java.util.Map + **/ + Map checkConnectToolInstanceId(SearchScheduleData inData); + + /** + * TODO 换刀操作 + * @author LR + * @date 2022/1/19 14:47 + * @param inData + * @return void + **/ + void connectToolInstanceId(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 6af57b5..431491e 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 @@ -14,6 +14,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestBody; +import javax.jws.soap.SOAPBinding; import java.math.BigDecimal; import java.util.*; @@ -447,9 +448,9 @@ public class ScheduleServiceImpl implements ScheduleService { result.put("sfdcDownTime", sfdcDownTime); result.put("sfdcSetupDownTime", sfdcSetupDownTime); result.put("sfdcProdSetupTime", sfdcProdSetupTime); - result.put("code", "200"); + result.put("resultCode", "200"); }else{ - result.put("code", "500"); + result.put("resultCode", "500"); result.put("sfdcProdTime", 0); result.put("sfdcSetupTime", 0); result.put("sfdcManufactureTime", 0); @@ -1498,6 +1499,7 @@ public class ScheduleServiceImpl implements ScheduleService { 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){ @@ -1599,4 +1601,122 @@ public class ScheduleServiceImpl implements ScheduleService { } } + @Override + public Float countToolUsedQty(SearchScheduleData inData) { + Float usedQty = scheduleMapper.countToolUsedQty(inData); + //null判断 + if(null == usedQty){ + usedQty = 0f; + } + return usedQty; + } + + @Override + public Map checkConnectToolInstanceId(SearchScheduleData inData) { + //公共参数 + String site = inData.getSite(); + String orderNo = inData.getOrderNo(); + Integer itemNo = inData.getItemNo(); + String seqNo = inData.getSeqNo(); + String rollNo = inData.getRollNo(); + String oriToolInstanceId = inData.getOriToolInstanceId(); + String toolInstanceId = inData.getToolInstanceId(); + Integer histSeqNo = inData.getHistSeqNo(); + String reportDate = inData.getReportDate(); + String reportTime = inData.getReportTime(); + String currentTime = reportDate + " " + reportTime; + + //调用存储过程判断是否可以上工具 + Map checkMap = this.checkProcessToolInstanceId(site, orderNo, itemNo, seqNo, rollNo, currentTime); + //判断是否检验成功 + String checkFlag = String.valueOf(checkMap.get("resultCode")); + if (!"Y".equalsIgnoreCase(checkFlag)){ + throw new RRException("当前卷号不在调试过程中,不允许上/更换工具!"); + } + + //调用是否可以切换刀具的存储过程 + Map resultMap = this.checkConnectToolInstanceId(site, orderNo, itemNo, seqNo, rollNo, oriToolInstanceId, toolInstanceId, histSeqNo); + //判断是否检验成功 + String code = String.valueOf(resultMap.get("resultCode")); + if ("400".equalsIgnoreCase(code)){ + String msg = String.valueOf(resultMap.get("resultMsg")); + throw new RRException(msg); + } + return resultMap; + } + + /** + * TODO 是否可以切换刀具的存储过程 + * @author LR + * @date 2022/1/19 10:46 + * @return java.util.Map + **/ + public Map checkConnectToolInstanceId(String site, String orderNo, Integer itemNo, String seqNo, String rollNo, + String oriToolInstanceId, String toolInstanceId, Integer histSeqNo) { + List params = new ArrayList<>(); + params.add(site); + params.add(orderNo); + params.add(itemNo); + params.add(seqNo); + params.add(rollNo); + params.add(oriToolInstanceId); + params.add(toolInstanceId); + params.add(histSeqNo); + //执行存储过程 + List> resultList = procedureMapper.getProcedureData("checkConnectToolInstanceId", params); + //返回执行的结果 + return resultList.get(0); + } + + @Override + @Transactional + public void connectToolInstanceId(SearchScheduleData inData) { + //公共参数 + String site = inData.getSite(); + String orderNo = inData.getOrderNo(); + Integer itemNo = inData.getItemNo(); + String seqNo = inData.getSeqNo(); + String rollNo = inData.getRollNo(); + String oriToolInstanceId = inData.getOriToolInstanceId(); + String toolInstanceId = inData.getToolInstanceId(); + Integer histSeqNo = inData.getHistSeqNo(); + String username = inData.getOperatorId(); + String reportDate = inData.getReportDate(); + String reportTime = inData.getReportTime(); + String currentTime = reportDate + " " + reportTime; + Float consumeQty = inData.getConsumeQty(); + Float downTimeQty = inData.getDownTimeQty(); + //线调用检查方法 + Map resultMap = this.checkConnectToolInstanceId(inData); + + //然后执行存储过程换刀 + this.connectToolInstanceId(site, orderNo, itemNo, seqNo, rollNo, oriToolInstanceId, toolInstanceId, histSeqNo, consumeQty, downTimeQty, username, currentTime); + + } + + /** + * TODO 存储过程换刀 + * @author LR + * @date 2022/1/19 15:14 + * @return void + **/ + public void connectToolInstanceId(String site, String orderNo, Integer itemNo, String seqNo, String rollNo, String oriToolInstanceId, String toolInstanceId, + Integer histSeqNo, Float consumeQty, Float downTimeQty, String username, String currentTime) { + List params = new ArrayList<>(); + params.add(site); + params.add(orderNo); + params.add(itemNo); + params.add(seqNo); + params.add(rollNo); + params.add(oriToolInstanceId); + params.add(toolInstanceId); + params.add(histSeqNo); + params.add(consumeQty); + params.add(downTimeQty); + params.add(username); + params.add(currentTime); + //执行存储过程 + procedureMapper.execProduceData("connectToolInstanceId", 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 7897600..2224ac8 100644 --- a/src/main/resources/mapper/schedule/ScheduleMapper.xml +++ b/src/main/resources/mapper/schedule/ScheduleMapper.xml @@ -908,5 +908,12 @@ ORDER BY sdh.HistSeqNo DESC + + + \ No newline at end of file