From 965f21c8b5723a1f4d343df7edd4acf48b935f5d Mon Sep 17 00:00:00 2001
From: wujianwei <wjw@11.com>
Date: 星期二, 29 七月 2025 17:36:24 +0800
Subject: [PATCH] 新增时间查询状态
---
service/src/main/java/com/ruoyi/cwgl/service/impl/DispatchOrderServiceImpl.java | 93 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 92 insertions(+), 1 deletions(-)
diff --git a/service/src/main/java/com/ruoyi/cwgl/service/impl/DispatchOrderServiceImpl.java b/service/src/main/java/com/ruoyi/cwgl/service/impl/DispatchOrderServiceImpl.java
index 5643f03..210d0af 100644
--- a/service/src/main/java/com/ruoyi/cwgl/service/impl/DispatchOrderServiceImpl.java
+++ b/service/src/main/java/com/ruoyi/cwgl/service/impl/DispatchOrderServiceImpl.java
@@ -1,9 +1,15 @@
package com.ruoyi.cwgl.service.impl;
-import java.util.List;
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
import com.ruoyi.common.utils.DateUtils;
import javax.annotation.Resource;
+
+import com.ruoyi.cwgl.domain.DispatchOrderItem;
+import com.ruoyi.cwgl.domain.vo.DispatchOrderAttachmentVo;
+import com.ruoyi.cwgl.domain.vo.DispatchOrderItemVo;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.stereotype.Service;
import org.springframework.scheduling.annotation.Async;
@@ -72,6 +78,18 @@
public List<DispatchOrder> selectDispatchOrderList(DispatchOrder dispatchOrder)
{
return dispatchOrderMapper.selectDispatchOrderList(dispatchOrder);
+ }
+ /**
+ * 鏌ヨ璋冨害鍗曞垪琛�
+ *
+ * @param dispatchOrder 璋冨害鍗�
+ * @return 璋冨害鍗�
+ */
+ @DataSource(DataSourceType.CWSJ)
+ @Override
+ public List<DispatchOrder> selectDispatchOrderList2(DispatchOrder dispatchOrder)
+ {
+ return dispatchOrderMapper.selectDispatchOrderList2(dispatchOrder);
}
/**
@@ -179,4 +197,77 @@
{
return dispatchOrderMapper.deleteDispatchOrderById(id);
}
+
+ @DataSource(DataSourceType.CWSJ)
+ @Override
+ public List<DispatchOrderItemVo> selectDispatchOrderItem(String no) {
+ // 浣跨敤Map鏉ヤ复鏃跺瓨鍌ㄥ垎缁勭粨鏋�
+ Map<String, DispatchOrderItemVo> summaryMap = new HashMap<>();
+
+ List<DispatchOrderItem> dispatchOrderItems=dispatchOrderMapper.selectDispatchOrderItemByNo(no);
+ Set<String> settableFeeItemSet = null;
+ for (DispatchOrderItem dispatchOrderItem : dispatchOrderItems) {
+ String settableFeeItems = dispatchOrderItem.getSettableFeeItems();
+ if (settableFeeItemSet==null) {
+ settableFeeItemSet = new HashSet<>(
+ Arrays.asList(settableFeeItems.split(",")));
+ }
+ // 鍒ゆ柇鏄惁鍙粨绠�
+ String feeItem = dispatchOrderItem.getFeeItem();
+ int isSettable = isFeeItemSettable(feeItem, settableFeeItemSet);
+ // 濡傛灉Map涓笉瀛樺湪璇ヨ垂鐢ㄧ被鍨嬶紝鍒欏垱寤烘柊鏉$洰
+ if (!summaryMap.containsKey(feeItem)) {
+ DispatchOrderItemVo summary = new DispatchOrderItemVo();
+ summary.setFeeItem(feeItem);
+ summary.setReceivableFee(BigDecimal.ZERO);
+ summary.setActualFee(BigDecimal.ZERO);
+ summary.setIsSettlement(isSettable);
+ summaryMap.put(feeItem, summary);
+ }
+ // 鏍规嵁璐﹀崟绫诲瀷绱姞閲戦
+ DispatchOrderItemVo summary = summaryMap.get(feeItem);
+ if ("R".equals(dispatchOrderItem.getBillType())) { // 搴旀敹
+ summary.setReceivableFee(summary.getReceivableFee().add(dispatchOrderItem.getSettleFee()));
+ summary.setReceivableFeeCurrency(dispatchOrderItem.getCurrencyType());
+ } else if ("P".equals(dispatchOrderItem.getBillType())) { // 搴斾粯
+ summary.setActualFee(summary.getActualFee().add(dispatchOrderItem.getSettleFee()));
+ summary.setActualFeeCurrency(dispatchOrderItem.getCurrencyType());
+
+ }
+ }
+ // 杞崲涓篖ist骞惰繃婊ゃ�佹帓搴�
+ return summaryMap.values().stream()
+ // 杩囨护鎺夊簲鏀跺簲浠橀兘涓�0鐨勮褰�
+ .filter(dto -> dto.getReceivableFee().compareTo(BigDecimal.ZERO) != 0
+ || dto.getActualFee().compareTo(BigDecimal.ZERO) != 0)
+ // 鎺掑簭锛氬彲缁撶畻鐨勫湪鍓嶏紝涓嶅彲缁撶畻鐨勫湪鍚庯紱鐒跺悗鎸夋�婚噾棰濋檷搴�
+ .sorted(Comparator.comparing(DispatchOrderItemVo::getIsSettlement).reversed()
+ .thenComparing(dto -> dto.getReceivableFee().add(dto.getActualFee()),
+ Comparator.reverseOrder()))
+ .collect(Collectors.toList());
+ }
+
+
+
+ /**
+ * 鍒ゆ柇璐圭敤绫诲瀷鏄惁鍙粨绠�
+ */
+ private static int isFeeItemSettable(String feeItem, Set<String> settableFeeItemSet) {
+ if (feeItem == null || settableFeeItemSet == null) {
+ return 0;
+ }
+
+
+ if (settableFeeItemSet.contains(feeItem)) {
+ return 1;
+ }
+
+ return 0;
+ }
+
+ @DataSource(DataSourceType.CWSJ)
+ @Override
+ public List<DispatchOrderAttachmentVo> selectDispatchOrderAttachment(String no) {
+ return dispatchOrderMapper.selectDispatchOrderAttachment(no);
+ }
}
--
Gitblit v1.8.0