From b054362aaf616bfe0be0b50ae5dc2137091dbd7d Mon Sep 17 00:00:00 2001
From: zhangback <zhangback@163.com>
Date: 星期二, 09 十二月 2025 14:48:07 +0800
Subject: [PATCH] 提交
---
service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableBillServiceImpl.java | 99 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 99 insertions(+), 0 deletions(-)
diff --git a/service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableBillServiceImpl.java b/service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableBillServiceImpl.java
index 218fbc9..82746c1 100644
--- a/service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableBillServiceImpl.java
+++ b/service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableBillServiceImpl.java
@@ -1,9 +1,21 @@
package com.ruoyi.cwgl.service.impl;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
+import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.DateUtils;
import javax.annotation.Resource;
+
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.cwgl.domain.EstimatedReceivableBillLog;
+import com.ruoyi.cwgl.domain.PendingSettlementBusiness;
+import com.ruoyi.cwgl.mapper.EstimatedReceivableMapper;
+import com.ruoyi.cwgl.mapper.PendingSettlementBusinessMapper;
+import com.ruoyi.cwgl.service.IEstimatedReceivableBillLogService;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.stereotype.Service;
import org.springframework.scheduling.annotation.Async;
@@ -33,6 +45,12 @@
protected final Logger logger = LoggerFactory.getLogger(getClass());
@Resource
private EstimatedReceivableBillMapper estimatedReceivableBillMapper;
+ @Autowired
+ private IEstimatedReceivableBillLogService logService;
+ @Resource
+ private PendingSettlementBusinessMapper pendingSettlementBusinessMapper;
+ @Resource
+ private EstimatedReceivableMapper estimatedReceivableMapper;
/**
@@ -129,6 +147,20 @@
public int updateEstimatedReceivableBill(EstimatedReceivableBill estimatedReceivableBill)
{
estimatedReceivableBill.setUpdateTime(DateUtils.getNowDate());
+
+ return estimatedReceivableBillMapper.updateEstimatedReceivableBill(estimatedReceivableBill);
+ }
+
+ @Override
+ public int updateEstimatedReceivableBillName(EstimatedReceivableBill estimatedReceivableBill) {
+ EstimatedReceivableBillLog estimatedReceivableBillLog = new EstimatedReceivableBillLog();
+ estimatedReceivableBillLog.setCreateTime(new Date());
+ estimatedReceivableBillLog.setBillId(estimatedReceivableBill.getId());
+ estimatedReceivableBillLog.setCreateBy(SecurityUtils.getUsername());
+ estimatedReceivableBillLog.setOperation("淇敼璐﹀崟鍚嶇О涓�"+estimatedReceivableBill.getBillName());
+ logService.insertEstimatedReceivableBillLog(estimatedReceivableBillLog);
+ pendingSettlementBusinessMapper.updatePendingSettlementBusinessByBillId(estimatedReceivableBill.getId(),estimatedReceivableBill.getBillName());
+
return estimatedReceivableBillMapper.updateEstimatedReceivableBill(estimatedReceivableBill);
}
@@ -179,4 +211,71 @@
{
return estimatedReceivableBillMapper.deleteEstimatedReceivableBillById(id);
}
+
+ @Override
+ public int settlement(EstimatedReceivableBill estimatedReceivableBill) {
+ Integer id = estimatedReceivableBill.getId();
+ EstimatedReceivableBill oldData = estimatedReceivableBillMapper.selectEstimatedReceivableBillById(id);
+ //搴旂粨绠楅噾棰�
+ BigDecimal totalAmount = oldData.getTotalAmount()==null?BigDecimal.ZERO:oldData.getTotalAmount();
+ //宸茬粨绠楅噾棰�
+ BigDecimal settledAmount = oldData.getSettledAmount()==null?BigDecimal.ZERO:oldData.getSettledAmount();
+ //褰撳墠鎻愪氦閲戦
+ BigDecimal settlementAmount = estimatedReceivableBill.getSettlementAmount();
+ EstimatedReceivableBillLog estimatedReceivableBillLog = new EstimatedReceivableBillLog();
+
+ estimatedReceivableBill.setSettledAmount(settlementAmount);
+ estimatedReceivableBillLog.setCreateTime(new Date());
+ estimatedReceivableBillLog.setBillId(estimatedReceivableBill.getId());
+ estimatedReceivableBillLog.setCreateBy(SecurityUtils.getUsername());
+ estimatedReceivableBillLog.setOperation("鏈鎻愪氦閲戦"+ settlementAmount);
+ estimatedReceivableBillLog.setFileName(estimatedReceivableBill.getAttachment());
+ logService.insertEstimatedReceivableBillLog(estimatedReceivableBillLog);
+
+ List<String>dispatchNos =pendingSettlementBusinessMapper.selectPendingSettlementBusinessDispatchNos(estimatedReceivableBill.getId());
+ // 妫�鏌ュ綋鍓嶆彁浜ら噾棰�+宸茬粨绠楅噾棰濇槸鍚﹁秴杩囧簲缁撶畻閲戦
+ if (settlementAmount.add(settledAmount).compareTo(totalAmount) > 0) {
+ // 瓒呰繃搴旂粨绠楅噾棰濓紝鎶涘嚭寮傚父鎴栧鐞嗛敊璇�
+ throw new RuntimeException("褰撳墠鎻愪氦閲戦鍔犱笂宸茬粨绠楅噾棰濅笉鑳借秴杩囧簲缁撶畻閲戦");
+ }
+ if (settlementAmount.add(settledAmount).compareTo(totalAmount) == 0) {
+ //宸茬粨绠楀ぇ浜庡簲璁$畻閲戦涓哄凡缁撶畻
+ estimatedReceivableBill.setStatus(2);
+ estimatedReceivableMapper.updateEstimatedReceivableBillStatus(dispatchNos,3,null);
+ pendingSettlementBusinessMapper.updateEstimatedReceivableBillStatus(dispatchNos,3);
+ }else {
+ //鍚﹀垯閮ㄥ垎缁撶畻
+ estimatedReceivableBill.setStatus(1);
+ estimatedReceivableMapper.updateEstimatedReceivableBillStatus(dispatchNos,2,null);
+ pendingSettlementBusinessMapper.updateEstimatedReceivableBillStatus(dispatchNos,2);
+ }
+ settledAmount = settledAmount.add(settlementAmount);
+ estimatedReceivableBill.setSettledAmount(settledAmount);
+ return estimatedReceivableBillMapper.updateEstimatedReceivableBill(estimatedReceivableBill);
+ }
+
+ @Override
+ public int cancelRelevancy(Integer id) {
+ PendingSettlementBusiness pendingSettlementBusiness = pendingSettlementBusinessMapper.selectPendingSettlementBusinessById(id);
+ if (pendingSettlementBusiness==null){
+ throw new ServiceException("寰呭叆璐︿笟鍔′笉瀛樺湪");
+ }
+ Integer billId = pendingSettlementBusiness.getBillId();
+ EstimatedReceivableBill estimatedReceivableBill = estimatedReceivableBillMapper.selectEstimatedReceivableBillById(billId);
+ estimatedReceivableBill.setDispatchCount(estimatedReceivableBill.getDispatchCount()-1);
+ //搴旂粨绠楅噾棰濅慨鏀�
+ BigDecimal totalAmount = estimatedReceivableBill.getTotalAmount();
+ estimatedReceivableBill.setTotalAmount(totalAmount.subtract(pendingSettlementBusiness.getEstimatedTotalIncome()));
+ EstimatedReceivableBillLog estimatedReceivableBillLog = new EstimatedReceivableBillLog();
+ estimatedReceivableBillLog.setCreateTime(new Date());
+ estimatedReceivableBillLog.setBillId(billId);
+ estimatedReceivableBillLog.setCreateBy(SecurityUtils.getUsername());
+ String dispatchNo = pendingSettlementBusiness.getDispatchNo();
+ estimatedReceivableBillLog.setOperation("鍙栨秷璋冨害鍗�"+ dispatchNo +"鍏宠仈");
+ logService.insertEstimatedReceivableBillLog(estimatedReceivableBillLog);
+
+
+ return pendingSettlementBusinessMapper.cancelRelevancy(id);
+
+ }
}
--
Gitblit v1.8.0