diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/workdiaryservice/WorkdiaryServiceQueryFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/workdiaryservice/WorkdiaryServiceQueryFormDTO.java index 2f5a628916..3d581924a3 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/workdiaryservice/WorkdiaryServiceQueryFormDTO.java +++ b/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; + } diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/WorkdiaryServiceRecordDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/WorkdiaryServiceRecordDTO.java index 98d4eacb1e..8e75f55c34 100755 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/WorkdiaryServiceRecordDTO.java +++ b/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; /** * 负责人姓名 diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/WorkdiaryServiceController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/WorkdiaryServiceController.java index ab69929616..230e3617ee 100755 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/WorkdiaryServiceController.java +++ b/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 page = workdiaryServiceRecordService.page( - gridId, serviceType, applicantName, applicantAddress, serviceContent, applicantMobile, pageNo, pageSize); + gridId, serviceType, applicantName, applicantAddress, serviceContent, applicantMobile, startTime, endTime, pageNo, pageSize); return new Result>().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); } /** diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/WorkdiaryServiceRecordEntity.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/WorkdiaryServiceRecordEntity.java index 16db6c8bc5..a72064b8cd 100755 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/WorkdiaryServiceRecordEntity.java +++ b/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; /** * 负责人姓名 diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/WorkdiaryServiceRecordExcel.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/WorkdiaryServiceRecordExcel.java index 631c3ed943..07b2b19797 100755 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/WorkdiaryServiceRecordExcel.java +++ b/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(); } } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/WorkdiaryServiceRecordService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/WorkdiaryServiceRecordService.java index 4dfc2f3cb5..f574f47f17 100755 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/WorkdiaryServiceRecordService.java +++ b/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 page(Map params); PageData 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 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 stList = SpringContextUtils.getBean(WorkdiaryServiceTypeService.class).list(null, 1, 100); Map stMap = stList.stream().collect(Collectors.toMap(WorkdiaryServiceTypeDTO::getServiceType, WorkdiaryServiceTypeDTO::getServiceTypeName)); @@ -182,12 +191,28 @@ public class WorkdiaryServiceRecordServiceImpl extends BaseServiceImpl { - 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 page = this.page(gridId, serviceType, applicantName, applicantAddress, serviceContent, applicantMobile, pageNo, pageSize); + PageData page = this.page(gridId, serviceType, applicantName, applicantAddress, serviceContent, + applicantMobile, serviceTimeStart, serviceTimeEnd, pageNo, pageSize); + List list = page.getList(); if (CollectionUtils.isEmpty(list)) { // 空的,导出结束 @@ -437,9 +465,21 @@ public class WorkdiaryServiceRecordServiceImpl extends BaseServiceImpl + diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/templates/workdiary_service_import.xlsx b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/templates/workdiary_service_import.xlsx index 06bf284e8b..0938c354cf 100644 Binary files a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/templates/workdiary_service_import.xlsx and b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/templates/workdiary_service_import.xlsx differ