Explorar o código

feature 排程备份逻辑修改

xiahan hai 1 ano
pai
achega
2588c4c0e3

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

@@ -26,6 +26,7 @@ import com.rongwei.safecommon.utils.CXCommonUtils;
 import com.rongwei.safecommon.utils.SaveConstans;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -98,6 +99,10 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
     private ApsService apsService;
     @Autowired
     private ApsProductionTechnicalRequirementService apsProductionTechnicalRequirementService;
+    @Autowired
+    private ApsProcessOperationBackupService apsProcessOperationBackupService;
+    @Autowired
+    private ApsProcessOperationProcessEquBackupService apsProcessOperationProcessEquBackupService;
 
 
     @Override
@@ -648,23 +653,44 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         SysUserVo currentUser = CXCommonUtils.getCurrentUser();
         //删除备份
         ApsUtils.clearBackup(null);
-        //增加备份
+
+        /*****************************开始工序作业备份********************************/
         StopWatch stopWatch = new StopWatch();
         stopWatch.start();
-        List<List<String>> partition1 = Lists.partition(apsProcessOperationIds, 500);
-        partition1.forEach(data -> {
-            apsProcessOperationBackupDao.processOperationBackup(data,
-                    currentUser == null ? null : currentUser.getId(), currentUser == null ? null : currentUser.getName());
-        });
+        String currentUserId = currentUser == null ? null : currentUser.getId();
+        String currentUserName = currentUser == null ? null : currentUser.getName();
+        List<ApsProcessOperationBackupDo> saveBackUpDo = new ArrayList<>();
+        ApsProcessOperationBackupDo backupDo;
+        Date currentDate = new Date();
+        for (ApsProcessOperationDo apsProcessOperationDo : apsProcessOperationService.list(new LambdaQueryWrapper<ApsProcessOperationDo>()
+                .in(ApsProcessOperationDo::getId, apsProcessOperationIds))) {
+            backupDo = new ApsProcessOperationBackupDo();
+            BeanUtils.copyProperties(apsProcessOperationDo, backupDo);
+            backupDo.setBackupuser(currentUserName);
+            backupDo.setBackupuserid(currentUserId);
+            backupDo.setBackupdate(currentDate);
+            saveBackUpDo.add(backupDo);
+        }
+        apsProcessOperationBackupService.saveBatch(saveBackUpDo, 500);
         stopWatch.stop();
-        log.error("工序作业备份时长: {}"+stopWatch.getTotalTimeSeconds());
+        log.error("工序作业备份时长: " + stopWatch.getTotalTimeSeconds());
+
+        /*****************************开始工序作业明细备份********************************/
         StopWatch stopWatch1 = new StopWatch();
         stopWatch1.start();
-        List<List<ApsProcessOperationProcessEquDo>> partition = Lists.partition(apsProcessOperationProcessEquDos, 100);
-        partition.forEach(data -> {
-            apsProcessOperationProcessEquBackupDao.processOperationEquBackup(data,
-                    currentUser == null ? null : currentUser.getId(), currentUser == null ? null : currentUser.getName());
-        });
+
+        List<ApsProcessOperationProcessEquBackupDo> equBackupDos = new ArrayList<>();
+        ApsProcessOperationProcessEquBackupDo equBackupDo;
+
+        for (ApsProcessOperationProcessEquDo apsProcessOperationProcessEquDo : apsProcessOperationProcessEquDos) {
+            equBackupDo = new ApsProcessOperationProcessEquBackupDo();
+            BeanUtils.copyProperties(apsProcessOperationProcessEquDo, equBackupDo);
+            equBackupDo.setBackupuser(currentUserName);
+            equBackupDo.setBackupuserid(currentUserId);
+            equBackupDo.setBackupdate(currentDate);
+            equBackupDos.add(equBackupDo);
+        }
+        apsProcessOperationProcessEquBackupService.saveBatch(equBackupDos,600);
         stopWatch1.stop();
         log.error("工序作业明细备份时长: {}"+stopWatch1.getTotalTimeSeconds());
     }