From b7c0212cc6871d14a9fcd95a2049496735d93426 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期日, 28 九月 2025 14:35:37 +0800
Subject: [PATCH] yys 修改报告模板
---
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceImpl.java | 166 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 166 insertions(+), 0 deletions(-)
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceImpl.java
index e658b6b..5493187 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceImpl.java
@@ -1,21 +1,58 @@
package com.ruoyi.device.service.impl;
+import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.deepoove.poi.XWPFTemplate;
+import com.deepoove.poi.config.Configure;
+import com.deepoove.poi.data.Pictures;
+import com.ruoyi.common.core.domain.entity.SysDictData;
import com.ruoyi.common.utils.QueryWrappers;
+import com.ruoyi.device.dto.DeviceImpowerDetailsDto;
+import com.ruoyi.device.dto.DeviceImpowerDto;
import com.ruoyi.device.dto.DeviceMaintenanceDto;
import com.ruoyi.device.mapper.DeviceMaintenanceMapper;
+import com.ruoyi.device.mapper.DeviceMapper;
+import com.ruoyi.device.pojo.Device;
+import com.ruoyi.device.pojo.DeviceImpower;
import com.ruoyi.device.pojo.DeviceMaintenance;
import com.ruoyi.device.service.DeviceMaintenanceService;
+import com.ruoyi.device.service.DeviceService;
+import com.ruoyi.inspect.util.HackLoopTableRenderPolicy;
+import com.ruoyi.inspect.util.UserUtils;
+import com.ruoyi.system.service.ISysDictDataService;
+import com.ruoyi.system.service.ISysDictTypeService;
+import lombok.AllArgsConstructor;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.URLEncoder;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
/**
* 璁惧缁存姢淇濆吇
*/
@Service
public class DeviceMaintenanceImpl extends ServiceImpl<DeviceMaintenanceMapper, DeviceMaintenance> implements DeviceMaintenanceService {
+ @Resource
+ private DeviceService deviceService;
+ @Resource
+ private ISysDictTypeService iSysDictTypeService;
+ @Value("${file.path}")
+ private String imgUrl;
/**
* 璁惧缁存姢鍒嗛〉鏌ヨ
@@ -28,4 +65,133 @@
}
return baseMapper.selectDeviceMaintenancePage(page, QueryWrappers.queryWrappers(deviceMaintenance));
}
+
+ /**
+ * 瀵煎嚭璁惧缁存姢淇濆吇
+ * @param deviceId
+ * @param response
+ */
+ @Override
+ public void exportDeviceMaintenance(Integer deviceId, HttpServletResponse response) {
+ // 鏌ヨ璁惧缁存姢淇濆吇
+ List<DeviceMaintenance> deviceMaintenanceList = baseMapper.selectList(Wrappers.<DeviceMaintenance>lambdaQuery()
+ .eq(DeviceMaintenance::getDeviceId, deviceId));
+
+ // 鑾峰彇鍒扮涓�涓澶囦娇鐢ㄦ巿鏉�
+ DeviceMaintenanceDto deviceMaintenanceDto = new DeviceMaintenanceDto();
+
+ List<SysDictData> sysDictDataList = null;
+ if (CollectionUtils.isNotEmpty(deviceMaintenanceList)) {
+ BeanUtils.copyProperties(deviceMaintenanceList.get(0), deviceMaintenanceDto);
+ // 鏌ヨ璁惧淇℃伅
+ Device device = deviceService.getById(deviceId);
+ deviceMaintenanceDto.setDeviceName(device.getDeviceName());
+ deviceMaintenanceDto.setManagementNumber(device.getManagementNumber());
+
+ //鏌ヨ缁存姢淇濆吇瀵煎嚭瀛楀吀鍊�
+ sysDictDataList = getDeviceMaintenanceDict(device);
+ }
+
+ // 娣诲姞瀛楀吀鏋氫妇鍊�
+ for (DeviceMaintenance deviceMaintenance : deviceMaintenanceList) {
+ StringBuilder maintenanceContent = new StringBuilder(deviceMaintenance.getMaintenanceContent());
+ if (CollectionUtils.isNotEmpty(sysDictDataList) && StringUtils.isNotBlank(deviceMaintenance.getMaintenanceContent())) {
+ maintenanceContent = new StringBuilder();
+ List<String> splitList = StrUtil.split(deviceMaintenance.getMaintenanceContent(), ',');
+ // 寰幆鍒ゆ柇鏄惁鏈変竴鏍穔ey
+ for (SysDictData sysDictData : sysDictDataList) {
+ if (splitList.contains(sysDictData.getDictLabel())) {
+ maintenanceContent.append("鈽�").append(sysDictData.getDictLabel()).append(" ");
+ } else {
+ maintenanceContent.append("鈻�").append(sysDictData.getDictLabel()).append(" ");
+ }
+ }
+ }
+ deviceMaintenance.setMaintenanceContent(maintenanceContent.toString());
+ // 娣诲姞缁存姢浜哄浘鐗�
+ deviceMaintenance.setMaintenanceUserUrlRender(UserUtils.getFinalUserSignatureUrl(deviceMaintenance.getMaintenanceUserId()));
+
+ }
+
+
+ // 鑾峰彇璺緞
+ InputStream inputStream = this.getClass().getResourceAsStream("/static/word/device-maintenance.docx");
+ Configure configure = Configure.builder()
+ .bind("deviceMaintenances", new HackLoopTableRenderPolicy())
+ .build();
+ XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
+ new HashMap<String, Object>() {{
+ put("device", deviceMaintenanceDto);
+ put("deviceMaintenances", deviceMaintenanceList);
+ }});
+
+ try {
+ response.setContentType("application/msword");
+ String fileName = URLEncoder.encode(
+ "璁惧淇濆吇缁存姢", "UTF-8");
+ response.setHeader("Content-disposition",
+ "attachment;filename=" + fileName + ".docx");
+ OutputStream os = response.getOutputStream();
+ template.write(os);
+ os.flush();
+ os.close();
+ inputStream.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new RuntimeException("瀵煎嚭澶辫触");
+ }
+
+ }
+
+ /**
+ * ****鏌ヨ缁存姢淇濆吇瀵煎嚭瀛楀吀鍊�***
+ * @param device
+ */
+ private List<SysDictData> getDeviceMaintenanceDict(Device device) {
+ List<SysDictData> sysDictDataList = new ArrayList<>();
+ // 鏌ヨ缁存姢淇濆吇瀵煎嚭瀛楀吀鍊�
+ if (StringUtils.isNotBlank(device.getStoragePoint())) {
+ String dictType = null;
+ switch (device.getStoragePoint()) {
+ case "鑰佸寲瀹�":
+ dictType = "aging_maintenance_content";
+ break;
+ case "鑰佸寲瀹為獙瀹�":
+ dictType = "aging_maintenance_content";
+ break;
+ case "鐢垫�ц兘瀹為獙瀹�":
+ dictType = "electrical_maintenance_content";
+ break;
+ case "鐜瀹為獙瀹�":
+ dictType = "environmental_maintenance_content";
+ break;
+ case "鐕冪儳瀹為獙瀹�":
+ dictType = "burn_maintenance_content";
+ break;
+ case "娣风偧瀹為獙瀹�":
+ dictType = "mixing_maintenance_content";
+ break;
+ case "妫�娴嬩腑蹇冪數鎬ц兘瀹為獙瀹�":
+ dictType = "center_electrical_maintenance_content";
+ break;
+ case "鎭掓俯浜�":
+ dictType = "temperature2_maintenance_content";
+ break;
+ case "鎭掓俯涓�":
+ dictType = "temperature1_maintenance_content";
+ break;
+ case "鍖栧瀹為獙瀹�":
+ dictType = "chemistry_maintenance_content";
+ break;
+ case "鍒舵牱瀹�":
+ dictType = "sample_maintenance_content";
+ break;
+ case "浣庢俯瀹為獙瀹�":
+ dictType = "hypothermia_maintenance_content";
+ break;
+ }
+ sysDictDataList = iSysDictTypeService.selectDictDataByType(dictType);
+ }
+ return sysDictDataList;
+ }
}
--
Gitblit v1.9.3