Przeglądaj źródła

aps-甘特图工序作业明细新增批次号显示功能testin1697

zhoudazhuang 8 miesięcy temu
rodzic
commit
d8240e38bb

+ 3 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsProcessOperationDao.java

@@ -98,4 +98,7 @@ public interface ApsProcessOperationDao extends BaseMapper<ApsProcessOperationDo
 
     @Select("SELECT * FROM aps_process_operation_equ WHERE DELETED = 0 AND MAINID=#{mainid}")
     List<ApsProcessOperationEquDo> getProcessOperationEqus(@Param("mainid") String mainid);
+
+    @Select("SELECT * FROM aps_process_operation_process_equ WHERE DELETED = 0 AND ID in ('${nextIds}')")
+    List<ApsProcessOperationProcessEquDo> getNextProcessOperationEqusByNextIds(@Param("nextIds") String nextIds);
 }

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

@@ -970,6 +970,35 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
             processEquWrapper.set(ApsProcessOperationProcessEquDo::getWaitreportid, null)
                     .set(ApsProcessOperationProcessEquDo::getDoingbatchnumber, null);
 
+            //更新作业明细报工料卷批次号,如果输入物料有批次号,报工料卷批次号后面拼接{输入物料批次号}
+            String reportBatchNumber = apsProcessOperationProcessEquDo.getReportbatchnumber();
+            if (StringUtils.isNotBlank(nowReportRecordsDo.getBatchnumber())){
+                if (StringUtils.isNotBlank(reportBatchNumber)){
+                    if (!reportBatchNumber.contains(nowReportRecordsDo.getBatchnumber())){
+                        reportBatchNumber = reportBatchNumber+","+nowReportRecordsDo.getBatchnumber();
+                    }
+                }else {
+                    reportBatchNumber = nowReportRecordsDo.getBatchnumber();
+                }
+                processEquWrapper.set(ApsProcessOperationProcessEquDo::getReportbatchnumber, reportBatchNumber);
+            }
+            /**
+             * 如果该作业是该坯料计划第一道作业。并且作业是否坯料工序=是,需要更新当前作业明细的坯料批次号=当前作业明细输出物料批次号
+             * 如果作业是否坯料工序=是,则更新该作业明细所有后道作业明细的坯料批次号=该作业明细输出物料批次号。
+             * 如果作业是否坯料工序=否,则更新该作业明细所有后道作业明细的坯料批次号=该作业明细输入物料批次号。
+             */
+            if (StringUtils.isBlank(apsProcessOperationProcessEquDo.getPreviousprocessesids())){
+                //取出当前报工记录的输出物料编号列表
+                List<String> outputNumbers = apsReportOutputDoList.stream().map(ApsReportOutputDo::getOutputnumber).collect(Collectors.toList());
+                String outPutNumber = "";
+                if (!outputNumbers.isEmpty()){
+                    outPutNumber = String.join(",",outputNumbers);
+                    if (StringUtils.isNotBlank(apsProcessOperationDo.getIfblankprocess()) && "是".equals(apsProcessOperationDo.getIfblankprocess())){
+                        processEquWrapper.set(ApsProcessOperationProcessEquDo::getBlankbatchnumber, outPutNumber);
+                    }
+                }
+                updateAfterBlankByBatchAndOutPutNumber(apsProcessOperationDo,nowReportRecordsDo,apsProcessOperationProcessEquDo,outPutNumber);
+            }
             //更新
             apsProcessOperationProcessEquService.update(processEquWrapper);
 
@@ -1802,6 +1831,31 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
         }
     }
 
