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/DispatchOrderServiceImpl.java | 61 +++++++++++++++++-------------
1 files changed, 34 insertions(+), 27 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 602e6f3..dc5a30e 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,6 +1,10 @@
package com.ruoyi.cwgl.service.impl;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
import java.lang.reflect.Method;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.math.BigDecimal;
@@ -12,7 +16,13 @@
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.PageUtil;
import com.github.pagehelper.Page;
+import com.itextpdf.text.Document;
+import com.itextpdf.text.Font;
+import com.itextpdf.text.PageSize;
+import com.itextpdf.text.pdf.BaseFont;
+import com.itextpdf.text.pdf.PdfWriter;
import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.utils.DateUtils;
import javax.annotation.Resource;
@@ -23,6 +33,7 @@
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.cwgl.domain.vo.DispatchOrderVo;
import com.ruoyi.cwgl.enums.FeeTypeEnums;
+import com.ruoyi.cwgl.utils.MultiPagePdfWithImageUtils;
import org.springframework.beans.factory.annotation.Autowired;
import com.ruoyi.cwgl.domain.DispatchOrderItem;
@@ -284,50 +295,35 @@
@DataSource(DataSourceType.CWSJ)
public List<DispatchOrderItemVo> selectDispatchOrderItems( Set<String> nos) {
// 浣跨敤Map鏉ヤ复鏃跺瓨鍌ㄥ垎缁勭粨鏋�
- Map<String, DispatchOrderItemVo> summaryMap = new HashMap<>();
-
+ List<DispatchOrderItemVo> vos = new ArrayList<>();
List<DispatchOrderItem> dispatchOrderItems=dispatchOrderMapper.selectDispatchOrderItemByNos(nos);
- Set<String> settableFeeItemSet = null;
for (DispatchOrderItem dispatchOrderItem : dispatchOrderItems) {
- String settableFeeItems = dispatchOrderItem.getSettableFeeItems();
- if (settableFeeItemSet==null) {
- settableFeeItemSet = new HashSet<>(
- Arrays.asList(settableFeeItems.split(",")));
- }
+ HashSet<String> settableFeeItemSet = new HashSet<>(
+ Arrays.asList(Optional.ofNullable(dispatchOrderItem.getSettableFeeItems()).orElse("").split(",")));
+
// 鍒ゆ柇鏄惁鍙粨绠�
- String feeItem = dispatchOrderItem.getFeeItem();
- int isSettable = isFeeItemSettable(feeItem, settableFeeItemSet);
+ String feeItem = Optional.ofNullable(dispatchOrderItem.getFeeItem()).orElse("");
+ int isSettable = settableFeeItemSet.contains(feeItem)?1:0;
// 濡傛灉Map涓笉瀛樺湪璇ヨ垂鐢ㄧ被鍨嬶紝鍒欏垱寤烘柊鏉$洰
- if (!summaryMap.containsKey(feeItem)) {
+
DispatchOrderItemVo summary = new DispatchOrderItemVo();
summary.setDispatchNo(dispatchOrderItem.getDispatchNo());
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.setReceivableFee(dispatchOrderItem.getSettleFee());
summary.setReceivableFeeCurrency(dispatchOrderItem.getCurrencyType());
} else if ("P".equals(dispatchOrderItem.getBillType())) { // 搴斾粯
- summary.setActualFee(summary.getActualFee().add(dispatchOrderItem.getSettleFee()));
+ summary.setActualFee(dispatchOrderItem.getSettleFee());
summary.setActualFeeCurrency(dispatchOrderItem.getCurrencyType());
}
+ vos.add( summary);
}
- // 杞崲涓篖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());
+ return vos;
}
@@ -491,4 +487,15 @@
public List<DispatchOrderAttachmentVo> selectDispatchOrderAttachment(String no) {
return dispatchOrderMapper.selectDispatchOrderAttachment(no);
}
+
+ @DataSource(DataSourceType.CWSJ)
+ @Override
+ public String downAttachment(String no) throws Exception {
+ List<DispatchOrderAttachmentVo> dispatchOrderAttachmentVos = selectDispatchOrderAttachment(no);
+ return MultiPagePdfWithImageUtils.createPdf(dispatchOrderAttachmentVos, no);
+ }
+
+
+
+
}
--
Gitblit v1.8.0