Bläddra i källkod

aps-导入excel拆分事务

sucheng 2 månader sedan
förälder
incheckning
31ba99841a

+ 40 - 31
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsProcessOperationProcessEquServiceImpl.java

@@ -2742,7 +2742,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
             // 读取数据
             EasyExcel.read(multipartFile.getInputStream(), WorkShopExportVo.class, listener).sheet().headRowNumber(1).doRead();
         } catch (ExcelDataConvertException e) {
-            String errorMessage = "第" + (e.getRowIndex() + 1) + "行,第" + (e.getColumnIndex()+1) + "列,数据错误,请检查:\n\r"+e.getCellData().getStringValue();
+            String errorMessage = "第" + (e.getRowIndex() + 1) + "行,第" + (e.getColumnIndex() + 1) + "列,数据错误,请检查:\n\r" + e.getCellData().getStringValue();
             log.error("导入文件错误," + errorMessage);
             return R.error(errorMessage);
         }
@@ -2918,35 +2918,35 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
 
             // 定义事务属性
             TransactionDefinition definition = new DefaultTransactionDefinition();
-            // 开始事务
-            TransactionStatus status = transactionManager.getTransaction(definition);
-            try {
-                //更新所有明细
-                for (ApsProcessOperationProcessEquDo equDo : allNeedUpdateList) {
-                    LambdaUpdateWrapper<ApsProcessOperationProcessEquDo> wrapper = new LambdaUpdateWrapper<>();
-                    if (StringUtils.isNotBlank(equDo.getProcessdeviceid())) {
-                        wrapper.set(ApsProcessOperationProcessEquDo::getProcessdeviceid, equDo.getProcessdeviceid());
-                    }
-                    if (StringUtils.isNotBlank(equDo.getProcessdevice())) {
-                        wrapper.set(ApsProcessOperationProcessEquDo::getProcessdevice, equDo.getProcessdevice());
-                    }
-                    if (StringUtils.isNotBlank(equDo.getProcessworkshopid())) {
-                        wrapper.set(ApsProcessOperationProcessEquDo::getProcessworkshopid, equDo.getProcessworkshopid());
-                    }
-                    if (StringUtils.isNotBlank(equDo.getProcessworkshop())) {
-                        wrapper.set(ApsProcessOperationProcessEquDo::getProcessworkshop, equDo.getProcessworkshop());
-                    }
-                    if (StringUtils.isNotBlank(equDo.getRollerid())) {
-                        wrapper.set(ApsProcessOperationProcessEquDo::getRollerid, equDo.getRollerid());
-                    }
-                    if (equDo.getPlanstartdate() != null) {
-                        wrapper.set(ApsProcessOperationProcessEquDo::getPlanstartdate, equDo.getPlanstartdate());
-                    }
-                    if (equDo.getPlanenddate() != null) {
-                        wrapper.set(ApsProcessOperationProcessEquDo::getPlanenddate, equDo.getPlanenddate());
-                    }
-                    wrapper.eq(ApsProcessOperationProcessEquDo::getId, equDo.getId())
-                            .eq(ApsProcessOperationProcessEquDo::getWorkstatus, "待开工");
+            //更新所有明细
+            for (ApsProcessOperationProcessEquDo equDo : allNeedUpdateList) {
+                LambdaUpdateWrapper<ApsProcessOperationProcessEquDo> wrapper = new LambdaUpdateWrapper<>();
+                if (StringUtils.isNotBlank(equDo.getProcessdeviceid())) {
+                    wrapper.set(ApsProcessOperationProcessEquDo::getProcessdeviceid, equDo.getProcessdeviceid());
+                }
+                if (StringUtils.isNotBlank(equDo.getProcessdevice())) {
+                    wrapper.set(ApsProcessOperationProcessEquDo::getProcessdevice, equDo.getProcessdevice());
+                }
+                if (StringUtils.isNotBlank(equDo.getProcessworkshopid())) {
+                    wrapper.set(ApsProcessOperationProcessEquDo::getProcessworkshopid, equDo.getProcessworkshopid());
+                }
+                if (StringUtils.isNotBlank(equDo.getProcessworkshop())) {
+                    wrapper.set(ApsProcessOperationProcessEquDo::getProcessworkshop, equDo.getProcessworkshop());
+                }
+                if (StringUtils.isNotBlank(equDo.getRollerid())) {
+                    wrapper.set(ApsProcessOperationProcessEquDo::getRollerid, equDo.getRollerid());
+                }
+                if (equDo.getPlanstartdate() != null) {
+                    wrapper.set(ApsProcessOperationProcessEquDo::getPlanstartdate, equDo.getPlanstartdate());
+                }
+                if (equDo.getPlanenddate() != null) {
+                    wrapper.set(ApsProcessOperationProcessEquDo::getPlanenddate, equDo.getPlanenddate());
+                }
+                wrapper.eq(ApsProcessOperationProcessEquDo::getId, equDo.getId())
+                        .eq(ApsProcessOperationProcessEquDo::getWorkstatus, "待开工");
+                // 开始事务
+                TransactionStatus status = transactionManager.getTransaction(definition);
+                try {
                     apsProcessOperationProcessEquService.update(wrapper);
 
                     ApsProcessOperationProcessEquDo apsProcessOperationProcessEquDo = this.getById(equDo.getId());
@@ -2972,9 +2972,18 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
                             apsProcessOperationProcessEquDo.getPlanstartdate(),
                             apsProcessOperationProcessEquDo.getPlanenddate(),
                             new LinkedList<>());
+                    // 提交事务
+                    transactionManager.commit(status);
+                } catch (Exception e) {
+                    // 捕获异常并回滚事务
+                    transactionManager.rollback(status);
+                    throw e;
                 }
+            }
 
-
+            // 开始事务
+            TransactionStatus status = transactionManager.getTransaction(definition);
+            try {
                 if (!processIdList.isEmpty()) {
                     //更新对应工序作业的 计划完工时间和计划开工时间
                     this.baseMapper.updateProcessPlanTimeByProcessIds(processIdList);