|
@@ -52,7 +52,7 @@ public class ReportCheckServiceImpl implements ReportCheckService {
|
|
|
public static final String COMPLETED = "已完工";
|
|
|
public static final String SEMIFINISHED_PRODUCTS = "半成品备料";
|
|
|
public static final String WORK_IN_PROCESS = "在制品";
|
|
|
- public static final String MATERIAL_PREPARATION_ORDER="备料订单";
|
|
|
+ public static final String MATERIAL_PREPARATION_ORDER = "备料订单";
|
|
|
private final Logger log = LoggerFactory.getLogger(this.getClass().getName());
|
|
|
@Autowired
|
|
|
private ApsReportRecordsService apsReportRecordsService;
|
|
@@ -278,19 +278,42 @@ public class ReportCheckServiceImpl implements ReportCheckService {
|
|
|
ApsProcessOperationProcessEquDo currentProcessOperationEqu,
|
|
|
ApsReportRecordsDo reportRecordsDo,
|
|
|
ApsProductionOrderDo productionOrderDo) {
|
|
|
- // 获取当前工序作业对应的下一个工序作业 以及工序作业明细信息
|
|
|
+ // 获取当前工序作业对应的下一个工序作业ID
|
|
|
+ String nextProcessId = currentProcessOperationDo.getNextprocessid();
|
|
|
+ // 获取当前工序作业明细对应的下一个工序作也明细ID
|
|
|
String nextProcessesIds = currentProcessOperationEqu.getNextprocessesids();
|
|
|
- log.debug("当前工序作业明细对应的下一个工序作业信息ID:{}", nextProcessesIds);
|
|
|
- // 被流转的工序作业明细
|
|
|
- List<ApsProcessOperationProcessEquDo> nextProcessOperationProcessEquDos = apsProcessOperationProcessEquService.list(new LambdaQueryWrapper<ApsProcessOperationProcessEquDo>()
|
|
|
- .in(ApsProcessOperationProcessEquDo::getId, Arrays.asList(nextProcessesIds.split(",")))
|
|
|
- .eq(BaseDo::getDeleted, NO_DELETED));
|
|
|
- List<String> nextProcessIds = nextProcessOperationProcessEquDos.stream().map(ApsProcessOperationProcessEquDo::getProcessid).distinct().collect(Collectors.toList());
|
|
|
- log.debug("当前工序作业明细对应的下一个工序作业ID:{}", nextProcessIds);
|
|
|
- // 被流转的工序作业
|
|
|
- List<ApsProcessOperationDo> nextProcessList = apsProcessOperationService.list(new LambdaQueryWrapper<ApsProcessOperationDo>()
|
|
|
- .in(ApsProcessOperationDo::getId, nextProcessIds)
|
|
|
- .eq(BaseDo::getDeleted, NO_DELETED));
|
|
|
+ log.debug("当前作业对应的下一个工序作业:{}以及下一个工序作业明细:{}", nextProcessId, nextProcessesIds);
|
|
|
+ if ((StringUtils.isNotBlank(nextProcessId) && StringUtils.isBlank(nextProcessesIds)) ||
|
|
|
+ StringUtils.isBlank(nextProcessId) && StringUtils.isNotBlank(nextProcessesIds)) {
|
|
|
+ log.error("当前作业的下一个 工序作业id或者工序作业明细id 为空");
|
|
|
+ throw new CustomException("工序作业数据异常");
|
|
|
+ }
|
|
|
+ List<ApsProcessOperationProcessEquDo> nextProcessOperationProcessEquDos = new ArrayList<>();
|
|
|
+ List<ApsProcessOperationDo> nextProcessList = new ArrayList<>();
|
|
|
+ if (StringUtils.isNotBlank(nextProcessesIds)) {
|
|
|
+ // 被流转的工序作业明细
|
|
|
+ nextProcessOperationProcessEquDos = apsProcessOperationProcessEquService.list(new LambdaQueryWrapper<ApsProcessOperationProcessEquDo>()
|
|
|
+ .in(ApsProcessOperationProcessEquDo::getId, Arrays.asList(nextProcessesIds.split(",")))
|
|
|
+ .eq(BaseDo::getDeleted, NO_DELETED));
|
|
|
+ if (nextProcessOperationProcessEquDos.isEmpty()) {
|
|
|
+ log.error("无法根据nextProcessesIds:{},找到工序作业明细信息", nextProcessesIds);
|
|
|
+ throw new CustomException("无法找到下一个工序作业明细信息");
|
|
|
+ }
|
|
|
+ List<String> nextProcessIds = nextProcessOperationProcessEquDos.stream().map(ApsProcessOperationProcessEquDo::getProcessid).distinct().collect(Collectors.toList());
|
|
|
+ if (nextProcessIds.isEmpty()) {
|
|
|
+ log.error("当前作业明细:{},无法找到对应的工序作业信息", nextProcessesIds);
|
|
|
+ throw new CustomException("无法找到工序作业信息");
|
|
|
+ }
|
|
|
+ log.debug("当前工序作业明细对应的下一个工序作业ID:{}", nextProcessIds);
|
|
|
+ // 被流转的工序作业
|
|
|
+ nextProcessList = apsProcessOperationService.list(new LambdaQueryWrapper<ApsProcessOperationDo>()
|
|
|
+ .in(ApsProcessOperationDo::getId, nextProcessIds)
|
|
|
+ .eq(BaseDo::getDeleted, NO_DELETED));
|
|
|
+ if (nextProcessList.isEmpty()) {
|
|
|
+ log.error("根据nextProcessIds:{},找到工序作业明细信息", nextProcessesIds);
|
|
|
+ throw new CustomException("无法找到工序作业");
|
|
|
+ }
|
|
|
+ }
|
|
|
//当前报工记录对应的输入物料数量
|
|
|
int inputNum = StringUtils.isBlank(reportRecordsDo.getNeedcheckbatchnumber()) ? 1 : reportRecordsDo.getNeedcheckbatchnumber().split(",").length;
|
|
|
|
|
@@ -473,12 +496,12 @@ public class ReportCheckServiceImpl implements ReportCheckService {
|
|
|
// 添加需要流转的编号信息
|
|
|
toBeProcessedDataMap.put(outputId, outputNumbers);
|
|
|
}
|
|
|
- if(MATERIAL_PREPARATION_ORDER.equals(productionOrderDo.getOrdertype())){
|
|
|
+ if (MATERIAL_PREPARATION_ORDER.equals(productionOrderDo.getOrdertype())) {
|
|
|
log.debug("订单类型为备料");
|
|
|
// 更新成品的在制品状态
|
|
|
updateWorkInProgressInventoryStatus(blScNum + lzScNum, cpScNum, YES,
|
|
|
apsWorkInProgressInventoryDos, currentReportOutputs, WAITING, PASS);
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
// 更新成品的在制品状态
|
|
|
updateWorkInProgressInventoryStatus(blScNum + lzScNum, cpScNum, YES,
|
|
|
apsWorkInProgressInventoryDos, currentReportOutputs, TO_BE_PUT_INTO_STORAGE, PASS);
|
|
@@ -490,10 +513,12 @@ public class ReportCheckServiceImpl implements ReportCheckService {
|
|
|
apsWorkInProgressInventoryService.saveOrUpdateBatch(apsWorkInProgressInventoryDos);
|
|
|
// 保存工序作业输出物料
|
|
|
apsProcessOperationOutMaterService.saveOrUpdateBatch(operationOutMaterDoList);
|
|
|
- // 批次号流转至下一工序
|
|
|
- batchNumberCirculation(nextProcessOperationProcessEquDos, nextProcessList, toBeProcessedDataMap);
|
|
|
- // 更新流转取消数量
|
|
|
- circulationCancellation(nextProcessOperationProcessEquDos, nextProcessList, circulationCancellationMap);
|
|
|
+ if (!nextProcessOperationProcessEquDos.isEmpty() && !nextProcessList.isEmpty()) {
|
|
|
+ // 批次号流转至下一工序
|
|
|
+ batchNumberCirculation(nextProcessOperationProcessEquDos, nextProcessList, toBeProcessedDataMap);
|
|
|
+ // 更新流转取消数量
|
|
|
+ circulationCancellation(nextProcessOperationProcessEquDos, nextProcessList, circulationCancellationMap);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -507,7 +532,7 @@ public class ReportCheckServiceImpl implements ReportCheckService {
|
|
|
if (circulationCancellationMap.isEmpty()) {
|
|
|
log.debug("暂无需要取消流转的批次号信息");
|
|
|
}
|
|
|
- log.debug("本次检验不合格的输出物料id:{}",circulationCancellationMap.keySet());
|
|
|
+ log.debug("本次检验不合格的输出物料id:{}", circulationCancellationMap.keySet());
|
|
|
ApsProcessOperationDo apsProcessOperationDo;
|
|
|
CancelProcessOperationVo cancelProcessOperationVo;
|
|
|
for (Map.Entry<String, Integer> entry : circulationCancellationMap.entrySet()) {
|