diff --git a/src/main/java/com/gaotao/modules/schedule/controller/SchedulingController.java b/src/main/java/com/gaotao/modules/schedule/controller/SchedulingController.java index f5a452f..f35be8d 100644 --- a/src/main/java/com/gaotao/modules/schedule/controller/SchedulingController.java +++ b/src/main/java/com/gaotao/modules/schedule/controller/SchedulingController.java @@ -72,6 +72,36 @@ public class SchedulingController { .put("msg", "操作成功!"); } + /** + * @Author LR + * @Description 插入等待的派工单 + * @DateTime 2022/3/2 15:42 + * @Param [inData] + * @return com.gaotao.common.utils.R + **/ + @PostMapping(value = "addWaitSchedule") + public R addWaitSchedule(@RequestBody SearchScheduleData inData){ + schedulingService.addWaitSchedule(inData); + return R.ok() + .put("code", 200) + .put("msg", "操作成功!"); + } + + /** + * @Author LR + * @Description 重新排产 + * @DateTime 2022/3/2 15:52 + * @Param [inData] + * @return com.gaotao.common.utils.R + **/ + @PostMapping(value = "reScheduleWorkOrders") + public R reScheduleWorkOrders(@RequestBody SearchScheduleData inData){ + schedulingService.reScheduleWorkOrders(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 eb98bc3..fa335c2 100644 --- a/src/main/java/com/gaotao/modules/schedule/data/SearchScheduleData.java +++ b/src/main/java/com/gaotao/modules/schedule/data/SearchScheduleData.java @@ -109,6 +109,7 @@ public class SearchScheduleData extends BaseData { private boolean newRollFlag;//是否是新卷 private String specifiedTime;//是否制定排产的时间 private Float scheduledQty;//排产的数量 + private int waitTimes;//等待时间 public SearchScheduleData() { } @@ -744,4 +745,12 @@ public class SearchScheduleData extends BaseData { public void setScheduledQty(Float scheduledQty) { this.scheduledQty = scheduledQty; } + + public int getWaitTimes() { + return waitTimes; + } + + public void setWaitTimes(int waitTimes) { + this.waitTimes = waitTimes; + } } \ 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 4d774e8..c9ee000 100644 --- a/src/main/java/com/gaotao/modules/schedule/service/SchedulingService.java +++ b/src/main/java/com/gaotao/modules/schedule/service/SchedulingService.java @@ -37,4 +37,22 @@ public interface SchedulingService { * @return void **/ void cancelSoSchedule(SearchScheduleData inData); + + /** + * @Author LR + * @Description 插入等待的派工单 + * @DateTime 2022/3/2 15:42 + * @Param [inData] + * @return void + **/ + void addWaitSchedule(SearchScheduleData inData); + + /** + * @Author LR + * @Description 重新排产 + * @DateTime 2022/3/2 15:53 + * @Param [inData] + * @return void + **/ + void reScheduleWorkOrders(SearchScheduleData inData); } 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 46fd347..abf2450 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 @@ -48,11 +48,25 @@ public class ScheduleServiceImpl implements ScheduleService { @Override public List getShopOrderList(SearchScheduleData inData) { + //公共参数 + String workCenterNo = inData.getWorkCenterNo(); + String resourceId = inData.getResourceId(); + //判断是否查询数据源 + if(null == workCenterNo || null == resourceId || "".equals(workCenterNo) || "".equals(resourceId)){ + return new ArrayList(); + } return scheduleMapper.getShopOrderList(inData); } @Override public List getOrderScheduleList(SearchScheduleData inData) { + //公共参数 + String workCenterNo = inData.getWorkCenterNo(); + String resourceId = inData.getResourceId(); + //判断是否查询数据源 + if(null == workCenterNo || null == resourceId || "".equals(workCenterNo) || "".equals(resourceId)){ + return new ArrayList(); + } return scheduleMapper.getOrderScheduleList(inData); } @@ -81,6 +95,10 @@ public class ScheduleServiceImpl implements ScheduleService { @Override public OperatorOutData getOperatorData(OperatorOutData inData) { + String operatorId = inData.getOperatorId(); + if(null == operatorId || "".equals(operatorId)){ + throw new RRException("操作员编码不能为空!"); + } //查到需要做判断 OperatorOutData operatorData = scheduleMapper.getOperatorData(inData); //判断是否存在 @@ -768,8 +786,14 @@ public class ScheduleServiceImpl implements ScheduleService { procedureMapper.execProduceData("refreshSfdcMaterialHistRollNo", params); //刷新工具表的记录 procedureMapper.execProduceData("refreshSfdcToolHistRollNo", params); + + List otherParams = new ArrayList<>(); + otherParams.add(site); + otherParams.add(orderNo); + otherParams.add(itemNo); + otherParams.add(seqNo); //修改派工单的状态 - procedureMapper.execProduceData("startProduceSchedule", params); + procedureMapper.execProduceData("startProduceSchedule", otherParams); //刷新表的表的时间记录数据 params.add(workCenterNo); 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 025e616..8122abd 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 @@ -149,4 +149,119 @@ public class SchedulingServiceImpl implements SchedulingService { //处理返回的结果 return resultList.get(0); } + + @Override + @Transactional + public void addWaitSchedule(SearchScheduleData inData) { + //公共参数 + String site = inData.getSite(); + String orderNo = inData.getOrderNo(); + Integer itemNo = inData.getItemNo(); + String seqNo = inData.getSeqNo(); + String workCenterNo = inData.getWorkCenterNo(); + String resourceId = inData.getResourceId(); + Float scheduledQty = inData.getScheduledQty(); + String specifiedTime = inData.getSpecifiedTime(); + Date scheduleDate = inData.getScheduleDate(); + Date scheduleTime = inData.getScheduleTime(); + String username = inData.getUsername(); + int waitTimes = inData.getWaitTimes(); + double waitHour = waitTimes/60.0; + + //获取当前加工中心机台对应的calendarId + Map calendarMap = scheduleMapper.getCalendarId(inData); + //判断是否存在当前的加工中心机台数据 + if (calendarMap == null || calendarMap.size() == 0) { + throw new RRException("班次异常!"); + } + //设置查询的条件 + String calendarId = String.valueOf(calendarMap.get("calendarId")); + //调用存储过程 取消排产的派工单 + Map resultMap = this.addWaitSchedule(site, "9999", 10, workCenterNo, resourceId, waitHour, specifiedTime, scheduleDate, scheduleTime, calendarId, username); + //判断是否检验成功 + String resultCode = String.valueOf(resultMap.get("resultCode")); + if ("400".equalsIgnoreCase(resultCode)) { + String msg = String.valueOf(resultMap.get("resultMsg")); + throw new RRException(msg); + } + } + + /** + * @Author LR + * @Description 插入等待的派工单信息 + * @DateTime 2022/3/2 15:49 + * @Param [site, orderNo, itemNo, workCenterNo, resourceId, waitHour, specifiedTime, scheduleDate, scheduleTime, calendarId, username] + * @return java.util.Map + **/ + public Map addWaitSchedule(String site, String orderNo, Integer itemNo, String workCenterNo, String resourceId, double waitHour, + String specifiedTime, Date scheduleDate, Date scheduleTime, String calendarId, String username) { + List params = new ArrayList<>(); + params.add(site); + params.add(orderNo); + params.add(itemNo); + params.add(workCenterNo); + params.add(resourceId); + params.add(waitHour); + params.add(specifiedTime); + params.add(scheduleDate); + params.add(scheduleTime); + params.add(calendarId); + params.add(username); + //调用存储过程 + List> resultList = procedureMapper.getProcedureData("soschedule_newwaitjob", params); + //处理返回的结果 + return resultList.get(0); + } + + @Override + @Transactional + public void reScheduleWorkOrders(SearchScheduleData inData) { + //公共参数 + String site = inData.getSite(); + String workCenterNo = inData.getWorkCenterNo(); + String resourceId = inData.getResourceId(); + String specifiedTime = inData.getSpecifiedTime(); + Date scheduleDate = inData.getScheduleDate(); + Date scheduleTime = inData.getScheduleTime(); + String username = inData.getUsername(); + + //获取当前加工中心机台对应的calendarId + Map calendarMap = scheduleMapper.getCalendarId(inData); + //判断是否存在当前的加工中心机台数据 + if (calendarMap == null || calendarMap.size() == 0) { + throw new RRException("班次异常!"); + } + //设置查询的条件 + String calendarId = String.valueOf(calendarMap.get("calendarId")); + //调用存储过程 重新排产的派工单 + Map resultMap = this.reScheduleWorkOrders(site, specifiedTime, scheduleDate, scheduleTime, calendarId, workCenterNo, resourceId); + //判断是否检验成功 + String resultCode = String.valueOf(resultMap.get("resultCode")); + if ("400".equalsIgnoreCase(resultCode)) { + String msg = String.valueOf(resultMap.get("resultMsg")); + throw new RRException(msg); + } + } + + /** + * @Author LR + * @Description 重新排产派工单 + * @DateTime 2022/3/2 15:59 + * @Param [site, specifiedTime, scheduleDate, scheduleTime, calendarId, workCenterNo, resourceId] + * @return java.util.Map + **/ + public Map reScheduleWorkOrders(String site, String specifiedTime, Date scheduleDate, Date scheduleTime, String calendarId, String workCenterNo, String resourceId) { + List params = new ArrayList<>(); + params.add(site); + params.add(specifiedTime); + params.add(scheduleDate); + params.add(scheduleTime); + params.add(calendarId); + params.add(workCenterNo); + params.add(resourceId); + //调用存储过程 + List> resultList = procedureMapper.getProcedureData("soschedule_reschedulejob", params); + //处理返回的结果 + return resultList.get(0); + } } diff --git a/src/main/resources/mapper/schedule/ScheduleMapper.xml b/src/main/resources/mapper/schedule/ScheduleMapper.xml index e840e4b..90f6695 100644 --- a/src/main/resources/mapper/schedule/ScheduleMapper.xml +++ b/src/main/resources/mapper/schedule/ScheduleMapper.xml @@ -74,15 +74,11 @@ AND T.Site like '%' + #{site} + '%' - - AND T.WorkCenterNo like '%' + #{workCenterNo} + '%' - + AND T.WorkCenterNo like '%' + #{workCenterNo} + '%' AND Isnull(S1.ScheduledFlag, 'Y') = #{scheduledFlag} - - AND dbo.Get_SOOpsScheduleAvailResource(T.Site,T.OrderNo,T.WorkCenterNo,T.ItemNo) like '%' + #{resourceId} + '(%' - + AND dbo.Get_SOOpsScheduleAvailResource(T.Site,T.OrderNo,T.WorkCenterNo,T.ItemNo) like '%' + #{resourceId} + '(%' Order by D.NeedDate @@ -111,14 +107,10 @@ T.Site=S.Site and T.OrderNo=S.OrderNo and T.ItemNo=S.ItemNo and E.Site=T.Site and E.LinkedSeqNo=T.SeqNo - AND E.Site like '%' + #{site} + '%' - - - AND T.S_WorkCenterNo like '%' + #{workCenterNo} + '%' - - - AND E.ResourceID like '%' + #{resourceId} + '%' + AND E.Site like #{site} + AND T.S_WorkCenterNo like #{workCenterNo} + AND E.ResourceID like #{resourceId} Order by E.S_ScheduledSeqNo