From 210e36fca8c7d1e4e2d73e1679da5a45cf4188d2 Mon Sep 17 00:00:00 2001
From: wujianwei <wjw@11.com>
Date: 星期一, 29 十二月 2025 16:16:24 +0800
Subject: [PATCH] 新增api大屏查询

---
 tms/src/main/java/com/ruoyi/tms/service/impl/TmsFinanceDetailServiceImpl.java |  113 +++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 82 insertions(+), 31 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 4ca6cdb..ce326d6 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
@@ -13,10 +13,13 @@
 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.domain.vo.FinanceDetailItem;
+import com.ruoyi.tms.domain.vo.FinanceDetailRow;
 import com.ruoyi.tms.mapper.TmsDispatchOrderMapper;
 import com.ruoyi.tms.mapper.TmsFinanceMapper;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -152,44 +155,92 @@
     @Override
     public int insertTmsFinanceDetail(TmsFinanceDetail tmsFinanceDetail)
     {
-        TmsFinance tmsFinance = tmsFinanceMapper.selectOne(new LambdaQueryWrapper<TmsFinance>()
-                .eq(TmsFinance::getType, tmsFinanceDetail.getFinanceType())
-                .eq(TmsFinance::getDispatchId, tmsFinanceDetail.getDispatchOrderId())
-                .ne(TmsFinance::getStatus, 2)
-                .last("limit 1")
-        );
-        if (tmsFinance == null){
+//        TmsFinance tmsFinance = tmsFinanceMapper.selectOne(new LambdaQueryWrapper<TmsFinance>()
+//                .eq(TmsFinance::getType, tmsFinanceDetail.getFinanceType())
+//                .eq(TmsFinance::getDispatchId, tmsFinanceDetail.getDispatchOrderId())
+//                .ne(TmsFinance::getStatus, 2)
+//                .last("limit 1")
+//        );
 
-            TmsDispatchOrder tmsDispatchOrder = tmsDispatchOrderMapper.selectTmsDispatchOrderById(tmsFinanceDetail.getDispatchOrderId());
-            if (tmsDispatchOrder == null){
-                throw new RuntimeException("鏈壘鍒板搴旂殑璋冨害鍗�");
-            }
-            tmsFinance = BeanUtil.copyProperties(tmsDispatchOrder,TmsFinance.class);
-            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);
-            tmsFinance.setTotalAmount(tmsFinanceDetail.getActualFeeAmount());
-            tmsFinance.setCreateBy(SecurityUtils.getUsername());
-            tmsFinance.setUpdateBy(SecurityUtils.getUsername());
-            tmsFinance.setCreateTime(DateUtils.getNowDate());
-            tmsFinance.setUpdateTime(DateUtils.getNowDate());
-            // 娣诲姞璐圭敤涓昏〃
-            tmsFinanceMapper.insertTmsFinance(tmsFinance);
-        }else{
-            tmsFinance.setTotalAmount(tmsFinance.
-                    getTotalAmount().add(tmsFinanceDetail.getActualFeeAmount()));
-            tmsFinanceMapper.updateTmsFinance(tmsFinance);
+
+        //if (StringUtils.isNotEmpty(tmsFinanceDetail.getFeeType())){
+            addItem(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;
+    }
+
+    @Override
+    public int saveTmsFinanceDetail(TmsFinanceDetail tmsFinanceDetail) {
+        if (StringUtils.isNotEmpty(tmsFinanceDetail.getFeeType() ) &&
+                tmsFinanceDetail.getActualFeeAmount() != null){
+            insertTmsFinanceDetail(tmsFinanceDetail);
         }
-        tmsFinanceDetail.setFinanceId(tmsFinance.getId());
+        List<FinanceDetailRow> rowItems = tmsFinanceDetail.getRowItems();
+        if (rowItems != null && !rowItems.isEmpty()){
+
+            for (FinanceDetailRow rowItem : rowItems){
+                if (rowItem.getIsYF() != null && rowItem.getIsYF() == 0){
+                    rowItem.setYfPrice(null);
+                    rowItem.setYfCurrency(null);
+                    rowItem.setYfServiceProviderId(null);
+                    rowItem.setYfServiceProviderType(null);
+                    rowItem.setYfServiceProviderIdType(null);
+                    rowItem.setYfServiceProviderName(null);
+                }
+                TmsFinanceDetail tmsFinanceDetailNew = BeanUtil.copyProperties(rowItem, TmsFinanceDetail.class);
+                tmsFinanceDetailMapper.updateTmsFinanceDetail(tmsFinanceDetailNew);
+            }
+        }
+        return 1;
+
+
+    }
+
+    public void addItem (TmsFinanceDetail tmsFinanceDetail){
+//        if (tmsFinance == null){
+//
+//            TmsDispatchOrder tmsDispatchOrder = tmsDispatchOrderMapper.selectTmsDispatchOrderById(tmsFinanceDetail.getDispatchOrderId());
+//            if (tmsDispatchOrder == null){
+//                throw new RuntimeException("鏈壘鍒板搴旂殑璋冨害鍗�");
+//            }
+//            tmsFinance = BeanUtil.copyProperties(tmsDispatchOrder,TmsFinance.class);
+//            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);
+//            tmsFinance.setTotalAmount(tmsFinanceDetail.getActualFeeAmount());
+//            tmsFinance.setCreateBy(SecurityUtils.getUsername());
+//            tmsFinance.setUpdateBy(SecurityUtils.getUsername());
+//            tmsFinance.setCreateTime(DateUtils.getNowDate());
+//            tmsFinance.setUpdateTime(DateUtils.getNowDate());
+//            // 娣诲姞璐圭敤涓昏〃
+//            tmsFinanceMapper.insertTmsFinance(tmsFinance);
+//        }else{
+//            tmsFinance.setTotalAmount(tmsFinance.
+//                    getTotalAmount().add(tmsFinanceDetail.getActualFeeAmount()));
+//            tmsFinanceMapper.updateTmsFinance(tmsFinance);
+//        }
+       // tmsFinanceDetail.setFinanceId(tmsFinance.getId());
         tmsFinanceDetail.setCreateBy(SecurityUtils.getUsername());
         tmsFinanceDetail.setInitialFeeAmount(tmsFinanceDetail.getActualFeeAmount());
         tmsFinanceDetail.setCreateId(SecurityUtils.getUserId());
         tmsFinanceDetail.setFeeCreateTime(DateUtils.getNowDate());
         tmsFinanceDetail.setCreateTime(DateUtils.getNowDate());
-        return tmsFinanceDetailMapper.insertTmsFinanceDetail(tmsFinanceDetail);
+        tmsFinanceDetailMapper.insertTmsFinanceDetail(tmsFinanceDetail);
     }
 
     /**

--
Gitblit v1.8.0