|
@@ -497,6 +497,10 @@ public class ApsServiceImpl implements ApsService {
|
|
|
}
|
|
|
productionScheduleVo.setWashingtime(apsScheduleConfig.getWashingtime());
|
|
|
productionScheduleVo.setStandingtime(apsScheduleConfig.getStandingtime());
|
|
|
+ productionScheduleVo.setStandingyield(apsScheduleConfig.getStandingyield());
|
|
|
+ if(productionScheduleVo.getStandingyield() == null){
|
|
|
+ productionScheduleVo.setStandingyield(60);
|
|
|
+ }
|
|
|
} else {
|
|
|
throw new CustomException("排程参数缺失");
|
|
|
}
|
|
@@ -637,7 +641,7 @@ public class ApsServiceImpl implements ApsService {
|
|
|
.eq(ApsProcessOperationProcessEquDo::getLockmark, "y")
|
|
|
// .notIn(ApsProcessOperationProcessEquDo::getBlankid, blankids)
|
|
|
.lt(ApsProcessOperationProcessEquDo::getPlanstartdate, productionScheduleVo.getApsPlanStartDate())
|
|
|
- .orderByDesc(ApsProcessOperationProcessEquDo::getPlanstartdate)
|
|
|
+ .orderByDesc(ApsProcessOperationProcessEquDo::getPlanstartdate).last(" limit 100")
|
|
|
);
|
|
|
}else if(opId != null && opId.size()>0){
|
|
|
lastpros = processOperationProcessEquService.list(new LambdaQueryWrapper<ApsProcessOperationProcessEquDo>()
|
|
@@ -645,10 +649,11 @@ public class ApsServiceImpl implements ApsService {
|
|
|
.eq(ApsProcessOperationProcessEquDo::getLockmark, "y")
|
|
|
// .notIn(ApsProcessOperationProcessEquDo::getProcessid, opId)
|
|
|
.lt(ApsProcessOperationProcessEquDo::getPlanstartdate, productionScheduleVo.getApsPlanStartDate())
|
|
|
- .orderByDesc(ApsProcessOperationProcessEquDo::getPlanstartdate)
|
|
|
+ .orderByDesc(ApsProcessOperationProcessEquDo::getPlanstartdate).last(" limit 100")
|
|
|
);
|
|
|
}
|
|
|
|
|
|
+ BigDecimal hasLbs = null;
|
|
|
if (lastpros != null && lastpros.size() > 0) {
|
|
|
boolean hasLast = true;
|
|
|
ApsProcessOperationProcessEquDo lastpro = lastpros.get(0);
|
|
@@ -658,6 +663,35 @@ public class ApsServiceImpl implements ApsService {
|
|
|
hasLast = false;
|
|
|
}
|
|
|
}
|
|
|
+ // 获取加工设备当前开始时间第一道工序的立板周期
|
|
|
+ Set<String> prosids = new HashSet<>();
|
|
|
+ lastpros.forEach(v->{
|
|
|
+ prosids.add(v.getProcessid());
|
|
|
+ });
|
|
|
+ // 查询所有作业详情信息
|
|
|
+ List<ApsProcessOperationDo> lastops = (List<ApsProcessOperationDo>)apsProcessOperationService.listByIds(prosids);
|
|
|
+ Map<String,ApsProcessOperationDo> lastopsMap = new HashMap<>();
|
|
|
+ for (ApsProcessOperationDo lastop : lastops) {
|
|
|
+ lastopsMap.put(lastop.getId(),lastop);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 遍历找到最近一个立板周期
|
|
|
+ String lbtj = null;
|
|
|
+ for (int i = 0; i < lastpros.size(); i++) {
|
|
|
+ ApsProcessOperationDo apo = lastopsMap.get(lastpros.get(i).getProcessid());
|
|
|
+ String thislbtj = apo.getMetal() + "^_^" + apo.getProducttype() + "^_^" + apo.getProwidth();
|
|
|
+ if(hasLbs == null){
|
|
|
+ hasLbs = apo.getSinglerollweight();
|
|
|
+ lbtj = thislbtj;
|
|
|
+ }else{
|
|
|
+ if(lbtj.equals(thislbtj)){
|
|
|
+ hasLbs = hasLbs.add(apo.getSinglerollweight());
|
|
|
+ }else{
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
if(hasLast){
|
|
|
ApsProcessOperationDo lastop = apsProcessOperationService.getById(lastpro.getProcessid());
|
|
|
// 输出物料
|
|
@@ -665,10 +699,13 @@ public class ApsServiceImpl implements ApsService {
|
|
|
.eq(ApsProcessOperationOutMaterDo::getMainid, lastpro.getProcessid()));
|
|
|
equipment.setLastProcessType(lastop.getProcess());
|
|
|
equipment.setLastProcessEndTime(lastpro.getPlanenddate());
|
|
|
+ equipment.setOnceprocessmin(lastop.getOnceprocessmin().intValue());
|
|
|
equipment.setLastProcessCutfinishmin(lastop.getCutfinishmin() == null ? null : lastop.getCutfinishmin().intValue());
|
|
|
+ equipment.setLastSerialLbWeight(hasLbs);
|
|
|
// 合金+输入物料+宽度+厚度+输出物料厚度
|
|
|
equipment.setLastSeriesProduceMark(lastop.getMetal() + "^_^" + lastop.getProducttype() + "^_^" + lastop.getProwidth() + "^_^" + lastop.getThickness() + "^_^" + outMaterDos.get(0).getThickness());
|
|
|
equipment.setLastProcessCutfinishmin(lastop.getCutfinishmin() == null ? null : lastop.getCutfinishmin().intValue());
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
// 查询相关工序作业
|
|
@@ -711,6 +748,10 @@ public class ApsServiceImpl implements ApsService {
|
|
|
er.setTotalVolumeWidth(processesDo.getProwidth());
|
|
|
er.setTotalSinglerollweight(processesDo.getSinglerollweight());
|
|
|
er.setTotalThickness(processesDo.getThickness());
|
|
|
+ er.setOnceprocessmin(processesDo.getOnceprocessmin().intValue());
|
|
|
+ if(lastpros != null && lastpros.size()>0 && equs.getId().equals(lastpros.get(0).getId())){
|
|
|
+ er.setLastSerialLbWeight(hasLbs);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
equipmentRunTimes.add(er);
|
|
@@ -879,12 +920,14 @@ public class ApsServiceImpl implements ApsService {
|
|
|
apsOverallConfig.setFurnaceInstallations(productionScheduleVo.getFurnaceInstallations());
|
|
|
apsOverallConfig.setMergeFurnaces(productionScheduleVo.getMergeFurnaces());
|
|
|
apsOverallConfig.setLooseness(productionScheduleVo.getLooseness());
|
|
|
+ apsOverallConfig.setStandingyield(productionScheduleVo.getStandingyield());
|
|
|
processes.setApsOverallConfig(apsOverallConfig);
|
|
|
}
|
|
|
Integer alls = js;
|
|
|
if(i<ys){
|
|
|
alls = alls + 1;
|
|
|
}
|
|
|
+ processes.setMinThPcNum(alls);
|
|
|
processes.setSinglerollweight(operationDo.getSinglerollweight().multiply(new BigDecimal(alls)));
|
|
|
|
|
|
operationProcess.add(processes);
|
|
@@ -919,12 +962,14 @@ public class ApsServiceImpl implements ApsService {
|
|
|
apsOverallConfig.setFurnaceInstallations(productionScheduleVo.getFurnaceInstallations());
|
|
|
apsOverallConfig.setMergeFurnaces(productionScheduleVo.getMergeFurnaces());
|
|
|
apsOverallConfig.setLooseness(productionScheduleVo.getLooseness());
|
|
|
+ apsOverallConfig.setStandingyield(productionScheduleVo.getStandingyield());
|
|
|
processes.setApsOverallConfig(apsOverallConfig);
|
|
|
}
|
|
|
Integer alls = js;
|
|
|
if(i<ys){
|
|
|
alls = alls + 1;
|
|
|
}
|
|
|
+ processes.setMinThPcNum(alls);
|
|
|
processes.setProduceTime(operationDo.getOnceprocessmin().intValue() * alls);
|
|
|
|
|
|
operationProcess.add(processes);
|
|
@@ -947,6 +992,7 @@ public class ApsServiceImpl implements ApsService {
|
|
|
apsOverallConfig.setFurnaceInstallations(productionScheduleVo.getFurnaceInstallations());
|
|
|
apsOverallConfig.setMergeFurnaces(productionScheduleVo.getMergeFurnaces());
|
|
|
apsOverallConfig.setLooseness(productionScheduleVo.getLooseness());
|
|
|
+ apsOverallConfig.setStandingyield(productionScheduleVo.getStandingyield());
|
|
|
processes.setApsOverallConfig(apsOverallConfig);
|
|
|
}
|
|
|
operationProcess.add(processes);
|