diff --git a/src/main/java/com/xujie/sys/modules/pms/controller/EamController.java b/src/main/java/com/xujie/sys/modules/pms/controller/EamController.java index 965cadcf..600563b6 100644 --- a/src/main/java/com/xujie/sys/modules/pms/controller/EamController.java +++ b/src/main/java/com/xujie/sys/modules/pms/controller/EamController.java @@ -1,6 +1,7 @@ package com.xujie.sys.modules.pms.controller; +import com.alibaba.excel.EasyExcel; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.xujie.sys.common.utils.PageUtils; import com.xujie.sys.common.utils.R; @@ -22,7 +23,9 @@ import com.xujie.sys.modules.sys.entity.SysUserEntity; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; import java.io.BufferedReader; +import java.io.IOException; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; @@ -52,6 +55,31 @@ public class EamController { @Autowired private QueryCriteriaConstructorDefault queryCriteriaConstructorDefault; + /** + * @Description 导出excel + * @Title eamWorkOrderSearchForDefect + * @param data + * @author zhb + * @date 2025/11/13 14:10 + * @return R + * @throw + */ + @PostMapping(value="/eamWorkOrderExpiortExcel") + public void eamWorkOrderExpiortExcel (@RequestBody EamWorkOrderInData data, HttpServletResponse response) throws IOException { + // 设置响应头 + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + String fileName = URLEncoder.encode("设备维修组维修工单", "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-Disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); + + //获取数据 + PageUtils page = eamService.eamWorkOrderSearchForDefect2(data); + // 写入Excel + EasyExcel.write(response.getOutputStream(), EamWorkOrderExportData.class) + .sheet("设备维修组维修工单") + .doWrite(page.getList()); + } + /** * @Description eamFamilySearch * @Title eamAdminSearch diff --git a/src/main/java/com/xujie/sys/modules/pms/data/EamWorkOrderExportData.java b/src/main/java/com/xujie/sys/modules/pms/data/EamWorkOrderExportData.java new file mode 100644 index 00000000..d6283389 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/pms/data/EamWorkOrderExportData.java @@ -0,0 +1,93 @@ +package com.xujie.sys.modules.pms.data; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; + +@Data +public class EamWorkOrderExportData { + @ExcelProperty("BU") + private String buNo; + + @ExcelProperty("处置措施") + private String disposalMeasures; + + @ExcelProperty("工单编码") + private String orderNo; + + @ExcelProperty("反馈单号") + private String planID; + + @ExcelProperty("反馈描述") + private String feedBackDesc; + + @ExcelProperty("故障编码") + private String defectID; + + @ExcelProperty("故障名称") + private String defectDesc; + + @ExcelProperty("设备编码") + private String objectID; + + @ExcelProperty("设备名称") + private String objectDesc; + + @ExcelProperty("机台名称") + private String resourceDesc; + + @ExcelProperty("设备部门") + private String departmentName; + + @ExcelProperty("报修人员名称") + private String createBy; + + @ExcelProperty("状态") + private String status; + + @ExcelProperty("计划执行人员") + private String planOperatorName; + + @ExcelProperty("实际执行人员") + private String actualOperatorName; + + @ExcelProperty("计划执行日期") + private String planDate; + + @ExcelProperty("故障时间") + private String createdDate; + + @ExcelProperty("到达时间") + private String reachDate; + + @ExcelProperty("实际执行时间") + private String actualDate; + + @ExcelProperty("维修响应时长(m)") + private String responseTime; + + @ExcelProperty("工作时长(m)") + private String workTime; + + @ExcelProperty("难度等级") + private String difficultyLevel; + + @ExcelProperty("难度备注") + private String difficultyRemark; + + @ExcelProperty("单据来源") + private String documentSource; + + @ExcelProperty("故障原因") + private String faultReason; + + @ExcelProperty("处理方式") + private String handlingMethod; + + @ExcelProperty("预防措施") + private String preventiveMeasure; + + @ExcelProperty("备注说明") + private String remark; + + +} diff --git a/src/main/java/com/xujie/sys/modules/pms/mapper/EamMapper.java b/src/main/java/com/xujie/sys/modules/pms/mapper/EamMapper.java index 6c84e69a..f88280a1 100644 --- a/src/main/java/com/xujie/sys/modules/pms/mapper/EamMapper.java +++ b/src/main/java/com/xujie/sys/modules/pms/mapper/EamMapper.java @@ -96,6 +96,7 @@ public interface EamMapper { IPage eamWorkOrderSearch(Page page, @Param("query") EamWorkOrderInData inData); IPage eamWorkOrderSearchForDefect(Page page, @Param("query") EamWorkOrderInData inData); + IPage eamWorkOrderSearchForDefect2(Page page, @Param("query") EamWorkOrderInData inData); IPage eamDefectSearch(Page page, @Param("query") EamDefectData inData); diff --git a/src/main/java/com/xujie/sys/modules/pms/service/EamService.java b/src/main/java/com/xujie/sys/modules/pms/service/EamService.java index 08ecb325..54aa1b14 100644 --- a/src/main/java/com/xujie/sys/modules/pms/service/EamService.java +++ b/src/main/java/com/xujie/sys/modules/pms/service/EamService.java @@ -670,6 +670,16 @@ public interface EamService { * @throw */ PageUtils eamWorkOrderSearchForDefect(EamWorkOrderInData inData); + /** + * @Description 同eamWorkOrderSearchForDefect方法,但返回值接收对象不同,用于导出 + * @Title eamWorkOrderSearchForDefect + * @param inData + * @author zhb + * @date 2025/11/14 10:33 + * @return PageUtils + * @throw + */ + PageUtils eamWorkOrderSearchForDefect2(EamWorkOrderInData inData); //---------------故障------------------- /** * @param inData diff --git a/src/main/java/com/xujie/sys/modules/pms/service/Impl/EamServiceImpl.java b/src/main/java/com/xujie/sys/modules/pms/service/Impl/EamServiceImpl.java index d6e2f8f2..e45b1a12 100644 --- a/src/main/java/com/xujie/sys/modules/pms/service/Impl/EamServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/pms/service/Impl/EamServiceImpl.java @@ -1673,6 +1673,15 @@ public class EamServiceImpl implements EamService { IPage resultList = this.eamMapper.eamWorkOrderSearchForDefect(new Page(inData.getPage(), inData.getLimit()), inData); return new PageUtils(resultList); } + //同eamWorkOrderSearchForDefect方法,但返回值接收对象不同,用于导出 + @Override + public PageUtils eamWorkOrderSearchForDefect2(EamWorkOrderInData inData){ + if (StringUtils.isNotBlank(inData.getDepartmentName())) { + inData.setDeptArr(inData.getDepartmentName().split(";")); + } + IPage resultList = this.eamMapper.eamWorkOrderSearchForDefect2(new Page(inData.getPage(), inData.getLimit()), inData); + return new PageUtils(resultList); + } //------------------------故障---------------------------- @Override public PageUtils eamDefectSearch(EamDefectData inData){ diff --git a/src/main/resources/mapper/pms/EamMapper.xml b/src/main/resources/mapper/pms/EamMapper.xml index 6171da60..a2ddead1 100644 --- a/src/main/resources/mapper/pms/EamMapper.xml +++ b/src/main/resources/mapper/pms/EamMapper.xml @@ -1138,6 +1138,129 @@ END + +