From f85d6c2edfb1a003c299c16b3a7509dbef9c9b2a Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期二, 24 三月 2026 12:20:59 +0800
Subject: [PATCH] 采购台账增加审批流程
---
src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java | 20 ++++++++-
src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java | 7 ++-
src/main/resources/mapper/sales/SalesLedgerMapper.xml | 6 +-
src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java | 6 +++
src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java | 19 +++++++++
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | 10 +++--
src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml | 6 ++
src/main/java/com/ruoyi/sales/pojo/SalesLedger.java | 4 +-
src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java | 3 +
9 files changed, 66 insertions(+), 15 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 6ac9d60..c7438fc 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
@@ -14,6 +14,8 @@
import com.ruoyi.other.service.impl.TempFileServiceImpl;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.mapper.SysUserMapper;
+import com.ruoyi.purchase.mapper.PurchaseLedgerMapper;
+import com.ruoyi.purchase.pojo.PurchaseLedger;
import com.ruoyi.sales.mapper.CommonFileMapper;
import com.ruoyi.sales.mapper.SalesLedgerMapper;
import com.ruoyi.sales.pojo.CommonFile;
@@ -41,6 +43,9 @@
@Autowired
private SalesLedgerMapper salesLedgerMapper;
+
+ @Autowired
+ private PurchaseLedgerMapper purchaseLedgerMapper;
@Autowired
private SysUserMapper sysUserMapper;
@@ -142,15 +147,24 @@
approveProcess.setApproveUserCurrentName(approveNode1.getApproveNodeUser());
}
approveProcessMapper.updateById(approveProcess);
- //濡傛灉鏄�6閿�鍞鎵归�氳繃,瀵瑰簲閿�鍞叧鑱旂殑琛ㄩ渶瑕佹洿鏂�
- if (approveProcess.getApproveType()==6 && status==2){
+ //濡傛灉鏄�6閿�鍞鎵�,瀵瑰簲閿�鍞叧鑱旂殑琛ㄩ渶瑕佹洿鏂�
+ if (approveProcess.getApproveType()==6){
List<SalesLedger> salesLedgers = salesLedgerMapper.selectList(Wrappers.<SalesLedger>lambdaQuery().eq(SalesLedger::getSalesContractNo, approveProcess.getApproveReason()));
if (CollectionUtils.isEmpty(salesLedgers)){
SalesLedger salesLedger = salesLedgers.get(0);
- salesLedger.setIsPass(1);
+ salesLedger.setApprovalStatus(status);
salesLedgerMapper.updateById(salesLedger);
}
}
+ //濡傛灉鏄�5閲囪喘瀹℃壒,瀵瑰簲閲囪喘鍏宠仈鐨勮〃闇�瑕佹洿鏂�
+ if (approveProcess.getApproveType()==5){
+ List<PurchaseLedger> purchaseLedgers = purchaseLedgerMapper.selectList(Wrappers.<PurchaseLedger>lambdaQuery().eq(PurchaseLedger::getPurchaseContractNumber, approveProcess.getApproveReason()));
+ if (CollectionUtils.isEmpty(purchaseLedgers)){
+ PurchaseLedger purchaseLedger = purchaseLedgers.get(0);
+ purchaseLedger.setApprovalStatus(status);
+ purchaseLedgerMapper.updateById(purchaseLedger);
+ }
+ }
// 缁戝畾闄勪欢
if(!CollectionUtils.isEmpty(approveNode.getTempFileIds()) && approveNode.getApproveNodeStatus() == 1){
diff --git a/src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java b/src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java
index 7d1e9e5..ba2c85a 100644
--- a/src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java
+++ b/src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java
@@ -181,4 +181,10 @@
@ApiModelProperty(value = "浠樻鏂瑰紡")
private String paymentMethod;
+ @ApiModelProperty(value = "1-寰呭鏍革紝2-瀹℃壒涓紝3-瀹℃壒閫氳繃锛�4-瀹℃壒澶辫触")//榛樿鏄�1
+ private Integer approvalStatus;
+
+ // 瀹℃壒浜�
+ private String approveUserIds;
+
}
diff --git a/src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java b/src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java
index 7b7ad72..290dcef 100644
--- a/src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java
+++ b/src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java
@@ -153,5 +153,8 @@
@ApiModelProperty(value = "浠樻鏂瑰紡")
private String paymentMethod;
+ @ApiModelProperty(value = "1-寰呭鏍革紝2-瀹℃壒涓紝3-瀹℃壒閫氳繃锛�4-瀹℃壒澶辫触")//榛樿鏄�1
+ private Integer approvalStatus;
+
}
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 e5a64fd..062adb6 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -10,6 +10,8 @@
import com.ruoyi.account.pojo.AccountIncome;
import com.ruoyi.account.service.AccountExpenseService;
import com.ruoyi.account.service.AccountIncomeService;
+import com.ruoyi.approve.service.IApproveProcessService;
+import com.ruoyi.approve.vo.ApproveProcessVO;
import com.ruoyi.basic.mapper.ProductMapper;
import com.ruoyi.basic.mapper.ProductModelMapper;
import com.ruoyi.basic.mapper.SupplierManageMapper;
@@ -74,6 +76,7 @@
public class PurchaseLedgerServiceImpl extends ServiceImpl<PurchaseLedgerMapper, PurchaseLedger> implements IPurchaseLedgerService {
private final AccountExpenseService accountExpenseService;
private final PurchaseLedgerMapper purchaseLedgerMapper;
+ private final IApproveProcessService approveProcessService;
private final SalesLedgerMapper salesLedgerMapper;
private final SalesLedgerProductMapper salesLedgerProductMapper;
@@ -180,6 +183,22 @@
migrateTempFilesToFormal(purchaseLedger.getId(), purchaseLedgerDto.getTempFileIds());
}
+ //6.閲囪喘闇�瑕佸鎵�
+ //鏂板瀹℃壒鏁版嵁approve_process
+ ApproveProcessVO approveProcessVO = new ApproveProcessVO();
+ approveProcessVO.setApproveDeptId(purchaseLedger.getTenantId());
+ approveProcessVO.setApproveReason(purchaseLedger.getPurchaseContractNumber());//瀹℃壒鐞嗙敱鏄噰璐悎鍚屽彿鐢ㄨ繖涓潵鍏宠仈
+ DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+ approveProcessVO.setApproveTime(LocalDate.now().format(dateFormat));
+ approveProcessVO.setApproveType(5);//5鏄噰璐敵璇�
+ approveProcessVO.setApproveUser(purchaseLedger.getRecorderId());//褰曞叆浜�=鐢宠浜�
+ approveProcessVO.setApproveUserIds(purchaseLedgerDto.getApproveUserIds());//瀹℃壒浜�
+ try {
+ approveProcessService.addApprove(approveProcessVO);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
return 1;
}
diff --git a/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java b/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
index 48867ae..672ebc2 100644
--- a/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
+++ b/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
@@ -58,6 +58,9 @@
@ApiModelProperty(value = "璁㈠崟鎸夌揣鎬ョ▼搴﹀垎绫�(鏅��/绱ф��)")
private String salesType;
- @ApiModelProperty(value = "鏄惁瀹℃壒閫氳繃(1閫氳繃/0涓嶉�氳繃)")//榛樿鏄�1
- private int isPass;
+ @ApiModelProperty(value = "1-寰呭鏍革紝2-瀹℃壒涓紝3-瀹℃壒閫氳繃锛�4-瀹℃壒澶辫触")//榛樿鏄�1
+ private Integer approvalStatus;
+
+ // 瀹℃壒浜�
+ private String approveUserIds;
}
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
index 96b5911..386efcd 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
@@ -129,7 +129,7 @@
@ApiModelProperty(value = "璁㈠崟鎸夌揣鎬ョ▼搴﹀垎绫�(鏅��/绱ф��)")
private String salesType;
- @ApiModelProperty(value = "鏄惁瀹℃壒閫氳繃(1閫氳繃/0涓嶉�氳繃)")//榛樿鏄�1
- private int isPass;
+ @ApiModelProperty(value = "1-寰呭鏍革紝2-瀹℃壒涓紝3-瀹℃壒閫氳繃锛�4-瀹℃壒澶辫触")//榛樿鏄�1
+ private Integer approvalStatus;
}
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
index 543b24b..3598e44 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -440,9 +440,7 @@
//6.閿�鍞鍗曟寜绱ф�ョ▼搴﹀垎绫伙紝濡傛櫘閫氳鍗曚互鍙婄揣鎬ヨ鍗曪紱鏅�氳鍗曢渶娴佽浆鑷充笟鍔″崟鎹繘琛屽鎵癸紝绱ф�ヨ鍗曟棤闇�瀹℃壒銆�
if (salesLedger.getSalesType().equals("鏅��")){
- salesLedger.setIsPass(0);
- salesLedgerMapper.updateById(salesLedger);
- //骞朵笖鏂板瀹℃壒鏁版嵁approve_process
+ //鏂板瀹℃壒鏁版嵁approve_process
ApproveProcessVO approveProcessVO = new ApproveProcessVO();
approveProcessVO.setApproveDeptId(salesLedger.getTenantId());
approveProcessVO.setApproveReason(salesLedger.getSalesContractNo());//瀹℃壒鐞嗙敱鏄攢鍞悎鍚屽彿鐢ㄨ繖涓潵鍏宠仈
@@ -450,12 +448,16 @@
approveProcessVO.setApproveTime(LocalDate.now().format(dateFormat));
approveProcessVO.setApproveType(6);//6鏄攢鍞彴璐�
approveProcessVO.setApproveUser(Long.parseLong(salesLedger.getEntryPerson()));//褰曞叆浜�=鐢宠浜�
- approveProcessVO.setApproveUserIds("1");
+ approveProcessVO.setApproveUserIds(salesLedgerDto.getApproveUserIds());//瀹℃壒浜�
try {
approveProcessService.addApprove(approveProcessVO);
} catch (Exception e) {
e.printStackTrace();
}
+ }else {
+ //绱ф�ラ粯璁ら�氳繃
+ salesLedger.setApprovalStatus(3);
+ salesLedgerMapper.updateById(salesLedger);
}
return 1;
} catch (IOException e) {
diff --git a/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml b/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
index bc6c38a..4b617d1 100644
--- a/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
+++ b/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
@@ -21,6 +21,7 @@
pl.contract_amount-sum(pr.tickets_amount) AS unReceipt_payment_amount,
pl.entry_date,
pl.recorder_name,
+ pl.approval_status,
pl.payment_method
from purchase_ledger pl
left join product_record pr on pl.id = pr.purchase_ledger_id
@@ -43,6 +44,9 @@
</if>
<if test="c.entryDateEnd != null and c.entryDateEnd != '' ">
AND pl.entry_date <= DATE_FORMAT(#{c.entryDateEnd},'%Y-%m-%d')
+ </if>
+ <if test="c.approvalStatus != null">
+ and pl.approval_status =#{c.approvalStatus}
</if>
</where>
group by pl.id, pl.purchase_contract_number, pl.sales_contract_no, pl.supplier_name,
@@ -70,4 +74,4 @@
WHERE
T4.id = #{id}
</select>
-</mapper>
\ No newline at end of file
+</mapper>
diff --git a/src/main/resources/mapper/sales/SalesLedgerMapper.xml b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
index 72f32d5..b06878b 100644
--- a/src/main/resources/mapper/sales/SalesLedgerMapper.xml
+++ b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
@@ -57,7 +57,7 @@
T1.tenant_id,
T1.contract_amount,
T1.execution_date,
- T1.is_pass,
+ T1.approval_status,
T1.sales_type,
T2.nick_name AS entry_person_name,
T1.payment_method
@@ -83,8 +83,8 @@
<if test="salesLedgerDto.entryDateEnd != null and salesLedgerDto.entryDateEnd != '' ">
AND T1.entry_date <= DATE_FORMAT(#{salesLedgerDto.entryDateEnd},'%Y-%m-%d')
</if>
- <if test="salesLedgerDto.isPass != null">
- AND T1.is_pass =#{salesLedgerDto.isPass}
+ <if test="salesLedgerDto.approvalStatus != null">
+ AND T1.approval_status =#{salesLedgerDto.approvalStatus}
</if>
</where>
</select>
--
Gitblit v1.9.3