Browse Source

Merge branch 'dev_routine_work' into develop

dev
sunyuchao 4 years ago
parent
commit
508c903a4c
  1. 2
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcWorkListResultDTO.java
  2. 11
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcworkRecordListResultDTO.java
  3. 16
      epmet-user/epmet-user-server/src/main/java/com/epmet/excel/PcWorkListExport.java
  4. 20
      epmet-user/epmet-user-server/src/main/java/com/epmet/excel/StaffPatrolRecordExcel.java
  5. 50
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/PatrolRoutineWorkServiceImpl.java
  6. 18
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java
  7. 2
      epmet-user/epmet-user-server/src/main/resources/mapper/StaffPatrolRecordDao.xml

2
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcWorkListResultDTO.java

@ -49,6 +49,8 @@ public class PcWorkListResultDTO implements Serializable {
*/ */
private String isNormal; private String isNormal;
private String workTypeNames;
/** /**
* 发生地点 * 发生地点
*/ */

11
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcworkRecordListResultDTO.java

@ -1,9 +1,12 @@
package com.epmet.dto.result; package com.epmet.dto.result;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -33,11 +36,15 @@ public class PcworkRecordListResultDTO implements Serializable {
//状态(中文) //状态(中文)
private String statusName; private String statusName;
//巡查开始时间 返回返回格式化字符串,yyyy-MM-dd HH:mm:ss //巡查开始时间 返回返回格式化字符串,yyyy-MM-dd HH:mm:ss
private String patrolStartTime; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date patrolStartTime;
//巡查结束时间 返回返回格式化字符串,yyyy-MM-dd HH:mm:ss //巡查结束时间 返回返回格式化字符串,yyyy-MM-dd HH:mm:ss
private String patrolEndTime; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date patrolEndTime;
//巡查时长 xx小时xx分钟 //巡查时长 xx小时xx分钟
private String totalTime; private String totalTime;
@JsonIgnore
private Integer totalTimeNum;
} }
} }

16
epmet-user/epmet-user-server/src/main/java/com/epmet/excel/PcWorkListExport.java

@ -1,7 +1,9 @@
package com.epmet.excel; package com.epmet.excel;
import cn.afterturn.easypoi.excel.annotation.Excel; import cn.afterturn.easypoi.excel.annotation.Excel;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.Getter; import lombok.Getter;
@ -20,38 +22,50 @@ import java.util.List;
public class PcWorkListExport { public class PcWorkListExport {
@ExcelProperty("事项名称") @ExcelProperty("事项名称")
@ColumnWidth(20)
private String title; private String title;
@ExcelProperty("事项类型码") @ExcelProperty("事项类型码")
@ColumnWidth(20)
@ExcelIgnore
private String workTypeCode; private String workTypeCode;
@ExcelProperty("事项类型名称") @ExcelProperty("事项类型名称")
private String workTypeName; @ColumnWidth(40)
private String workTypeNames;
@ExcelProperty("有无异常") @ExcelProperty("有无异常")
private String isNormal; private String isNormal;
@ExcelProperty("发生地点") @ExcelProperty("发生地点")
@ColumnWidth(20)
private String happenAddress; private String happenAddress;
@ExcelProperty("发生时间") @ExcelProperty("发生时间")
@ColumnWidth(20)
private String happenTime; private String happenTime;
@ExcelProperty("人员ID") @ExcelProperty("人员ID")
@ExcelIgnore
private String staffId; private String staffId;
@ExcelProperty("人员姓名") @ExcelProperty("人员姓名")
@ColumnWidth(20)
private String staffName; private String staffName;
@ExcelProperty("网格ID") @ExcelProperty("网格ID")
@ExcelIgnore
private String gridId; private String gridId;
@ExcelProperty("网格名字") @ExcelProperty("网格名字")
@ColumnWidth(20)
private String gridName; private String gridName;
@ExcelProperty("提交日期") @ExcelProperty("提交日期")
@ColumnWidth(30)
private String createdTime; private String createdTime;
@ExcelProperty("工作内容") @ExcelProperty("工作内容")
@ColumnWidth(60)
private String workContent; private String workContent;
} }

20
epmet-user/epmet-user-server/src/main/java/com/epmet/excel/StaffPatrolRecordExcel.java

