Browse Source

aps-开工时坯料成分生成

sucheng 9 months ago
parent
commit
b94ea8b383

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

@@ -693,39 +693,63 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
 
             }
             //=============坯料成分子表信息=============
-            //显示订单中加载的该报工记录该客户的输入物料合金的合金成分,坯料工序检验时填写,不是坯料工序报工和检验只能查看
-            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]);
-                        String start = s[1].split("-")[0].replace("%", "");
-                        String end = s[1].split("-")[1].replace("%", "");
-                        if (ObjectUtil.isEmpty(start)) {
-                            start = "0";
+            if (apsProcessOperationDo.getIfblankprocess().equals("是")) {
+                //显示订单中加载的该报工记录该客户的输入物料合金的合金成分,坯料工序检验时填写,不是坯料工序报工和检验只能查看
+                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]);
+                            String start = s[1].split("-")[0].replace("%", "");
+                            String end = s[1].split("-")[1].replace("%", "");
+                            if (ObjectUtil.isEmpty(start)) {
+                                start = "0";
+                            }
+                            if (ObjectUtil.isEmpty(end)) {
+                                end = "100";
+                            }
+                            apsReportBlankCompentDo.setStartproportion(new BigDecimal(start));
+                            apsReportBlankCompentDo.setEndproportion(new BigDecimal(end));
+                            needInsertApsReportBlankCompentList.add(apsReportBlankCompentDo);
                         }
-                        if (ObjectUtil.isEmpty(end)) {
-                            end = "100";
+                        if (ObjectUtil.isNotEmpty(needInsertApsReportBlankCompentList)) {
+                            apsReportBlankCompentService.saveBatch(needInsertApsReportBlankCompentList);
                         }
-                        apsReportBlankCompentDo.setStartproportion(new BigDecimal(start));
-                        apsReportBlankCompentDo.setEndproportion(new BigDecimal(end));
-                        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);
                 }
             }
 
@@ -1452,39 +1476,63 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
 
             }
             //=============坯料成分子表信息=============
-            //显示订单中加载的该报工记录该客户的输入物料合金的合金成分,坯料工序检验时填写,不是坯料工序报工和检验只能查看
-            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]);
-                        String start = s[1].split("-")[0].replace("%", "");
-                        String end = s[1].split("-")[1].replace("%", "");
-                        if (ObjectUtil.isEmpty(start)) {
-                            start = "0";
+            if (apsProcessOperationDo.getIfblankprocess().equals("是")) {
+                //显示订单中加载的该报工记录该客户的输入物料合金的合金成分,坯料工序检验时填写,不是坯料工序报工和检验只能查看
+                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]);
+                            String start = s[1].split("-")[0].replace("%", "");
+                            String end = s[1].split("-")[1].replace("%", "");
+                            if (ObjectUtil.isEmpty(start)) {
+                                start = "0";
+                            }
+                            if (ObjectUtil.isEmpty(end)) {
+                                end = "100";
+                            }
+                            apsReportBlankCompentDo.setStartproportion(new BigDecimal(start));
+                            apsReportBlankCompentDo.setEndproportion(new BigDecimal(end));
+                            needInsertApsReportBlankCompentList.add(apsReportBlankCompentDo);
                         }
-                        if (ObjectUtil.isEmpty(end)) {
-                            end = "100";
+                        if (ObjectUtil.isNotEmpty(needInsertApsReportBlankCompentList)) {
+                            apsReportBlankCompentService.saveBatch(needInsertApsReportBlankCompentList);
                         }
-                        apsReportBlankCompentDo.setStartproportion(new BigDecimal(start));
-                        apsReportBlankCompentDo.setEndproportion(new BigDecimal(end));
-                        needInsertApsReportBlankCompentList.add(apsReportBlankCompentDo);
+
                     }
-                    if (ObjectUtil.isNotEmpty(needInsertApsReportBlankCompentList)) {
-                        apsReportBlankCompentService.saveBatch(needInsertApsReportBlankCompentList);
+                }
+            } else {//不是坯料工序,根据输入物料批次号,查询来源报工的坯料成分,copy一份
+                String inputBatchNumber = req.getInputBatchNumberList().get(0);
+                //查询上一个的报工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);
                 }
             }
 //            //工序作业的是否坯料工序=是 时,根据客户合金成分设置自动生成