From 5035c404359e536bcdaa2668318ecd3b38c72584 Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期六, 25 四月 2026 14:24:08 +0800
Subject: [PATCH] feat(productionPrintOrderExcel):  excel编写

---
 src/main/java/com/ruoyi/production/service/impl/ProductionPrintOrderServiceImpl.java |   51 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 50 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionPrintOrderServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionPrintOrderServiceImpl.java
index e0ab30b..31219ca 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionPrintOrderServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionPrintOrderServiceImpl.java
@@ -2,11 +2,17 @@
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.io.IoUtil;
+import cn.hutool.core.lang.Assert;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.basic.excel.ProductionPrintOrderExcel;
 import com.ruoyi.basic.service.CustomerFollowUpFileService;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.dto.SimplePersonDto;
 import com.ruoyi.production.dto.*;
 import com.ruoyi.production.mapper.ProductOrderMapper;
@@ -15,9 +21,11 @@
 import com.ruoyi.production.pojo.ProductionPrintOrder;
 import com.ruoyi.production.service.ProductionPrintOrderService;
 import lombok.RequiredArgsConstructor;
+import org.jetbrains.annotations.Nullable;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -36,6 +44,7 @@
 
     private final ProductOrderMapper productOrderMapper;
     private final ProcessRouteServiceImpl processRouteService;
+    private final ProductionPrintOrderExcel productionPrintOrderExcel;
 
     private final CustomerFollowUpFileService customerFollowUpFileService;
     @Override
@@ -58,7 +67,7 @@
             pdto.setProcessRouteName(it.getProcessName());
             pdto.setProcessRouteOpenNum(it.getOpenCount());
             pdto.setProcessRouteNum(it.getProcessPositive());
-            pdto.setProcessRouteAddNum(it.getProcessPositive());
+            pdto.setProcessRouteAddNum(it.getAllowanceQty());
 //            pdto.setProcessRouteRequire(); 宸ヨ壓瑕佹眰
             pdto.setProductModelId(Long.valueOf(materialInfoDtoFirst.getProductModelId()));
             pdto.setUserIds(it.getReportWorkerList().stream().map(SimplePersonDto::getUserId).map(String::valueOf).collect(Collectors.joining(",")));
@@ -111,6 +120,46 @@
             map -> new ArrayList<>(map.values())
         ));
     }
+
+    @Override
+    public void exportPrintExcelByWordId(@Nullable Long orderId) {
+        ProductionPrintOrderDto printOrderDto = this.getByProductWordId(orderId);
+        List<MaterialInfoDto> materialInfo = printOrderDto.getMaterialInfo();
+        Assert.isTrue(CollUtil.isNotEmpty(materialInfo),"鏈湁鏉愭枡淇℃伅锛岃娣诲姞鏀逛俊鎭�!");
+        MaterialInfoDto materialInfoDto = materialInfo.get(0);
+        ExportProductionPrintOrderDto exportProductionPrintOrderDto = BeanUtil.copyProperties(printOrderDto, ExportProductionPrintOrderDto.class);
+        exportProductionPrintOrderDto.setNumSuffix(materialInfoDto.getNumSuffix());
+        exportProductionPrintOrderDto.setUnitSuffix(materialInfoDto.getUnitSuffix());
+        exportProductionPrintOrderDto.setPriceSuffix(materialInfoDto.getPriceSuffix());
+        StringUtils.fillStringNull(exportProductionPrintOrderDto);
+        // 鏃ユ湡淇涓� yyyy骞� MM 鏈� mm 鏃�
+        exportProductionPrintOrderDto.setPrintOrderTimeStr(DateUtil.format(exportProductionPrintOrderDto.getPrintOrderTime(),"yyyy骞� MM 鏈� mm 鏃�"));
+        exportProductionPrintOrderDto.setFinishTimeStr(DateUtil.format(exportProductionPrintOrderDto.getFinishTime(),"yyyy骞� MM 鏈� mm 鏃�"));
+
+        // 浠嬬粛淇� 鍕鹃�夋
+        String introductionLetter = exportProductionPrintOrderDto.getIntroductionLetter();
+        List<String> introductionLetterItem = StrUtil.split(introductionLetter, ",");
+        exportProductionPrintOrderDto.setIntroductionLetter1(introductionLetterItem.contains("浠嬬粛淇�")?"R" : "拢");
+        exportProductionPrintOrderDto.setIntroductionLetter2(introductionLetterItem.contains("鍟嗘爣娉ㄥ唽")?"R" : "拢");
+        exportProductionPrintOrderDto.setIntroductionLetter3(introductionLetterItem.contains("濮斿嵃鍗�")?"R" : "拢");
+        exportProductionPrintOrderDto.setIntroductionLetter4(introductionLetterItem.contains("涔﹀彿")?"R" : "拢");
+
+        // 鍒囨枡鍥剧ず
+        exportProductionPrintOrderDto.setCuttingDiagramCheckout1("骞冲紶".equals(exportProductionPrintOrderDto.getCuttingDiagramCheckout())?"R" : "拢");
+        exportProductionPrintOrderDto.setCuttingDiagramCheckout2("鍗风瓛".equals(exportProductionPrintOrderDto.getCuttingDiagramCheckout())?"R" : "拢");
+
+        // 璇诲彇鍥剧墖淇℃伅
+        if(exportProductionPrintOrderDto.getCuttingFileVo() != null){
+            byte[] bytes = FileUtil.readBytes(exportProductionPrintOrderDto.getCuttingFileVo().getFileUrl());
+            exportProductionPrintOrderDto.setCuttingImage(bytes);
+        }
+
+        productionPrintOrderExcel.createPrintOrderTemplate(exportProductionPrintOrderDto, IoUtil.toStream(new File("/Users/ONEX/Downloads/printOrderTemp.xlsx")));
+
+
+    }
+
+
 }
 
 

--
Gitblit v1.9.3