|
@@ -31,6 +31,7 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
import java.math.RoundingMode;
|
|
import java.math.RoundingMode;
|
|
|
|
+import java.time.LocalDateTime;
|
|
import java.time.ZoneId;
|
|
import java.time.ZoneId;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.concurrent.TimeUnit;
|
|
import java.util.concurrent.TimeUnit;
|
|
@@ -129,7 +130,7 @@ public class ApsServiceImpl implements ApsService {
|
|
// 合金状态
|
|
// 合金状态
|
|
if(alloystatus1 == null || alloystatus2 == null || alloystatus1.compareTo(alloystatus2) == 0){
|
|
if(alloystatus1 == null || alloystatus2 == null || alloystatus1.compareTo(alloystatus2) == 0){
|
|
// 产品类型
|
|
// 产品类型
|
|
- if(producttype1.compareTo(producttype2) == 0){
|
|
|
|
|
|
+ if(producttype1 == null || producttype2 == null || producttype1.compareTo(producttype2) == 0){
|
|
// 厚度
|
|
// 厚度
|
|
if(thickness1.compareTo(thickness2) == 0){
|
|
if(thickness1.compareTo(thickness2) == 0){
|
|
// 重量
|
|
// 重量
|
|
@@ -165,10 +166,7 @@ public class ApsServiceImpl implements ApsService {
|
|
}
|
|
}
|
|
return a;
|
|
return a;
|
|
});
|
|
});
|
|
- // 按订单分批排程
|
|
|
|
-// Map<String, List<ApsBlankOrderVo>> groupedItems = apsBlankOrders.stream()
|
|
|
|
-// .collect(Collectors.groupingBy(ApsBlankOrderVo::getProductionorderid));
|
|
|
|
-// groupedItems.forEach((k,v)->{
|
|
|
|
|
|
+
|
|
apsBlankOrders.forEach((bo)->{
|
|
apsBlankOrders.forEach((bo)->{
|
|
List<ApsBlankOrderVo> v = new ArrayList<>();
|
|
List<ApsBlankOrderVo> v = new ArrayList<>();
|
|
v.add(bo);
|
|
v.add(bo);
|
|
@@ -237,9 +235,6 @@ public class ApsServiceImpl implements ApsService {
|
|
} else {
|
|
} else {
|
|
throw new CustomException("排程参数缺失");
|
|
throw new CustomException("排程参数缺失");
|
|
}
|
|
}
|
|
- // 全局配置
|
|
|
|
-
|
|
|
|
-
|
|
|
|
// 洗炉合金配置数据设置
|
|
// 洗炉合金配置数据设置
|
|
List<WashingMetal> washingMetalConfig = apsBlankOrderDao.getWashingMetalConfig();
|
|
List<WashingMetal> washingMetalConfig = apsBlankOrderDao.getWashingMetalConfig();
|
|
productionScheduleVo.setClosealloynames(washingMetalConfig);
|
|
productionScheduleVo.setClosealloynames(washingMetalConfig);
|
|
@@ -292,7 +287,7 @@ public class ApsServiceImpl implements ApsService {
|
|
// 设备列表初始化
|
|
// 设备列表初始化
|
|
List<String> optionalEquipments = equipmentListInit(operationDo,equipmentList,eqMaps,blankids,productionScheduleVo,apsScheduleConfig);
|
|
List<String> optionalEquipments = equipmentListInit(operationDo,equipmentList,eqMaps,blankids,productionScheduleVo,apsScheduleConfig);
|
|
// 工序作业相关数据初始化
|
|
// 工序作业相关数据初始化
|
|
- productionProcessesInit(operationDo,produceOrder,optionalEquipments,processesList,operationProductionProcesses);
|
|
|
|
|
|
+ productionProcessesInit(operationDo,produceOrder,optionalEquipments,processesList,operationProductionProcesses,apsBlankOrderVo,productionScheduleVo);
|
|
}
|
|
}
|
|
// 前后关联关系初始化
|
|
// 前后关联关系初始化
|
|
processesRelationInit(rootOperationDo,operationProductionProcesses,operationMaps,apsBlankOrderVo);
|
|
processesRelationInit(rootOperationDo,operationProductionProcesses,operationMaps,apsBlankOrderVo);
|
|
@@ -529,7 +524,7 @@ public class ApsServiceImpl implements ApsService {
|
|
* @param operationProductionProcesses
|
|
* @param operationProductionProcesses
|
|
*/
|
|
*/
|
|
private void productionProcessesInit(ApsProcessOperationDo operationDo,ProduceOrder produceOrder,List<String> optionalEquipments
|
|
private void productionProcessesInit(ApsProcessOperationDo operationDo,ProduceOrder produceOrder,List<String> optionalEquipments
|
|
- ,List<ProductionProcesses> processesList,Map<String,List<ProductionProcesses>> operationProductionProcesses){
|
|
|
|
|
|
+ ,List<ProductionProcesses> processesList,Map<String,List<ProductionProcesses>> operationProductionProcesses,ApsBlankOrderVo apsBlankOrderVo,ProductionScheduleVo productionScheduleVo){
|
|
// 输出物料
|
|
// 输出物料
|
|
List<ApsProcessOperationOutMaterDo> outMaterDos = apsProcessOperationOutMaterService.list(new LambdaQueryWrapper<ApsProcessOperationOutMaterDo>()
|
|
List<ApsProcessOperationOutMaterDo> outMaterDos = apsProcessOperationOutMaterService.list(new LambdaQueryWrapper<ApsProcessOperationOutMaterDo>()
|
|
.eq(ApsProcessOperationOutMaterDo::getMainid, operationDo.getId()));
|
|
.eq(ApsProcessOperationOutMaterDo::getMainid, operationDo.getId()));
|
|
@@ -553,6 +548,21 @@ public class ApsServiceImpl implements ApsService {
|
|
}else{
|
|
}else{
|
|
for (Integer i = 0; i < operationDo.getPlanprocessrall(); i++) {
|
|
for (Integer i = 0; i < operationDo.getPlanprocessrall(); i++) {
|
|
ProductionProcesses processes = productionProcessesDetailInit(operationDo, produceOrder, optionalEquipments,outMaterDos);
|
|
ProductionProcesses processes = productionProcessesDetailInit(operationDo, produceOrder, optionalEquipments,outMaterDos);
|
|
|
|
+ if(apsBlankOrderVo.getPlanhavematerialdate() != null){
|
|
|
|
+ // 全局配置
|
|
|
|
+ ApsOverallConfig apsOverallConfig = new ApsOverallConfig();
|
|
|
|
+ Date startDate = apsBlankOrderVo.getPlanhavematerialdate();
|
|
|
|
+ LocalDateTime startTime = startDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
|
|
|
|
+ apsOverallConfig.setStartTimeLong(startDate.getTime());
|
|
|
|
+ apsOverallConfig.setStartTime(startTime);
|
|
|
|
+ // 排程全局配置
|
|
|
|
+ apsOverallConfig.setRoamTime(productionScheduleVo.getRoamTime());
|
|
|
|
+ apsOverallConfig.setWashingtime(productionScheduleVo.getWashingtime());
|
|
|
|
+ apsOverallConfig.setStandingtime(productionScheduleVo.getStandingtime());
|
|
|
|
+ apsOverallConfig.setClosealloynames(productionScheduleVo.getClosealloynames());
|
|
|
|
+ apsOverallConfig.setLooseness(productionScheduleVo.getLooseness());
|
|
|
|
+ processes.setApsOverallConfig(apsOverallConfig);
|
|
|
|
+ }
|
|
operationProcess.add(processes);
|
|
operationProcess.add(processes);
|
|
}
|
|
}
|
|
}
|
|
}
|