|
|
|
@ -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<String, Object> calendarMap = scheduleMapper.getCalendarId(inData); |
|
|
|
//判断是否存在当前的加工中心机台数据 |
|
|
|
if (calendarMap == null || calendarMap.size() == 0) { |
|
|
|
throw new RRException("班次异常!"); |
|
|
|
} |
|
|
|
//设置查询的条件 |
|
|
|
String calendarId = String.valueOf(calendarMap.get("calendarId")); |
|
|
|
//调用存储过程 执行排产的方法 |
|
|
|
Map<String, Object> 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<java.lang.String,java.lang.Object> |
|
|
|
**/ |
|
|
|
public Map<String, Object> scheduleWorkOrder(String site, String orderNo, Integer itemNo, String workCenterNo, String resourceId, Float scheduledQty, |
|
|
|
String specifiedTime, Date scheduleDate, Date scheduleTime, String calendarId, String username) { |
|
|
|
List<Object> 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<Map<String, Object>> 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<String, Object> 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<java.lang.String,java.lang.Object> |
|
|
|
**/ |
|
|
|
public Map<String, Object> cancelSoSchedule(String site, String orderNo, Integer itemNo, String seqNo, String workCenterNo, String resourceId, Float scheduledQty) { |
|
|
|
List<Object> 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<Map<String, Object>> resultList = procedureMapper.getProcedureData("soschedule_canceljob", params); |
|
|
|
//处理返回的结果 |
|
|
|
return resultList.get(0); |
|
|
|
} |
|
|
|
} |