From 03965438c47dc6620bf5bf9ebb7ae97e805b4aae Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 15 十月 2026 15:44:44 +0800
Subject: [PATCH] fix(crm,mes): 客户转化统计漏行、归档台账分页与排序
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/repair/MesDvRepairServiceImpl.java | 23 ++++++++++++++++++++++-
1 files changed, 22 insertions(+), 1 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/repair/MesDvRepairServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/repair/MesDvRepairServiceImpl.java
index b6d5e36..c8255a2 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/repair/MesDvRepairServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/dv/repair/MesDvRepairServiceImpl.java
@@ -35,6 +35,8 @@
private MesDvRepairLineService repairLineService;
@Resource
private MesDvMachineryService machineryService;
+ @Resource
+ private cn.iocoder.yudao.module.mes.dal.mysql.dv.spare.MesDvSpareMovementMapper spareMovementMapper;
@Override
public Long createRepair(MesDvRepairSaveReqVO createReqVO) {
@@ -49,9 +51,18 @@
}
@Override
+ @Transactional(rollbackFor = Exception.class)
public void updateRepair(MesDvRepairSaveReqVO updateReqVO) {
// 1.1 鏍¢獙瀛樺湪锛屼笖鐘舵�佷负鑽夌
validateRepairPrepare(updateReqVO.getId());
+ MesDvRepairDO old = repairMapper.selectById(updateReqVO.getId());
+ if (spareMovementMapper.selectCount(
+ cn.iocoder.yudao.module.mes.dal.dataobject.dv.spare.MesDvSpareMovementDO::getRepairId, old.getId()) > 0
+ && (!java.util.Objects.equals(old.getMachineryId(), updateReqVO.getMachineryId())
+ || !java.util.Objects.equals(old.getCode(), updateReqVO.getCode()))) {
+ throw exception(new cn.iocoder.yudao.framework.common.exception.ErrorCode(1_040_807_001,
+ "澶囦欢鎿嶄綔澶辫触锛歿}"), "宸叉湁澶囦欢娴佹按鐨勭淮淇崟涓嶈兘鏇存崲璁惧鎴栫紪鐮�");
+ }
// 1.2 鏍¢獙淇濆瓨鏁版嵁
validateSaveData(updateReqVO);
@@ -65,6 +76,12 @@
public void deleteRepair(Long id) {
// 鏍¢獙瀛樺湪锛屼笖鐘舵�佷负鑽夌
validateRepairPrepare(id);
+
+ if (spareMovementMapper.selectCount(
+ cn.iocoder.yudao.module.mes.dal.dataobject.dv.spare.MesDvSpareMovementDO::getRepairId, id) > 0) {
+ throw exception(new cn.iocoder.yudao.framework.common.exception.ErrorCode(1_040_807_001,
+ "澶囦欢鎿嶄綔澶辫触锛歿}"), "宸叉湁澶囦欢娴佹按鐨勭淮淇崟涓嶈兘鍒犻櫎锛岃淇濈暀缁翠慨杩芥函璁板綍");
+ }
// 鍒犻櫎
repairMapper.deleteById(id);
@@ -97,7 +114,8 @@
@Override
public MesDvRepairDO validateRepairExists(Long id) {
- MesDvRepairDO repair = repairMapper.selectById(id);
+ MesDvRepairDO repair = org.springframework.transaction.support.TransactionSynchronizationManager.isActualTransactionActive()
+ ? repairMapper.lockForSpare(id) : repairMapper.selectById(id);
if (repair == null) {
throw exception(DV_REPAIR_NOT_EXISTS);
}
@@ -134,6 +152,7 @@
}
@Override
+ @Transactional(rollbackFor = Exception.class)
public void submitRepair(Long id, Long userId) {
// 1. 鏍¢獙瀛樺湪锛屼笖鐘舵�佷负鑽夌
validateRepairPrepare(id);
@@ -144,6 +163,7 @@
}
@Override
+ @Transactional(rollbackFor = Exception.class)
public void confirmRepair(cn.iocoder.yudao.module.mes.controller.admin.dv.repair.vo.MesDvRepairConfirmReqVO confirmReqVO) {
// 1. 鏍¢獙瀛樺湪锛屼笖鐘舵�佷负缁翠慨涓�
MesDvRepairDO repair = validateRepairExists(confirmReqVO.getId());
@@ -157,6 +177,7 @@
}
@Override
+ @Transactional(rollbackFor = Exception.class)
public void finishRepair(Long id, Integer result, Long userId) {
// 1. 鏍¢獙瀛樺湪锛屼笖鐘舵�佷负寰呴獙鏀�
MesDvRepairDO repair = validateRepairExists(id);
--
Gitblit v1.9.3