fix(dms): 修复巡检工单创建中的事务传播和空指针问题@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)

- 修改 insertCompletedInspe- 防止因未找到巡检标准对应项目ID导致的空指针异常
master
zangch@mesnac.com 5 days ago
parent 0f5b1947c0
commit b9ab8b1aa3

@ -14,6 +14,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
@ -401,7 +402,8 @@ public class DmsBillsInspectInstanceServiceImpl implements IDmsBillsInspectInsta
* SecurityUtils * SecurityUtils
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class) // @Transactional(rollbackFor = Exception.class)
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
public int insertCompletedInspectInstance(DmsBillsInspectInstance dmsBillsInspectInstance) { public int insertCompletedInspectInstance(DmsBillsInspectInstance dmsBillsInspectInstance) {
Date now = new Date(); Date now = new Date();
log.info("开始创建已完成巡检工单 | billsInspectCode={}, planInspectId={}, inspectRouteId={}, inspectType={}", log.info("开始创建已完成巡检工单 | billsInspectCode={}, planInspectId={}, inspectRouteId={}, inspectType={}",
@ -456,12 +458,16 @@ public class DmsBillsInspectInstanceServiceImpl implements IDmsBillsInspectInsta
// 创建明细项目记录 // 创建明细项目记录
Long projectId = dmsInspectInstanceDetailMapper.selectProjectId(routeDetail.getInspectStandard()); Long projectId = dmsInspectInstanceDetailMapper.selectProjectId(routeDetail.getInspectStandard());
if (projectId != null) {
DmsInspectInstanceDetailProject detailProject = new DmsInspectInstanceDetailProject(); DmsInspectInstanceDetailProject detailProject = new DmsInspectInstanceDetailProject();
detailProject.setInstanceDetailId(detail.getInstanceDetailId()); detailProject.setInstanceDetailId(detail.getInstanceDetailId());
detailProject.setInspectProjectId(projectId); detailProject.setInspectProjectId(projectId);
detailProject.setCreateTime(now); detailProject.setCreateTime(now);
detailProject.setInspectProjectStatus(DmsConstants.DMS_INSPECT_INSTANCE_DETAIL_PROJECT_STATUS_PASS); // 1=合格 detailProject.setInspectProjectStatus(DmsConstants.DMS_INSPECT_INSTANCE_DETAIL_PROJECT_STATUS_PASS); // 1=合格
dmsInspectInstanceDetailProjectMapper.insertDmsInspectInstanceDetailProject(detailProject); dmsInspectInstanceDetailProjectMapper.insertDmsInspectInstanceDetailProject(detailProject);
} else {
log.warn("未找到巡检标准对应的项目ID跳过创建项目记录 | inspectStandard={}", routeDetail.getInspectStandard());
}
} }
} }

@ -272,7 +272,7 @@ public class DmsPlanInspectServiceImpl implements IDmsPlanInspectService
* cron * cron
*/ */
@Scheduled(cron = "0 0 0 * * ?") @Scheduled(cron = "0 0 0 * * ?")
@Transactional(rollbackFor = Exception.class) // @Transactional(rollbackFor = Exception.class)
public void generateDailyInspectWorkOrders() { public void generateDailyInspectWorkOrders() {
log.info("========== 开始执行巡检工单生成任务 =========="); log.info("========== 开始执行巡检工单生成任务 ==========");
int count = 0; int count = 0;

Loading…
Cancel
Save