|
@@ -27,6 +27,7 @@ import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
|
|
+import java.math.BigDecimal;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
@@ -83,6 +84,8 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
|
|
private ReportCheckServiceImpl reportCheckService;
|
|
private ReportCheckServiceImpl reportCheckService;
|
|
@Resource
|
|
@Resource
|
|
private ApsProcessOutputProductDao apsProcessOutputProductDao;
|
|
private ApsProcessOutputProductDao apsProcessOutputProductDao;
|
|
|
|
+ @Autowired
|
|
|
|
+ private ApsOrderAlloyCompositionService apsOrderAlloyCompositionService;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@Transactional
|
|
@Transactional
|
|
@@ -690,72 +693,103 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
|
|
|
|
|
|
}
|
|
}
|
|
//=============坯料成分子表信息=============
|
|
//=============坯料成分子表信息=============
|
|
- //工序作业的是否坯料工序=是 时,根据客户合金成分设置自动生成
|
|
|
|
- if (apsProcessOperationDo.getIfblankprocess().equals("是")) {
|
|
|
|
- //工序作业的合金
|
|
|
|
- String metal = apsProcessOperationDo.getMetal();
|
|
|
|
- //订单的客户ID
|
|
|
|
- String customid = apsProductionOrderDo.getCustomid();
|
|
|
|
- String alloyId = "";
|
|
|
|
- //查询合金对应的所有主表信息
|
|
|
|
- List<ApsAlloyDo> apsAlloyDoList = apsAlloyService.list(new QueryWrapper<ApsAlloyDo>().lambda().eq(ApsAlloyDo::getAlloy, metal));
|
|
|
|
- if (ObjectUtil.isNotEmpty(apsAlloyDoList)) {
|
|
|
|
- //查询客户标准
|
|
|
|
- List<ApsAlloyDo> collect = apsAlloyDoList.stream().filter(item -> ObjectUtil.isNotEmpty(item.getCustomerid()) && item.getCustomerid().contains(customid)).collect(Collectors.toList());
|
|
|
|
- if (ObjectUtil.isNotEmpty(collect)) {
|
|
|
|
- alloyId = collect.get(0).getId();
|
|
|
|
- } else {//查询国标
|
|
|
|
- List<ApsAlloyDo> collect1 = apsAlloyDoList.stream().filter(item -> ObjectUtil.isEmpty(item.getCustomerid())).collect(Collectors.toList());
|
|
|
|
- if (ObjectUtil.isNotEmpty(collect1)) {
|
|
|
|
- alloyId = collect1.get(0).getId();
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- //查询合金成分要求
|
|
|
|
- if (ObjectUtil.isNotEmpty(alloyId)) {
|
|
|
|
- List<ApsAlloyCompositionDo> apsAlloyCompositionDoList = apsAlloyCompositionService.list(new QueryWrapper<ApsAlloyCompositionDo>().lambda().eq(ApsAlloyCompositionDo::getAlloyid, alloyId));
|
|
|
|
-
|
|
|
|
- if (ObjectUtil.isNotEmpty(apsAlloyCompositionDoList)) {
|
|
|
|
- List<ApsReportBlankCompentDo> needInsertApsReportBlankCompentList = new LinkedList<>();
|
|
|
|
- for (ApsAlloyCompositionDo apsAlloyCompositionDo : apsAlloyCompositionDoList) {
|
|
|
|
- ApsReportBlankCompentDo apsReportBlankCompentDo = new ApsReportBlankCompentDo();
|
|
|
|
- apsReportBlankCompentDo.setId(SecurityUtil.getUUID());
|
|
|
|
- apsReportBlankCompentDo.setTenantid(tenantId);
|
|
|
|
- apsReportBlankCompentDo.setMainid(apsReportRecordsDo.getId());
|
|
|
|
- apsReportBlankCompentDo.setCompent(apsAlloyCompositionDo.getIngredient());
|
|
|
|
- apsReportBlankCompentDo.setStartproportion(apsAlloyCompositionDo.getLeftproportion());
|
|
|
|
- apsReportBlankCompentDo.setEndproportion(apsAlloyCompositionDo.getRightproportion());
|
|
|
|
- needInsertApsReportBlankCompentList.add(apsReportBlankCompentDo);
|
|
|
|
- }
|
|
|
|
- if (ObjectUtil.isNotEmpty(needInsertApsReportBlankCompentList)) {
|
|
|
|
- apsReportBlankCompentService.saveBatch(needInsertApsReportBlankCompentList);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
+ //显示订单中加载的该报工记录该客户的输入物料合金的合金成分,坯料工序检验时填写,不是坯料工序报工和检验只能查看
|
|
|
|
+ ApsOrderAlloyCompositionDo apsOrderAlloyCompositionDo = apsOrderAlloyCompositionService.getOne(new QueryWrapper<ApsOrderAlloyCompositionDo>().lambda()
|
|
|
|
+ .eq(ApsOrderAlloyCompositionDo::getProductionorderid, apsProductionOrderDo.getId())
|
|
|
|
+ .eq(ApsOrderAlloyCompositionDo::getAlloy, apsProcessOperationDo.getMetal()));
|
|
|
|
+
|
|
|
|
+ if (ObjectUtil.isNotEmpty(apsOrderAlloyCompositionDo) && ObjectUtil.isNotEmpty(apsOrderAlloyCompositionDo.getCompontentrequirement())) {
|
|
|
|
+ String compontentrequirement = apsOrderAlloyCompositionDo.getCompontentrequirement();
|
|
|
|
+ LinkedList<String> strings = new LinkedList<>(Arrays.asList(compontentrequirement.split(",\n")));
|
|
|
|
+ if (strings.size() > 0) {
|
|
|
|
+ List<ApsReportBlankCompentDo> needInsertApsReportBlankCompentList = new LinkedList<>();
|
|
|
|
+ for (String string : strings) {
|
|
|
|
+ String[] s = string.split(" ");
|
|
|
|
+ ApsReportBlankCompentDo apsReportBlankCompentDo = new ApsReportBlankCompentDo();
|
|
|
|
+ apsReportBlankCompentDo.setId(SecurityUtil.getUUID());
|
|
|
|
+ apsReportBlankCompentDo.setTenantid(tenantId);
|
|
|
|
+ apsReportBlankCompentDo.setMainid(apsReportRecordsDo.getId());
|
|
|
|
+ apsReportBlankCompentDo.setCompent(s[0]);
|
|
|
|
+ apsReportBlankCompentDo.setStartproportion(new BigDecimal(s[1].split("-")[0].replace("%", "")));
|
|
|
|
+ apsReportBlankCompentDo.setEndproportion(new BigDecimal(s[1].split("-")[1].replace("%", "")));
|
|
|
|
+ needInsertApsReportBlankCompentList.add(apsReportBlankCompentDo);
|
|
}
|
|
}
|
|
- }
|
|
|
|
- } else {//不是坯料工序,根据输入物料批次号,查询来源报工的坯料成分,copy一份
|
|
|
|
- String inputBatchNumber = req.getInputBatchNumber();
|
|
|
|
- //查询上一个的报工ID
|
|
|
|
- String lastReportRecordId = this.baseMapper.selectLastReoprtRecordByBatchNumber(inputBatchNumber);
|
|
|
|
- if (ObjectUtil.isNotEmpty(lastReportRecordId)) {
|
|
|
|
- //查询上一个报工的坯料成分
|
|
|
|
- List<ApsReportBlankCompentDo> apsReportBlankCompentDoList = apsReportBlankCompentService.list(new QueryWrapper<ApsReportBlankCompentDo>().lambda().eq(ApsReportBlankCompentDo::getMainid, lastReportRecordId));
|
|
|
|
- //复制新增
|
|
|
|
- List<ApsReportBlankCompentDo> needAddList = new LinkedList<>();
|
|
|
|
- for (ApsReportBlankCompentDo apsReportBlankCompentDo : apsReportBlankCompentDoList) {
|
|
|
|
- ApsReportBlankCompentDo needAdd = new ApsReportBlankCompentDo();
|
|
|
|
- needAdd.setId(SecurityUtil.getUUID());
|
|
|
|
- needAdd.setTenantid(tenantId);
|
|
|
|
- needAdd.setMainid(apsReportRecordsDo.getId());
|
|
|
|
- needAdd.setCompent(apsReportBlankCompentDo.getCompent());
|
|
|
|
- needAdd.setStartproportion(apsReportBlankCompentDo.getStartproportion());
|
|
|
|
- needAdd.setEndproportion(apsReportBlankCompentDo.getEndproportion());
|
|
|
|
- needAdd.setActualproportion(apsReportBlankCompentDo.getActualproportion());
|
|
|
|
- needAddList.add(needAdd);
|
|
|
|
|
|
+ if (ObjectUtil.isNotEmpty(needInsertApsReportBlankCompentList)) {
|
|
|
|
+ apsReportBlankCompentService.saveBatch(needInsertApsReportBlankCompentList);
|
|
}
|
|
}
|
|
- apsReportBlankCompentService.saveBatch(needAddList);
|
|
|
|
|
|
+
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+// //工序作业的是否坯料工序=是 时,根据客户合金成分设置自动生成
|
|
|
|
+// if (apsProcessOperationDo.getIfblankprocess().equals("是")) {
|
|
|
|
+// //工序作业的合金
|
|
|
|
+// String metal = apsProcessOperationDo.getMetal();
|
|
|
|
+//
|
|
|
|
+//
|
|
|
|
+// //订单的客户ID
|
|
|
|
+// String customid = apsProductionOrderDo.getCustomid();
|
|
|
|
+// String alloyId = "";
|
|
|
|
+// //查询合金对应的所有主表信息
|
|
|
|
+// List<ApsAlloyDo> apsAlloyDoList = apsAlloyService.list(new QueryWrapper<ApsAlloyDo>().lambda().eq(ApsAlloyDo::getAlloy, metal));
|
|
|
|
+// if (ObjectUtil.isNotEmpty(apsAlloyDoList)) {
|
|
|
|
+// //查询客户标准
|
|
|
|
+// List<ApsAlloyDo> collect = apsAlloyDoList.stream().filter(item -> ObjectUtil.isNotEmpty(item.getCustomerid()) && item.getCustomerid().contains(customid)).collect(Collectors.toList());
|
|
|
|
+// if (ObjectUtil.isNotEmpty(collect)) {
|
|
|
|
+// alloyId = collect.get(0).getId();
|
|
|
|
+// } else {//查询国标
|
|
|
|
+// List<ApsAlloyDo> collect1 = apsAlloyDoList.stream().filter(item -> ObjectUtil.isEmpty(item.getCustomerid())).collect(Collectors.toList());
|
|
|
|
+// if (ObjectUtil.isNotEmpty(collect1)) {
|
|
|
|
+// alloyId = collect1.get(0).getId();
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// //查询合金成分要求
|
|
|
|
+// if (ObjectUtil.isNotEmpty(alloyId)) {
|
|
|
|
+// List<ApsAlloyCompositionDo> apsAlloyCompositionDoList = apsAlloyCompositionService.list(new QueryWrapper<ApsAlloyCompositionDo>().lambda().eq(ApsAlloyCompositionDo::getAlloyid, alloyId));
|
|
|
|
+//
|
|
|
|
+// if (ObjectUtil.isNotEmpty(apsAlloyCompositionDoList)) {
|
|
|
|
+// List<ApsReportBlankCompentDo> needInsertApsReportBlankCompentList = new LinkedList<>();
|
|
|
|
+// for (ApsAlloyCompositionDo apsAlloyCompositionDo : apsAlloyCompositionDoList) {
|
|
|
|
+// ApsReportBlankCompentDo apsReportBlankCompentDo = new ApsReportBlankCompentDo();
|
|
|
|
+// apsReportBlankCompentDo.setId(SecurityUtil.getUUID());
|
|
|
|
+// apsReportBlankCompentDo.setTenantid(tenantId);
|
|
|
|
+// apsReportBlankCompentDo.setMainid(apsReportRecordsDo.getId());
|
|
|
|
+// apsReportBlankCompentDo.setCompent(apsAlloyCompositionDo.getIngredient());
|
|
|
|
+// apsReportBlankCompentDo.setStartproportion(apsAlloyCompositionDo.getLeftproportion());
|
|
|
|
+// apsReportBlankCompentDo.setEndproportion(apsAlloyCompositionDo.getRightproportion());
|
|
|
|
+// needInsertApsReportBlankCompentList.add(apsReportBlankCompentDo);
|
|
|
|
+// }
|
|
|
|
+// if (ObjectUtil.isNotEmpty(needInsertApsReportBlankCompentList)) {
|
|
|
|
+// apsReportBlankCompentService.saveBatch(needInsertApsReportBlankCompentList);
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// } else {//不是坯料工序,根据输入物料批次号,查询来源报工的坯料成分,copy一份
|
|
|
|
+// String inputBatchNumber = req.getInputBatchNumber();
|
|
|
|
+// //查询上一个的报工ID
|
|
|
|
+// String lastReportRecordId = this.baseMapper.selectLastReoprtRecordByBatchNumber(inputBatchNumber);
|
|
|
|
+// if (ObjectUtil.isNotEmpty(lastReportRecordId)) {
|
|
|
|
+// //查询上一个报工的坯料成分
|
|
|
|
+// List<ApsReportBlankCompentDo> apsReportBlankCompentDoList = apsReportBlankCompentService.list(new QueryWrapper<ApsReportBlankCompentDo>().lambda().eq(ApsReportBlankCompentDo::getMainid, lastReportRecordId));
|
|
|
|
+// //复制新增
|
|
|
|
+// List<ApsReportBlankCompentDo> needAddList = new LinkedList<>();
|
|
|
|
+// for (ApsReportBlankCompentDo apsReportBlankCompentDo : apsReportBlankCompentDoList) {
|
|
|
|
+// ApsReportBlankCompentDo needAdd = new ApsReportBlankCompentDo();
|
|
|
|
+// needAdd.setId(SecurityUtil.getUUID());
|
|
|
|
+// needAdd.setTenantid(tenantId);
|
|
|
|
+// needAdd.setMainid(apsReportRecordsDo.getId());
|
|
|
|
+// needAdd.setCompent(apsReportBlankCompentDo.getCompent());
|
|
|
|
+// needAdd.setStartproportion(apsReportBlankCompentDo.getStartproportion());
|
|
|
|
+// needAdd.setEndproportion(apsReportBlankCompentDo.getEndproportion());
|
|
|
|
+// needAdd.setActualproportion(apsReportBlankCompentDo.getActualproportion());
|
|
|
|
+// needAddList.add(needAdd);
|
|
|
|
+// }
|
|
|
|
+// apsReportBlankCompentService.saveBatch(needAddList);
|
|
|
|
+// }
|
|
|
|
+// }
|
|
//更新生产状态
|
|
//更新生产状态
|
|
CommonUpdateProductionStatusReq req3 = new CommonUpdateProductionStatusReq();
|
|
CommonUpdateProductionStatusReq req3 = new CommonUpdateProductionStatusReq();
|
|
req3.setProcessOperationEquId(apsProcessOperationProcessEquDo.getId());
|
|
req3.setProcessOperationEquId(apsProcessOperationProcessEquDo.getId());
|