Browse Source

导出优化

ecss-tx
han\hanst 3 months ago
parent
commit
e799e2a380
  1. 16
      src/main/java/com/xujie/sys/modules/pms/controller/EamController.java
  2. 150
      src/main/java/com/xujie/sys/modules/pms/data/EamDefectRecordExportData.java
  3. 2
      src/main/java/com/xujie/sys/modules/pms/mapper/EamMapper.java
  4. 2
      src/main/java/com/xujie/sys/modules/pms/service/EamService.java
  5. 8
      src/main/java/com/xujie/sys/modules/pms/service/Impl/EamServiceImpl.java
  6. 119
      src/main/resources/mapper/pms/EamMapper.xml

16
src/main/java/com/xujie/sys/modules/pms/controller/EamController.java

@ -2322,6 +2322,22 @@ public class EamController {
return R.ok().put("page", page);
}
/**
* 故障记录导出
*/
@PostMapping(value="/eamDefectRecordExportExcel")
public void eamDefectRecordExportExcel(@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");
List<EamDefectRecordExportData> list = eamService.eamDefectRecordExport(data);
EasyExcel.write(response.getOutputStream(), EamDefectRecordExportData.class)
.sheet("设备维修记录")
.doWrite(list);
}
/**
* 获取用户bu
*/

150
src/main/java/com/xujie/sys/modules/pms/data/EamDefectRecordExportData.java

@ -0,0 +1,150 @@
package com.xujie.sys.modules.pms.data;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class EamDefectRecordExportData {
@ExcelProperty("紧急程度")
@ColumnWidth(13)
private String urgency;
@ExcelProperty("维修结论")
@ColumnWidth(14)
private String result;
@ExcelProperty("BU")
@ColumnWidth(10)
private String buDesc;
@ExcelProperty("处置措施")
@ColumnWidth(12)
private String disposalMeasures;
@ExcelProperty("工单编码")
@ColumnWidth(15)
private String orderNo;
@ExcelProperty("反馈单号")
@ColumnWidth(15)
private String planID;
@ExcelProperty("反馈描述")
@ColumnWidth(40)
private String feedBackDesc;
@ExcelProperty("故障编码")
@ColumnWidth(13)
private String defectID;
@ExcelProperty("故障名称")
@ColumnWidth(23)
private String defectDesc;
@ExcelProperty("设备编码")
@ColumnWidth(15)
private String objectID;
@ExcelProperty("设备名称")
@ColumnWidth(23)
private String objectDesc;
@ExcelProperty("机台名称")
@ColumnWidth(23)
private String resourceDesc;
@ExcelProperty("设备部门")
@ColumnWidth(19)
private String departmentName;
@ExcelProperty("报修人员名称")
@ColumnWidth(17)
private String createBy;
@ExcelProperty("报修方式")
@ColumnWidth(17)
private String repairReportingType;
@ExcelProperty("状态")
@ColumnWidth(15)
private String status;
@ExcelProperty("计划执行人员")
@ColumnWidth(21)
private String planOperatorName;
@ExcelProperty("实际执行人员")
@ColumnWidth(21)
private String actualOperatorName;
@ExcelProperty("计划执行日期")
@ColumnWidth(17)
private String planDate;
@ExcelProperty("故障时间")
@ColumnWidth(17)
private String createdDate;
@ExcelProperty("到达时间")
@ColumnWidth(17)
private String reachDate;
@ExcelProperty("实际执行时间")
@ColumnWidth(17)
private String actualDate;
@ExcelProperty("维修响应时长(m)")
@ColumnWidth(15)
private BigDecimal responseTime;
@ExcelProperty("工作时长(m)")
@ColumnWidth(15)
private BigDecimal workTime;
@ExcelProperty("备注说明")
@ColumnWidth(33)
private String remark;
@ExcelProperty("难度等级")
@ColumnWidth(15)
private String difficultyLevel;
@ExcelProperty("难度备注")
@ColumnWidth(33)
private String difficultyRemark;
@ExcelProperty("单据来源")
@ColumnWidth(15)
private String documentSource;
@ExcelProperty("维修项目编码")
@ColumnWidth(15)
private String itemNo;
@ExcelProperty("维修项目名称")
@ColumnWidth(23)
private String itemDesc;
@ExcelProperty("维修项目备注")
@ColumnWidth(33)
private String itemRemark;
@ExcelProperty("值类型")
@ColumnWidth(15)
private String valueType;
@ExcelProperty("缺省值")
@ColumnWidth(15)
private String defaultValue;
@ExcelProperty("最大值")
@ColumnWidth(15)
private BigDecimal maxValue;
@ExcelProperty("最小值")
@ColumnWidth(15)
private BigDecimal minValue;
}

