sucheng преди 1 година
родител
ревизия
06cf80c666
променени са 1 файла, в които са добавени 36 реда и са изтрити 2 реда
  1. 36 2
      cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsReportRecordsServiceImpl.java

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

@@ -646,13 +646,19 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
         ApsProductionOrderDo apsProductionOrderDo = apsProductionOrderService.getById(apsBlankOrderDo.getProductionorderid());
 
         //=============更新作业明细信息=============
+        Integer reduceNum = 1;
+        if (ObjectUtil.isNotEmpty(nowReportRecordsDo.getBatchnumber())) {
+            List<String> batchNumberList = Arrays.asList(nowReportRecordsDo.getBatchnumber().split(","));
+            reduceNum = batchNumberList.size();
+        }
+
         //更新待报工记录ID、已报工卷数
         //已报工卷数
         Integer reportroll = apsProcessOperationProcessEquDo.getReportroll();
         ApsProcessOperationProcessEquDo needUpdateProcessOperationProcessEquDo = new ApsProcessOperationProcessEquDo();
         needUpdateProcessOperationProcessEquDo.setId(apsProcessOperationProcessEquDo.getId());
         //已报工卷数+1
-        needUpdateProcessOperationProcessEquDo.setReportroll(reportroll + 1);
+        needUpdateProcessOperationProcessEquDo.setReportroll(reportroll + reduceNum);
         /**
          * 更新作业明细的完工状态
          * 如果未完工卷数=0,或者工序作业已完工状态=已完工,则=已完工
@@ -685,7 +691,35 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
         apsProcessOperationProcessEquService.updateById(needUpdateProcessOperationProcessEquDo);
 
         //==============更新工序作业信息==============
-        this.baseMapper.updateProcessReportRoll(apsProcessOperationDo.getId());
+        ApsProcessOperationDo needUpdateProcessOperation = new ApsProcessOperationDo();
+        needUpdateProcessOperation.setId(apsProcessOperationDo.getId());
+        //已报工卷数=已报工卷数+输入批次号数量
+        needUpdateProcessOperation.setReportroll(apsProcessOperationDo.getReportroll() + reduceNum);
+        //未完工卷数=计划加工卷数-已报工卷数
+        needUpdateProcessOperation.setUnfinishroll(apsProcessOperationDo.getPlanprocessrall() - needUpdateProcessOperation.getReportroll());
+        //剩余待报工卷数=未完工卷数-输入已取消卷数-已取消卷数
+        int needReportRoll = needUpdateProcessOperation.getUnfinishroll() - apsProcessOperationDo.getInputunqualifiedroll() - apsProcessOperationDo.getCancelroll();
+        /**
+         * 如果剩余待报工卷数=0,则完工状态=已完工,实际完工时间=当前时间
+         * 如果剩余待报工卷数>0,则完工状态=未完工
+         * 如果完工状态=未完工,则作业状态=加工中;
+         * 如果完工状态=已完工,则作业状态=已完工
+         * 生产状态=作业状态
+         */
+        if (needReportRoll <= 0) {
+            needUpdateProcessOperation.setClosestatus("已完工");
+            needUpdateProcessOperation.setActualfinishdate(DateUtil.date());
+            needUpdateProcessOperation.setWorkstatus("已完工");
+            needUpdateProcessOperation.setProcessstatus(SaveConstans.ProductionStatus.COMPLETED);
+        }
+        if (needReportRoll > 0) {
+            needUpdateProcessOperation.setClosestatus("未完工");
+            needUpdateProcessOperation.setWorkstatus("加工中");
+            needUpdateProcessOperation.setProcessstatus(SaveConstans.ProductionStatus.PROCESSING);
+        }
+
+        apsProcessOperationService.updateById(needUpdateProcessOperation);
+//        this.baseMapper.updateProcessReportRoll(apsProcessOperationDo.getId());
 
 //        //=============更新设备的报工记录ID===========
 //        apsProcessOperationProcessEquDao.updateEquByCancelRecord(apsReportRecordsDo.getId(), apsProcessOperationProcessEquDo.getProcessdeviceid());