From b5b6177f7dcad6e4bf004720073778dd008fca32 Mon Sep 17 00:00:00 2001
From: wujianwei <wjw@11.com>
Date: 星期三, 24 十二月 2025 09:32:42 +0800
Subject: [PATCH] 应付接口
---
tms/src/main/java/com/ruoyi/tms/service/impl/TmsFinanceDetailServiceImpl.java | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 106 insertions(+), 13 deletions(-)
diff --git a/tms/src/main/java/com/ruoyi/tms/service/impl/TmsFinanceDetailServiceImpl.java b/tms/src/main/java/com/ruoyi/tms/service/impl/TmsFinanceDetailServiceImpl.java
index 14b546d..bf15895 100644
--- a/tms/src/main/java/com/ruoyi/tms/service/impl/TmsFinanceDetailServiceImpl.java
+++ b/tms/src/main/java/com/ruoyi/tms/service/impl/TmsFinanceDetailServiceImpl.java
@@ -1,18 +1,21 @@
package com.ruoyi.tms.service.impl;
+import java.math.BigDecimal;
import java.util.List;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.SystemDataNoEnum;
import com.ruoyi.common.utils.DateUtils;
import javax.annotation.Resource;
import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.system.service.ISystemDataNoService;
-import com.ruoyi.tms.domain.TmsDispatchOrder;
import com.ruoyi.tms.domain.TmsFinance;
-import com.ruoyi.tms.mapper.TmsDispatchOrderMapper;
+import com.ruoyi.tms.domain.vo.FinanceDetailItem;
import com.ruoyi.tms.mapper.TmsFinanceMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
@@ -48,11 +51,11 @@
@Resource
private TmsFinanceMapper tmsFinanceMapper;
- @Resource
- private TmsDispatchOrderMapper tmsDispatchOrderMapper;
+
@Autowired
ISystemDataNoService systemDataNoService;
-
+ @Autowired
+ private ISysUserService userService;
/**
* 鏌ヨ璐圭敤鏄庣粏
*
@@ -92,6 +95,22 @@
return tmsFinanceDetailMapper.selectTmsFinanceDetailList(tmsFinanceDetail);
}
+ @Override
+ public List<TmsFinanceDetail> getTmsFinanceDetailList(Integer dispatchId) {
+ Integer deviceId = userService.getDeviceId(SecurityUtils.getUserId());
+ if (deviceId == null){
+ return null;
+ }
+ LambdaQueryWrapper<TmsFinanceDetail> eq = new LambdaQueryWrapper<TmsFinanceDetail>()
+
+ .eq(TmsFinanceDetail::getFinanceType, 2)
+ .eq(TmsFinanceDetail::getCreateId, SecurityUtils.getUserId());
+ if (dispatchId !=null){
+ eq.eq(TmsFinanceDetail::getDispatchOrderId, dispatchId);
+ }
+ return tmsFinanceDetailMapper.selectList(eq);
+ }
+
/**
* 鏌ヨ璐圭敤鏄庣粏鍒楄〃 寮傛 瀵煎嚭
*
@@ -126,14 +145,35 @@
.ne(TmsFinance::getStatus, 2)
.last("limit 1")
);
+
+
+ if (StringUtils.isNotEmpty(tmsFinanceDetail.getFeeType())){
+ addItem(tmsFinance, tmsFinanceDetail);
+ }
+
+ // 1銆佹煡璇㈠綋鍓嶈皟搴﹀崟瀵瑰簲鐨勮垂鐢�
+ List<FinanceDetailItem> items = tmsFinanceDetail.getItems();
+
+ if (items != null && !items.isEmpty()){
+ items.forEach(item->{
+ TmsFinanceDetail tmsFinanceDetailNew = BeanUtil.copyProperties(tmsFinanceDetail, TmsFinanceDetail.class);
+ BeanUtil.copyProperties(item, tmsFinanceDetailNew);
+ tmsFinanceDetailNew.setActualFeeAmount(item.getPrice().multiply(BigDecimal.valueOf(item.getCount())));
+ addItem(tmsFinance, tmsFinanceDetailNew);
+ });
+ }
+ return 1;
+ }
+
+
+ public void addItem (TmsFinance tmsFinance, TmsFinanceDetail tmsFinanceDetail){
if (tmsFinance == null){
- TmsDispatchOrder tmsDispatchOrder = tmsDispatchOrderMapper.selectTmsDispatchOrderById(tmsFinanceDetail.getDispatchOrderId());
- if (tmsDispatchOrder == null){
- throw new RuntimeException("鏈壘鍒板搴旂殑璋冨害鍗�");
- }
- tmsFinance = BeanUtil.copyProperties(tmsDispatchOrder,TmsFinance.class);
- tmsFinance.setSystemCode(systemDataNoService.getNoByKey(SystemDataNoEnum.OF));
+
+ tmsFinance = new TmsFinance();
+ SystemDataNoEnum systemDataNoEnum = tmsFinanceDetail.getFinanceType() == 0 ? SystemDataNoEnum.YFD :
+ tmsFinanceDetail.getFinanceType() == 1 ? SystemDataNoEnum.YSD : SystemDataNoEnum.OF;
+ tmsFinance.setSystemCode(systemDataNoService.getNoByKey(systemDataNoEnum));
tmsFinance.setDispatchId(tmsFinanceDetail.getDispatchOrderId());
tmsFinance.setType(tmsFinanceDetail.getFinanceType());
tmsFinance.setStatus(0);
@@ -155,7 +195,7 @@
tmsFinanceDetail.setCreateId(SecurityUtils.getUserId());
tmsFinanceDetail.setFeeCreateTime(DateUtils.getNowDate());
tmsFinanceDetail.setCreateTime(DateUtils.getNowDate());
- return tmsFinanceDetailMapper.insertTmsFinanceDetail(tmsFinanceDetail);
+ tmsFinanceDetailMapper.insertTmsFinanceDetail(tmsFinanceDetail);
}
/**
@@ -180,8 +220,61 @@
@Override
public int updateTmsFinanceDetail(TmsFinanceDetail tmsFinanceDetail)
{
+ Integer financeId = tmsFinanceDetail.getFinanceId();
+ TmsFinance tmsFinance = tmsFinanceMapper.selectTmsFinanceById(financeId);
+ if (tmsFinance == null){
+ throw new RuntimeException("鏈壘鍒板搴旂殑璐圭敤鍗�");
+ }
+ tmsFinanceDetail.setUpdateBy(SecurityUtils.getUsername());
tmsFinanceDetail.setUpdateTime(DateUtils.getNowDate());
- return tmsFinanceDetailMapper.updateTmsFinanceDetail(tmsFinanceDetail);
+ tmsFinanceDetailMapper.updateTmsFinanceDetail(tmsFinanceDetail);
+ // 鏌ヨ璇ヨ垂鐢ㄥ崟涓嬫墍鏈夌姸鎬佷负0鐨勮垂鐢ㄦ槑缁嗙殑瀹為檯璐圭敤閲戦鎬诲拰
+ List<TmsFinanceDetail> detailList = tmsFinanceDetailMapper.selectList(new LambdaQueryWrapper<TmsFinanceDetail>()
+ .eq(TmsFinanceDetail::getFinanceId, financeId)
+ .eq(TmsFinanceDetail::getStatus, 0)
+ );
+ // 璁$畻鎬诲拰
+ // 璁$畻鎬诲拰
+ double totalAmount = detailList.stream()
+ .mapToDouble(detail -> detail.getActualFeeAmount().doubleValue())
+ .sum();
+
+ TmsFinance tmsFinance1 = new TmsFinance() {{
+ setId(financeId);
+ setTotalAmount(new BigDecimal(totalAmount));
+ }};
+ return tmsFinanceMapper.updateTmsFinance(tmsFinance1);
+ }
+
+ @Override
+ public AjaxResult cancelFinanceDetail(Integer id) {
+
+ TmsFinanceDetail tmsFinanceDetail = tmsFinanceDetailMapper.selectById(id);
+ if (tmsFinanceDetail == null){
+ return AjaxResult.error("鏈壘鍒板搴旂殑璐圭敤鏄庣粏");
+ }
+ tmsFinanceDetail.setStatus(1);
+ tmsFinanceDetail.setUpdateBy(SecurityUtils.getUsername());
+ tmsFinanceDetailMapper.updateTmsFinanceDetail(tmsFinanceDetail);
+
+
+ // 鏌ヨ璇ヨ垂鐢ㄥ崟涓嬫墍鏈夌姸鎬佷负0鐨勮垂鐢ㄦ槑缁嗙殑瀹為檯璐圭敤閲戦鎬诲拰
+ List<TmsFinanceDetail> detailList = tmsFinanceDetailMapper.selectList(new LambdaQueryWrapper<TmsFinanceDetail>()
+ .eq(TmsFinanceDetail::getFinanceId, tmsFinanceDetail.getFinanceId())
+ .eq(TmsFinanceDetail::getStatus, 0)
+ );
+ // 璁$畻鎬诲拰
+ // 璁$畻鎬诲拰
+ double totalAmount = detailList.stream()
+ .mapToDouble(detail -> detail.getActualFeeAmount().doubleValue())
+ .sum();
+
+ TmsFinance tmsFinance1 = new TmsFinance() {{
+ setId( tmsFinanceDetail.getFinanceId());
+ setTotalAmount(new BigDecimal(totalAmount));
+ }};
+ tmsFinanceMapper.updateTmsFinance(tmsFinance1);
+ return AjaxResult.success("鍙栨秷鎴愬姛");
}
/**
--
Gitblit v1.8.0