|
|
|
@ -395,6 +395,7 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
SearchScheduleData pageData = JSON.parseObject(strPageData, SearchScheduleData.class); |
|
|
|
String strOperatorlList = String.valueOf(inMap.get("operatorList")); |
|
|
|
List<OperatorInData> 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<String, Object> 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<String, Object> resultMap = this.scheduleWorkOrder(site, orderNo, itemNo, workCenterNo, resourceId, scheduledQty, specifiedTime, scheduleDate, scheduleTime, calendarId, username); |
|
|
|
Map<String, Object> 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<String, Object> 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<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); |
|
|
|
params.add(virtualFlag); |
|
|
|
//调用存储过程 |
|
|
|
List<Map<String, Object>> 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<java.lang.String, java.lang.Object> |
|
|
|
**/ |
|
|
|
public Map<String, Object> checkFQCScheduleWithScheduledQty(String site, String orderNo, int itemNo, Float countScheduledQty) { |
|
|
|
List<Object> params = new ArrayList<>(); |
|
|
|
params.add(site); |
|
|
|
params.add(orderNo); |
|
|
|
params.add(itemNo); |
|
|
|
params.add(countScheduledQty); |
|
|
|
//调用存储过程 |
|
|
|
List<Map<String, Object>> resultList = procedureMapper.getProcedureData("checkFQCScheduleWithScheduledQty", params); |
|
|
|
//处理返回的结果 |
|
|
|
return resultList.get(0); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |