From b82302273a3c11efe9430600e5c3cb64ddf285ce Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期四, 12 二月 2026 10:40:19 +0800
Subject: [PATCH] fix: 采购台账、发货审批附件查询错误
---
src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java | 195 +++++++++++++++++++++++++++++++++++++++---------
1 files changed, 158 insertions(+), 37 deletions(-)
diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
index 13c493a..a624661 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
@@ -25,8 +25,13 @@
import com.ruoyi.project.system.mapper.SysDeptMapper;
import com.ruoyi.project.system.mapper.SysUserMapper;
import com.ruoyi.project.system.service.ISysNoticeService;
+import com.ruoyi.purchase.mapper.PurchaseLedgerMapper;
+import com.ruoyi.purchase.pojo.PurchaseLedger;
import com.ruoyi.sales.mapper.CommonFileMapper;
+import com.ruoyi.sales.mapper.ShippingInfoMapper;
import com.ruoyi.sales.pojo.CommonFile;
+import com.ruoyi.sales.pojo.ShippingInfo;
+import com.ruoyi.sales.service.impl.CommonFileServiceImpl;
import lombok.AllArgsConstructor;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
@@ -50,21 +55,30 @@
import java.util.stream.Collectors;
@Service
-@RequiredArgsConstructor
+//@RequiredArgsConstructor
public class ApproveProcessServiceImpl extends ServiceImpl<ApproveProcessMapper, ApproveProcess> implements IApproveProcessService {
private static final DateTimeFormatter DATE_FORMAT = DateTimeFormatter.ofPattern("yyyyMMdd");
- private final StringRedisTemplate redisTemplate;
-
- private final DailyRedisCounter dailyRedisCounter;
-
- private final SysDeptMapper sysDeptMapper;
- private final IApproveNodeService approveNodeService;
- private final SysUserMapper sysUserMapper;
- private final ApproveProcessMapper approveProcessMapper;
- private final TempFileServiceImpl tempFileService;
- private final CommonFileMapper commonFileMapper;
- private final ISysNoticeService sysNoticeService;
+ @Autowired
+ private StringRedisTemplate redisTemplate;
+ @Autowired
+ private DailyRedisCounter dailyRedisCounter;
+ @Autowired
+ private SysDeptMapper sysDeptMapper;
+ @Autowired
+ private IApproveNodeService approveNodeService;
+ @Autowired
+ private SysUserMapper sysUserMapper;
+ @Autowired
+ private ApproveProcessMapper approveProcessMapper;
+ @Autowired
+ private TempFileServiceImpl tempFileService;
+ @Autowired
+ private CommonFileMapper commonFileMapper;
+ @Autowired
+ private CommonFileServiceImpl commonFileService;
+ @Autowired
+ private ISysNoticeService sysNoticeService;
@Override
public void addApprove(ApproveProcessVO approveProcessVO) throws Exception {
@@ -124,10 +138,17 @@
tempFileService.migrateTempFilesToFormal(approveProcess.getId(), approveProcessVO.getTempFileIds(), FileNameType.ApproveProcess.getValue());
/*娑堟伅閫氱煡*/
String id = approveProcessVO.getApproveUserIds().split(",")[0];
- sysNoticeService.simpleNoticeByUser(approveProcessType(approveProcessVO.getApproveType()),
- approveID + "娴佺▼缂栧彿鐨勫鎵归渶瑕佹偍瀹℃牳!!!!!",
- Arrays.asList(Long.valueOf(id)),
- "/collaborativeApproval/approvalProcess?approveType=" + approveProcessVO.getApproveType() + "&approveId=" + approveID);
+ if (approveProcess.getApproveType()==8){
+ sysNoticeService.simpleNoticeByUser(approveProcessType(approveProcess.getApproveType()),
+ approveProcess.getApproveId() + "娴佺▼缂栧彿鐨勫鎵归渶瑕佹偍瀹℃牳!!!!!",
+ Arrays.asList(Long.valueOf(id)),
+ "/safeProduction/safeWorkApproval?approveType=" + approveProcess.getApproveType() + "&approveId=" + approveProcess.getApproveId());
+ }else {
+ sysNoticeService.simpleNoticeByUser(approveProcessType(approveProcess.getApproveType()),
+ approveProcess.getApproveId() + "娴佺▼缂栧彿鐨勫鎵归渶瑕佹偍瀹℃牳!!!!!",
+ Arrays.asList(Long.valueOf(id)),
+ "/collaborativeApproval/approvalProcess?approveType=" + approveProcess.getApproveType() + "&approveId=" + approveProcess.getApproveId());
+ }
}
@Override
@@ -140,32 +161,117 @@
return sysDeptList;
}
+ @Autowired
+ private PurchaseLedgerMapper purchaseLedgerMapper;
+
+ @Autowired
+ private ShippingInfoMapper shippingInfoMapper;
+
@Override
public IPage<ApproveProcess> listAll(Page page, ApproveProcess approveProcess) {
IPage<ApproveProcess> approveProcessIPage = approveProcessMapper.listPage(page, approveProcess);
List<ApproveProcess> records = approveProcessIPage.getRecords();
+
for (ApproveProcess record : records) {
- List<CommonFile> commonFiles = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
- .eq(CommonFile::getCommonId, record.getId())
- .eq(CommonFile::getType, FileNameType.ApproveProcess.getValue()));
- record.setCommonFileList(commonFiles);
+ List<CommonFile> allFiles = new ArrayList<>();
+
+ // 閲囪喘瀹℃壒鏌ヨ
+ if (record.getApproveType() == 5) {
+ String contractNo = record.getApproveReason();
+ PurchaseLedger ledger = purchaseLedgerMapper.selectOne(new LambdaQueryWrapper<PurchaseLedger>()
+ .eq(PurchaseLedger::getPurchaseContractNumber, contractNo)
+ .last("limit 1"));
+
+ if (ledger != null) {
+ allFiles = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
+ .eq(CommonFile::getCommonId, ledger.getId())
+ .eq(CommonFile::getType, FileNameType.PURCHASE.getValue()));
+ }
+ }
+
+ // 鍙戣揣瀹℃壒鏌ヨ
+ else if (record.getApproveType() == 7) {
+ String reason = record.getApproveReason(); // 鏍煎紡涓� "xx:...-..."
+ if (StringUtils.hasText(reason) && reason.contains(":")) {
+ // 鎻愬彇鍐掑彿鍚庨潰鐨勫彂璐у崟鍙�
+ String shippingNo = reason.split(":")[1];
+ // 鏍规嵁鍙戣揣鍗曞彿鏌ヨ鍙戣揣鍙拌处璁板綍
+ ShippingInfo shippingInfo = shippingInfoMapper.selectOne(new LambdaQueryWrapper<ShippingInfo>()
+ .eq(ShippingInfo::getShippingNo, shippingNo)
+ .last("limit 1"));
+ if (shippingInfo != null) {
+ // 浣跨敤鍙戣揣鍙拌处鐨� 閿�鍞彴璐D 鍘绘煡闄勪欢
+ allFiles = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
+ .eq(CommonFile::getCommonId, shippingInfo.getSalesLedgerId())
+ .eq(CommonFile::getType, FileNameType.SALE.getValue()));
+ }
+ }
+ }
+
+ // 鏌ヨ瀹℃壒鍗曡嚜韬殑闄勪欢
+ else {
+ allFiles = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
+ .eq(CommonFile::getCommonId, record.getId())
+ .eq(CommonFile::getType, FileNameType.ApproveProcess.getValue()));
+ }
+
+ record.setCommonFileList(allFiles);
}
return approveProcessIPage;
}
- @Override
- public void delApprove(Long[] ids) {
- ApproveProcess approveProcess;
+ public void delByIds(List<Long> ids) {
for (Long approveId : ids) {
// 閫昏緫鍒犻櫎瀹℃壒娴佺▼
update(new UpdateWrapper<ApproveProcess>()
.lambda()
.set(ApproveProcess::getApproveDelete, 1)
- .eq(ApproveProcess::getApproveId, approveId));
+ .eq(ApproveProcess::getId, approveId));
+ // 鍒犻櫎瀵瑰簲鐨勯檮浠�
+ commonFileService.deleteByBusinessId(approveId, FileNameType.ApproveProcess.getValue());
+ ApproveProcess approveProcess = approveProcessMapper.selectById(approveId);
// 鍒犻櫎瀹℃壒鑺傜偣
- approveNodeService.delApproveNodeByApproveId(approveId);
+ approveNodeService.delApproveNodeByApproveId(approveProcess.getApproveId());
+
+ // 鍙煡鏈�鏂颁竴鏉″鎵规祦绋�
+ ApproveProcess latestProcess = approveProcessMapper.selectOne(
+ new LambdaQueryWrapper<ApproveProcess>()
+ .eq(ApproveProcess::getApproveId, approveId)
+ .orderByDesc(ApproveProcess::getCreateTime)
+ .last("LIMIT 1"));
+
+ if (latestProcess == null) {
+ continue;
+ }
+
+
+ // 鍒犻櫎瀵瑰簲鐨勬秷鎭�氱煡
+ sysNoticeService.remove(new LambdaQueryWrapper<SysNotice>()
+ .eq(SysNotice::getNoticeTitle, approveProcessType(latestProcess.getApproveType()))
+ .eq(SysNotice::getSenderId, latestProcess.getApproveUser())
+ .apply("CAST(notice_content AS CHAR) LIKE CONCAT('%', {0}, '%')", latestProcess.getApproveId()));
+ }
+
+ }
+
+ @Override
+ public void delApprove(List<Long> ids) {
+ for (Long approveId : ids) {
+ ApproveProcess approveProcess = approveProcessMapper.selectOne(new LambdaQueryWrapper<ApproveProcess>()
+ .eq(ApproveProcess::getApproveId, approveId)
+ .eq(ApproveProcess::getApproveDelete, 0)
+ .last("LIMIT 1"));
+ // 閫昏緫鍒犻櫎瀹℃壒娴佺▼
+ update(new UpdateWrapper<ApproveProcess>()
+ .lambda()
+ .set(ApproveProcess::getApproveDelete, 1)
+ .eq(ApproveProcess::getApproveId, approveId));
+ // 鍒犻櫎瀵瑰簲鐨勯檮浠�
+ commonFileService.deleteByBusinessId(approveProcess.getId(), FileNameType.ApproveProcess.getValue());
+ // 鍒犻櫎瀹℃壒鑺傜偣
+ approveNodeService.delApproveNodeByApproveId(approveId.toString());
// 鍙煡鏈�鏂颁竴鏉″鎵规祦绋�
ApproveProcess latestProcess = approveProcessMapper.selectOne(
@@ -198,7 +304,8 @@
return one;
}
- private final ApproveNodeMapper approveNodeMapper;
+ @Autowired
+ private ApproveNodeMapper approveNodeMapper;
// 鎶ヤ环瀹℃壒缂栬緫瀹℃牳浜�
public void updateApproveUser(ApproveGetAndUpdateVo approveGetAndUpdateVo) {
@@ -235,10 +342,17 @@
approveNodeService.initApproveNodes(approveGetAndUpdateVo.getApproveUserIds(), approveProcess.getApproveId(), approveProcess.getTenantId());
/*娑堟伅閫氱煡*/
String id = approveProcess.getApproveUserIds().split(",")[0];
- sysNoticeService.simpleNoticeByUser(approveProcessType(approveProcess.getApproveType()),
- approveProcess.getApproveId() + "娴佺▼缂栧彿鐨勫鎵归渶瑕佹偍瀹℃牳!!!!!",
- Arrays.asList(Long.valueOf(id)),
- "/collaborativeApproval/approvalProcess?approveType=" + approveProcess.getApproveType() + "&approveId=" + approveProcess.getApproveId());
+ if (approveProcess.getApproveType()==8){
+ sysNoticeService.simpleNoticeByUser(approveProcessType(approveProcess.getApproveType()),
+ approveProcess.getApproveId() + "娴佺▼缂栧彿鐨勫鎵归渶瑕佹偍瀹℃牳!!!!!",
+ Arrays.asList(Long.valueOf(id)),
+ "/safeProduction/safeWorkApproval?approveType=" + approveProcess.getApproveType() + "&approveId=" + approveProcess.getApproveId());
+ }else {
+ sysNoticeService.simpleNoticeByUser(approveProcessType(approveProcess.getApproveType()),
+ approveProcess.getApproveId() + "娴佺▼缂栧彿鐨勫鎵归渶瑕佹偍瀹℃牳!!!!!",
+ Arrays.asList(Long.valueOf(id)),
+ "/collaborativeApproval/approvalProcess?approveType=" + approveProcess.getApproveType() + "&approveId=" + approveProcess.getApproveId());
+ }
}
@@ -293,10 +407,17 @@
tempFileService.migrateTempFilesToFormal(approve.getId(), approveGetAndUpdateVo.getTempFileIds(), FileNameType.ApproveProcess.getValue());
/*娑堟伅閫氱煡*/
String id = approve.getApproveUserIds().split(",")[0];
- sysNoticeService.simpleNoticeByUser(approveProcessType(approve.getApproveType()),
- approve.getApproveId() + "娴佺▼缂栧彿鐨勫鎵归渶瑕佹偍瀹℃牳!!!!!",
- Arrays.asList(Long.valueOf(id)),
- "/collaborativeApproval/approvalProcess?approveType=" + approve.getApproveType() + "&approveId=" + approve.getApproveId());
+ if (approve.getApproveType()==8){
+ sysNoticeService.simpleNoticeByUser(approveProcessType(approve.getApproveType()),
+ approve.getApproveId() + "娴佺▼缂栧彿鐨勫鎵归渶瑕佹偍瀹℃牳!!!!!",
+ Arrays.asList(Long.valueOf(id)),
+ "/safeProduction/safeWorkApproval?approveType=" + approve.getApproveType() + "&approveId=" + approve.getApproveId());
+ }else {
+ sysNoticeService.simpleNoticeByUser(approveProcessType(approve.getApproveType()),
+ approve.getApproveId() + "娴佺▼缂栧彿鐨勫鎵归渶瑕佹偍瀹℃牳!!!!!",
+ Arrays.asList(Long.valueOf(id)),
+ "/collaborativeApproval/approvalProcess?approveType=" + approve.getApproveType() + "&approveId=" + approve.getApproveId());
+ }
}
@@ -317,10 +438,10 @@
case 6:
return "鎶ヤ环瀹℃壒";
case 7:
- return "鍑哄簱瀹℃壒";
+ return "鍙戣揣瀹℃壒";
+ case 8:
+ return "鍗遍櫓浣滀笟瀹℃壒";
}
return null;
}
-
-
}
--
Gitblit v1.9.3