@ -20,10 +20,13 @@ package com.epmet.excel;
import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat; import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.util.Date;
/** /**
* @Description 网格员工作统计巡查记录列表导出 * @Description 网格员工作统计巡查记录列表导出
* @Author sun * @Author sun
@ -34,36 +37,45 @@ import lombok.Setter;
public class StaffPatrolRecordExcel { public class StaffPatrolRecordExcel {
@ExcelProperty("人员ID") @ExcelProperty("人员ID")
@ExcelIgnore
private String staffId; private String staffId;
@ExcelProperty("人员名称") @ExcelProperty("人员名称")
@ColumnWidth(15)
private String staffName; private String staffName;
@ExcelProperty("网格ID") @ExcelProperty("网格ID")
@ExcelIgnore
private String gridId; private String gridId;
@ExcelProperty("网格名称") @ExcelProperty("网格名称")
@ColumnWidth(20)
private String gridName; private String gridName;
@ExcelProperty("状态(英文key)") @ExcelProperty("状态(英文key)")
@ExcelIgnore
private String status; private String status;
@ExcelProperty("状态(中文)") @ExcelProperty("状态")
@ColumnWidth(18)
private String statusName; private String statusName;
@DateTimeFormat("yyyy年MM月dd日") @DateTimeFormat("yyyy年MM月dd日")
@ExcelProperty("巡查开始时间") @ExcelProperty("巡查开始时间")
private String patrolStartTime; @ColumnWidth(20)
private Date patrolStartTime;
@DateTimeFormat("yyyy年MM月dd日") @DateTimeFormat("yyyy年MM月dd日")
@ExcelProperty("巡查结束时间") @ExcelProperty("巡查结束时间")
private String patrolEndTime; @ColumnWidth(20)
private Date patrolEndTime;
@ExcelProperty("巡查时长") @ExcelProperty("巡查时长")
@ColumnWidth(20)
private String totalTime; private String totalTime;
@ExcelIgnore @ExcelIgnore
private String aa; private Integer totalTimeNum;;

50
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/PatrolRoutineWorkServiceImpl.java

@ -27,8 +27,12 @@ import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.result.DictTreeResultDTO; import com.epmet.commons.tools.dto.result.DictTreeResultDTO;
import com.epmet.commons.tools.enums.DictTypeEnum; import com.epmet.commons.tools.enums.DictTypeEnum;
import com.epmet.commons.tools.enums.OrgTypeEnum;
import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache;
import com.epmet.commons.tools.redis.common.bean.GridInfoCache;
import com.epmet.commons.tools.security.user.LoginUserUtil; import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.ExcelUtils;
@ -63,6 +67,8 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.beans.Encoder;
import java.net.URLEncoder;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@ -198,25 +204,30 @@ public class PatrolRoutineWorkServiceImpl extends BaseServiceImpl<PatrolRoutineW
@Override @Override
public void pcWorkListExport(PcWorkListFormDTO formDTO, HttpServletResponse response) throws Exception { public void pcWorkListExport(PcWorkListFormDTO formDTO, HttpServletResponse response) throws Exception {
String name = "zxc.xlsx"; String fileName = getFileName(formDTO);
ExcelWriter excelWriter = null; ExcelWriter excelWriter = null;
try { try {
// 这里 需要指定写用哪个class去写 String name = URLEncoder.encode(fileName, "UTF-8");
excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(name,response)).build(); response.setCharacterEncoding("UTF-8");
// 这里注意 如果同一个sheet只要创建一次 response.setHeader("Content-disposition", "attachment;");
WriteSheet writeSheet = EasyExcel.writerSheet("模板").build(); excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(name,response),PcWorkListExport.class).build();
// 如果同一个sheet只要创建一次
WriteSheet writeSheet = EasyExcel.writerSheet(name).build();
Integer pageNo = NumConstant.ONE; Integer pageNo = NumConstant.ONE;
Integer pageSize = NumConstant.ONE_HUNDRED; Integer pageSize = NumConstant.ONE_HUNDRED;
Integer num = NumConstant.ZERO; Integer num = NumConstant.ZERO;
do { do {
formDTO.setPageNo(pageNo); formDTO.setPageNo(pageNo);
formDTO.setPageSize(pageSize); formDTO.setPageSize(pageSize);
List<PcWorkListExport> data = ConvertUtils.sourceToTarget(pcWorkList(formDTO).getList(), PcWorkListExport.class); List<PcWorkListResultDTO.PcWorkListResult> dtos = pcWorkList(formDTO).getList();
dtos.forEach(d -> {
d.setWorkTypeNames(d.getWorkTypeName().toString());
});
List<PcWorkListExport> data = ConvertUtils.sourceToTarget(dtos, PcWorkListExport.class);
num = data.size(); num = data.size();
excelWriter.write(data, writeSheet); excelWriter.write(data, writeSheet);
pageNo++; pageNo++;
}while (num > NumConstant.ZERO && num.compareTo(pageSize) == NumConstant.ZERO); }while (num > NumConstant.ZERO && num.compareTo(pageSize) == NumConstant.ZERO);
} finally { } finally {
if (excelWriter != null) { if (excelWriter != null) {
excelWriter.finish(); excelWriter.finish();
@ -224,6 +235,31 @@ public class PatrolRoutineWorkServiceImpl extends BaseServiceImpl<PatrolRoutineW
} }
} }
public String getFileName(PcWorkListFormDTO formDTO){
StringBuilder name = new StringBuilder();
if (formDTO.getOrgType().equals(OrgTypeEnum.GRID.getCode())){
GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(formDTO.getOrgId());
if (null == gridInfo){
throw new EpmetException("查询网格信息失败...");
}
name.append(gridInfo.getGridName());
}else {
AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(formDTO.getOrgId());
if (null == agencyInfo){
throw new EpmetException("查询组织信息失败...");
}
name.append(agencyInfo.getOrganizationName());
}
name.append("例行工作列表");
if (StringUtils.isNotBlank(formDTO.getStartTime())){
name.append(formDTO.getStartTime()).append("-").append(formDTO.getEndTime()).append("区间新增值");
}else {
name.append(formDTO.getEndTime()).append("截止累计值");
}
name.append(".xlsx");
return name.toString();
};
/** /**
* @Description 处理 workTypeName * @Description 处理 workTypeName
* @param workTypeList * @param workTypeList

18
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java

@ -506,6 +506,12 @@ public class StaffPatrolRecordServiceImpl extends BaseServiceImpl<StaffPatrolRec
r.setGridName(resultGrid.getData().getGridName()); r.setGridName(resultGrid.getData().getGridName());
map.put(r.getGridId(), resultGrid.getData()); map.put(r.getGridId(), resultGrid.getData());
} }
//秒变小时分钟
Integer minutes = r.getTotalTimeNum() / 60;
String patrolDuration = (minutes / 60 > 0 ? minutes / 60 + "小时" : "") + (minutes % 60 > 0 ? minutes % 60 + "分钟" : "0分钟");
r.setTotalTime(patrolDuration);
} }
//3.封装数据并返回 //3.封装数据并返回
resultDTO.setTotal((int)result.getTotal()); resultDTO.setTotal((int)result.getTotal());
@ -524,13 +530,15 @@ public class StaffPatrolRecordServiceImpl extends BaseServiceImpl<StaffPatrolRec
ExcelWriter excelWriter = null; ExcelWriter excelWriter = null;
try { try {
excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel("网格员巡查记录.xlsx", response)).build(); excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel("网格员巡查记录.xlsx", response)).build();
WriteSheet writeSheet = EasyExcel.writerSheet().build(); /*WriteSheet writeSheet = EasyExcel.writerSheet("sheet").build();
writeSheet.setClazz(StaffPatrolRecordExcel.class); writeSheet.setClazz(StaffPatrolRecordExcel.class);*/
int num = NumConstant.ZERO; int num = NumConstant.ZERO;
//一千条一循环分批写入 //一千条一个sheet页,循环分批写入
do { do {
List<PcworkRecordListResultDTO.StaffPatrol> list = staffPatrolRecordDao.pcworkRecordList(formDTO); PcworkRecordListResultDTO dto = pcworkRecordList(formDTO);
List<StaffPatrolRecordExcel> data = ConvertUtils.sourceToTarget(list, StaffPatrolRecordExcel.class); List<StaffPatrolRecordExcel> data = ConvertUtils.sourceToTarget(dto.getList(), StaffPatrolRecordExcel.class);
WriteSheet writeSheet = EasyExcel.writerSheet(formDTO.getPageNo(), "sheet" + formDTO.getPageNo()).build();
writeSheet.setClazz(StaffPatrolRecordExcel.class);
excelWriter.write(data, writeSheet); excelWriter.write(data, writeSheet);
num = data.size(); num = data.size();
formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE); formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE);

2
epmet-user/epmet-user-server/src/main/resources/mapper/StaffPatrolRecordDao.xml

@ -84,7 +84,7 @@
if(spr.`status`='patrolling', '巡查中', if(spr.is_hand_end=0, '结束巡查(系统自动)', '结束巡查'))statusName, if(spr.`status`='patrolling', '巡查中', if(spr.is_hand_end=0, '结束巡查(系统自动)', '结束巡查'))statusName,
spr.patrol_start_time patrolStartTime, spr.patrol_start_time patrolStartTime,
spr.patrol_end_time patrolEndTime, spr.patrol_end_time patrolEndTime,
spr.total_time totalTime spr.total_time totalTimeNum
FROM FROM
staff_patrol_record spr staff_patrol_record spr
LEFT JOIN customer_staff cs ON spr.staff_id = cs.user_id LEFT JOIN customer_staff cs ON spr.staff_id = cs.user_id

Loading…
Cancel
Save