From 027c21867ac838a35d9b29b5c138bc59e4cfbca3 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期日, 28 九月 2025 16:31:46 +0800
Subject: [PATCH] yys 修改word模板
---
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceImpl.java | 169 ++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 140 insertions(+), 29 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 7c28152..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,18 +1,34 @@
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.ruoyi.device.excel.DeviceMaintenanceExport;
+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 org.apache.commons.lang3.ObjectUtils;
+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;
@@ -20,67 +36,162 @@
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;
+
+ /**
+ * 璁惧缁存姢鍒嗛〉鏌ヨ
+ * @return
+ */
@Override
- public IPage<DeviceMaintenance> getDeviceMaintenancePage(Page page, Integer deviceId, String deviceNumber) {
- if (ObjectUtils.isEmpty(deviceNumber)){
- return baseMapper.selectPage(page, Wrappers.<DeviceMaintenance>lambdaQuery()
- .eq(DeviceMaintenance::getDeviceId, deviceId));
+ public IPage<DeviceMaintenanceDto> selectDeviceMaintenancePage(Page page, DeviceMaintenanceDto deviceMaintenance) {
+ if (deviceMaintenance.getDeviceId() == null) {
+ return new Page();
}
- else return baseMapper.selectPage(page, Wrappers.<DeviceMaintenance>lambdaQuery()
- .eq(DeviceMaintenance::getDeviceId, deviceId)
- .like(DeviceMaintenance::getDeviceNumber, deviceNumber));
+ return baseMapper.selectDeviceMaintenancePage(page, QueryWrappers.queryWrappers(deviceMaintenance));
}
+ /**
+ * 瀵煎嚭璁惧缁存姢淇濆吇
+ * @param deviceId
+ * @param response
+ */
@Override
- public void exportMaintenanceRecord(Integer deviceId, HttpServletResponse response) {
- // 鏌ヨcnas璁惧缁翠慨璁板綍
+ public void exportDeviceMaintenance(Integer deviceId, HttpServletResponse response) {
+ // 鏌ヨ璁惧缁存姢淇濆吇
List<DeviceMaintenance> deviceMaintenanceList = baseMapper.selectList(Wrappers.<DeviceMaintenance>lambdaQuery()
- .eq(DeviceMaintenance::getDeviceId, deviceId)
- .select(DeviceMaintenance::getDate,
- DeviceMaintenance::getDeviceNumber,
- DeviceMaintenance::getDeviceName,
- DeviceMaintenance::getManagementNumber,
- DeviceMaintenance::getContent,
- DeviceMaintenance::getName,
- DeviceMaintenance::getComments));
+ .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/maintenance-records.docx");
+ InputStream inputStream = this.getClass().getResourceAsStream("/static/word/device-maintenance.docx");
Configure configure = Configure.builder()
- .bind("deviceMaintenanceList", new HackLoopTableRenderPolicy())
+ .bind("deviceMaintenances", new HackLoopTableRenderPolicy())
.build();
- // 鑾峰彇璁惧 鍚嶇О 鍜� 缂栧彿
- DeviceMaintenance deviceMaintenance = deviceMaintenanceList.get(0);
- String deviceName = deviceMaintenance.getDeviceName();
- String managementNumber = deviceMaintenance.getManagementNumber();
XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
new HashMap<String, Object>() {{
- put("deviceMaintenanceList", deviceMaintenanceList);
- put("deviceName", deviceName);
- put("managementNumber", managementNumber);
+ put("device", deviceMaintenanceDto);
+ put("deviceMaintenances", deviceMaintenanceList);
}});
try {
response.setContentType("application/msword");
String fileName = URLEncoder.encode(
- "璁惧缁存姢淇濆吇璁板綍", "UTF-8");
+ "璁惧淇濆吇缁存姢", "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