Bladeren bron

aps-连续调度5天接口

sucheng 2 maanden geleden
bovenliggende
commit
9e177e77c9

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

@@ -188,4 +188,7 @@ public interface ApsBlankOrderDao extends BaseMapper<ApsBlankOrderDo> {
     ApsProcessOperationProcessEquDo selectFirstPrepareEqu(@Param("blankId") String blankId);
 
     int moveErrorNoPreviousProcessEqu(@Param("chongpaiStartDate") DateTime chongpaiStartDate, @Param("chongpaiEndDate") DateTime chongpaiEndDate, @Param("tenantId") String tenantId, @Param("type")String type);
+
+    @Select("select * from aps_process_operation_process_equ where DELETED = 0 ORDER BY PLANSTARTDATE DESC LIMIT 1")
+    ApsProcessOperationProcessEquDo selectLatestEqu();
 }

+ 2 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/ApsBlankOrderService.java

@@ -80,4 +80,6 @@ public interface ApsBlankOrderService extends IService<ApsBlankOrderDo> {
     void apsScheduleRestart2();
 
     List<String> updateBlankDeliveryDate(ApsBlankOrderDo apsBlankOrderDo, String id);
+
+    void apsScheduleRestart3();
 }

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

@@ -4623,6 +4623,63 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         }
     }
 
+    @Override
+    public void apsScheduleRestart3() {
+        String bocaiTenantId = "0001651000000015EFDD";
+        Thread thread1 = new Thread(() -> {
+            log.info("连续调度5天线程开始执行:{}", bocaiTenantId);
+            SysUserVo currentUser = new SysUserVo();
+            currentUser.setId("8672bf72ab274bec83052868ae336b38");
+            currentUser.setName("管理员");
+            List<SysOrganizationVo> organizationVoList = new LinkedList<>();
+            SysOrganizationDo org = sysOrganizationService.getById(bocaiTenantId);
+            SysOrganizationVo sysOrganizationVo = BeanUtil.toBean(org, SysOrganizationVo.class);
+            organizationVoList.add(sysOrganizationVo);
+            currentUser.setOrganizationDoList(organizationVoList);
+            CXCommonUtils.getCurrentUserFactoryId(currentUser);
+
+            DateTime nowDate = DateUtil.date();
+
+            while (true) {
+                String needScheduleStartDate = DateUtil.format(DateUtil.offsetDay(nowDate, 1), "yyyy-MM-dd 12:00:00");
+                String needScheduleEndDate = DateUtil.format(DateUtil.offsetDay(nowDate, 6), "yyyy-MM-dd 12:00:00");
+
+                while (true) {
+                    // 按照所属工厂加锁
+                    RLock rLock = redissonClient.getLock(bocaiTenantId);
+                    boolean isLocked = rLock.isLocked();
+                    // 锁是否被占用
+                    if (isLocked) {
+                        try {
+                            Thread.sleep(640000);
+                        } catch (InterruptedException e) {
+                            throw new RuntimeException(e);
+                        }
+                    } else {
+                        break;
+                    }
+                }
+                ApsProcessOperationProcessEquDo latest = this.baseMapper.selectLatestEqu();
+                if (latest.getPlanstartdate().before(DateUtil.parse(needScheduleStartDate))) {
+                    break;
+                } else {
+                    nowDate = DateUtil.offsetDay(nowDate, 1);
+                }
+                try {
+                    //冷轧5天
+//                    String lenzhaEndDate = DateUtil.format(DateUtil.offsetDay(DateUtil.parse(needScheduleStartDate), 5), "yyyy-MM-dd HH:mm:ss");
+                    apsScheduleRestart(null, needScheduleStartDate, needScheduleEndDate, currentUser, null, true, false);
+                    //退火5天
+                    apsScheduleRestart(null, needScheduleStartDate, needScheduleEndDate, currentUser, null, false, true);
+                } catch (Exception e) {
+                    log.error(e);
+                }
+            }
+            log.info("连续调度5天线程执行完成:{}", bocaiTenantId);
+        });
+        thread1.start();
+    }
+
     @Override
     public void apsScheduleRestart2() {
         String bancaiTenantId = "0001S31000000000J0TR";

+ 10 - 1
cx-aps/cx-aps-server/src/main/java/com/rongwei/bsserver/controller/ApsBlankOrderController.java

@@ -81,13 +81,22 @@ public class ApsBlankOrderController {
     /**
      * 定时任务自动调度,每天19点执行
      */
-    @Scheduled(cron = "30 0 0 * * *")
+//    @Scheduled(cron = "30 0 0 * * *")
     @GetMapping("/apsScheduleRestart2")
     public R apsScheduleRestart2() {
         apsBlankOrderService.apsScheduleRestart2();
         return R.ok();
     }
 
+    /**
+     * 自动连续调度接口
+     */
+    @GetMapping("/apsScheduleRestart3")
+    public R apsScheduleRestart3() {
+        apsBlankOrderService.apsScheduleRestart3();
+        return R.ok();
+    }
+
 
     /**
      * 坯料计划锁定解锁