Ver código fonte

Merge remote-tracking branch 'origin/mode-min-unit' into mode-min-unit

fangpy 6 meses atrás
pai
commit
799c5bd209

+ 1 - 1
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsBlankOrderDao.java

@@ -154,7 +154,7 @@ public interface ApsBlankOrderDao extends BaseMapper<ApsBlankOrderDo> {
 
     String selectPlanEndProductionWorkshopsById(@Param("productionorderid") String productionorderid);
 
-    void updateFinishDateAboutProcessEqu();
+    void updateFinishDateAboutProcessEqu(@Param("needScheduleDate") String needScheduleDate);
 
     void removeLockNextDayProcessEqu(@Param("needScheduleDate") String needScheduleDate);
 

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

@@ -2169,7 +2169,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         if (ObjectUtil.isNotEmpty(planEndProductionWorkshops)) {
             HashSet<String> hashSet = new HashSet<>(Arrays.asList(planEndProductionWorkshops.split(",")));
             ApsProductionOrderDo apsProductionOrderDo = new ApsProductionOrderDo();
-            apsProductionOrderDo.setId(apsBlankOrderDo.getId());
+            apsProductionOrderDo.setId(apsBlankOrderDo.getProductionorderid());
             apsProductionOrderDo.setPlannedproductionworkshop(String.join(",", hashSet));
             apsProductionOrderService.updateById(apsProductionOrderDo);
         }
@@ -3951,6 +3951,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
 
     @Override
     public void apsScheduleRestart() {
+        ApsUtils.checkScheduling(null);
         String needScheduleDate = "";
         DateTime nowDate = DateUtil.date();
         String time1 = DateUtil.format(nowDate, "yyyy-MM-dd 00:00:00");
@@ -3968,7 +3969,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
 
         if (ObjectUtil.isNotEmpty(needScheduleDate)) {
             //将实际完工时间大于明天的作业挪到实际完工时间
-            this.baseMapper.updateFinishDateAboutProcessEqu();
+            this.baseMapper.updateFinishDateAboutProcessEqu(needScheduleDate);
             //解锁明天有开工作业明细的坯料计划的所有作业明细
             this.baseMapper.removeLockNextDayProcessEqu(needScheduleDate);
             //解锁后天开工的所有作业明细

+ 11 - 10
cx-aps/cx-aps-common/src/main/resources/mybatis/ApsBlankOrderDao.xml

@@ -191,16 +191,17 @@
     </update>
     <update id="updateFinishDateAboutProcessEqu">
         update
-            aps_process_operation_process_equ apope
-            join aps_process_operation apo on apo.id = apope.PROCESSID
-            set
-                apope.PLANSTARTDATE=DATE_SUB(apope.ACTUALFINISHDATE,INTERVAL TIMESTAMPdiff(SECOND, apope.PLANSTARTDATE, apope.PLANENDDATE) SECOND),
-                apope.PLANENDDATE=apope.ACTUALFINISHDATE
+        aps_process_operation_process_equ apope
+        join aps_process_operation apo on apo.id = apope.PROCESSID
+        set
+        apope.PLANSTARTDATE=IF(apope.ACTUALFINISHDATE IS NOT NULL,DATE_SUB(apope.ACTUALFINISHDATE,INTERVAL TIMESTAMPdiff(SECOND, apope.PLANSTARTDATE, apope.PLANENDDATE) SECOND), apope.ACTUALSTARTDATE),
+        apope.PLANENDDATE=IF(apope.ACTUALFINISHDATE IS NOT NULL, apope.ACTUALFINISHDATE, DATE_ADD(apope.ACTUALSTARTDATE,INTERVAL TIMESTAMPdiff(SECOND, apope.PLANSTARTDATE, apope.PLANENDDATE) SECOND))
         where
-            apo.DELETED='0' and apope.deleted='0'
-          and apope.ACTUALFINISHDATE is not null
-          and  apope.PLANENDDATE > CURRENT_TIME
-          and apo.PROCESS != '铸轧'
+        apo.DELETED='0' and apope.deleted='0'
+        AND (apope.ACTUALSTARTDATE IS NOT NULL OR apope.ACTUALFINISHDATE IS NOT NULL)
+        and (apope.ACTUALSTARTDATE &lt; apope.PLANSTARTDATE OR apope.ACTUALFINISHDATE &lt; apope.PLANENDDATE)
+        and apope.PLANENDDATE > #{needScheduleDate}
+        and apo.PROCESS != '铸轧'
     </update>
     <update id="removeLockNextDayProcessEqu">
         with tomorroworder as(
@@ -227,7 +228,7 @@
         set apope.LOCKMARKDETAIL = 'n',apo.LOCKMARK='n',abo.SCHEDULINGSTATUS = '20'
         where apope.deleted='0' and apo.deleted='0'
         and apo.PROCESS != '铸轧' and apope.WORKSTATUS = '待开工'
-        and apope.PLANSTARTDATE >= DATE_ADD(#{needScheduleDate},INTERVAL 2 DAY) and apope.PLANSTARTDATE &lt; DATE_ADD(#{needScheduleDate},INTERVAL 3 DAY)
+        and apope.PLANSTARTDATE >= DATE_ADD(#{needScheduleDate},INTERVAL 1 DAY) and apope.PLANSTARTDATE &lt; DATE_ADD(#{needScheduleDate},INTERVAL 2 DAY)
     </update>
     <select id="checkConflictByBlankId" resultType="java.lang.Integer">
         select count(*) from aps_process_operation_process_equ