diff --git a/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsBillsInspectInstanceServiceImpl.java b/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsBillsInspectInstanceServiceImpl.java index 18591cf..ca3b556 100644 --- a/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsBillsInspectInstanceServiceImpl.java +++ b/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsBillsInspectInstanceServiceImpl.java @@ -14,6 +14,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; @@ -401,7 +402,8 @@ public class DmsBillsInspectInstanceServiceImpl implements IDmsBillsInspectInsta * 不依赖SecurityUtils,适合在定时任务上下文中调用 */ @Override - @Transactional(rollbackFor = Exception.class) + // @Transactional(rollbackFor = Exception.class) + @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class) public int insertCompletedInspectInstance(DmsBillsInspectInstance dmsBillsInspectInstance) { Date now = new Date(); log.info("开始创建已完成巡检工单 | billsInspectCode={}, planInspectId={}, inspectRouteId={}, inspectType={}", @@ -456,12 +458,16 @@ public class DmsBillsInspectInstanceServiceImpl implements IDmsBillsInspectInsta // 创建明细项目记录 Long projectId = dmsInspectInstanceDetailMapper.selectProjectId(routeDetail.getInspectStandard()); - DmsInspectInstanceDetailProject detailProject = new DmsInspectInstanceDetailProject(); - detailProject.setInstanceDetailId(detail.getInstanceDetailId()); - detailProject.setInspectProjectId(projectId); - detailProject.setCreateTime(now); - detailProject.setInspectProjectStatus(DmsConstants.DMS_INSPECT_INSTANCE_DETAIL_PROJECT_STATUS_PASS); // 1=合格 - dmsInspectInstanceDetailProjectMapper.insertDmsInspectInstanceDetailProject(detailProject); + if (projectId != null) { + DmsInspectInstanceDetailProject detailProject = new DmsInspectInstanceDetailProject(); + detailProject.setInstanceDetailId(detail.getInstanceDetailId()); + detailProject.setInspectProjectId(projectId); + detailProject.setCreateTime(now); + detailProject.setInspectProjectStatus(DmsConstants.DMS_INSPECT_INSTANCE_DETAIL_PROJECT_STATUS_PASS); // 1=合格 + dmsInspectInstanceDetailProjectMapper.insertDmsInspectInstanceDetailProject(detailProject); + } else { + log.warn("未找到巡检标准对应的项目ID,跳过创建项目记录 | inspectStandard={}", routeDetail.getInspectStandard()); + } } } diff --git a/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsPlanInspectServiceImpl.java b/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsPlanInspectServiceImpl.java index 004d648..19febb6 100644 --- a/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsPlanInspectServiceImpl.java +++ b/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsPlanInspectServiceImpl.java @@ -272,7 +272,7 @@ public class DmsPlanInspectServiceImpl implements IDmsPlanInspectService * cron表达式:秒 分 时 日 月 周 */ @Scheduled(cron = "0 0 0 * * ?") - @Transactional(rollbackFor = Exception.class) + // @Transactional(rollbackFor = Exception.class) public void generateDailyInspectWorkOrders() { log.info("========== 开始执行巡检工单生成任务 =========="); int count = 0;