From 8d258026876dd93bd0407d5440d48294f41120ba Mon Sep 17 00:00:00 2001 From: wujianwei <wjw@11.com> Date: 星期一, 18 八月 2025 10:16:18 +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