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 4ccff93..f5a452f 100644 --- a/src/main/java/com/gaotao/modules/schedule/controller/SchedulingController.java +++ b/src/main/java/com/gaotao/modules/schedule/controller/SchedulingController.java @@ -42,6 +42,37 @@ public class SchedulingController { .put("workCenterNo", workCenterNo); } + /** + * @Author LR + * @Description 排产生产工单 + * @DateTime 2022/3/1 11:08 + * @Param [inData] + * @return com.gaotao.common.utils.R + **/ + @PostMapping(value = "scheduleWorkOrder") + public R scheduleWorkOrder(@RequestBody SearchScheduleData inData){ + schedulingService.scheduleWorkOrder(inData); + return R.ok() + .put("code", 200) + .put("msg", "操作成功!"); + } + + /** + * @Author LR + * @Description 取消排产操作 + * @DateTime 2022/3/1 14:45 + * @Param [inData] + * @return com.gaotao.common.utils.R + **/ + @PostMapping(value = "cancelSoSchedule") + public R cancelSoSchedule(@RequestBody SearchScheduleData inData){ + schedulingService.cancelSoSchedule(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 b8bb495..eb98bc3 100644 --- a/src/main/java/com/gaotao/modules/schedule/data/SearchScheduleData.java +++ b/src/main/java/com/gaotao/modules/schedule/data/SearchScheduleData.java @@ -23,6 +23,9 @@ public class SearchScheduleData extends BaseData { @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date scheduleDate; + @DateTimeFormat(pattern = "HH:mm:ss") + @JsonFormat(pattern = "HH:mm:ss", timezone = "GMT+8") + private Date scheduleTime;//排产的时分秒 @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date enterTime1; @@ -104,6 +107,8 @@ public class SearchScheduleData extends BaseData { private Float rollQty;//当前卷的良品数量 private Integer rollNums;//当前卷的数量 private boolean newRollFlag;//是否是新卷 + private String specifiedTime;//是否制定排产的时间 + private Float scheduledQty;//排产的数量 public SearchScheduleData() { } @@ -715,4 +720,28 @@ public class SearchScheduleData extends BaseData { public void setOperatorName(String operatorName) { this.operatorName = operatorName; } + + public Date getScheduleTime() { + return scheduleTime; + } + + public void setScheduleTime(Date scheduleTime) { + this.scheduleTime = scheduleTime; + } + + public String getSpecifiedTime() { + return specifiedTime; + } + + public void setSpecifiedTime(String specifiedTime) { + this.specifiedTime = specifiedTime; + } + + public Float getScheduledQty() { + return scheduledQty; + } + + public void setScheduledQty(Float scheduledQty) { + this.scheduledQty = scheduledQty; + } } \ 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 b0cedc4..4d774e8 100644 --- a/src/main/java/com/gaotao/modules/schedule/service/SchedulingService.java +++ b/src/main/java/com/gaotao/modules/schedule/service/SchedulingService.java @@ -1,5 +1,6 @@ package com.gaotao.modules.schedule.service; +import com.gaotao.common.exception.RRException; import com.gaotao.modules.schedule.data.SearchScheduleData; /** @@ -18,4 +19,22 @@ public interface SchedulingService { * @return java.lang.String **/ String getCurrentWorkCenterNoByResourceId(SearchScheduleData inData); + + /** + * @Author LR + * @Description 排产生产工单 + * @DateTime 11:10 + * @Param [inData] + * @return void + **/ + void scheduleWorkOrder(SearchScheduleData inData); + + /** + * @Author LR + * @Description 取消排产操作 + * @DateTime 2022/3/1 14:50 + * @Param [inData] + * @return void + **/ + void cancelSoSchedule(SearchScheduleData inData); } 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 abd48b4..025e616 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 @@ -2,10 +2,18 @@ package com.gaotao.modules.schedule.service.impl; import com.gaotao.common.exception.RRException; import com.gaotao.modules.schedule.data.SearchScheduleData; +import com.gaotao.modules.schedule.mapper.ProcedureMapper; +import com.gaotao.modules.schedule.mapper.ScheduleMapper; import com.gaotao.modules.schedule.mapper.SchedulingMapper; import com.gaotao.modules.schedule.service.SchedulingService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; /** * @Author LR @@ -19,6 +27,10 @@ public class SchedulingServiceImpl implements SchedulingService { @Autowired private SchedulingMapper schedulingMapper; + @Autowired + private ScheduleMapper scheduleMapper; + @Autowired + private ProcedureMapper procedureMapper; @Override public String getCurrentWorkCenterNoByResourceId(SearchScheduleData inData) { @@ -29,4 +41,112 @@ public class SchedulingServiceImpl implements SchedulingService { } return workCenterNo; } + + @Override + @Transactional + public void scheduleWorkOrder(SearchScheduleData inData) { + //公共参数 + String site = inData.getSite(); + String orderNo = inData.getOrderNo(); + Integer itemNo = inData.getItemNo(); + 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(); + //获取当前加工中心机台对应的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.scheduleWorkOrder(site, orderNo, itemNo, workCenterNo, resourceId, scheduledQty, 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/1 11:25 + * @Param [site, orderNo, itemNo, workCenterNo, resourceId, scheduledQty, specifiedTime, scheduleDate, scheduleTime, calendarId, username] + * @return java.util.Map + **/ + public Map scheduleWorkOrder(String site, String orderNo, Integer itemNo, String workCenterNo, String resourceId, Float scheduledQty, + 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(scheduledQty); + params.add(specifiedTime); + params.add(scheduleDate); + params.add(scheduleTime); + params.add(calendarId); + params.add(username); + //调用存储过程 + List> resultList = procedureMapper.getProcedureData("soschedule_newjob", params); + //处理返回的结果 + return resultList.get(0); + } + + @Override + @Transactional + public void cancelSoSchedule(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(); + + //调用存储过程 取消排产的派工单 + Map resultMap = this.cancelSoSchedule(site, orderNo, itemNo, seqNo, workCenterNo, resourceId, scheduledQty); + + //判断是否检验成功 + 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/1 14:53 + * @Param [site, orderNo, itemNo, seqNo, workCenterNo, resourceId, scheduledQty] + * @return java.util.Map + **/ + public Map cancelSoSchedule(String site, String orderNo, Integer itemNo, String seqNo, String workCenterNo, String resourceId, Float scheduledQty) { + List params = new ArrayList<>(); + params.add(site); + params.add(orderNo); + params.add(itemNo); + params.add(seqNo); + params.add(workCenterNo); + params.add(resourceId); + params.add(scheduledQty); + //调用存储过程 + List> resultList = procedureMapper.getProcedureData("soschedule_canceljob", params); + //处理返回的结果 + return resultList.get(0); + } } diff --git a/src/main/resources/mapper/schedule/ScheduleMapper.xml b/src/main/resources/mapper/schedule/ScheduleMapper.xml index e621c94..e840e4b 100644 --- a/src/main/resources/mapper/schedule/ScheduleMapper.xml +++ b/src/main/resources/mapper/schedule/ScheduleMapper.xml @@ -90,7 +90,7 @@