From c30ac5918122426ea7a33dbe411aa39b3c7aa2ca Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期一, 27 四月 2026 13:17:36 +0800
Subject: [PATCH] feat(productionPrintOrderExcel) excel导出
---
src/main/java/com/ruoyi/production/service/impl/ProductionPrintOrderServiceImpl.java | 64 ++++++++++++++++++++++++++++---
1 files changed, 57 insertions(+), 7 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 24de514..3716dec 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionPrintOrderServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionPrintOrderServiceImpl.java
@@ -2,25 +2,31 @@
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.NumberUtil;
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.ProcessContentDto;
-import com.ruoyi.production.dto.ProcessRouteAnticlockwiseDto;
-import com.ruoyi.production.dto.ProductionPrintOrderDto;
-import com.ruoyi.production.dto.SaveProductionPrintOrderDto;
+import com.ruoyi.production.dto.*;
import com.ruoyi.production.mapper.ProductOrderMapper;
import com.ruoyi.production.mapper.ProductionPrintOrderMapper;
import com.ruoyi.production.pojo.ProductOrder;
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;
@@ -39,6 +45,7 @@
private final ProductOrderMapper productOrderMapper;
private final ProcessRouteServiceImpl processRouteService;
+ private final ProductionPrintOrderExcel productionPrintOrderExcel;
private final CustomerFollowUpFileService customerFollowUpFileService;
@Override
@@ -53,6 +60,7 @@
processContentDto.setId(IdUtil.simpleUUID());
}
});
+ MaterialInfoDto materialInfoDtoFirst = dto.getMaterialInfo().get(0);
// 璋冪敤宸ュ簭鏂瑰 鍑芥暟
List<ProcessRouteAnticlockwiseDto> processRouteAnticlockwiseDtos = processContentDtoList.stream().map(it -> {
ProcessRouteAnticlockwiseDto pdto = new ProcessRouteAnticlockwiseDto();
@@ -60,10 +68,11 @@
pdto.setProcessRouteName(it.getProcessName());
pdto.setProcessRouteOpenNum(it.getOpenCount());
pdto.setProcessRouteNum(it.getProcessPositive());
- pdto.setProcessRouteAddNum(it.getProcessPositive());
+ pdto.setProcessRouteAddNum(it.getAllowanceQty());
// pdto.setProcessRouteRequire(); 宸ヨ壓瑕佹眰
- pdto.setProductModelId(dto.getProductModelId());
- pdto.setUserIds(it.getReportWorkerList().stream().map(SimplePersonDto::getUserName).collect(Collectors.joining(",")));
+ pdto.setProductModelId(Long.valueOf(materialInfoDtoFirst.getProductModelId()));
+ pdto.setUserIds(it.getReportWorkerList().stream().map(SimplePersonDto::getUserId).map(String::valueOf).collect(Collectors.joining(",")));
+ pdto.setUserNames(it.getReportWorkerList().stream().map(SimplePersonDto::getUserName).collect(Collectors.joining(",")));
pdto.setDeviceId(it.getDeviceId());
pdto.setUuid(it.getId());
return pdto;
@@ -112,6 +121,47 @@
map -> new ArrayList<>(map.values())
));
}
+
+ @Override
+ public byte[] 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);
+ }
+ // cutNum 涓哄皬鐩掓暟閲�+涓洅鏁伴噺
+ exportProductionPrintOrderDto.setCutNum(String.valueOf(NumberUtil.add(exportProductionPrintOrderDto.getSmallBoxQty(),exportProductionPrintOrderDto.getMediumBoxQty())));
+
+ byte[] printOrderTemplate = productionPrintOrderExcel.createPrintOrderTemplate(exportProductionPrintOrderDto, this.getClass().getResourceAsStream("/static/printOrderTemp.xlsx"));
+ return printOrderTemplate;
+ }
+
+
}
--
Gitblit v1.9.3