|
@@ -107,6 +107,10 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
private GanttServiceImpl ganttService;
|
|
|
@Autowired
|
|
|
private ApsConflictLogServiceImpl apsConflictLogService;
|
|
|
+ @Autowired
|
|
|
+ private ApsRollerTypeService apsRollerTypeService;
|
|
|
+ @Autowired
|
|
|
+ private ApsProductionProcessesService apsProductionProcessesService;
|
|
|
|
|
|
|
|
|
private final static Map<String, String> UNIT_MAP = new HashMap<String, String>() {{
|
|
@@ -1233,9 +1237,15 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
List<ApsProcessOperationOutMaterDo> apsProcessOperationOutMaterList = apsProcessOperationOutMaterService.getBaseMapper().selectList(new QueryWrapper<ApsProcessOperationOutMaterDo>().lambda().eq(ApsProcessOperationOutMaterDo::getBlankid, blankId));
|
|
|
//坯料计划对应的可选设备
|
|
|
List<ApsProcessOperationEquDo> apsProcessOperationEquDoList = apsProcessOperationEquService.getBaseMapper().selectList(new QueryWrapper<ApsProcessOperationEquDo>().lambda().eq(ApsProcessOperationEquDo::getBlankid, blankId));
|
|
|
+ //查询所有工序管理
|
|
|
+ List<ApsProductionProcessesDo> allProcessList = apsProductionProcessesService.list();
|
|
|
+ //查询设备或资源组的设备类型
|
|
|
+ List<AspCheckItemsDo> checkItemsDos = apsProcessOperationDao.getcheckItemsDos();
|
|
|
|
|
|
//如果有前道工序作业,并且该工序输入物料ID不是前道工序作业的输出物料ID,错误提示:{工序}{工序显示名}的输入物料不存在,请重新选择
|
|
|
|
|
|
+ //查询所有设备辊类型
|
|
|
+ List<ApsRollerTypeDo> allRollerList = apsRollerTypeService.list();
|
|
|
//遍历工序作业
|
|
|
for (ApsProcessOperationDo apsProcessOperationDo : apsProcessOperationList) {
|
|
|
if (apsProcessOperationDo.getPlanprocessrall() == null || apsProcessOperationDo.getPlanprocessrall().equals(BigDecimal.valueOf(0))) {
|
|
@@ -1334,16 +1344,41 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- //轧机作业的可选设备必须选择辊类型
|
|
|
- if (apsProcessOperationDo.getIszj().equals("1")) {
|
|
|
- List<ApsProcessOperationEquDo> zjequs = apsProcessOperationEquDoList.stream().filter(equ -> equ.getMainid().equals(apsProcessOperationDo.getId())).collect(Collectors.toList());
|
|
|
- for (ApsProcessOperationEquDo processOperationEquDo : zjequs) {
|
|
|
+ //该作业工序的设备类型
|
|
|
+ String oktype = "";
|
|
|
+ ApsProductionProcessesDo processesDo = allProcessList.stream().filter(pd -> pd.getId().equals(apsProcessOperationDo.getProcessid())).findFirst().orElse(null);
|
|
|
+ if (processesDo != null && StringUtils.isNotBlank(processesDo.getEquipmenttype())) {
|
|
|
+ oktype = processesDo.getEquipmenttype();
|
|
|
+ }
|
|
|
+ //该作业可选设备
|
|
|
+ List<ApsProcessOperationEquDo> zyequs = apsProcessOperationEquDoList.stream().filter(equ -> equ.getMainid().equals(apsProcessOperationDo.getId())).collect(Collectors.toList());
|
|
|
+ for (ApsProcessOperationEquDo processOperationEquDo : zyequs) {
|
|
|
+ //轧机作业的可选设备必须选择辊类型
|
|
|
+ if (apsProcessOperationDo.getIszj().equals("1")) {
|
|
|
if (ObjectUtil.isEmpty(processOperationEquDo.getRollerid())) {
|
|
|
return R.error(apsProcessOperationDo.getProcess() + apsProcessOperationDo.getProcessname() + "轧机作业的可选设备必须选择辊类型");
|
|
|
}
|
|
|
+
|
|
|
+ ApsRollerTypeDo apsRollerTypeDo = allRollerList.stream().filter(ro -> ro.getCheckitemid().equals(processOperationEquDo.getResourceid()) && ro.getId().equals(processOperationEquDo.getRollerid())).findFirst().orElse(null);
|
|
|
+ if (apsRollerTypeDo == null) {
|
|
|
+ return R.error(apsProcessOperationDo.getProcess() + apsProcessOperationDo.getProcessname() + "轧机作业的可选设备辊类型选择不正确");
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
+ //校验设备类型
|
|
|
+ if (oktype != "") {
|
|
|
+ AspCheckItemsDo checkItemsDo = checkItemsDos.stream().filter(ci -> ci.getId().equals(processOperationEquDo.getResourceid())).findFirst().orElse(null);
|
|
|
+ if (checkItemsDo != null) {
|
|
|
+ List<String> etypearr = Arrays.asList(checkItemsDo.getCheckitemtype().split(","));
|
|
|
+ List<String> oktypearr = Arrays.asList(oktype.split(","));
|
|
|
+ for (String etype : etypearr) {
|
|
|
+ if (!oktypearr.contains(etype)) {
|
|
|
+ return R.error(apsProcessOperationDo.getProcess() + apsProcessOperationDo.getProcessname() + "作业的可选设备类型与工序要求的设备类型不一致");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//校验工序作业明细的加工设备和加工车间的代号是否为空
|
|
@@ -2167,7 +2202,7 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
curEquCancelRoll = tempRoll;
|
|
|
}
|
|
|
//取消和更新作业明细
|
|
|
- euqnowhr+=processOperationProcessEquDo.getId()+",";
|
|
|
+ euqnowhr += processOperationProcessEquDo.getId() + ",";
|
|
|
cancelOperationProcessEquVo.setCurEquCancelRoll(curEquCancelRoll);
|
|
|
cancelOperationProcessEquVo.setApsProcessOperationDo(apsProcessOperationDo);
|
|
|
cancelOperationProcessEquVo.setProcessOperationProcessEquDo(processOperationProcessEquDo);
|
|
@@ -2181,10 +2216,10 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
|
|
|
}
|
|
|
|
|
|
//获取其他明细的取消卷数合计
|
|
|
- if(euqnowhr!=""){
|
|
|
- euqnowhr="and ID not in('"+euqnowhr.substring(0, euqnowhr.length() - 1).replace(",","','")+"')";
|
|
|
+ if (euqnowhr != "") {
|
|
|
+ euqnowhr = "and ID not in('" + euqnowhr.substring(0, euqnowhr.length() - 1).replace(",", "','") + "')";
|
|
|
}
|
|
|
- List<ApsProcessOperationProcessEquDo> apsProcessOperationProcessAllEqus = apsProcessOperationDao.getProcessOperationProcessAllEqus(newOperDo.getId(),euqnowhr);
|
|
|
+ List<ApsProcessOperationProcessEquDo> apsProcessOperationProcessAllEqus = apsProcessOperationDao.getProcessOperationProcessAllEqus(newOperDo.getId(), euqnowhr);
|
|
|
for (ApsProcessOperationProcessEquDo equDo : apsProcessOperationProcessAllEqus) {
|
|
|
if (equDo.getCancelroll() > 0) {
|
|
|
//计算所有作业明细已取消卷数的合计
|