|
|
|
@ -10,6 +10,7 @@ import com.gaotao.modules.schedule.data.*; |
|
|
|
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.ScheduleService; |
|
|
|
import com.gaotao.modules.schedule.service.SchedulingService; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
@ -20,7 +21,7 @@ import java.util.*; |
|
|
|
/** |
|
|
|
* @Author LR |
|
|
|
* @Description 排产接口的实现类 |
|
|
|
* @DateTime 2022/2/28 14:41 |
|
|
|
* @DateTime 2022/2/28 14:41 |
|
|
|
* @Param |
|
|
|
* @return |
|
|
|
**/ |
|
|
|
@ -36,11 +37,14 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
@Autowired |
|
|
|
private TransNoDao transNoDao; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private ScheduleService scheduleService; |
|
|
|
|
|
|
|
@Override |
|
|
|
public String getCurrentWorkCenterNoByResourceId(SearchScheduleData inData) { |
|
|
|
String workCenterNo = schedulingMapper.getCurrentWorkCenterNoByResourceId(inData); |
|
|
|
//判断是否存在 |
|
|
|
if(null == workCenterNo || "".equalsIgnoreCase(workCenterNo)){ |
|
|
|
if (null == workCenterNo || "".equalsIgnoreCase(workCenterNo)) { |
|
|
|
throw new XJException("机台编码有误!"); |
|
|
|
} |
|
|
|
return workCenterNo; |
|
|
|
@ -64,7 +68,7 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
Map<String, Object> calendarMap = scheduleMapper.getCalendarId(inData); |
|
|
|
//判断是否存在当前的加工中心机台数据 |
|
|
|
if (calendarMap == null || calendarMap.size() == 0) { |
|
|
|
throw new XJException("班次异常!"); |
|
|
|
throw new XJException("班次异常!"); |
|
|
|
} |
|
|
|
//设置查询的条件 |
|
|
|
String calendarId = String.valueOf(calendarMap.get("calendarId")); |
|
|
|
@ -79,11 +83,11 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @return java.util.Map<java.lang.String, java.lang.Object> |
|
|
|
* @Author LR |
|
|
|
* @Description 生产订单排产 |
|
|
|
* @DateTime 2022/3/1 11:25 |
|
|
|
* @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) { |
|
|
|
@ -145,10 +149,11 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
|
|
|
|
/** |
|
|
|
* TODO 执行存储过程 --刷新排产的时间和序号的存储过程 |
|
|
|
* |
|
|
|
* @return java.util.Map<java.lang.String, java.lang.Object> |
|
|
|
* @author LR |
|
|
|
* @date 2022/3/14 15:01 |
|
|
|
* @Param [site, workCenterNo, resourceId, scheduleSeqNo, planStartTime] |
|
|
|
* @return java.util.Map<java.lang.String, java.lang.Object> |
|
|
|
**/ |
|
|
|
public Map<String, Object> cancelSoScheduleRefreshJob(String site, String workCenterNo, String resourceId, Integer scheduleSeqNo, Date planStartTime) { |
|
|
|
List<Object> params = new ArrayList<>(); |
|
|
|
@ -164,11 +169,11 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @return java.util.Map<java.lang.String, java.lang.Object> |
|
|
|
* @Author LR |
|
|
|
* @Description 取消排产的派工单 |
|
|
|
* @DateTime 2022/3/1 14:53 |
|
|
|
* @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<>(); |
|
|
|
@ -201,13 +206,13 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
Date scheduleTime = inData.getScheduleTime(); |
|
|
|
String username = inData.getUsername(); |
|
|
|
int waitTimes = inData.getWaitTimes(); |
|
|
|
double waitHour = waitTimes/60.0; |
|
|
|
double waitHour = waitTimes / 60.0; |
|
|
|
|
|
|
|
//获取当前加工中心机台对应的calendarId |
|
|
|
Map<String, Object> calendarMap = scheduleMapper.getCalendarId(inData); |
|
|
|
//判断是否存在当前的加工中心机台数据 |
|
|
|
if (calendarMap == null || calendarMap.size() == 0) { |
|
|
|
throw new XJException("班次异常!"); |
|
|
|
throw new XJException("班次异常!"); |
|
|
|
} |
|
|
|
//设置查询的条件 |
|
|
|
String calendarId = String.valueOf(calendarMap.get("calendarId")); |
|
|
|
@ -222,11 +227,11 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @return java.util.Map<java.lang.String, java.lang.Object> |
|
|
|
* @Author LR |
|
|
|
* @Description 插入等待的派工单信息 |
|
|
|
* @DateTime 2022/3/2 15:49 |
|
|
|
* @DateTime 2022/3/2 15:49 |
|
|
|
* @Param [site, orderNo, itemNo, workCenterNo, resourceId, waitHour, specifiedTime, scheduleDate, scheduleTime, calendarId, username] |
|
|
|
* @return java.util.Map<java.lang.String,java.lang.Object> |
|
|
|
**/ |
|
|
|
public Map<String, Object> addWaitSchedule(String site, String orderNo, Integer itemNo, String workCenterNo, String resourceId, double waitHour, |
|
|
|
String specifiedTime, Date scheduleDate, Date scheduleTime, String calendarId, String username) { |
|
|
|
@ -264,12 +269,12 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
Map<String, Object> calendarMap = scheduleMapper.getCalendarId(inData); |
|
|
|
//判断是否存在当前的加工中心机台数据 |
|
|
|
if (calendarMap == null || calendarMap.size() == 0) { |
|
|
|
throw new XJException("班次异常!"); |
|
|
|
throw new XJException("班次异常!"); |
|
|
|
} |
|
|
|
//设置查询的条件 |
|
|
|
String calendarId = String.valueOf(calendarMap.get("calendarId")); |
|
|
|
//调用存储过程 重新排产的派工单 |
|
|
|
Map<String, Object> resultMap = this.reScheduleWorkOrders(site, specifiedTime, scheduleDate, scheduleTime, calendarId, workCenterNo, resourceId); |
|
|
|
Map<String, Object> resultMap = this.reScheduleWorkOrders(site, specifiedTime, scheduleDate, scheduleTime, calendarId, workCenterNo, resourceId); |
|
|
|
//判断是否检验成功 |
|
|
|
String resultCode = String.valueOf(resultMap.get("resultCode")); |
|
|
|
if ("400".equalsIgnoreCase(resultCode)) { |
|
|
|
@ -279,11 +284,11 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @return java.util.Map<java.lang.String, java.lang.Object> |
|
|
|
* @Author LR |
|
|
|
* @Description 重新排产派工单 |
|
|
|
* @DateTime 2022/3/2 15:59 |
|
|
|
* @DateTime 2022/3/2 15:59 |
|
|
|
* @Param [site, specifiedTime, scheduleDate, scheduleTime, calendarId, workCenterNo, resourceId] |
|
|
|
* @return java.util.Map<java.lang.String,java.lang.Object> |
|
|
|
**/ |
|
|
|
public Map<String, Object> reScheduleWorkOrders(String site, String specifiedTime, Date scheduleDate, Date scheduleTime, String calendarId, String workCenterNo, String resourceId) { |
|
|
|
List<Object> params = new ArrayList<>(); |
|
|
|
@ -321,10 +326,11 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
|
|
|
|
/** |
|
|
|
* TODO 向上移动派工单 |
|
|
|
* |
|
|
|
* @return java.util.Map<java.lang.String, java.lang.Object> |
|
|
|
* @author LR |
|
|
|
* @date 2022/3/14 15:28 |
|
|
|
* @Param [site, workCenterNo, resourceId, scheduleSeqNo, direction] |
|
|
|
* @return java.util.Map<java.lang.String, java.lang.Object> |
|
|
|
**/ |
|
|
|
public Map<String, Object> moveUpSchedule(String site, String workCenterNo, String resourceId, int scheduleSeqNo, String direction) { |
|
|
|
List<Object> params = new ArrayList<>(); |
|
|
|
@ -360,10 +366,11 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
|
|
|
|
/** |
|
|
|
* TODO 调用存储过程 --向下移动派工单 |
|
|
|
* |
|
|
|
* @return java.util.Map<java.lang.String, java.lang.Object> |
|
|
|
* @author LR |
|
|
|
* @date 2022/3/14 15:32 |
|
|
|
* @Param [site, workCenterNo, resourceId, scheduleSeqNo, s] |
|
|
|
* @return java.util.Map<java.lang.String, java.lang.Object> |
|
|
|
**/ |
|
|
|
public Map<String, Object> moveDownSchedule(String site, String workCenterNo, String resourceId, int scheduleSeqNo, String direction) { |
|
|
|
List<Object> params = new ArrayList<>(); |
|
|
|
@ -401,7 +408,7 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
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){ |
|
|
|
if (operatorList.size() == 0) { |
|
|
|
throw new XJException("暂无需要排产的数据!"); |
|
|
|
} |
|
|
|
//公共参数 |
|
|
|
@ -418,12 +425,12 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
//统计排产的数量 |
|
|
|
Float countScheduledQty = 0f; |
|
|
|
//循环计算 |
|
|
|
for(OperatorInData operatorData : operatorList){ |
|
|
|
for (OperatorInData operatorData : operatorList) { |
|
|
|
float scheduledQty = operatorData.getQtyToSchedule(); |
|
|
|
countScheduledQty = countScheduledQty + scheduledQty; |
|
|
|
} |
|
|
|
//判断是否校验总数量 |
|
|
|
if(checkFlag){ |
|
|
|
if (checkFlag) { |
|
|
|
//调用存储过程 校验数量是否超过上限 |
|
|
|
Map<String, Object> checkMap = this.checkFQCScheduleWithScheduledQty(site, orderNo, itemNo, countScheduledQty); |
|
|
|
//判断是否检验成功 |
|
|
|
@ -434,7 +441,7 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
} |
|
|
|
} |
|
|
|
//循环插入派工单 |
|
|
|
for(OperatorInData operatorData : operatorList){ |
|
|
|
for (OperatorInData operatorData : operatorList) { |
|
|
|
String resourceId = operatorData.getOperatorId(); |
|
|
|
float scheduledQty = operatorData.getQtyToSchedule(); |
|
|
|
pageData.setResourceId(resourceId); |
|
|
|
@ -442,7 +449,7 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
Map<String, Object> calendarMap = scheduleMapper.getCalendarId(pageData); |
|
|
|
//判断是否存在当前的加工中心机台数据 |
|
|
|
if (calendarMap == null || calendarMap.size() == 0) { |
|
|
|
throw new XJException("班次异常!"); |
|
|
|
throw new XJException("班次异常!"); |
|
|
|
} |
|
|
|
//设置查询的条件 |
|
|
|
String calendarId = String.valueOf(calendarMap.get("calendarId")); |
|
|
|
@ -456,7 +463,7 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 刷新工单排产的数量 |
|
|
|
// 刷新工单排产的数量 |
|
|
|
return schedulingMapper.freshSoRoutingScheduledQty(pageData); |
|
|
|
} |
|
|
|
|
|
|
|
@ -484,10 +491,11 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
|
|
|
|
/** |
|
|
|
* TODO 校验排产的数量 |
|
|
|
* |
|
|
|
* @return java.util.Map<java.lang.String, java.lang.Object> |
|
|
|
* @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<>(); |
|
|
|
@ -507,8 +515,8 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<Map<String, Object>> getOrderPartStockedQty(SearchScheduleData inData){ |
|
|
|
return schedulingMapper.getOrderPartStockedQty(inData); |
|
|
|
public List<Map<String, Object>> getOrderPartStockedQty(SearchScheduleData inData) { |
|
|
|
return schedulingMapper.getOrderPartStockedQty(inData); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
@ -545,10 +553,11 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
|
|
|
|
/** |
|
|
|
* TODO 修改等待派工单以及以下的排产时间 |
|
|
|
* |
|
|
|
* @return java.util.Map<java.lang.String, java.lang.Object> |
|
|
|
* @author LR |
|
|
|
* @date 2022/3/23 13:25 |
|
|
|
* @Param [site, workCenterNo, resourceId, scheduledSeqNo] |
|
|
|
* @return java.util.Map<java.lang.String, java.lang.Object> |
|
|
|
**/ |
|
|
|
public Map<String, Object> resortScheduleTimes(String site, String workCenterNo, String resourceId, int scheduledSeqNo) { |
|
|
|
List<Object> params = new ArrayList<>(); |
|
|
|
@ -564,10 +573,11 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
|
|
|
|
/** |
|
|
|
* TODO 修改等待派工单时的等待时间 |
|
|
|
* |
|
|
|
* @return java.util.Map<java.lang.String, java.lang.Object> |
|
|
|
* @author LR |
|
|
|
* @date 2022/3/23 13:18 |
|
|
|
* @Param [site, orderNo, itemNo, seqNo, waitTimes] |
|
|
|
* @return java.util.Map<java.lang.String, java.lang.Object> |
|
|
|
**/ |
|
|
|
public Map<String, Object> updateScheduleWaitTimes(String site, String orderNo, int itemNo, String seqNo, int waitTimes) { |
|
|
|
List<Object> params = new ArrayList<>(); |
|
|
|
@ -615,10 +625,11 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
|
|
|
|
/** |
|
|
|
* TODO 根据工艺路线刷新派工单数据 |
|
|
|
* |
|
|
|
* @return java.util.Map<java.lang.String, java.lang.Object> |
|
|
|
* @author LR |
|
|
|
* @date 2022/3/23 13:35 |
|
|
|
* @Param [site, orderNo, itemNo, seqNo, scheduledSeqNo, workCenterNo] |
|
|
|
* @return java.util.Map<java.lang.String, java.lang.Object> |
|
|
|
**/ |
|
|
|
public Map<String, Object> refreshScheduleByRouting(String site, String orderNo, int itemNo, String seqNo, int scheduledSeqNo, String workCenterNo) { |
|
|
|
List<Object> params = new ArrayList<>(); |
|
|
|
@ -650,10 +661,10 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
//Map<String, Object> tempMap = this.refreshScheduleBy(site, orderNo, itemNo, seqNo, scheduledSeqNo, workCenterNo); |
|
|
|
//判断是否检验成功 |
|
|
|
//String tempCode = String.valueOf(tempMap.get("resultCode")); |
|
|
|
// if (!"200".equalsIgnoreCase(tempCode)) { |
|
|
|
// if (!"200".equalsIgnoreCase(tempCode)) { |
|
|
|
// String msg = String.valueOf(tempMap.get("resultMsg")); |
|
|
|
// throw new XJException(msg, Integer.parseInt(tempCode)); |
|
|
|
// } |
|
|
|
// } |
|
|
|
|
|
|
|
//2.调用存储过程 --修改等待派工单以及等待派工单以下派工单的时间 |
|
|
|
Map<String, Object> resultMap = this.resortScheduleTimes(site, workCenterNo, resourceId, scheduledSeqNo); |
|
|
|
@ -696,7 +707,7 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
//处理结果的数据 |
|
|
|
List<ResourceOutData> resultList = new ArrayList<>(); |
|
|
|
//循环填充数据 |
|
|
|
for (Map<String, Object> tempData : resourceList){ |
|
|
|
for (Map<String, Object> tempData : resourceList) { |
|
|
|
String resourceId = String.valueOf(tempData.get("ResourceID")); |
|
|
|
String resourceDesc = String.valueOf(tempData.get("ResouceDesc")); |
|
|
|
//新增对象的数据 |
|
|
|
@ -711,10 +722,11 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
|
|
|
|
/** |
|
|
|
* TODO 调用存储过程 查询工单+工序的可用机台的数据 |
|
|
|
* |
|
|
|
* @return java.util.List<java.util.Map < java.lang.String, java.lang.Object>> |
|
|
|
* @author LR |
|
|
|
* @date 2022/4/1 13:56 |
|
|
|
* @Param [site, orderNo, itemNo] |
|
|
|
* @return java.util.List<java.util.Map < java.lang.String, java.lang.Object>> |
|
|
|
**/ |
|
|
|
public List<Map<String, Object>> getOrderAvailableResource(String site, String orderNo, int itemNo) { |
|
|
|
List<Object> params = new ArrayList<>(); |
|
|
|
@ -722,7 +734,7 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
params.add(orderNo); |
|
|
|
params.add(itemNo); |
|
|
|
//调用存储过程 返回的结果 |
|
|
|
return procedureMapper.getProcedureData("Get_SORouting_AvailResource_List", params); |
|
|
|
return procedureMapper.getProcedureData("Get_SORouting_AvailResource_List", params); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
@ -743,7 +755,7 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
String calendarId = inData.getCalendarId(); |
|
|
|
|
|
|
|
//判断是否校验总数量 |
|
|
|
if(checkFlag){ |
|
|
|
if (checkFlag) { |
|
|
|
//调用存储过程 校验数量是否超过上限 |
|
|
|
Map<String, Object> checkMap = this.checkFQCScheduleWithScheduledQty(site, orderNo, itemNo, scheduledQty); |
|
|
|
//判断是否检验成功 |
|
|
|
@ -793,10 +805,11 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
|
|
|
|
/** |
|
|
|
* TODO 获取分切派工单创建分卷的页面参数 |
|
|
|
* |
|
|
|
* @return java.util.Map<java.lang.String, java.lang.Object> |
|
|
|
* @author LR |
|
|
|
* @date 2022/4/8 16:57 |
|
|
|
* @Param [site, partNo, partDesc, customerId, fgPartNo, supplierId] |
|
|
|
* @return java.util.Map<java.lang.String, java.lang.Object> |
|
|
|
**/ |
|
|
|
public Map<String, Object> getSplitScheduleCreateRollPageData(String site, String partNo, String partDesc, String customerId, String fgPartNo, String supplierId) { |
|
|
|
List<Object> params = new ArrayList<>(); |
|
|
|
@ -829,10 +842,11 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
|
|
|
|
/** |
|
|
|
* TODO 检查创建分切派工单的分卷 |
|
|
|
* |
|
|
|
* @return java.util.Map<java.lang.String, java.lang.Object> |
|
|
|
* @author LR |
|
|
|
* @date 2022/4/8 18:12 |
|
|
|
* @Param [site, customerId, partNo, fgPartNo] |
|
|
|
* @return java.util.Map<java.lang.String, java.lang.Object> |
|
|
|
**/ |
|
|
|
public Map<String, Object> checkCreateSplitScheduleSeparateRoll(String site, String customerId, String partNo, String fgPartNo) { |
|
|
|
List<Object> params = new ArrayList<>(); |
|
|
|
@ -880,9 +894,9 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
//返回打印的列表 |
|
|
|
List<Map<String, Object>> printList = new ArrayList<>(); |
|
|
|
//循环查询返回打印的参数 |
|
|
|
for (String str : rollArr){ |
|
|
|
for (String str : rollArr) { |
|
|
|
//判断第一个卷号是否是空的 |
|
|
|
if(null == str || "-".equals(str)){ |
|
|
|
if (null == str || "-".equals(str)) { |
|
|
|
continue; |
|
|
|
} |
|
|
|
CRollInfoData cRollInfoData = new CRollInfoData(); |
|
|
|
@ -896,13 +910,14 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
|
|
|
|
/** |
|
|
|
* TODO 校验通过执行创建分卷的操作 |
|
|
|
* |
|
|
|
* @return void |
|
|
|
* @author LR |
|
|
|
* @date 2022/4/8 18:20 |
|
|
|
* @Param [site, orderNo, itemNo, splitType, supplierId, username, rollQty, rollNums, rollDate, customerId, partNo, fgPartNo, supplierNote, rollNo] |
|
|
|
* @return void |
|
|
|
**/ |
|
|
|
public Map<String, Object> createSplitScheduleSeparateRoll(String site, String orderNo, int itemNo, String splitType, String supplierId, String username, Float rollQty, int rollNums, |
|
|
|
String rollDate, String customerId, String partNo, String fgPartNo, String supplierNote, String rollNo) { |
|
|
|
public Map<String, Object> createSplitScheduleSeparateRoll(String site, String orderNo, int itemNo, String splitType, String supplierId, String username, Float rollQty, int rollNums, |
|
|
|
String rollDate, String customerId, String partNo, String fgPartNo, String supplierNote, String rollNo) { |
|
|
|
List<Object> params = new ArrayList<>(); |
|
|
|
params.add(site); |
|
|
|
params.add(orderNo); |
|
|
|
@ -954,17 +969,17 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
//查询卷信息 |
|
|
|
CRollInfoOutData rollData = schedulingMapper.getTransformPartRoll(inData); |
|
|
|
//判断是否存在 |
|
|
|
if(null == rollData){ |
|
|
|
if (null == rollData) { |
|
|
|
throw new XJException("卷号不存在!"); |
|
|
|
} |
|
|
|
//继续判断物料编码和当前的原物料编码 |
|
|
|
String rmPartNo = rollData.getPartNo(); |
|
|
|
if (!rmPartNo.equalsIgnoreCase(oriPartNo)){ |
|
|
|
if (!rmPartNo.equalsIgnoreCase(oriPartNo)) { |
|
|
|
throw new XJException("卷物料编码和BOM的物料编码不一致!"); |
|
|
|
} |
|
|
|
//验证卷是否已耗用 |
|
|
|
String statusDb = rollData.getStatusDb(); |
|
|
|
if (!"I".equalsIgnoreCase(statusDb)){ |
|
|
|
if (!"I".equalsIgnoreCase(statusDb)) { |
|
|
|
throw new XJException("该卷号不在材料库无法转换!"); |
|
|
|
} |
|
|
|
//其他验证 待添加 |
|
|
|
@ -1005,11 +1020,11 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
} |
|
|
|
|
|
|
|
//调用存储过程 执行transData CRollInfo数据 |
|
|
|
List<Map<String, Object>> rollNoList = this.transformRollPartProcessCrollInfoAndTransData(site, orderNo, rollDate, siPartNo, sirPartNo, siTransNo, sirTransNo, username); |
|
|
|
List<Map<String, Object>> rollNoList = this.transformRollPartProcessCrollInfoAndTransData(site, orderNo, rollDate, siPartNo, sirPartNo, siTransNo, sirTransNo, username); |
|
|
|
//返回打印的列表 |
|
|
|
List<Map<String, Object>> printList = new ArrayList<>(); |
|
|
|
//循环获取参数 返回打印的列表数据 |
|
|
|
for (int i = 0; i < rollNoList.size(); i++){ |
|
|
|
for (int i = 0; i < rollNoList.size(); i++) { |
|
|
|
String rollNo = String.valueOf(rollNoList.get(i).get("transRollNo")); |
|
|
|
CRollInfoData cRollInfoData = new CRollInfoData(); |
|
|
|
cRollInfoData.setSite(site); |
|
|
|
@ -1022,10 +1037,11 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
|
|
|
|
/** |
|
|
|
* TODO 执行transData CRollInfo数据 |
|
|
|
* |
|
|
|
* @return void |
|
|
|
* @author LR |
|
|
|
* @date 2022/4/28 13:58 |
|
|
|
* @Param [site, orderNo, rollDate, siPartNo, sirPartNo, siTransNo, sirTransNo, username] |
|
|
|
* @return void |
|
|
|
**/ |
|
|
|
public List<Map<String, Object>> transformRollPartProcessCrollInfoAndTransData(String site, String orderNo, String rollDate, String siPartNo, String sirPartNo, String siTransNo, String sirTransNo, String username) { |
|
|
|
List<Object> params = new ArrayList<>(); |
|
|
|
@ -1042,10 +1058,11 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
|
|
|
|
/** |
|
|
|
* TODO 校验是否可以卷转换物料 |
|
|
|
* |
|
|
|
* @return void |
|
|
|
* @author LR |
|
|
|
* @date 2022/4/28 13:47 |
|
|
|
* @Param [site, orderNo, username] |
|
|
|
* @return void |
|
|
|
**/ |
|
|
|
public Map<String, Object> checkTransformRollPart(String site, String orderNo, String username) { |
|
|
|
List<Object> params = new ArrayList<>(); |
|
|
|
@ -1084,10 +1101,11 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
|
|
|
|
/** |
|
|
|
* TODO 获取返回派工单的各种权限 |
|
|
|
* |
|
|
|
* @return java.util.Map<java.lang.String, java.lang.Object> |
|
|
|
* @author LR |
|
|
|
* @date 2022/6/21 14:02 |
|
|
|
* @Param [site] |
|
|
|
* @return java.util.Map<java.lang.String, java.lang.Object> |
|
|
|
**/ |
|
|
|
public Map<String, Object> getScheduleMultiReportSpecialAuth(String site) { |
|
|
|
List<Object> params = new ArrayList<>(); |
|
|
|
@ -1110,7 +1128,7 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
int scheduleSeqNo = inData.getScheduleSeqNo(); |
|
|
|
Date planStartTime = inData.getPlanStartTime(); |
|
|
|
|
|
|
|
//1.调用检查的存储过程 --判断是否可以取消 |
|
|
|
//1.调用检查的存储过程 --判断是否可以取消 |
|
|
|
Map<String, Object> checkMap = this.checkCancelScheduleWithScheduleQuery(site, orderNo, itemNo, seqNo); |
|
|
|
//判断是否通过验证 |
|
|
|
String checkCode = String.valueOf(checkMap.get("resultCode")); |
|
|
|
@ -1135,11 +1153,11 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @return void |
|
|
|
* @Author LR |
|
|
|
* @Description查询派工单--取消排产操作 |
|
|
|
* @DateTime 2022/8/17 14:39 |
|
|
|
* @DateTime 2022/8/17 14:39 |
|
|
|
* @Param [site, orderNo, itemNo, seqNo, workCenterNo, resourceId, lotSize] |
|
|
|
* @return void |
|
|
|
**/ |
|
|
|
public void cancelScheduleWithScheduleQuery(String site, String orderNo, int itemNo, String seqNo, String workCenterNo, String resourceId, Float lotSize) { |
|
|
|
List<Object> params = new ArrayList<>(); |
|
|
|
@ -1155,11 +1173,11 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @return java.util.Map<java.lang.String, java.lang.Object> |
|
|
|
* @Author LR |
|
|
|
* @Description 查询派工单--取消排产检查校验 |
|
|
|
* @DateTime 2022/8/17 14:26 |
|
|
|
* @DateTime 2022/8/17 14:26 |
|
|
|
* @Param [site, orderNo, itemNo, seqNo] |
|
|
|
* @return java.util.Map<java.lang.String,java.lang.Object> |
|
|
|
**/ |
|
|
|
public Map<String, Object> checkCancelScheduleWithScheduleQuery(String site, String orderNo, int itemNo, String seqNo) { |
|
|
|
List<Object> params = new ArrayList<>(); |
|
|
|
@ -1204,4 +1222,48 @@ public class SchedulingServiceImpl implements SchedulingService { |
|
|
|
return Integer.parseInt(strItemNo); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Transactional |
|
|
|
public void batchScheduleOrderWithExpand(List<SearchScheduleData> inDatas) { |
|
|
|
for (SearchScheduleData inData : inDatas) { |
|
|
|
|
|
|
|
//获取当前的calendarId |
|
|
|
Map<String, Object> calendarMap = scheduleService.getCalendarIdByResourceId(inData); |
|
|
|
//公共参数 |
|
|
|
String site = inData.getSite(); |
|
|
|
String orderNo = inData.getOrderNo(); |
|
|
|
int itemNo = inData.getItemNo(); |
|
|
|
String workCenterNo = inData.getWorkCenterNo(); |
|
|
|
String resourceId = inData.getResourceId(); |
|
|
|
String username = inData.getUsername(); |
|
|
|
Date scheduleDate = inData.getScheduleDate(); |
|
|
|
Date scheduleTime = inData.getScheduleTime(); |
|
|
|
String specifiedTime = inData.getSpecifiedTime(); |
|
|
|
boolean checkFlag = inData.isCheckFlag(); |
|
|
|
Float scheduledQty = inData.getScheduledQty(); |
|
|
|
String calendarId = calendarMap.get("calendarId").toString(); |
|
|
|
|
|
|
|
//判断是否校验总数量 |
|
|
|
if (checkFlag) { |
|
|
|
//调用存储过程 校验数量是否超过上限 |
|
|
|
Map<String, Object> checkMap = this.checkFQCScheduleWithScheduledQty(site, orderNo, itemNo, scheduledQty); |
|
|
|
//判断是否检验成功 |
|
|
|
String resultCode = String.valueOf(checkMap.get("resultCode")); |
|
|
|
if (!"200".equalsIgnoreCase(resultCode)) { |
|
|
|
String msg = String.valueOf(checkMap.get("resultMsg")); |
|
|
|
throw new XJException(msg, Integer.parseInt(resultCode)); |
|
|
|
} |
|
|
|
} |
|
|
|
//验证通过 继续执行排产操作 |
|
|
|
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 XJException(msg); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |