Переглянути джерело

aps-开工时坯料成分生成

sucheng 10 місяців тому
батько
коміт
f0dceb7846

+ 96 - 62
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsReportRecordsServiceImpl.java

@@ -27,6 +27,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.stream.Collectors;
@@ -83,6 +84,8 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
     private ReportCheckServiceImpl reportCheckService;
     @Resource
     private ApsProcessOutputProductDao apsProcessOutputProductDao;
+    @Autowired
+    private ApsOrderAlloyCompositionService apsOrderAlloyCompositionService;
 
     @Override
     @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();
             req3.setProcessOperationEquId(apsProcessOperationProcessEquDo.getId());