From 2dd645b5346f510d1207346347f1fa70a204d9d3 Mon Sep 17 00:00:00 2001
From: zhangwencui <1064582902@qq.com>
Date: 星期四, 05 十一月 2026 16:11:34 +0800
Subject: [PATCH] 1. 完成项目管理全流程优化,补充阶段推进、汇报统计及生命周期记录。 2. 完成业务与项目数据关联,支持查看项目进度、详情及相关附件。 3. 完成采购审批流程接入,支持配置审批人员及采购业务审批。 4. 精简用户、角色、部门、菜单和字典,完善操作日志及附件下载。
---
src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java | 63 +++++++++++++------------------
1 files changed, 27 insertions(+), 36 deletions(-)
diff --git a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
index 5a80184..b7aee2c 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -8,6 +8,7 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.alibaba.fastjson2.JSON;
import com.ruoyi.approve.bean.dto.ApprovalInstanceDto;
+import com.ruoyi.approve.bean.vo.ApproveProcessVO;
import com.ruoyi.approve.mapper.ApprovalTemplateMapper;
import com.ruoyi.approve.pojo.ApprovalInstance;
import com.ruoyi.approve.pojo.ApprovalTemplate;
@@ -182,7 +183,15 @@
}
}
- purchaseLedger.setApprovalStatus(1);
+ boolean newPurchase = purchaseLedger.getId() == null;
+ if (newPurchase) {
+ purchaseLedger.setApprovalStatus(ApprovalStatusEnum.PENDING.getCode());
+ } else {
+ PurchaseLedger stored = purchaseLedgerMapper.selectById(purchaseLedger.getId());
+ if (stored != null) {
+ purchaseLedger.setApprovalStatus(stored.getApprovalStatus());
+ }
+ }
// 瀹為檯鍚堝悓閲戦濮嬬粓绛変簬鍚堝悓閲戦
purchaseLedger.setNetContractAmount(purchaseLedger.getContractAmount());
// 3. 鏂板鎴栨洿鏂颁富琛�
@@ -198,14 +207,15 @@
}
// 6.閲囪喘瀹℃牳鏂板锛涘鎵圭鐞嗘湭閰嶇疆閲囪喘瀹℃壒浜烘椂锛屽鎵规湇鍔′細鑷姩缃负瀹℃壒閫氳繃銆�
//鏌ヨ褰撳墠閲囪喘鍚堝悓鍙锋槸鍚﹀凡娣诲姞瀹℃壒锛屽鏋滄湁涓斾笉鏄┏鍥炵姸鎬侊紝鍒欎笉閲嶅娣诲姞
- ApprovalInstance oldApprovalInstance = approvalInstanceService.getOne(Wrappers.<ApprovalInstance>lambdaQuery()
- .eq(ApprovalInstance::getDeleted, 0)
- .eq(ApprovalInstance::getBusinessType, TypeEnums.PURCHASE_APPROVAL.getCode())
- .eq(ApprovalInstance::getBusinessId, purchaseLedger.getId())
- .ne(ApprovalInstance::getStatus,"REJECTED")
- .last("limit 1")
+ ApproveProcess oldApprovalProcess = approveProcessService.getOne(
+ Wrappers.<ApproveProcess>lambdaQuery()
+ .eq(ApproveProcess::getApproveType, TypeEnums.PURCHASE_APPROVAL.getCode())
+ .eq(ApproveProcess::getApproveReason, purchaseLedger.getPurchaseContractNumber())
+ .in(ApproveProcess::getApproveStatus, 0, 1)
+ .last("limit 1")
);
- if(Objects.isNull(oldApprovalInstance)){
+ if (Objects.isNull(oldApprovalProcess)
+ && !ApprovalStatusEnum.APPROVED.getCode().equals(purchaseLedger.getApprovalStatus())) {
addApproveByPurchase(loginUser, purchaseLedger, productList);
}
// 5. 杩佺Щ涓存椂鏂囦欢鍒版寮忕洰褰�
@@ -1139,37 +1149,18 @@
return resultDto;
}
- public void addApproveByPurchase(LoginUser loginUser, PurchaseLedger purchaseLedger, List<SalesLedgerProduct> productList) {
+ public void addApproveByPurchase(LoginUser loginUser, PurchaseLedger purchaseLedger,
+ List<SalesLedgerProduct> productList) throws Exception {
if (loginUser == null) {
return;
}
- ApprovalTemplate approvalTemplate = approvalTemplateMapper.selectOne(
- new LambdaQueryWrapper<ApprovalTemplate>()
- .eq(ApprovalTemplate::getBusinessType, 5L)
- .eq(ApprovalTemplate::getDeleted, 0)
- .orderByDesc(ApprovalTemplate::getId)
- .last("LIMIT 1")
- );
- if (approvalTemplate == null) {
- throw new BaseException("璇峰厛閰嶇疆閲囪喘瀹℃壒妯℃澘");
- }
-
- ApprovalInstanceDto approvalInstance = new ApprovalInstanceDto();
- approvalInstance.setTemplateId(approvalTemplate.getId());
- approvalInstance.setTemplateName(approvalTemplate.getTemplateName());
- approvalInstance.setBusinessId(purchaseLedger.getId());
- approvalInstance.setBusinessType(5L);
- approvalInstance.setCurrentLevel(1);
- approvalInstance.setApplicantId(loginUser.getUserId());
- approvalInstance.setTitle(purchaseLedger.getPurchaseContractNumber()+"瀹℃壒");
- approvalInstance.setApplicantName(loginUser.getNickName());
- approvalInstance.setApplyTime(LocalDateTime.now());
- PurchaseLedgerDto snapshot = new PurchaseLedgerDto();
- BeanUtils.copyProperties(purchaseLedger, snapshot);
- snapshot.setProductData(productList == null ? Collections.emptyList() : new ArrayList<>(productList));
- approvalInstance.setFormConfig(JSON.toJSONString(snapshot));
- approvalInstanceService.add(approvalInstance);
-
+ ApproveProcessVO approval = new ApproveProcessVO();
+ approval.setApproveType(TypeEnums.PURCHASE_APPROVAL.getCode().intValue());
+ approval.setApproveDeptId(loginUser.getCurrentDeptId());
+ approval.setApproveUser(loginUser.getUserId());
+ approval.setApproveReason(purchaseLedger.getPurchaseContractNumber());
+ approval.setPrice(purchaseLedger.getContractAmount());
+ approveProcessService.addApprove(approval);
}
/**
--
Gitblit v1.9.3