From dfa9258c8879dbb0d1bfc00d7f939031d0bb623b Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期四, 29 一月 2026 18:32:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_New' into dev_New
---
src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java | 90 +++++++++++++++++++++++++++++++++++++++------
1 files changed, 78 insertions(+), 12 deletions(-)
diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
index ddc3718..ca0cc8e 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
@@ -1,6 +1,7 @@
package com.ruoyi.approve.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -12,18 +13,21 @@
import com.ruoyi.approve.service.IApproveNodeService;
import com.ruoyi.approve.vo.ApproveProcessVO;
import com.ruoyi.common.enums.FileNameType;
+import com.ruoyi.common.enums.StockQualifiedRecordTypeEnum;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.device.mapper.DeviceRepairMapper;
import com.ruoyi.device.pojo.DeviceRepair;
import com.ruoyi.other.service.impl.TempFileServiceImpl;
+import com.ruoyi.procurementrecord.utils.StockUtils;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.mapper.SysUserMapper;
import com.ruoyi.project.system.service.ISysNoticeService;
-import com.ruoyi.sales.mapper.CommonFileMapper;
-import com.ruoyi.sales.mapper.SalesQuotationMapper;
-import com.ruoyi.sales.mapper.SalesQuotationProductMapper;
-import com.ruoyi.sales.mapper.ShippingInfoMapper;
+import com.ruoyi.purchase.mapper.PurchaseLedgerMapper;
+import com.ruoyi.purchase.pojo.PurchaseLedger;
+import com.ruoyi.purchase.service.impl.PurchaseLedgerServiceImpl;
+import com.ruoyi.sales.mapper.*;
import com.ruoyi.sales.pojo.CommonFile;
+import com.ruoyi.sales.pojo.SalesLedgerProduct;
import com.ruoyi.sales.pojo.SalesQuotation;
import com.ruoyi.sales.pojo.ShippingInfo;
import com.ruoyi.sales.service.impl.CommonFileServiceImpl;
@@ -40,7 +44,7 @@
import java.util.List;
@Service
-@RequiredArgsConstructor
+//@RequiredArgsConstructor
public class ApproveNodeServiceImpl extends ServiceImpl<ApproveNodeMapper, ApproveNode> implements IApproveNodeService {
@Autowired
@@ -61,11 +65,23 @@
private DeviceRepairMapper deviceRepairMapper;
@Autowired
+ private PurchaseLedgerMapper purchaseLedgerMapper;
+
+ @Autowired
private SalesQuotationMapper salesQuotationMapper;
@Autowired
private ShippingInfoMapper shippingInfoMapper;
+ @Autowired
+ private CommonFileServiceImpl commonFileService;
+ @Autowired
+ private StockUtils stockUtils;
+ @Autowired
+ private SalesLedgerProductMapper salesLedgerProductMapper;
+
+ @Autowired
+ private PurchaseLedgerServiceImpl purchaseLedgerServiceImpl;
public ApproveProcess getApproveById(String id) {
@@ -107,12 +123,14 @@
LambdaQueryWrapper<ApproveNode> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ApproveNode::getApproveProcessId, id);
queryWrapper.eq(ApproveNode::getDeleteFlag, 0);
+ queryWrapper.eq(ApproveNode::getApproveNodeStatus, 0);
List<ApproveNode> list = list(queryWrapper);
// 鎸夌収 approveNodeOrder 瀛楁鍗囧簭鎺掑簭
list.sort(Comparator.comparingInt(ApproveNode::getApproveNodeOrder));
LambdaQueryWrapper<ApproveProcess> approveProcessLambdaQueryWrapper = new LambdaQueryWrapper<>();
approveProcessLambdaQueryWrapper.eq(ApproveProcess::getApproveId, id)
.eq(ApproveProcess::getApproveDelete, 0)
+ .eq(ApproveProcess::getApproveStatus, 0)
.last("limit 1");
ApproveProcess approveProcess = approveProcessMapper.selectOne(approveProcessLambdaQueryWrapper);
if(approveProcess != null && approveProcess.getApproveStatus() == 3){
@@ -138,6 +156,7 @@
LambdaQueryWrapper<ApproveProcess> approveProcessLambdaQueryWrapper = new LambdaQueryWrapper<>();
approveProcessLambdaQueryWrapper.eq(ApproveProcess::getApproveId, approveNode.getApproveProcessId())
.eq(ApproveProcess::getApproveDelete, 0)
+ .eq(ApproveProcess::getApproveStatus, 0)
.last("limit 1");
ApproveProcess approveProcess = approveProcessMapper.selectOne(approveProcessLambdaQueryWrapper);
if(approveProcess == null) throw new RuntimeException("瀹℃壒涓嶅瓨鍦�");
@@ -145,6 +164,7 @@
approveNodeLambdaQueryWrapper.eq(ApproveNode::getApproveProcessId, approveNode.getApproveProcessId())
.eq(ApproveNode::getApproveNodeOrder, approveNode.getApproveNodeOrder() + 1)
.eq(ApproveNode::getDeleteFlag, 0)
+ .eq(ApproveNode::getApproveNodeStatus, 0)
.last("limit 1");
ApproveNode approveNode1 = approveNodeMapper.selectOne(approveNodeLambdaQueryWrapper);
approveProcess.setApproveStatus(status);
@@ -167,6 +187,37 @@
deviceRepair.setStatus(2);
}
deviceRepairMapper.updateById(deviceRepair);
+ }
+
+ //閲囪喘瀹℃牳
+ if(approveProcess.getApproveType().equals(5)){
+ PurchaseLedger purchaseLedger = purchaseLedgerMapper.selectOne(new LambdaQueryWrapper<PurchaseLedger>()
+ .eq(PurchaseLedger::getPurchaseContractNumber, approveProcess.getApproveReason())
+ .last("limit 1"));
+ if(purchaseLedger != null) {
+ if (status.equals(2)) {
+ // 鍚屾剰
+ purchaseLedger.setApprovalStatus(3);
+ List<SalesLedgerProduct> salesLedgerProducts = salesLedgerProductMapper.selectList(new QueryWrapper<SalesLedgerProduct>()
+ .lambda().eq(SalesLedgerProduct::getSalesLedgerId, purchaseLedger.getId()).eq(SalesLedgerProduct::getType, 2));
+ for (SalesLedgerProduct salesLedgerProduct : salesLedgerProducts) {
+ // 璐ㄦ
+ if (salesLedgerProduct.getIsChecked()) {
+ purchaseLedgerServiceImpl.addQualityInspect(purchaseLedger, salesLedgerProduct);
+ }else {
+ //鐩存帴鍏ュ簱
+ stockUtils.addStock(salesLedgerProduct.getProductModelId(), salesLedgerProduct.getQuantity(), StockQualifiedRecordTypeEnum.PURCHASE_STOCK_IN.getCode(), purchaseLedger.getId());
+ }
+ }
+ } else if (status.equals(3)) {
+ // 鎷掔粷
+ purchaseLedger.setApprovalStatus(4);
+ } else if (status.equals(1)) {
+ // 瀹℃牳涓�
+ purchaseLedger.setApprovalStatus(2);
+ }
+ purchaseLedgerMapper.updateById(purchaseLedger);
+ }
}
// 閿�鍞姤浠风姸鎬佷慨鏀�
if(approveProcess.getApproveType().equals(6)){
@@ -194,7 +245,7 @@
if(status.equals(2)){
shippingInfo.setStatus("瀹℃牳閫氳繃");
}else if(status.equals(3)){
- shippingInfo.setType("瀹℃牳鎷掔粷");
+ shippingInfo.setStatus("瀹℃牳鎷掔粷");
}else if(status.equals(1)){
shippingInfo.setStatus("瀹℃牳涓�");
}
@@ -220,10 +271,17 @@
.eq(ApproveProcess::getApproveId, approveNode.getApproveProcessId())).get(0);
if (approveProcess.getApproveUserIds().split(",").length > nodeOrder){
String id = approveProcess.getApproveUserIds().split(",")[nodeOrder];
- sysNoticeService.simpleNoticeByUser(approveProcessType(approveProcess.getApproveType()),
- approveNode.getApproveProcessId()+"娴佺▼缂栧彿鐨勫鎵归渶瑕佹偍瀹℃牳!!!!!",
- Arrays.asList(Long.valueOf(id)),
- "/collaborativeApproval/approvalProcess?approveType="+approveProcess.getApproveType()+"&approveId="+approveNode.getApproveProcessId());
+ 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());
+ }
}
break;
case 2:
@@ -237,11 +295,17 @@
}
@Override
- public void delApproveNodeByApproveId(Long id) {
+ public void delApproveNodeByApproveId(String id) {
+ List<ApproveNode> approveNodes = approveNodeMapper.selectList(new LambdaQueryWrapper<ApproveNode>()
+ .eq(ApproveNode::getApproveProcessId, id));
UpdateWrapper<ApproveNode> queryWrapper = new UpdateWrapper<>();
queryWrapper.lambda().set(ApproveNode::getDeleteFlag, 1)
.eq(ApproveNode::getApproveProcessId, id);
update(queryWrapper);
+ // 鍒犻櫎闄勪欢
+ for (ApproveNode approveNode : approveNodes) {
+ commonFileService.deleteByBusinessId(approveNode.getId(), FileNameType.ApproveNode.getValue());
+ }
}
//瀹℃壒绫诲瀷鑾峰彇(涓庡墠绔〉闈㈠搴�)
@@ -260,7 +324,9 @@
case 6:
return "鎶ヤ环瀹℃壒";
case 7:
- return "鍑哄簱瀹℃壒";
+ return "鍙戣揣瀹℃壒";
+ case 8:
+ return "鍗遍櫓浣滀笟瀹℃壒";
}
return null;
}
--
Gitblit v1.9.3