From 1f418616dbab8feb1f1f432045fb4645949e1c1c Mon Sep 17 00:00:00 2001
From: guoshengxiong <1923636941@qq.com>
Date: Thu, 3 Apr 2025 18:20:00 +0800
Subject: [PATCH] =?UTF-8?q?=E5=8C=85=E5=A4=B4bug=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 6 ++
.../ContractorMonthlyDetailController.java | 22 ++++++-
.../baotou/entity/AnticorrosionEntrust.java | 19 +++++-
.../entity/AnticorrosionPlanApplication.java | 59 ++++++++++++-------
.../mapper/xml/AnticorrosionEntrustMapper.xml | 12 ++++
.../AnticorrosionPlanApplicationMapper.xml | 12 ++++
.../impl/AnticorrosionEntrustServiceImpl.java | 6 +-
...ticorrosionPlanApplicationServiceImpl.java | 23 ++++----
.../ContractorMonthlyDetailServiceImpl.java | 4 +-
.../impl/LiftingOperationServiceImpl.java | 6 +-
.../java/com/zhgd/xmgl/util/WordUtils.java | 37 ++++++++++++
11 files changed, 167 insertions(+), 39 deletions(-)
diff --git a/pom.xml b/pom.xml
index 5b04f3f8b..b417f2105 100644
--- a/pom.xml
+++ b/pom.xml
@@ -356,6 +356,12 @@
poi-ooxml
4.0.1
+
+ org.apache.poi
+ poi-ooxml-schemas
+ 4.1.2
+
+
cn.afterturn
diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/ContractorMonthlyDetailController.java b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/ContractorMonthlyDetailController.java
index 699d13c80..1b40a6876 100644
--- a/src/main/java/com/zhgd/xmgl/modules/baotou/controller/ContractorMonthlyDetailController.java
+++ b/src/main/java/com/zhgd/xmgl/modules/baotou/controller/ContractorMonthlyDetailController.java
@@ -4,23 +4,29 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zhgd.annotation.OperLog;
import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.xmgl.modules.baotou.entity.ContractorMonthlyDetail;
-import com.zhgd.xmgl.modules.baotou.entity.ContractorMonthlyPeriod;
import com.zhgd.xmgl.modules.baotou.service.*;
import com.zhgd.xmgl.modules.project.service.IProjectEnterpriseService;
import com.zhgd.xmgl.modules.worker.service.impl.EnterpriseInfoServiceImpl;
+import com.zhgd.xmgl.util.WordUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.MapUtils;
+import org.apache.commons.io.IOUtils;
import org.simpleframework.xml.core.Validate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.List;
@@ -213,4 +219,18 @@ public class ContractorMonthlyDetailController {
return Result.success(contractorMonthlyDetailService.countQuantityExcel(param));
}
+ @ApiOperation(value = "月报周报html转word", notes = "月报周报html转word", httpMethod = "POST")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "file", value = "file", paramType = "body", required = true, dataType = "String"),
+ })
+ @PostMapping(value = "/html2Word")
+ public void html2Word(HttpServletResponse response, MultipartFile file) {
+ try {
+ String html = IOUtils.toString(file.getInputStream(), StandardCharsets.UTF_8);
+ WordUtils.html2Word(response, html);
+ } catch (IOException e) {
+ log.error("", e);
+ }
+ }
+
}
diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/entity/AnticorrosionEntrust.java b/src/main/java/com/zhgd/xmgl/modules/baotou/entity/AnticorrosionEntrust.java
index e73194820..192fc348f 100644
--- a/src/main/java/com/zhgd/xmgl/modules/baotou/entity/AnticorrosionEntrust.java
+++ b/src/main/java/com/zhgd/xmgl/modules/baotou/entity/AnticorrosionEntrust.java
@@ -149,10 +149,25 @@ public class AnticorrosionEntrust implements Serializable {
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新时间 yyyy-MM-dd HH:mm:ss")
private java.util.Date updateTime;
- @ApiModelProperty(value="时间级别:1月2周")
- private java.lang.Integer levelType ;
+ @ApiModelProperty(value = "时间级别:1月2周")
+ private java.lang.Integer levelType;
@ApiModelProperty(value = "编号")
private java.lang.String num;
+ @ApiModelProperty(value = "项目组")
+ private java.lang.Long projectGroup;
+ @ApiModelProperty(value = "监理")
+ private java.lang.Long supervision;
+ @ApiModelProperty(value = "EPC承包商")
+ private java.lang.Long epcContractor;
+ @TableField(exist = false)
+ @ApiModelProperty(value = "项目组名称")
+ private java.lang.String projectGroupName;
+ @TableField(exist = false)
+ @ApiModelProperty(value = "监理名称")
+ private java.lang.String supervisionName;
+ @TableField(exist = false)
+ @ApiModelProperty(value = "EPC承包商名称")
+ private java.lang.String epcContractorName;
@TableField(exist = false)
@ApiModelProperty(value = "装置/单元名称")
private java.lang.String deviceUnitName;
diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/entity/AnticorrosionPlanApplication.java b/src/main/java/com/zhgd/xmgl/modules/baotou/entity/AnticorrosionPlanApplication.java
index df6bdd0d4..ceec4b210 100644
--- a/src/main/java/com/zhgd/xmgl/modules/baotou/entity/AnticorrosionPlanApplication.java
+++ b/src/main/java/com/zhgd/xmgl/modules/baotou/entity/AnticorrosionPlanApplication.java
@@ -97,26 +97,45 @@ public class AnticorrosionPlanApplication implements Serializable {
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value="创建时间 yyyy-MM-dd HH:mm:ss")
private java.util.Date createTime ;
- /**更新时间 yyyy-MM-dd HH:mm:ss*/
- @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
- @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
- @ApiModelProperty(value="更新时间 yyyy-MM-dd HH:mm:ss")
- private java.util.Date updateTime ;
- /**时间级别:1月2周*/
- @ApiModelProperty(value="时间级别:1月2周")
- private java.lang.Integer levelType ;
- @ApiModelProperty(value = "编号")
- private java.lang.String num;
- @TableField(exist = false)
- @ApiModelProperty(value="装置/单元名称")
- private java.lang.String deviceUnitName ;
- @TableField(exist = false)
- @ApiModelProperty(value="承包商名称")
- private java.lang.String contractorName ;
- @TableField(exist = false)
- @ApiModelProperty(value="填报人名称")
- private java.lang.String reportingPersonName ;
- @TableField(exist = false)
+ /**
+ * 更新时间 yyyy-MM-dd HH:mm:ss
+ */
+ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "更新时间 yyyy-MM-dd HH:mm:ss")
+ private java.util.Date updateTime;
+ /**
+ * 时间级别:1月2周
+ */
+ @ApiModelProperty(value = "时间级别:1月2周")
+ private java.lang.Integer levelType;
+ @ApiModelProperty(value = "编号")
+ private java.lang.String num;
+ @ApiModelProperty(value = "项目组")
+ private java.lang.Long projectGroup;
+ @ApiModelProperty(value = "监理")
+ private java.lang.Long supervision;
+ @ApiModelProperty(value = "EPC承包商")
+ private java.lang.Long epcContractor;
+ @TableField(exist = false)
+ @ApiModelProperty(value = "项目组名称")
+ private java.lang.String projectGroupName;
+ @TableField(exist = false)
+ @ApiModelProperty(value = "监理名称")
+ private java.lang.String supervisionName;
+ @TableField(exist = false)
+ @ApiModelProperty(value = "EPC承包商名称")
+ private java.lang.String epcContractorName;
+ @TableField(exist = false)
+ @ApiModelProperty(value = "装置/单元名称")
+ private java.lang.String deviceUnitName;
+ @TableField(exist = false)
+ @ApiModelProperty(value = "承包商名称")
+ private java.lang.String contractorName;
+ @TableField(exist = false)
+ @ApiModelProperty(value = "填报人名称")
+ private java.lang.String reportingPersonName;
+ @TableField(exist = false)
@ApiModelProperty(value="承包商项目经理名称")
private java.lang.String contractorProjectManagerName ;
@TableField(exist = false)
diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/AnticorrosionEntrustMapper.xml b/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/AnticorrosionEntrustMapper.xml
index 760f8e498..1e9fed8b4 100644
--- a/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/AnticorrosionEntrustMapper.xml
+++ b/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/AnticorrosionEntrustMapper.xml
@@ -11,7 +11,13 @@
,su3.real_name as supervising_engineer_name
,su4.real_name as project_team_professional_engineer_name
,su5.real_name as anti_corrosion_contractor_responsible_person_name
+ ,pg.project_group_name as project_group_name
+ ,ei1.enterprise_name as supervision_name
+ ,ei2.enterprise_name as epc_contractor_name
from anticorrosion_entrust t
+ left join project_group pg on pg.id=t.project_group
+ left join enterprise_info ei1 on ei1.id=t.supervision
+ left join enterprise_info ei2 on ei2.id=t.epc_contractor
left join device_unit du on du.id=t.device_unit_id
left join enterprise_info ei on ei.id=t.contractor
left join system_user su1 on su1.user_id=t.reporting_person
@@ -32,7 +38,13 @@
,su3.real_name as supervising_engineer_name
,su4.real_name as project_team_professional_engineer_name
,su5.real_name as anti_corrosion_contractor_responsible_person_name
+ ,pg.project_group_name as project_group_name
+ ,ei1.enterprise_name as supervision_name
+ ,ei2.enterprise_name as epc_contractor_name
from anticorrosion_entrust t
+ left join project_group pg on pg.id=t.project_group
+ left join enterprise_info ei1 on ei1.id=t.supervision
+ left join enterprise_info ei2 on ei2.id=t.epc_contractor
left join device_unit du on du.id=t.device_unit_id
left join enterprise_info ei on ei.id=t.contractor
left join system_user su1 on su1.user_id=t.reporting_person
diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/AnticorrosionPlanApplicationMapper.xml b/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/AnticorrosionPlanApplicationMapper.xml
index 9a8d8a486..59297ecac 100644
--- a/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/AnticorrosionPlanApplicationMapper.xml
+++ b/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/AnticorrosionPlanApplicationMapper.xml
@@ -11,7 +11,13 @@
,su3.real_name as supervising_engineer_name
,su4.real_name as project_team_professional_engineer_name
,su5.real_name as centralized_anti_corrosion_contractor_person_name
+ ,pg.project_group_name as project_group_name
+ ,ei1.enterprise_name as supervision_name
+ ,ei2.enterprise_name as epc_contractor_name
from anticorrosion_plan_application t
+ left join project_group pg on pg.id=t.project_group
+ left join enterprise_info ei1 on ei1.id=t.supervision
+ left join enterprise_info ei2 on ei2.id=t.epc_contractor
left join device_unit du on du.id=t.device_unit_id
left join enterprise_info ei on ei.id=t.contractor
left join system_user su1 on su1.user_id=t.reporting_person
@@ -32,7 +38,13 @@
,su3.real_name as supervising_engineer_name
,su4.real_name as project_team_professional_engineer_name
,su5.real_name as centralized_anti_corrosion_contractor_person_name
+ ,pg.project_group_name as project_group_name
+ ,ei1.enterprise_name as supervision_name
+ ,ei2.enterprise_name as epc_contractor_name
from anticorrosion_plan_application t
+ left join project_group pg on pg.id=t.project_group
+ left join enterprise_info ei1 on ei1.id=t.supervision
+ left join enterprise_info ei2 on ei2.id=t.epc_contractor
left join device_unit du on du.id=t.device_unit_id
left join enterprise_info ei on ei.id=t.contractor
left join system_user su1 on su1.user_id=t.reporting_person
diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/AnticorrosionEntrustServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/AnticorrosionEntrustServiceImpl.java
index c23e4a189..3e1594345 100644
--- a/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/AnticorrosionEntrustServiceImpl.java
+++ b/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/AnticorrosionEntrustServiceImpl.java
@@ -101,7 +101,8 @@ public class AnticorrosionEntrustServiceImpl extends ServiceImpl map) {
AnticorrosionEntrust e = new AnticorrosionEntrust();
e.setProjectSn(MapUtils.getString(map, "projectSn"));
- e.setIsUrgent(FlowUtil.getPullDownInteger(map, "isUrgent"));
+ List isUrgent = Arrays.asList("否", "是");
+ e.setIsUrgent(isUrgent.indexOf(FlowUtil.getString(map, "isUrgent")));
e.setDeviceUnitId(FlowUtil.getPullDownLong(map, "deviceUnitId"));
e.setContractor(FlowUtil.getPullDownLong(map, "contractor"));
e.setReportingTime(FlowUtil.getDate(map, "reportingTime"));
@@ -121,6 +122,9 @@ public class AnticorrosionEntrustServiceImpl extends ServiceImpl Convert.toInt(((List) o).get(0))).orElse(null);
String operationLocation = MapUtils.getString(map, "operationLocation");
String operationContent = MapUtils.getString(map, "operationContent");
String craneTypeLicensePlateNumber = MapUtils.getString(map, "craneTypeLicensePlateNumber");
@@ -227,7 +226,8 @@ public class LiftingOperationServiceImpl extends ServiceImpl level = Arrays.asList("一级(M>100吨)", "二级(40吨≤M≤100吨)", "三级(M<40吨)");
+ operation.setLevel(level.indexOf(FlowUtil.getString(map, "level") + 1));
operation.setOperatorLicenseNumber(operatorLicenseNumber);
operation.setSafetyMeasuresList(safetyMeasuresList);
operation.setOperationUnitConstructionApplicant(operationUnitConstructionApplicant);
diff --git a/src/main/java/com/zhgd/xmgl/util/WordUtils.java b/src/main/java/com/zhgd/xmgl/util/WordUtils.java
index 36dc025e9..b766882b8 100644
--- a/src/main/java/com/zhgd/xmgl/util/WordUtils.java
+++ b/src/main/java/com/zhgd/xmgl/util/WordUtils.java
@@ -2,11 +2,14 @@ package com.zhgd.xmgl.util;
import cn.afterturn.easypoi.word.WordExportUtil;
import cn.afterturn.easypoi.word.parse.ParseWord07;
+import org.apache.poi.poifs.filesystem.DirectoryEntry;
+import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import javax.servlet.http.HttpServletResponse;
+import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.List;
@@ -32,6 +35,40 @@ public class WordUtils {
}
}
+ /**
+ * word下载
+ *
+ * @param fileName 下载时的文件名称
+ * @param response
+ */
+ private static void downLoadWord(String fileName, HttpServletResponse response, POIFSFileSystem poifsFileSystem) throws IOException {
+ try {
+ response.setCharacterEncoding("UTF-8");
+ response.setHeader("content-Type", "application/octet-stream");
+ response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName + ".docx", "UTF-8"));
+ poifsFileSystem.writeFilesystem(response.getOutputStream());
+ } catch (Exception e) {
+ throw new IOException(e.getMessage());
+ }
+ }
+
+ /**
+ * html转word
+ *
+ * @param response
+ * @param html
+ * @throws IOException
+ */
+ public static void html2Word(HttpServletResponse response, String html) throws IOException {
+ // String html = FileUtil.readString("C:\\Users\\Administrator\\Desktop\\t\\文档.html", StandardCharsets.UTF_8 );
+ byte by[] = html.getBytes("UTF-8");
+ ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(by);
+ POIFSFileSystem poifsFileSystem = new POIFSFileSystem();
+ DirectoryEntry directoryEntry = poifsFileSystem.getRoot();
+ directoryEntry.createDocument("WordDocument", byteArrayInputStream);
+ WordUtils.downLoadWord("导出word", response, poifsFileSystem);
+ }
+
/**
* word模板导出
*