+    /**
+     * 递归所有后道工序作业明细
+     * @param apsProcessOperationDo
+     * @param nowReportRecordsDo
+     * @param processOperationProcessEquDo
+     */
+    private void updateAfterBlankByBatchAndOutPutNumber(ApsProcessOperationDo apsProcessOperationDo,ApsReportRecordsDo nowReportRecordsDo,ApsProcessOperationProcessEquDo processOperationProcessEquDo,String outPutNumber) {
+        if (StringUtils.isNotBlank(processOperationProcessEquDo.getNextprocessesids())) {
+            List<ApsProcessOperationProcessEquDo> processOperationProcessEquDos = apsProcessOperationDao.getNextProcessOperationEqusByNextIds(processOperationProcessEquDo.getNextprocessesids().replace(",", "','"));
+            for (ApsProcessOperationProcessEquDo processOperationEquDo : processOperationProcessEquDos) {
+                if (StringUtils.isNotBlank(apsProcessOperationDo.getIfblankprocess()) && "是".equals(apsProcessOperationDo.getIfblankprocess())){
+                    //是否坯料工序为是则更新该作业明细所有后道作业明细的坯料批次号=该作业明细输出物料批次号。
+                    if (StringUtils.isNotBlank(outPutNumber)){
+                        processOperationEquDo.setBlankbatchnumber(outPutNumber);
+                    }
+                }else {
+                    //是否坯料工序为否则更新该作业明细所有后道作业明细的坯料批次号=该作业明细输入物料批次号。
+                    processOperationEquDo.setBlankbatchnumber(nowReportRecordsDo.getBatchnumber());
+                }
+                apsProcessOperationProcessEquService.updateById(processOperationEquDo);
+                updateAfterBlankByBatchAndOutPutNumber(apsProcessOperationDo,nowReportRecordsDo,processOperationEquDo,outPutNumber);
+            }
+        }
+    }
+
 
 }
 

+ 25 - 1
cx-aps/cx-aps-common/src/main/resources/mybatis/ApsProcessOperationProcessEquDao.xml

@@ -191,7 +191,31 @@
         a3.BLANKNUMBER as blankNumber,
         a3.PLANHAVEMATERIALDATE as planhavematerialdate,
         a2.SINGLEROLLWEIGHT,
-        a2.SINGLEROLLWEIGHT * a1.PLANPROCESSRALL as totalRollWeight
+        a2.SINGLEROLLWEIGHT * a1.PLANPROCESSRALL as totalRollWeight,
+        IF (
+        IFNULL(a1.BACHMATERIALPROCESS,'')=''and IFNULL(a1.DOINGBATCHNUMBER,'')=''and IFNULL(a1.REPORTBATCHNUMBER,'')='',
+        a1.BLANKBATCHNUMBER,
+        IF
+        (
+        a2.PROCESS = "小卷成退"
+        OR a2.PROCESS = "小卷包装",
+        CONCAT_WS(
+        ',',
+        SUBSTRING_INDEX( IF ( a1.BACHMATERIALPROCESS = '', NULL, trim( BOTH ',' FROM a1.BACHMATERIALPROCESS ) ), ",", 1 ),
+        SUBSTRING_INDEX( IF ( a1.DOINGBATCHNUMBER = '', NULL, trim( BOTH ',' FROM a1.DOINGBATCHNUMBER ) ), ",", 1 ),
+        SUBSTRING_INDEX( IF ( a1.REPORTBATCHNUMBER = '', NULL, trim( BOTH ',' FROM a1.REPORTBATCHNUMBER ) ), ",", 1 )
+        ),
+        CONCAT_WS(
+        ',',
+        IF
+        ( a1.BACHMATERIALPROCESS = '', NULL, trim( BOTH ',' FROM a1.BACHMATERIALPROCESS ) ),
+        IF
+        ( a1.DOINGBATCHNUMBER = '', NULL, trim( BOTH ',' FROM a1.DOINGBATCHNUMBER ) ),
+        IF
+        ( a1.REPORTBATCHNUMBER = '', NULL, trim( BOTH ',' FROM a1.REPORTBATCHNUMBER ) )
+        )
+        )
+        ) AS SHOWBATCHNUMBER
         FROM
         (SELECT
         a3.*,

+ 10 - 0
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/domain/ApsProcessOperationProcessEquDo.java

@@ -184,4 +184,14 @@ public class ApsProcessOperationProcessEquDo extends BaseDo {
      */
     @TableField("SECONDROLL")
     private Integer secondroll;
+    /**
+     * 坯料批次号
+     */
+    @TableField("BLANKBATCHNUMBER")
+    private String blankbatchnumber;
+    /**
+     * 报工料卷批次号
+     */
+    @TableField("REPORTBATCHNUMBER")
+    private String reportbatchnumber;
 }

+ 5 - 0
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/vo/GanttVos.java

@@ -235,4 +235,9 @@ public class GanttVos {
      * 合计卷重
      */
     private BigDecimal totalRollWeight;
+
+    /**
+     * 批次号
+     */
+    private String showbatchnumber;
 }