2
src/main/java/com/xujie/sys/modules/pms/mapper/EamMapper.java

@ -535,4 +535,6 @@ public interface EamMapper {
List<EamMaintainOrderExportData> eamWorkOrderSearchList(@Param("query") EamWorkOrderInData inData);
List<EamWorkOrderInData> eamWorkOrderSearchForDefectExport(@Param("query") EamWorkOrderInData inData);
List<EamDefectRecordExportData> eamDefectRecordExport(@Param("query") EamWorkOrderInData inData);
}

2
src/main/java/com/xujie/sys/modules/pms/service/EamService.java

@ -1225,4 +1225,6 @@ public interface EamService {
List<EamMaintainOrderExportData> eamWorkOrderSearchList(EamWorkOrderInData data);
List<EamWorkOrderInData> eamWorkOrderSearchForDefectExport(EamWorkOrderInData data);
List<EamDefectRecordExportData> eamDefectRecordExport(EamWorkOrderInData data);
}

8
src/main/java/com/xujie/sys/modules/pms/service/Impl/EamServiceImpl.java

@ -3401,6 +3401,14 @@ public class EamServiceImpl implements EamService {
return new PageUtils(resultList);
}
@Override
public List<EamDefectRecordExportData> eamDefectRecordExport(EamWorkOrderInData data) {
if (StringUtils.isNotBlank(data.getDepartmentName())) {
data.setDeptArr(data.getDepartmentName().split(";"));
}
return this.eamMapper.eamDefectRecordExport(data);
}
/**
* 获取用户角色列表
* @return

119
src/main/resources/mapper/pms/EamMapper.xml

@ -3366,6 +3366,125 @@
</where>
</select>
<select id="eamDefectRecordExport" parameterType="com.xujie.sys.modules.pms.data.EamWorkOrderInData" resultType="com.xujie.sys.modules.pms.data.EamDefectRecordExportData">
SELECT
b.urgency as urgency,
a.result as result,
dbo.get_bu_desc(a.site, a.bu_no) as buDesc,
a.disposal_measures as disposalMeasures,
a.OrderNo as orderNo,
a.PlanID as planID,
b.FeedBackDesc as feedBackDesc,
b.DefectID as defectID,
c.DefectDesc as defectDesc,
a.ObjectID as objectID,
e.ObjectDesc as objectDesc,
dbo.eam_Get_eamResourceDesc(a.Site, a.ObjectID) as resourceDesc,
f.department_name as departmentName,
d.operator_name as createBy,
a.repair_reporting_type as repairReportingType,
a.Status as status,
dbo.eam_Get_eamAdminName(a.Site,a.PlanOperator) as planOperatorName,
dbo.joint_name(a.Site,a.bu_no,a.OrderNo,a.FunctionType) as actualOperatorName,
a.PlanDate as planDate,
b.CreatedDate as createdDate,
a.reach_date as reachDate,
a.ActualDate as actualDate,
CASE
WHEN (DATEDIFF(SECOND, b.CreatedDate, a.reach_date) <![CDATA[<]]> 60) THEN DATEDIFF(SECOND, b.CreatedDate, a.reach_date) / 60.0
ELSE DATEDIFF(MINUTE, b.CreatedDate, a.reach_date)
END AS responseTime,
a.WorkTime as workTime,
a.Remark as remark,
a.difficulty_level as difficultyLevel,
a.difficulty_remark as difficultyRemark,
a.document_source as documentSource,
ewi.ItemNo as itemNo,
ewi.ItemDesc as itemDesc,
ewi.ItemRemark as itemRemark,
ewi.ValueType as valueType,
ewi.DefaultValue as defaultValue,
ewi.MaxValue as maxValue,
ewi.MinValue as minValue
FROM eam_workOrder a
left join eam_workOrder_item ewi on a.site = ewi.site and a.bu_no = ewi.bu_no and a.OrderNo = ewi.OrderNo
left join eam_defect_feedBack b on a.site = b.site and a.bu_no = b.bu_no and a.PlanID = b.feedBackID
left join eam_defect c on b.DefectID = c.DefectID
LEFT JOIN operator as d on a.site = d.site and a.CreateBy = d.operator_id and d.active = 'Y'
left join eam_object as e on a.site = e.site and a.bu_no = e.bu_no and a.ObjectID = e.ObjectID and e.Active = 'Y'
left join sys_department as f on e.site = f.site and e.bu_no = f.bu_no and e.dept_id = f.department_id
<where>
a.site in (select site from eam_access_site where username = #{query.userName})
and a.site_bu_key in (select * from dbo.query_bu(#{query.userName}))
and exists (
select 1
from Access_dept as ead
where ead.site = f.site
and ead.bu_no = f.bu_no
and ead.department_id = f.department_id
and ead.username = #{query.userName}
)
<if test="query.buDesc != null and query.buDesc != ''">
AND exists (select 1 from BU bu where bu.site = a.site and bu.bu_no = a.bu_no and bu.bu_desc = #{query.buDesc})
</if>
<if test="query.deptArr != null">
AND
<foreach collection="query.deptArr" item="item" open="(" separator="or" close=")">
f.department_name like '%' + #{item} + '%'
</foreach>
</if>
<if test="query.orderNo != null and query.orderNo != ''">
AND a.OrderNo like '%' + #{query.orderNo} +'%'
</if>
<if test="query.planID != null and query.planID != ''">
AND a.PlanID like '%' + #{query.planID} +'%'
</if>
<if test="query.objectID != null and query.objectID != ''">
AND a.ObjectID like '%' + #{query.objectID} +'%'
</if>
<if test="query.planOperator != null and query.planOperator != ''">
AND a.PlanOperator like '%' + #{query.planOperator} +'%'
</if>
<if test="query.status != null and query.status != ''">
AND a.status = #{query.status}
</if>
<if test="query.documentSource != null and query.documentSource != ''">
AND a.document_source = #{query.documentSource}
</if>
<if test="query.createdDate != null ">
And a.CreatedDate >= #{query.createdDate}
</if>
<if test="query.startDate != null ">
AND a.PlanDate >= #{query.startDate}
</if>
<if test="query.endDate != null ">
AND #{query.endDate} >= a.PlanDate
</if>
<if test="query.reachDate != null ">
AND a.reach_date >= #{query.reachDate}
</if>
<if test="query.actualDate != null ">
AND #{query.actualDate} >= a.ActualDate
</if>
<if test="query.itemNo != null and query.itemNo != ''">
AND ewi.ItemNo like '%' + #{query.itemNo} +'%'
</if>
<if test="query.itemDesc != null and query.itemDesc != ''">
AND ewi.ItemDesc like '%' + #{query.itemDesc} +'%'
</if>
<if test="query.createdStartDate != null ">
AND b.CreatedDate >= #{query.createdStartDate}
</if>
<if test="query.createdEndDate != null ">
AND #{query.createdEndDate} >= b.CreatedDate
</if>
<if test="query.repairReportingType != null and query.repairReportingType != ''">
AND a.repair_reporting_type = #{query.repairReportingType}
</if>
and a.FunctionType =#{query.functionType}
</where>
</select>
<!-- 获取用户角色列表 -->
<select id="getUserRoleList" resultType="com.xujie.sys.modules.sys.entity.SysRoleEntity">
SELECT

Loading…
Cancel
Save