|
@@ -87,7 +87,7 @@ public class ApsServiceImpl implements ApsService {
|
|
|
/**
|
|
|
* Aps排程
|
|
|
* @param apsBlankOrders
|
|
|
- * @param apsType cd:插单,lzcp:冷轧连续重排
|
|
|
+ * @param apsType cd:插单,lzcp:冷轧连续重排,mix:混合排程
|
|
|
*/
|
|
|
@Override
|
|
|
public void apsSchedule(List<ApsBlankOrderVo> apsBlankOrders,String apsType,SysUserVo currentUser) {
|
|
@@ -145,9 +145,9 @@ public class ApsServiceImpl implements ApsService {
|
|
|
}
|
|
|
// 冷轧连续性问题重排
|
|
|
if(StrUtil.isNotBlank(apsType) && "lzcp".equals(apsType)){
|
|
|
- lzlxOrderSchedule(apsBlankOrders,currentUser);
|
|
|
+ lzlxOrderSchedule(apsBlankOrders,currentUser,apsType);
|
|
|
}else{
|
|
|
- apsOrderScheduleNew(apsBlankOrders,currentUser);
|
|
|
+ apsOrderScheduleNew(apsBlankOrders,currentUser,apsType);
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
@@ -337,7 +337,7 @@ public class ApsServiceImpl implements ApsService {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- private void apsOrderScheduleNew(List<ApsBlankOrderVo> apsBlankOrders,SysUserVo currentUser){
|
|
|
+ private void apsOrderScheduleNew(List<ApsBlankOrderVo> apsBlankOrders,SysUserVo currentUser,String apsType){
|
|
|
// 插单重排的优先排程
|
|
|
List<ApsBlankOrderVo> cdorders = apsBlankOrders.stream().filter(v -> "1".equals(v.getCdbs())).collect(Collectors.toList());
|
|
|
// 先按合金,合金状态分组,再每组分别排程
|
|
@@ -364,7 +364,7 @@ public class ApsServiceImpl implements ApsService {
|
|
|
Date finalApsPlanStartDate = apsPlanStartDate;
|
|
|
if(cdorders != null && cdorders.size()>0){
|
|
|
try{
|
|
|
- apsOrderScheduleApsNew(cdorders,currentUser,allEqs, finalApsPlanStartDate);
|
|
|
+ apsOrderScheduleApsNew(cdorders,currentUser,allEqs, finalApsPlanStartDate,apsType);
|
|
|
}catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
logger.info("排程异常",e);
|
|
@@ -460,7 +460,7 @@ public class ApsServiceImpl implements ApsService {
|
|
|
}
|
|
|
return a;
|
|
|
});
|
|
|
- apsOrderScheduleApsNew(v,currentUser,allEqs, finalApsPlanStartDate);
|
|
|
+ apsOrderScheduleApsNew(v,currentUser,allEqs, finalApsPlanStartDate,apsType);
|
|
|
}catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
logger.info("排程异常",e);
|
|
@@ -490,7 +490,7 @@ public class ApsServiceImpl implements ApsService {
|
|
|
* @param apsBlankOrders
|
|
|
* @param currentUser
|
|
|
*/
|
|
|
- private void lzlxOrderSchedule(List<ApsBlankOrderVo> apsBlankOrders,SysUserVo currentUser){
|
|
|
+ private void lzlxOrderSchedule(List<ApsBlankOrderVo> apsBlankOrders,SysUserVo currentUser,String apsType){
|
|
|
// 坯料计划排序
|
|
|
Collections.sort(apsBlankOrders,(v1,v2)->{
|
|
|
// 合金
|
|
@@ -579,10 +579,10 @@ public class ApsServiceImpl implements ApsService {
|
|
|
}
|
|
|
}
|
|
|
Date finalApsPlanStartDate = apsPlanStartDate;
|
|
|
- apsOrderScheduleApsNew(apsBlankOrders,currentUser,allEqs, finalApsPlanStartDate);
|
|
|
+ apsOrderScheduleApsNew(apsBlankOrders,currentUser,allEqs, finalApsPlanStartDate,apsType);
|
|
|
}
|
|
|
|
|
|
- private void apsOrderScheduleApsNew(List<ApsBlankOrderVo> apsBlankOrders,SysUserVo currentUser,Map<String,Equipment> allEqs,Date apsPlanStartDate){
|
|
|
+ private void apsOrderScheduleApsNew(List<ApsBlankOrderVo> apsBlankOrders,SysUserVo currentUser,Map<String,Equipment> allEqs,Date apsPlanStartDate,String apsType){
|
|
|
// 设备数据每批次开始清空
|
|
|
allEqs.clear();
|
|
|
// 排程前解锁所有待排程订单
|
|
@@ -705,6 +705,10 @@ public class ApsServiceImpl implements ApsService {
|
|
|
|
|
|
apsProductionSchedule.setProcesses(processes);
|
|
|
apsProductionSchedule.setEquipmentList(equipmentList);
|
|
|
+ // 是否混排
|
|
|
+ if(StrUtil.isNotBlank(apsType)){
|
|
|
+ apsProductionSchedule.setScheduleType(apsType);
|
|
|
+ }
|
|
|
|
|
|
System.out.println("排程数据:" + JSONUtil.toJsonStr(apsProductionSchedule, jsonConfig));
|
|
|
logger.info("排程数据:" + JSONUtil.toJsonStr(apsProductionSchedule, jsonConfig));
|