Browse Source

修改:【书记日志】导入-增加身份证号。服务时间,改为datetime类型

dev
wangxianzhang 3 years ago
parent
commit
9a103d3ea9
  1. 12
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/workdiaryservice/WorkdiaryServiceQueryFormDTO.java
  2. 10
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/WorkdiaryServiceRecordDTO.java
  3. 11
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/WorkdiaryServiceController.java
  4. 7
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/WorkdiaryServiceRecordEntity.java
  5. 35
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/WorkdiaryServiceRecordExcel.java
  6. 6
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/WorkdiaryServiceRecordService.java
  7. 64
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkdiaryServiceRecordServiceImpl.java
  8. 1
      epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/WorkdiaryServiceRecordDao.xml
  9. BIN
      epmet-module/epmet-heart/epmet-heart-server/src/main/resources/templates/workdiary_service_import.xlsx

12
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/workdiaryservice/WorkdiaryServiceQueryFormDTO.java

@ -1,7 +1,11 @@
package com.epmet.dto.form.workdiaryservice; package com.epmet.dto.form.workdiaryservice;
import com.epmet.commons.tools.dto.form.PageFormDTO; import com.epmet.commons.tools.dto.form.PageFormDTO;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/** /**
* 工作日志-服务 * 工作日志-服务
@ -23,4 +27,12 @@ public class WorkdiaryServiceQueryFormDTO extends PageFormDTO {
//private Date serviceTime; //private Date serviceTime;
private String remark; private String remark;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date serviceTimeStart;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date serviceTimeEnd;
} }

10
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/WorkdiaryServiceRecordDTO.java

@ -4,7 +4,9 @@ import java.io.Serializable;
import java.util.Date; import java.util.Date;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
@ -65,6 +67,8 @@ public class WorkdiaryServiceRecordDTO implements Serializable {
@NotBlank(message = "申请人为必填项", groups = { Save.class }) @NotBlank(message = "申请人为必填项", groups = { Save.class })
private String applicantId; private String applicantId;
private String applicantIdCard;
/** /**
* 申请人姓名 * 申请人姓名
*/ */
@ -91,8 +95,10 @@ public class WorkdiaryServiceRecordDTO implements Serializable {
/** /**
* 服务时间 * 服务时间
*/ */
@NotBlank(message = "服务时间为必填项", groups = { Save.class }) @NotNull(message = "服务时间为必填项", groups = { Save.class })
private String serviceTime; @DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date serviceTime;
/** /**
* 负责人姓名 * 负责人姓名

11
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/WorkdiaryServiceController.java

@ -43,6 +43,7 @@ import java.io.InputStream;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.nio.file.Path; import java.nio.file.Path;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
@ -83,9 +84,11 @@ public class WorkdiaryServiceController implements ResultDataResolver {
String applicantMobile = query.getApplicantMobile(); String applicantMobile = query.getApplicantMobile();
Integer pageNo = query.getPageNo(); Integer pageNo = query.getPageNo();
Integer pageSize = query.getPageSize(); Integer pageSize = query.getPageSize();
Date startTime = query.getServiceTimeStart();
Date endTime = query.getServiceTimeEnd();
PageData<WorkdiaryServiceRecordDTO> page = workdiaryServiceRecordService.page( PageData<WorkdiaryServiceRecordDTO> page = workdiaryServiceRecordService.page(
gridId, serviceType, applicantName, applicantAddress, serviceContent, applicantMobile, pageNo, pageSize); gridId, serviceType, applicantName, applicantAddress, serviceContent, applicantMobile, startTime, endTime, pageNo, pageSize);
return new Result<PageData<WorkdiaryServiceRecordDTO>>().ok(page); return new Result<PageData<WorkdiaryServiceRecordDTO>>().ok(page);
} }
@ -151,7 +154,11 @@ public class WorkdiaryServiceController implements ResultDataResolver {
String applicantAddress = query.getApplicantAddress(); String applicantAddress = query.getApplicantAddress();
String serviceContent = query.getServiceContent(); String serviceContent = query.getServiceContent();
String applicantMobile = query.getApplicantMobile(); String applicantMobile = query.getApplicantMobile();
workdiaryServiceRecordService.export(gridId, serviceType, applicantName, applicantAddress, serviceContent, applicantMobile, response); Date serviceTimeStart = query.getServiceTimeStart();
Date serviceTimeEnd = query.getServiceTimeEnd();
workdiaryServiceRecordService.export(gridId, serviceType, applicantName, applicantAddress, serviceContent,
applicantMobile, serviceTimeStart, serviceTimeEnd, response);
} }
/** /**

7
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/WorkdiaryServiceRecordEntity.java

@ -55,6 +55,11 @@ public class WorkdiaryServiceRecordEntity extends BaseEpmetEntity {
*/ */
private String applicantId; private String applicantId;
/**
* 证件号
*/
private String applicantIdCard;
/** /**
* 申请人姓名 * 申请人姓名
*/ */
@ -78,7 +83,7 @@ public class WorkdiaryServiceRecordEntity extends BaseEpmetEntity {
/** /**
* 服务时间 * 服务时间
*/ */
private String serviceTime; private Date serviceTime;
/** /**
* 负责人姓名 * 负责人姓名

35
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/WorkdiaryServiceRecordExcel.java

@ -1,12 +1,18 @@
package com.epmet.excel; package com.epmet.excel;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.dto.result.WorkdiaryServiceRecordDTO; import com.epmet.dto.result.WorkdiaryServiceRecordDTO;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
/** /**
* 工作日志(服务)-记录 excel * 工作日志(服务)-记录 excel
@ -33,6 +39,10 @@ public class WorkdiaryServiceRecordExcel {
@ExcelProperty(value = "申请人") @ExcelProperty(value = "申请人")
private String applicantName; private String applicantName;
@ColumnWidth(10)
@ExcelProperty(value = "证件号")
private String applicantIdCard;
@ColumnWidth(25) @ColumnWidth(25)
@ExcelProperty(value = "住址") @ExcelProperty(value = "住址")
private String applicantAddress; private String applicantAddress;
@ -50,24 +60,27 @@ public class WorkdiaryServiceRecordExcel {
@ExcelProperty(value = "负责人") @ExcelProperty(value = "负责人")
private String principal; private String principal;
@NotBlank(message = "服务时间必填") @NotNull(message = "服务时间必填")
@ColumnWidth(10) @ColumnWidth(10)
@ExcelProperty(value = "服务时间") @ExcelProperty(value = "服务时间")
private String serviceTime; @DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date serviceTime;
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty(value = "备注") @ExcelProperty(value = "备注")
private String remark; private String remark;
public WorkdiaryServiceRecordExcel(WorkdiaryServiceRecordDTO dto) { public WorkdiaryServiceRecordExcel(WorkdiaryServiceRecordDTO dto) {
this.gridName = dto.getGridName(); BeanUtil.copyProperties(dto, this);
this.serviceTypeName = dto.getServiceTypeName(); //this.gridName = dto.getGridName();
this.applicantName = dto.getApplicantName(); //this.serviceTypeName = dto.getServiceTypeName();
this.applicantAddress = dto.getApplicantAddress(); //this.applicantName = dto.getApplicantName();
this.serviceContent = dto.getServiceContent(); //this.applicantAddress = dto.getApplicantAddress();
this.applicantMobile = dto.getApplicantMobile(); //this.serviceContent = dto.getServiceContent();
this.principal = dto.getPrincipalName(); //this.applicantMobile = dto.getApplicantMobile();
this.serviceTime = dto.getServiceTime(); //this.principal = dto.getPrincipalName();
this.remark = dto.getRemark(); //this.serviceTime = dto.getServiceTime();
//this.remark = dto.getRemark();
} }
} }

6
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/WorkdiaryServiceRecordService.java

@ -9,6 +9,7 @@ import com.epmet.excel.WorkdiaryServiceRecordExcel;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.nio.file.Path; import java.nio.file.Path;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -31,7 +32,8 @@ public interface WorkdiaryServiceRecordService extends BaseService<WorkdiaryServ
PageData<WorkdiaryServiceRecordDTO> page(Map<String, Object> params); PageData<WorkdiaryServiceRecordDTO> page(Map<String, Object> params);
PageData<WorkdiaryServiceRecordDTO> page(String gridId, Short serviceType, String applicantName, String applicantAddress, PageData<WorkdiaryServiceRecordDTO> page(String gridId, Short serviceType, String applicantName, String applicantAddress,
String serviceContent, String applicantMobile, Integer pageNo, Integer pageSize); String serviceContent, String applicantMobile, Date serviceTimeStart, Date serviceTimeEnd,
Integer pageNo, Integer pageSize);
/** /**
* 默认查询 * 默认查询
@ -84,7 +86,7 @@ public interface WorkdiaryServiceRecordService extends BaseService<WorkdiaryServ
void delete(String[] ids); void delete(String[] ids);
void export(String gridId, Short serviceType, String applicantName, String applicantAddress, void export(String gridId, Short serviceType, String applicantName, String applicantAddress,
String serviceContent, String applicantMobile, HttpServletResponse response); String serviceContent, String applicantMobile, Date serviceTimeStart, Date serviceTimeEnd, HttpServletResponse response);
Integer selectRecordCountOfType(Short serviceType); Integer selectRecordCountOfType(Short serviceType);

64
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkdiaryServiceRecordServiceImpl.java

@ -21,6 +21,7 @@ import com.epmet.commons.tools.exception.ValidateException;
import com.epmet.commons.tools.feign.ResultDataResolver; import com.epmet.commons.tools.feign.ResultDataResolver;
import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerOrgRedis; import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
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.*; import com.epmet.commons.tools.utils.*;
import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.ValidatorUtils;
@ -127,7 +128,8 @@ public class WorkdiaryServiceRecordServiceImpl extends BaseServiceImpl<Workdiary
@Override @Override
public PageData<WorkdiaryServiceRecordDTO> page(String gridId, Short serviceType, String applicantName, String applicantAddress, public PageData<WorkdiaryServiceRecordDTO> page(String gridId, Short serviceType, String applicantName, String applicantAddress,
String serviceContent, String applicantMobile, Integer pageNo, Integer pageSize) { String serviceContent, String applicantMobile, Date serviceTimeStart, Date serviceTimeEnd,
Integer pageNo, Integer pageSize) {
LoginUserDetailsResultDTO currentStaff = getResultDataOrThrowsException(userOpenFeignClient.getLoginUserDetails(new LoginUserDetailsFormDTO( LoginUserDetailsResultDTO currentStaff = getResultDataOrThrowsException(userOpenFeignClient.getLoginUserDetails(new LoginUserDetailsFormDTO(
EpmetRequestHolder.getLoginUserApp(), EpmetRequestHolder.getLoginUserClient(), EpmetRequestHolder.getLoginUserId() EpmetRequestHolder.getLoginUserApp(), EpmetRequestHolder.getLoginUserClient(), EpmetRequestHolder.getLoginUserId()
@ -142,6 +144,13 @@ public class WorkdiaryServiceRecordServiceImpl extends BaseServiceImpl<Workdiary
query.like(StringUtils.isNotBlank(applicantMobile), WorkdiaryServiceRecordEntity::getApplicantMobile, applicantMobile); query.like(StringUtils.isNotBlank(applicantMobile), WorkdiaryServiceRecordEntity::getApplicantMobile, applicantMobile);
query.likeRight(WorkdiaryServiceRecordEntity::getOrgIdPath, currentStaff.getOrgIdPath()); query.likeRight(WorkdiaryServiceRecordEntity::getOrgIdPath, currentStaff.getOrgIdPath());
// 服务时间查询,两端包含,闭区间
query.ge(serviceTimeStart != null, WorkdiaryServiceRecordEntity::getServiceTime, serviceTimeStart);
query.le(serviceTimeStart != null, WorkdiaryServiceRecordEntity::getServiceTime, serviceTimeEnd);
// 创建时间倒序
query.orderByDesc(WorkdiaryServiceRecordEntity::getCreatedTime);
// 查找类型列表 // 查找类型列表
List<WorkdiaryServiceTypeDTO> stList = SpringContextUtils.getBean(WorkdiaryServiceTypeService.class).list(null, 1, 100); List<WorkdiaryServiceTypeDTO> stList = SpringContextUtils.getBean(WorkdiaryServiceTypeService.class).list(null, 1, 100);
Map<Short, String> stMap = stList.stream().collect(Collectors.toMap(WorkdiaryServiceTypeDTO::getServiceType, WorkdiaryServiceTypeDTO::getServiceTypeName)); Map<Short, String> stMap = stList.stream().collect(Collectors.toMap(WorkdiaryServiceTypeDTO::getServiceType, WorkdiaryServiceTypeDTO::getServiceTypeName));
@ -182,12 +191,28 @@ public class WorkdiaryServiceRecordServiceImpl extends BaseServiceImpl<Workdiary
public void save(WorkdiaryServiceRecordDTO dto) { public void save(WorkdiaryServiceRecordDTO dto) {
WorkdiaryServiceRecordEntity entity = ConvertUtils.sourceToTarget(dto, WorkdiaryServiceRecordEntity.class); WorkdiaryServiceRecordEntity entity = ConvertUtils.sourceToTarget(dto, WorkdiaryServiceRecordEntity.class);
// orgidPath LoginUserDetailsResultDTO currentStaff = getResultDataOrThrowsException(userOpenFeignClient.getLoginUserDetails(new LoginUserDetailsFormDTO(
Optional.ofNullable(CustomerOrgRedis.getGridInfo(dto.getGridId())) EpmetRequestHolder.getLoginUserApp(), EpmetRequestHolder.getLoginUserClient(), EpmetRequestHolder.getLoginUserId()
.ifPresent(gi -> { )), ServiceConstant.EPMET_USER_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "查询工作人员信息失败", "查询工作人员信息失败");
entity.setOrgIdPath(gi.getPids().concat(":").concat(gi.getId()));
entity.setAgencyId(gi.getPid()); String staffOrgIdPath = currentStaff.getOrgIdPath();
});
GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(dto.getGridId());
if (gridInfo == null) {
// 说明网格是其他组织下的
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "网格未找到", "网格未找到");
}
String gridOrgIdPath = gridInfo.getPids().concat(":").concat(gridInfo.getId());
if (!gridOrgIdPath.contains(staffOrgIdPath)) {
// 说明网格是其他组织下的
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "所选网格不在您所属组织下", "所选网格不在您所属组织下");
}
entity.setOrgIdPath(gridOrgIdPath);
entity.setAgencyId(gridInfo.getPid());
IcResiUserDTO applicant = getResultDataOrThrowsException(userOpenFeignClient.getIcResiUserDTO(dto.getApplicantId()), ServiceConstant.EPMET_USER_SERVER, IcResiUserDTO applicant = getResultDataOrThrowsException(userOpenFeignClient.getIcResiUserDTO(dto.getApplicantId()), ServiceConstant.EPMET_USER_SERVER,
EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), null, "未找到申请人信息"); EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), null, "未找到申请人信息");
@ -215,6 +240,7 @@ public class WorkdiaryServiceRecordServiceImpl extends BaseServiceImpl<Workdiary
entity.setPrincipalName(dto.getPrincipalName()); entity.setPrincipalName(dto.getPrincipalName());
entity.setServiceTime(dto.getServiceTime()); entity.setServiceTime(dto.getServiceTime());
entity.setRemark(dto.getRemark()); entity.setRemark(dto.getRemark());
//entity.setApplicantIdCard(dto.getApplicantIdCard());
// orgidPath // orgidPath
if (StringUtils.isNotBlank(dto.getGridId())) { if (StringUtils.isNotBlank(dto.getGridId())) {
@ -261,7 +287,7 @@ public class WorkdiaryServiceRecordServiceImpl extends BaseServiceImpl<Workdiary
@Override @Override
public void export(String gridId, Short serviceType, String applicantName, String applicantAddress, public void export(String gridId, Short serviceType, String applicantName, String applicantAddress,
String serviceContent, String applicantMobile, HttpServletResponse response) { String serviceContent, String applicantMobile, Date serviceTimeStart, Date serviceTimeEnd, HttpServletResponse response) {
ExcelWriter writer; ExcelWriter writer;
try { try {
@ -280,7 +306,9 @@ public class WorkdiaryServiceRecordServiceImpl extends BaseServiceImpl<Workdiary
//一次500条,分批导出 //一次500条,分批导出
int pageSize = 500; int pageSize = 500;
for (int pageNo = 1; ; pageNo++) { for (int pageNo = 1; ; pageNo++) {
PageData<WorkdiaryServiceRecordDTO> page = this.page(gridId, serviceType, applicantName, applicantAddress, serviceContent, applicantMobile, pageNo, pageSize); PageData<WorkdiaryServiceRecordDTO> page = this.page(gridId, serviceType, applicantName, applicantAddress, serviceContent,
applicantMobile, serviceTimeStart, serviceTimeEnd, pageNo, pageSize);
List<WorkdiaryServiceRecordDTO> list = page.getList(); List<WorkdiaryServiceRecordDTO> list = page.getList();
if (CollectionUtils.isEmpty(list)) { if (CollectionUtils.isEmpty(list)) {
// 空的,导出结束 // 空的,导出结束
@ -437,9 +465,21 @@ public class WorkdiaryServiceRecordServiceImpl extends BaseServiceImpl<Workdiary
row.setApplicantAddress(house.getFullName()); row.setApplicantAddress(house.getFullName());
} }
// 填充到entity // 填充到entity
WorkdiaryServiceRecordEntity record = new WorkdiaryServiceRecordEntity(EpmetRequestHolder.getLoginUserCustomerId(), serviceType.getServiceType(), currentStaff.getAgencyId(), WorkdiaryServiceRecordEntity record = new WorkdiaryServiceRecordEntity(
grid.getValue(), currentStaff.getOrgIdPath().concat(":").concat(grid.getValue()), resi.getId(), row.getApplicantName(), EpmetRequestHolder.getLoginUserCustomerId(),
row.getApplicantAddress(), row.getApplicantMobile(), row.getServiceContent(), row.getServiceTime(), row.getPrincipal(), row.getRemark()); serviceType.getServiceType(),
currentStaff.getAgencyId(),
grid.getValue(),
currentStaff.getOrgIdPath().concat(":").concat(grid.getValue()),
resi.getId(),
row.getApplicantIdCard(),
row.getApplicantName(),
row.getApplicantAddress(),
row.getApplicantMobile(),
row.getServiceContent(),
row.getServiceTime(),
row.getPrincipal(),
row.getRemark());
diaryRecordList.add(record); diaryRecordList.add(record);
} catch (ValidateException ve) { } catch (ValidateException ve) {

1
epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/WorkdiaryServiceRecordDao.xml

@ -11,6 +11,7 @@
<result property="gridId" column="GRID_ID"/> <result property="gridId" column="GRID_ID"/>
<result property="orgIdPath" column="ORG_ID_PATH"/> <result property="orgIdPath" column="ORG_ID_PATH"/>
<result property="applicantId" column="APPLICANT_ID"/> <result property="applicantId" column="APPLICANT_ID"/>
<result property="applicantIdCard" column="APPLICANT_ID_CARD"/>
<result property="applicantName" column="APPLICANT_NAME"/> <result property="applicantName" column="APPLICANT_NAME"/>
<result property="applicantAddress" column="APPLICANT_ADDRESS"/> <result property="applicantAddress" column="APPLICANT_ADDRESS"/>
<result property="applicantMobile" column="APPLICANT_MOBILE"/> <result property="applicantMobile" column="APPLICANT_MOBILE"/>

BIN
epmet-module/epmet-heart/epmet-heart-server/src/main/resources/templates/workdiary_service_import.xlsx

Binary file not shown.
Loading…
Cancel
Save