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;
import com.epmet.commons.tools.dto.form.PageFormDTO;
import com.fasterxml.jackson.annotation.JsonFormat;
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 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 com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@ -65,6 +67,8 @@ public class WorkdiaryServiceRecordDTO implements Serializable {
@NotBlank(message = "申请人为必填项", groups = { Save.class })
private String applicantId;
private String applicantIdCard;
/**
* 申请人姓名
*/
@ -91,8 +95,10 @@ public class WorkdiaryServiceRecordDTO implements Serializable {
/**
* 服务时间
*/
@NotBlank(message = "服务时间为必填项", groups = { Save.class })
private String serviceTime;
@NotNull(message = "服务时间为必填项", groups = { Save.class })
@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.net.URLEncoder;
import java.nio.file.Path;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
@ -83,9 +84,11 @@ public class WorkdiaryServiceController implements ResultDataResolver {
String applicantMobile = query.getApplicantMobile();
Integer pageNo = query.getPageNo();
Integer pageSize = query.getPageSize();
Date startTime = query.getServiceTimeStart();
Date endTime = query.getServiceTimeEnd();
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);
}
@ -151,7 +154,11 @@ public class WorkdiaryServiceController implements ResultDataResolver {
String applicantAddress = query.getApplicantAddress();
String serviceContent = query.getServiceContent();
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 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;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.dto.result.WorkdiaryServiceRecordDTO;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
* 工作日志(服务)-记录 excel
@ -33,6 +39,10 @@ public class WorkdiaryServiceRecordExcel {
@ExcelProperty(value = "申请人")
private String applicantName;
@ColumnWidth(10)
@ExcelProperty(value = "证件号")
private String applicantIdCard;
@ColumnWidth(25)
@ExcelProperty(value = "住址")
private String applicantAddress;
@ -50,24 +60,27 @@ public class WorkdiaryServiceRecordExcel {
@ExcelProperty(value = "负责人")
private String principal;
@NotBlank(message = "服务时间必填")
@NotNull(message = "服务时间必填")
@ColumnWidth(10)
@ExcelProperty(value = "服务时间")
private String serviceTime;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date serviceTime;
@ColumnWidth(20)
@ExcelProperty(value = "备注")
private String remark;
public WorkdiaryServiceRecordExcel(WorkdiaryServiceRecordDTO dto) {
this.gridName = dto.getGridName();
this.serviceTypeName = dto.getServiceTypeName();
this.applicantName = dto.getApplicantName();
this.applicantAddress = dto.getApplicantAddress();
this.serviceContent = dto.getServiceContent();
this.applicantMobile = dto.getApplicantMobile();
this.principal = dto.getPrincipalName();
this.serviceTime = dto.getServiceTime();
this.remark = dto.getRemark();
BeanUtil.copyProperties(dto, this);
//this.gridName = dto.getGridName();
//this.serviceTypeName = dto.getServiceTypeName();
//this.applicantName = dto.getApplicantName();
//this.applicantAddress = dto.getApplicantAddress();
//this.serviceContent = dto.getServiceContent();
//this.applicantMobile = dto.getApplicantMobile();
//this.principal = dto.getPrincipalName();
//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 java.nio.file.Path;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -31,7 +32,8 @@ public interface WorkdiaryServiceRecordService extends BaseService<WorkdiaryServ
PageData<WorkdiaryServiceRecordDTO> page(Map<String, Object> params);
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 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);

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.page.PageData;
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.utils.*;
import com.epmet.commons.tools.validator.ValidatorUtils;
@ -127,7 +128,8 @@ public class WorkdiaryServiceRecordServiceImpl extends BaseServiceImpl<Workdiary
@Override
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(
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.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);
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) {
WorkdiaryServiceRecordEntity entity = ConvertUtils.sourceToTarget(dto, WorkdiaryServiceRecordEntity.class);
// orgidPath
Optional.ofNullable(CustomerOrgRedis.getGridInfo(dto.getGridId()))
.ifPresent(gi -> {
entity.setOrgIdPath(gi.getPids().concat(":").concat(gi.getId()));
entity.setAgencyId(gi.getPid());
});
LoginUserDetailsResultDTO currentStaff = getResultDataOrThrowsException(userOpenFeignClient.getLoginUserDetails(new LoginUserDetailsFormDTO(
EpmetRequestHolder.getLoginUserApp(), EpmetRequestHolder.getLoginUserClient(), EpmetRequestHolder.getLoginUserId()
)), ServiceConstant.EPMET_USER_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "查询工作人员信息失败", "查询工作人员信息失败");
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,
EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), null, "未找到申请人信息");
@ -215,6 +240,7 @@ public class WorkdiaryServiceRecordServiceImpl extends BaseServiceImpl<Workdiary
entity.setPrincipalName(dto.getPrincipalName());
entity.setServiceTime(dto.getServiceTime());
entity.setRemark(dto.getRemark());
//entity.setApplicantIdCard(dto.getApplicantIdCard());
// orgidPath
if (StringUtils.isNotBlank(dto.getGridId())) {
@ -261,7 +287,7 @@ public class WorkdiaryServiceRecordServiceImpl extends BaseServiceImpl<Workdiary
@Override
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;
try {
@ -280,7 +306,9 @@ public class WorkdiaryServiceRecordServiceImpl extends BaseServiceImpl<Workdiary
//一次500条,分批导出
int pageSize = 500;
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();
if (CollectionUtils.isEmpty(list)) {
// 空的,导出结束
@ -437,9 +465,21 @@ public class WorkdiaryServiceRecordServiceImpl extends BaseServiceImpl<Workdiary
row.setApplicantAddress(house.getFullName());
}
// 填充到entity
WorkdiaryServiceRecordEntity record = new WorkdiaryServiceRecordEntity(EpmetRequestHolder.getLoginUserCustomerId(), serviceType.getServiceType(), currentStaff.getAgencyId(),
grid.getValue(), currentStaff.getOrgIdPath().concat(":").concat(grid.getValue()), resi.getId(), row.getApplicantName(),
row.getApplicantAddress(), row.getApplicantMobile(), row.getServiceContent(), row.getServiceTime(), row.getPrincipal(), row.getRemark());
WorkdiaryServiceRecordEntity record = new WorkdiaryServiceRecordEntity(
EpmetRequestHolder.getLoginUserCustomerId(),
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);
} 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="orgIdPath" column="ORG_ID_PATH"/>
<result property="applicantId" column="APPLICANT_ID"/>
<result property="applicantIdCard" column="APPLICANT_ID_CARD"/>
<result property="applicantName" column="APPLICANT_NAME"/>
<result property="applicantAddress" column="APPLICANT_ADDRESS"/>
<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