|
@@ -3,6 +3,7 @@ package com.rongwei.bscommon.sys.service.impl;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.rongwei.bscommon.sys.service.ApsBlankOrderService;
|
|
|
import com.rongwei.bscommon.sys.service.ApsReportRecordsService;
|
|
|
import com.rongwei.bscommon.sys.service.ReportCheckService;
|
|
@@ -29,6 +30,7 @@ import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
import javax.validation.constraints.NotNull;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
@@ -654,8 +656,8 @@ public class ReportCheckServiceImpl implements ReportCheckService {
|
|
|
.filter(info -> entryentry.getKey().equals(info.getPlaninputid()))
|
|
|
.collect(Collectors.toList());
|
|
|
/**
|
|
|
- * 需求变更:查找该作业明细的该工序作业输出物料对应的所有后道作业明细,即该报工记录的作业明细的所有后道作业明细中,其工序作业的输入物料ID是报工记录的输出物料ID的所有作业明细,
|
|
|
- * 根据计划开工时间的先后顺序,将流转组批次号依次分配给这些后道作业明细;注意:是追加批次号到待加工料卷批次号后面
|
|
|
+ * 需求变更:查找该作业明细的该工序作业输出物料对应的所有后道作业明细,即该报工记录的作业明细的所有后道作业明细中,其工序作业的输入物料ID是报工记录的输出物料ID的所有作业明细,
|
|
|
+ * 根据计划开工时间的先后顺序,将流转组批次号依次分配给剩余待开工卷数-待加工料卷批次号数量>0的作业明细的待加工料卷批次号;注意:是追加批次号到待加工料卷批次号后面
|
|
|
*/
|
|
|
List<String> processIds = apsProcessOperationDos.stream().map(ApsProcessOperationDo::getId).collect(Collectors.toList());
|
|
|
List<ApsProcessOperationProcessEquDo> updateProcessEquList = nextProcessOperationProcessEquDos.stream().filter(info -> processIds.contains(info.getProcessid()))
|
|
@@ -663,16 +665,37 @@ public class ReportCheckServiceImpl implements ReportCheckService {
|
|
|
List<String> outPutNumbers = entryentry.getValue();
|
|
|
outPutNumbers.sort(Comparator.comparing(this::toSortBatchNumber));
|
|
|
for (ApsProcessOperationProcessEquDo equDo : updateProcessEquList) {
|
|
|
- if (ObjectUtil.isNotEmpty(outPutNumbers)){
|
|
|
+ if (ObjectUtil.isNotEmpty(outPutNumbers)) {
|
|
|
+ //剩余待开工卷数
|
|
|
+ Integer leavewaitworkroll = equDo.getLeavewaitworkroll();
|
|
|
+ //待加工料卷批次号数量
|
|
|
+ Integer waitToDoCount = 0;
|
|
|
+ String bachmaterialprocess = equDo.getBachmaterialprocess();
|
|
|
+ if (ObjectUtil.isNotEmpty(bachmaterialprocess)) {
|
|
|
+ waitToDoCount = bachmaterialprocess.split(",").length;
|
|
|
+ }
|
|
|
+ if (leavewaitworkroll - waitToDoCount <= 0) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ //需要获取的批次号
|
|
|
+ List<String> needGetBatchNumberList = outPutNumbers.subList(0, leavewaitworkroll - waitToDoCount);
|
|
|
+
|
|
|
apsProcessOperationProcessEquDo = new ApsProcessOperationProcessEquDo();
|
|
|
apsProcessOperationProcessEquDo.setId(equDo.getId());
|
|
|
- apsProcessOperationProcessEquDo.setBachmaterialprocess(strAppendListConvertStr(equDo.getBachmaterialprocess(), Collections.singletonList(outPutNumbers.get(0))));
|
|
|
+ apsProcessOperationProcessEquDo.setBachmaterialprocess(strAppendListConvertStr(equDo.getBachmaterialprocess(), needGetBatchNumberList));
|
|
|
apsProcessOperationProcessEquDo.setModifydate(new Date());
|
|
|
- log.debug("将批次号:{}流转给工序作业明细:{}", outPutNumbers.get(0), equDo.getId());
|
|
|
+ log.debug("将批次号:{}流转给工序作业明细:{}", needGetBatchNumberList, equDo.getId());
|
|
|
updateProcessEquData.add(apsProcessOperationProcessEquDo);
|
|
|
- outPutNumbers.removeAll(Collections.singletonList(outPutNumbers.get(0)));
|
|
|
+ outPutNumbers.removeAll(needGetBatchNumberList);
|
|
|
}
|
|
|
}
|
|
|
+ //如果还有剩余批次号没有分配完,表示后道作业取消了,无需分配,需要转到备料库,即设置在制品状态=备料中
|
|
|
+ if (!outPutNumbers.isEmpty()) {
|
|
|
+ apsWorkInProgressInventoryService.update(new UpdateWrapper<ApsWorkInProgressInventoryDo>().lambda()
|
|
|
+ .set(ApsWorkInProgressInventoryDo::getWorkinprocessstatus, "备料中")
|
|
|
+ .in(ApsWorkInProgressInventoryDo::getBatchnumber, outPutNumbers)
|
|
|
+ .eq(ApsWorkInProgressInventoryDo::getDeleted, "0"));
|
|
|
+ }
|
|
|
// for (ApsProcessOperationDo apsProcessOperationDo : apsProcessOperationDos) {
|
|
|
// updateOperationDo = new ApsProcessOperationDo();
|
|
|
// // 更新ID
|
|
@@ -743,14 +766,14 @@ public class ReportCheckServiceImpl implements ReportCheckService {
|
|
|
workInProgressInventoryDos.stream()
|
|
|
.filter(inventory -> outputNumberList.contains(inventory.getBatchnumber()))
|
|
|
.collect(Collectors.toList()).forEach(data -> {
|
|
|
- if (StringUtils.isNotBlank(workingProcessStatus)) {
|
|
|
- data.setWorkinprocessstatus(workingProcessStatus);
|
|
|
- }
|
|
|
- if (StringUtils.isNotBlank(workingProcessType)) {
|
|
|
- data.setWorkinprocesstype(workingProcessType);
|
|
|
- }
|
|
|
+ if (StringUtils.isNotBlank(workingProcessStatus)) {
|
|
|
+ data.setWorkinprocessstatus(workingProcessStatus);
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(workingProcessType)) {
|
|
|
+ data.setWorkinprocesstype(workingProcessType);
|
|
|
+ }
|
|
|
|
|
|
- });
|
|
|
+ });
|
|
|
return outputNumberList;
|
|
|
}
|
|
|
|
|
@@ -1188,42 +1211,42 @@ public class ReportCheckServiceImpl implements ReportCheckService {
|
|
|
workInProgressInventoryDos.stream()
|
|
|
.filter(inventory -> apsReportOutputDo.getOutputnumber().equals(inventory.getBatchnumber()))
|
|
|
.collect(Collectors.toList()).forEach(data -> {
|
|
|
- if ("是".equals(ifblankprocess)) {
|
|
|
- data.setBlankname(apsReportOutputDo.getOutputdesc());
|
|
|
- }
|
|
|
- data.setWorkinprocess(apsReportOutputDo.getOutputdesc());
|
|
|
- data.setInspectionlevel(apsReportOutputDo.getInsepctionlevel());
|
|
|
- data.setIsqualified(apsReportOutputDo.getQualified());
|
|
|
- String formatMajor = handleDefect(apsReportOutputDo.getMajor(), defectTypes);
|
|
|
- String formatMinor = handleDefect(apsReportOutputDo.getMinor(), defectTypes);
|
|
|
- if (StringUtils.isNotBlank(formatMajor) && StringUtils.isNotBlank(formatMinor)) {
|
|
|
- if (StringUtils.isNotBlank(apsReportOutputDo.getCheckremark())) {
|
|
|
- data.setRemark("主要缺陷:" + formatMajor + ";次要缺陷:" + formatMinor + ";检验备注:" + apsReportOutputDo.getCheckremark() + ";");
|
|
|
- } else {
|
|
|
- data.setRemark("主要缺陷:" + formatMajor + ";次要缺陷:" + formatMinor + ";");
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (StringUtils.isNotBlank(formatMajor)) {
|
|
|
- if (StringUtils.isNotBlank(apsReportOutputDo.getCheckremark())) {
|
|
|
- data.setRemark("主要缺陷:" + formatMajor + ";检验备注:" + apsReportOutputDo.getCheckremark() + ";");
|
|
|
- } else {
|
|
|
- data.setRemark("主要缺陷:" + formatMajor + ";");
|
|
|
+ if ("是".equals(ifblankprocess)) {
|
|
|
+ data.setBlankname(apsReportOutputDo.getOutputdesc());
|
|
|
}
|
|
|
- } else {
|
|
|
- if (StringUtils.isNotBlank(formatMinor)) {
|
|
|
+ data.setWorkinprocess(apsReportOutputDo.getOutputdesc());
|
|
|
+ data.setInspectionlevel(apsReportOutputDo.getInsepctionlevel());
|
|
|
+ data.setIsqualified(apsReportOutputDo.getQualified());
|
|
|
+ String formatMajor = handleDefect(apsReportOutputDo.getMajor(), defectTypes);
|
|
|
+ String formatMinor = handleDefect(apsReportOutputDo.getMinor(), defectTypes);
|
|
|
+ if (StringUtils.isNotBlank(formatMajor) && StringUtils.isNotBlank(formatMinor)) {
|
|
|
if (StringUtils.isNotBlank(apsReportOutputDo.getCheckremark())) {
|
|
|
- data.setRemark("次要缺陷:" + formatMinor + ";检验备注:" + apsReportOutputDo.getCheckremark() + ";");
|
|
|
+ data.setRemark("主要缺陷:" + formatMajor + ";次要缺陷:" + formatMinor + ";检验备注:" + apsReportOutputDo.getCheckremark() + ";");
|
|
|
} else {
|
|
|
- data.setRemark("次要缺陷:" + formatMinor + ";");
|
|
|
+ data.setRemark("主要缺陷:" + formatMajor + ";次要缺陷:" + formatMinor + ";");
|
|
|
}
|
|
|
} else {
|
|
|
- if (StringUtils.isNotBlank(apsReportOutputDo.getCheckremark())) {
|
|
|
- data.setRemark("检验备注:" + apsReportOutputDo.getCheckremark() + ";");
|
|
|
+ if (StringUtils.isNotBlank(formatMajor)) {
|
|
|
+ if (StringUtils.isNotBlank(apsReportOutputDo.getCheckremark())) {
|
|
|
+ data.setRemark("主要缺陷:" + formatMajor + ";检验备注:" + apsReportOutputDo.getCheckremark() + ";");
|
|
|
+ } else {
|
|
|
+ data.setRemark("主要缺陷:" + formatMajor + ";");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (StringUtils.isNotBlank(formatMinor)) {
|
|
|
+ if (StringUtils.isNotBlank(apsReportOutputDo.getCheckremark())) {
|
|
|
+ data.setRemark("次要缺陷:" + formatMinor + ";检验备注:" + apsReportOutputDo.getCheckremark() + ";");
|
|
|
+ } else {
|
|
|
+ data.setRemark("次要缺陷:" + formatMinor + ";");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (StringUtils.isNotBlank(apsReportOutputDo.getCheckremark())) {
|
|
|
+ data.setRemark("检验备注:" + apsReportOutputDo.getCheckremark() + ";");
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
+ });
|
|
|
});
|
|
|
}
|
|
|
|