From 3f9ff20c4c670c23254a04d6a9ea16242c2d9022 Mon Sep 17 00:00:00 2001 From: rui_li <877258667@qq.com> Date: Fri, 18 Mar 2022 18:15:04 +0800 Subject: [PATCH] =?UTF-8?q?FQC=E6=8E=92=E4=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../schedule/data/SearchScheduleData.java | 18 ++++++ .../schedule/service/SchedulingService.java | 1 + .../service/impl/SchedulingServiceImpl.java | 64 ++++++++++++++++++- 3 files changed, 82 insertions(+), 1 deletion(-) 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 a262c74..55f2567 100644 --- a/src/main/java/com/gaotao/modules/schedule/data/SearchScheduleData.java +++ b/src/main/java/com/gaotao/modules/schedule/data/SearchScheduleData.java @@ -129,6 +129,8 @@ public class SearchScheduleData extends BaseData { private String userSpecialSecurityNo; // 特殊权限编号 private Date closedDate; // 关闭事件 private String parkFlag; // 暂停状态 + private String virtualFlag;//虚拟排产标记 + private boolean checkFlag; //是否检查 public String getParkFlag() { return parkFlag; @@ -884,4 +886,20 @@ public class SearchScheduleData extends BaseData { public void setPreScheduledFlag(String preScheduledFlag) { this.preScheduledFlag = preScheduledFlag; } + + public String getVirtualFlag() { + return virtualFlag; + } + + public void setVirtualFlag(String virtualFlag) { + this.virtualFlag = virtualFlag; + } + + public boolean isCheckFlag() { + return checkFlag; + } + + public void setCheckFlag(boolean checkFlag) { + this.checkFlag = checkFlag; + } } \ No newline at end of file diff --git a/src/main/java/com/gaotao/modules/schedule/service/SchedulingService.java b/src/main/java/com/gaotao/modules/schedule/service/SchedulingService.java index 5c6523e..7e5e5d0 100644 --- a/src/main/java/com/gaotao/modules/schedule/service/SchedulingService.java +++ b/src/main/java/com/gaotao/modules/schedule/service/SchedulingService.java @@ -115,4 +115,5 @@ public interface SchedulingService { * @return java.util.Map **/ void scheduleFqcOperators(Map inMap); + } diff --git a/src/main/java/com/gaotao/modules/schedule/service/impl/SchedulingServiceImpl.java b/src/main/java/com/gaotao/modules/schedule/service/impl/SchedulingServiceImpl.java index dba85a3..b05c06d 100644 --- a/src/main/java/com/gaotao/modules/schedule/service/impl/SchedulingServiceImpl.java +++ b/src/main/java/com/gaotao/modules/schedule/service/impl/SchedulingServiceImpl.java @@ -395,6 +395,7 @@ public class SchedulingServiceImpl implements SchedulingService { SearchScheduleData pageData = JSON.parseObject(strPageData, SearchScheduleData.class); String strOperatorlList = String.valueOf(inMap.get("operatorList")); List operatorList = JSON.parseArray(strOperatorlList, OperatorInData.class); + String strCheckFlag = String.valueOf(inMap.get("checkFlag")); if(operatorList.size() == 0){ throw new RRException("暂无需要排产的数据!"); } @@ -407,6 +408,26 @@ public class SchedulingServiceImpl implements SchedulingService { Date scheduleDate = pageData.getScheduleDate(); Date scheduleTime = pageData.getScheduleTime(); String specifiedTime = pageData.getSpecifiedTime(); + boolean checkFlag = Boolean.parseBoolean(strCheckFlag); + String virtualFlag = pageData.getVirtualFlag(); + //统计排产的数量 + Float countScheduledQty = 0f; + //循环计算 + for(OperatorInData operatorData : operatorList){ + float scheduledQty = operatorData.getQtyToSchedule(); + countScheduledQty = countScheduledQty + scheduledQty; + } + //判断是否校验总数量 + if(checkFlag){ + //调用存储过程 校验数量是否超过上限 + Map checkMap = this.checkFQCScheduleWithScheduledQty(site, orderNo, itemNo, countScheduledQty); + //判断是否检验成功 + String resultCode = String.valueOf(checkMap.get("resultCode")); + if (!"200".equalsIgnoreCase(resultCode)) { + String msg = String.valueOf(checkMap.get("resultMsg")); + throw new RRException(msg, Integer.parseInt(resultCode)); + } + } //循环插入派工单 for(OperatorInData operatorData : operatorList){ String resourceId = operatorData.getOperatorId(); @@ -421,7 +442,7 @@ public class SchedulingServiceImpl implements SchedulingService { //设置查询的条件 String calendarId = String.valueOf(calendarMap.get("calendarId")); //调用存储过程 执行排产的方法 - Map resultMap = this.scheduleWorkOrder(site, orderNo, itemNo, workCenterNo, resourceId, scheduledQty, specifiedTime, scheduleDate, scheduleTime, calendarId, username); + Map resultMap = this.scheduleFQCWorkOrder(site, orderNo, itemNo, workCenterNo, resourceId, scheduledQty, specifiedTime, scheduleDate, scheduleTime, calendarId, username, virtualFlag); //判断是否检验成功 String resultCode = String.valueOf(resultMap.get("resultCode")); if ("400".equalsIgnoreCase(resultCode)) { @@ -431,5 +452,46 @@ public class SchedulingServiceImpl implements SchedulingService { } } + private Map scheduleFQCWorkOrder(String site, String orderNo, int itemNo, String workCenterNo, String resourceId, float scheduledQty, String specifiedTime, Date scheduleDate, + Date scheduleTime, String calendarId, String username, String virtualFlag) { + List params = new ArrayList<>(); + params.add(site); + params.add(orderNo); + params.add(itemNo); + params.add(workCenterNo); + params.add(resourceId); + params.add(scheduledQty); + params.add(specifiedTime); + params.add(scheduleDate); + params.add(scheduleTime); + params.add(calendarId); + params.add(username); + params.add(virtualFlag); + //调用存储过程 + List> resultList = procedureMapper.getProcedureData("soschedule_newjob_FQC", params); + //处理返回的结果 + return resultList.get(0); + } + + + /** + * TODO 校验排产的数量 + * @author LR + * @date 2022/3/18 15:52 + * @Param [site, orderNo, itemNo, countScheduledQty] + * @return java.util.Map + **/ + public Map checkFQCScheduleWithScheduledQty(String site, String orderNo, int itemNo, Float countScheduledQty) { + List params = new ArrayList<>(); + params.add(site); + params.add(orderNo); + params.add(itemNo); + params.add(countScheduledQty); + //调用存储过程 + List> resultList = procedureMapper.getProcedureData("checkFQCScheduleWithScheduledQty", params); + //处理返回的结果 + return resultList.get(0); + } + }