Browse Source

Merge branch 'dev_routine_work' of http://git.elinkit.com.cn:7070/r/epmet-cloud into dev_routine_work

master
wangxianzhang 4 years ago
parent
commit
5dec2edebd
  1. 29
      .gitignore
  2. 5
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueProjectCategoryDictDTO.java
  3. 18
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java
  4. 14
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java
  5. 13
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueProjectCategoryDictController.java
  6. 9
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectCategoryDictDao.java
  7. 3
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueProjectCategoryDictService.java
  8. 15
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java
  9. 18
      epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml
  10. 27
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ApprovaledListFromDTO.java
  11. 28
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ApprovaledListResultDTO.java
  12. 19
      epmet-module/gov-project/gov-project-server/pom.xml
  13. 34
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java
  14. 11
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java
  15. 29
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/ApprovaledListExcel.java
  16. 10
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectCategoryService.java
  17. 10
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java
  18. 22
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java
  19. 27
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectCategoryServiceImpl.java
  20. 18
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java
  21. 98
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java
  22. 25
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml
  23. 2
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcWorkListResultDTO.java
  24. 11
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PcworkRecordListResultDTO.java
  25. 15
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/PatrolRoutineWorkController.java
  26. 25
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StaffPatrolController.java
  27. 71
      epmet-user/epmet-user-server/src/main/java/com/epmet/excel/PcWorkListExport.java
  28. 83
      epmet-user/epmet-user-server/src/main/java/com/epmet/excel/StaffPatrolRecordExcel.java
  29. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/PatrolRoutineWorkService.java
  30. 4
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/StaffPatrolRecordService.java
  31. 72
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/PatrolRoutineWorkServiceImpl.java
  32. 49
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java
  33. 2
      epmet-user/epmet-user-server/src/main/resources/mapper/StaffPatrolRecordDao.xml

29
.gitignore

@ -1,29 +0,0 @@
# Created by .ignore support plugin (hsz.mobi)
### Java template
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.idea/
*.iml
target/

5
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueProjectCategoryDictDTO.java

@ -17,9 +17,10 @@
package com.epmet.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
@ -67,7 +68,7 @@ public class IssueProjectCategoryDictDTO implements Serializable {
* 分类名称
*/
private String categoryName;
private String parentCategoryName;
/**
* 分类类别1,2,3,4....
*/

18
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java

@ -4,9 +4,6 @@ import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.IssueApplicationDTO;
import com.epmet.dto.IssueDTO;
import com.epmet.dto.IssueSuggestionDTO;
import com.epmet.dto.*;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
@ -25,10 +22,7 @@ import com.epmet.resi.mine.dto.from.MyShiftIssueTopicsFormDTO;
import com.epmet.resi.mine.dto.result.MyShiftIssueTopicsResultDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@ -372,4 +366,14 @@ public interface GovIssueOpenFeignClient {
**/
@PostMapping(value = "/gov/issue/issueprojectcategorydict/getcategorylist")
Result<List<IssueProjectCategoryDictDTO>> getCategoryList(@RequestBody IssueProjectCategoryDictListFormDTO formDTO);
/**
* 获取项目分类名
* @Param customerId
* @Return {@link Result< Map< String, String>>}
* @Author zhaoqifeng
* @Date 2022/1/5 10:16
*/
@PostMapping("/gov/issue/issueprojectcategorydict/categoryMap/{customerId}")
Result<Map<String, String>> getCategoryMap(@PathVariable("customerId") String customerId);
}

14
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java

@ -305,4 +305,18 @@ public class GovIssueOpenFeignClientFallBack implements GovIssueOpenFeignClient
public Result<List<IssueProjectCategoryDictDTO>> getCategoryList(IssueProjectCategoryDictListFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "getCategoryList", formDTO);
}
/**
* 获取项目分类名
*
* @param customerId
* @Param customerId
* @Return {@link Result< Map< String, String>>}
* @Author zhaoqifeng
* @Date 2022/1/5 10:16
*/
@Override
public Result<Map<String, String>> getCategoryMap(String customerId) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "getCategoryMap", customerId);
}
}

13
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueProjectCategoryDictController.java

@ -33,7 +33,6 @@ import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.dto.IssueProjectCategoryDictDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.entity.IssueProjectCategoryDictEntity;
import com.epmet.excel.IssueProjectCategoryDictExcel;
import com.epmet.project.dto.CustomerCategoryDTO;
import com.epmet.project.dto.result.ProjectCategoryDictResultDTO;
@ -288,5 +287,17 @@ public class IssueProjectCategoryDictController {
return new Result<List<CategoryListResultDTO>>().ok(issueProjectCategoryDictService.selectCategoryOneLevelListByCustomerId(tokenDto.getCustomerId()));
}
/**
* 获取项目分类名
* @Param customerId
* @Return {@link Result< Map< String, String>>}
* @Author zhaoqifeng
* @Date 2022/1/5 10:16
*/
@PostMapping("categoryMap/{customerId}")
public Result<Map<String, String>> getCategoryMap(@PathVariable("customerId") String customerId) {
return new Result<Map<String, String>>().ok(issueProjectCategoryDictService.getCategoryMap(customerId));
}
}

9
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectCategoryDictDao.java

@ -192,4 +192,13 @@ public interface IssueProjectCategoryDictDao extends BaseDao<IssueProjectCategor
*/
List<CategoryListResultDTO> selectCategoryOneLevelListByCustomerId(@Param("customerId")String customerId);
/**
* @Description 获取客户下分类
* @Param customerId
* @Return {@link List< IssueProjectCategoryDictDTO>}
* @Author zhaoqifeng
* @Date 2022/1/5 10:45
*/
List<IssueProjectCategoryDictDTO> getCategoryByCustomer(@Param("customerId") String customerId);
}

3
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueProjectCategoryDictService.java

@ -25,7 +25,6 @@ import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.entity.IssueProjectCategoryDictEntity;
import com.epmet.project.dto.result.ProjectCategoryDictResultDTO;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import java.util.Map;
@ -230,4 +229,6 @@ public interface IssueProjectCategoryDictService extends BaseService<IssueProjec
*/
List<CategoryListResultDTO> selectCategoryOneLevelListByCustomerId(String customerId);
Map<String, String> getCategoryMap(String customerId);
}

15
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectCategoryDictServiceImpl.java

@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
@ -507,6 +508,20 @@ public class IssueProjectCategoryDictServiceImpl extends BaseServiceImpl<IssuePr
return baseDao.selectCategoryOneLevelListByCustomerId(customerId);
}
@Override
public Map<String, String> getCategoryMap(String customerId) {
List<IssueProjectCategoryDictDTO> list = baseDao.getCategoryByCustomer(customerId);
if (CollectionUtils.isEmpty(list)) {
return Collections.emptyMap();
}
list.forEach(item -> {
if(StringUtils.isNotBlank(item.getParentCategoryName())) {
item.setCategoryName(item.getParentCategoryName().concat(StrConstant.HYPHEN).concat(item.getCategoryName()));
}
});
return list.stream().collect(Collectors.toMap(IssueProjectCategoryDictDTO::getCategoryCode, IssueProjectCategoryDictDTO::getCategoryName));
}
/**
* @Description 项目分类处理
* @Param list

18
epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml

@ -41,7 +41,7 @@
ORDER BY sort ASC
</select>
<!-- sql递归 查询客户议题项目的分类信息以及递归查询二级分类信息 end-->
<select id="selectCategoryListByCustomer" resultType="com.epmet.entity.IssueProjectCategoryDictEntity">
<select id="selectCategoryListByCustomer" resultType="com.epmet.dto.IssueProjectCategoryDictDTO">
SELECT
ID,
PID,
@ -292,4 +292,20 @@
WHERE
customer_id = #{customerId} AND id = #{id} AND DEL_FLAG = '0'
</update>
<select id="getCategoryByCustomer" resultType="com.epmet.dto.IssueProjectCategoryDictDTO">
SELECT
a.CATEGORY_CODE,
a.CATEGORY_NAME,
b.CATEGORY_NAME AS parentCategoryName
FROM
issue_project_category_dict a
LEFT JOIN issue_project_category_dict b ON a.PARENT_CATEGORY_CODE = b.CATEGORY_CODE
AND b.DEL_FLAG = '0'
AND b.CUSTOMER_ID = #{customerId}
WHERE
a.DEL_FLAG = '0'
AND a.CUSTOMER_ID = #{customerId}
ORDER BY a.CATEGORY_CODE
</select>
</mapper>

27
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ApprovaledListFromDTO.java

@ -0,0 +1,27 @@
package com.epmet.dto.form;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description
* @Author zhaoqifeng
* @Date 2022/1/4 14:49
*/
@NoArgsConstructor
@Data
public class ApprovaledListFromDTO implements Serializable {
private static final long serialVersionUID = 5700160700676332579L;
private String customerId;
@NotBlank(message = "组织id不能为空")
private String agencyId;
private String startTime;
private String endTime;
private String staffId;
private Integer pageSize = 1;
private Integer pageNo = 20;
}

28
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ApprovaledListResultDTO.java

@ -0,0 +1,28 @@
package com.epmet.dto.result;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @Description
* @Author zhaoqifeng
* @Date 2022/1/4 14:58
*/
@NoArgsConstructor
@Data
public class ApprovaledListResultDTO implements Serializable {
private static final long serialVersionUID = 5118030421632653558L;
private String projectId;
private String title;
private String projectCategory;
private String locateAddress;
private String happenTime;
private String staffId;
private String staffName;
private String gridId;
private String gridName;
private String createdTime;
}

19
epmet-module/gov-project/gov-project-server/pom.xml

@ -65,6 +65,25 @@
<version>4.3</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.0.3</version>
<exclusions>
<exclusion>
<artifactId>poi</artifactId>
<groupId>org.apache.poi</groupId>
</exclusion>
<exclusion>
<artifactId>poi-ooxml</artifactId>
<groupId>org.apache.poi</groupId>
</exclusion>
<exclusion>
<artifactId>poi-ooxml-schemas</artifactId>
<groupId>org.apache.poi</groupId>
</exclusion>
</exclusions>
</dependency>
<!-- 替换Feign原生httpclient -->
<dependency>
<groupId>io.github.openfeign</groupId>

34
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java

@ -3,6 +3,7 @@ package com.epmet.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.annotation.RequirePermission;
import com.epmet.commons.tools.enums.RequirePermissionEnum;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
@ -18,6 +19,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
@ -380,5 +382,37 @@ public class ProjectTraceController {
ValidatorUtils.validateEntity(formDTO,EventToProjectFormDTO.ApprovalCategory.class,EventToProjectFormDTO.AddUserInternalGroup.class);
return new Result<EventToProjectResultDTO>().ok(projectTraceService.eventToProject(formDTO));
}
/**
* 网格员工作统计项目列表
*
* @Param formDTO
* @Return {@link Result< PageData< ApprovaledListResultDTO>>}
* @Author zhaoqifeng
* @Date 2022/1/4 15:32
*/
@PostMapping("pcwork/approvaled-list")
public Result<PageData<ApprovaledListResultDTO>> approvaledList(@LoginUser TokenDto tokenDto, @RequestBody ApprovaledListFromDTO formDTO) {
ValidatorUtils.validateEntity(formDTO);
formDTO.setCustomerId(tokenDto.getCustomerId());
PageData<ApprovaledListResultDTO> result = projectTraceService.approvaledList(formDTO);
return new Result<PageData<ApprovaledListResultDTO>>().ok(result);
}
/**
* 网格员工作统计项目列表 导出
*
* @Param tokenDto
* @Param formDTO
* @Return
* @Author zhaoqifeng
* @Date 2022/1/5 14:58
*/
@PostMapping("pcwork/approvaled-list/export")
public void approvaledListExport(HttpServletResponse response, @LoginUser TokenDto tokenDto, @RequestBody ApprovaledListFromDTO formDTO) {
ValidatorUtils.validateEntity(formDTO);
formDTO.setCustomerId(tokenDto.getCustomerId());
projectTraceService.approvaledListExport(response, formDTO);
}
}

11
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java

@ -267,4 +267,15 @@ public interface ProjectDao extends BaseDao<ProjectEntity> {
*/
List<ProjectDistributionAnalysisRightDTO> selectProjectCountByOrg(List<SonOrgResultDTO> orgIds,@Param("startDate")String startDate,@Param("endDate")String endDate);
/**
* 网格员立项
* @Param agencyId
* @Param staffId
* @Param startTime
* @Param endTime
* @Return {@link List< ApprovaledListResultDTO>}
* @Author zhaoqifeng
* @Date 2022/1/4 16:45
*/
List<ApprovaledListResultDTO> getGridMemberProjectList(@Param("agencyId") String agencyId, @Param("staffId") String staffId, @Param("startTime") String startTime, @Param("endTime") String endTime);
}

29
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/ApprovaledListExcel.java

@ -0,0 +1,29 @@
package com.epmet.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
/**
* @Description
* @Author zhaoqifeng
* @Date 2022/1/5 15:00
*/
@Getter
@Setter
@EqualsAndHashCode
public class ApprovaledListExcel {
@ExcelProperty("项目事件标题")
private String title;
@ExcelProperty("项目事件类别")
private String projectCategory;
@ExcelProperty("发生地点")
private String locateAddress;
@ExcelProperty("发生日期")
private String happenTime;
@ExcelProperty("网格员")
private String staffName;
@ExcelProperty("提交日期")
private String createdTime;
}

10
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectCategoryService.java

@ -28,6 +28,7 @@ import com.epmet.entity.ProjectCategoryEntity;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* 项目所属分类表
@ -126,4 +127,13 @@ public interface ProjectCategoryService extends BaseService<ProjectCategoryEntit
* @return
*/
List<ProjectCategoryDTO> getProjectCategoryService(String projectId);
/**
* @Description 获取项目分类列表
* @Param projectIds
* @Return {@link Map< String, Set< String>>}
* @Author zhaoqifeng
* @Date 2022/1/5 9:50
*/
Map<String, Set<String>> getProjectCategoryMap(List<String> projectIds);
}

10
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java

@ -357,4 +357,14 @@ public interface ProjectService extends BaseService<ProjectEntity> {
* @return
*/
TopicResearchAnalysisResDTO topicResearchAnalysis(TopicResearchAnalysisFormDTO formDTO);
/**
* 网格员工作统计项目列表
*
* @Param formDTO
* @Return {@link PageData< ApprovaledListResultDTO>}
* @Author zhaoqifeng
* @Date 2022/1/4 16:27
*/
PageData<ApprovaledListResultDTO> approvaledList(ApprovaledListFromDTO formDTO);
}

22
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java

@ -1,9 +1,11 @@
package com.epmet.service;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
@ -183,4 +185,24 @@ public interface ProjectTraceService {
* @date 2021/8/5 15:38
*/
EventToProjectResultDTO eventToProject(EventToProjectFormDTO formDTO);
/**
* 网格员工作统计项目列表
*
* @Param formDTO
* @Return {@link PageData< ApprovaledListResultDTO>}
* @Author zhaoqifeng
* @Date 2022/1/4 15:33
*/
PageData<ApprovaledListResultDTO> approvaledList(ApprovaledListFromDTO formDTO);
/**
* 网格员工作统计项目列表导出
*
* @Param formDTO
* @Return {@link PageData< ApprovaledListResultDTO>}
* @Author zhaoqifeng
* @Date 2022/1/4 15:33
*/
void approvaledListExport(HttpServletResponse response, ApprovaledListFromDTO formDTO);
}

27
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectCategoryServiceImpl.java

@ -17,6 +17,7 @@
package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
@ -39,15 +40,14 @@ import com.epmet.entity.ProjectEntity;
import com.epmet.feign.GovIssueOpenFeignClient;
import com.epmet.redis.ProjectCategoryRedis;
import com.epmet.service.ProjectCategoryService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
* 项目所属分类表
@ -225,4 +225,23 @@ public class ProjectCategoryServiceImpl extends BaseServiceImpl<ProjectCategoryD
return baseDao.selectListByProjectId(projectId);
}
/**
* @param projectIds
* @Description 获取项目分类列表
* @Param projectIds
* @Return {@link Map< String, Set < String>>}
* @Author zhaoqifeng
* @Date 2022/1/5 9:50
*/
@Override
public Map<String, Set<String>> getProjectCategoryMap(List<String> projectIds) {
LambdaQueryWrapper<ProjectCategoryEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.in(ProjectCategoryEntity::getProjectId, projectIds);
List<ProjectCategoryEntity> list = baseDao.selectList(wrapper);
if (CollectionUtils.isEmpty(list)) {
return Collections.emptyMap();
}
return list.stream().collect(Collectors.groupingBy(ProjectCategoryEntity::getProjectId, Collectors.mapping(ProjectCategoryEntity::getCategoryCode, Collectors.toSet())));
}
}

18
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java

@ -3045,6 +3045,24 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
return resultDTO;
}
/**
* 网格员工作统计项目列表
*
* @param formDTO
* @Param formDTO
* @Return {@link PageData< ApprovaledListResultDTO>}
* @Author zhaoqifeng
* @Date 2022/1/4 16:27
*/
@Override
public PageData<ApprovaledListResultDTO> approvaledList(ApprovaledListFromDTO formDTO) {
PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize());
List<ApprovaledListResultDTO> list = baseDao.getGridMemberProjectList(formDTO.getAgencyId(), formDTO.getStaffId(),
formDTO.getStartTime(), formDTO.getEndTime());
PageInfo<ApprovaledListResultDTO> pageInfo = new PageInfo<>(list);
return new PageData<>(list, pageInfo.getTotal());
}
/**
* @Description 区间项目分类数量处理
* 查询的是时间段内的分类项目数查询的时间 是传入一个日期拼上时间在进行比较大小

98
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java

@ -1,23 +1,28 @@
package com.epmet.service.impl;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.epmet.commons.rocketmq.messages.ProjectChangedMQMsg;
import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.enums.OrgTypeEnum;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.scan.param.TextScanParamDTO;
import com.epmet.commons.tools.scan.param.TextTaskDTO;
import com.epmet.commons.tools.scan.result.SyncScanResult;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.IpUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.ScanContentUtils;
import com.epmet.commons.tools.utils.*;
import com.epmet.constant.*;
import com.epmet.dao.ProjectOrgRelationDao;
import com.epmet.dao.ProjectProcessAttachmentDao;
@ -29,22 +34,24 @@ import com.epmet.dto.ProjectStaffDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.entity.*;
import com.epmet.excel.ApprovaledListExcel;
import com.epmet.feign.*;
import com.epmet.send.SendMqMsgUtil;
import com.epmet.service.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
import java.util.stream.Collectors;
@ -882,6 +889,85 @@ public class ProjectTraceServiceImpl<ProjectTagService> implements ProjectTraceS
return resultDTO;
}
/**
* 网格员工作统计项目列表
*
* @param formDTO
* @Param formDTO
* @Return {@link PageData < ApprovaledListResultDTO>}
* @Author zhaoqifeng
* @Date 2022/1/4 15:33
*/
@Override
public PageData<ApprovaledListResultDTO> approvaledList(ApprovaledListFromDTO formDTO) {
//获取项目列表
PageData<ApprovaledListResultDTO> result = projectService.approvaledList(formDTO);
//获取项目分类
Result<Map<String, String>> categoryMapResult = govIssueOpenFeignClient.getCategoryMap(formDTO.getCustomerId());
if (!categoryMapResult.success()) {
throw new EpmetException(categoryMapResult.getCode(),categoryMapResult.getMsg());
}
Map<String, String> categoryMap = categoryMapResult.getData();
if(CollectionUtils.isNotEmpty(result.getList())) {
List<String> projectIds = result.getList().stream().map(ApprovaledListResultDTO::getProjectId).collect(Collectors.toList());
Map<String, Set<String>> projectCategory = projectCategoryService.getProjectCategoryMap(projectIds);
result.getList().forEach(item -> {
//工作人员姓名
CustomerStaffInfoCacheResult staff = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), item.getStaffId());
item.setStaffName(staff.getRealName());
//项目分类
Set<String> categoryList = projectCategory.get(item.getProjectId());
if (null != categoryList) {
List<String> categoryNames = new ArrayList<>();
categoryList.forEach(category -> {
if (StringUtils.isNotBlank(categoryMap.get(category))) {
categoryNames.add(categoryMap.get(category));
}
} );
item.setProjectCategory(StringUtils.join(categoryNames.toArray(), StrConstant.SEMICOLON));
}
});
}
return result;
}
/**
* 网格员工作统计项目列表导出
*
* @param formDTO
* @Param formDTO
* @Return {@link PageData< ApprovaledListResultDTO>}
* @Author zhaoqifeng
* @Date 2022/1/4 15:33
*/
@Override
public void approvaledListExport(HttpServletResponse response, ApprovaledListFromDTO formDTO) {
formDTO.setPageNo(NumConstant.ONE);
formDTO.setPageSize(NumConstant.ONE_THOUSAND);
ExcelWriter excelWriter = null;
try {
excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel("直接立项记录.xlsx", response)).build();
WriteSheet writeSheet = EasyExcel.writerSheet().build();
writeSheet.setClazz(ApprovaledListExcel.class);
Integer num;
//一千条一循环分批写入
do {
List<ApprovaledListResultDTO> list = approvaledList(formDTO).getList();
List<ApprovaledListExcel> data = ConvertUtils.sourceToTarget(list, ApprovaledListExcel.class);
excelWriter.write(data, writeSheet);
num = data.size();
formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE);
} while (num > NumConstant.ZERO && num.compareTo(formDTO.getPageSize()) == NumConstant.ZERO);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (excelWriter != null) {
excelWriter.finish();
}
}
}
private List<StaffListResultDTO> queryStaffListRes(List<TickStaffFormDTO> staffList,String currentUserId) {
List<String> staffIdList = staffList.stream().map(TickStaffFormDTO::getStaffId).collect(Collectors.toList());
staffIdList.add(currentUserId);

25
epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml

@ -483,4 +483,29 @@
AND DATE_FORMAT(CREATED_TIME,'%Y-%m-%d') <![CDATA[ <= ]]> #{endDate}
</foreach>
</select>
<select id="getGridMemberProjectList" resultType="com.epmet.dto.result.ApprovaledListResultDTO">
SELECT
ID AS "projectId",
TITLE,
LOCATE_ADDRESS,
DATE_FORMAT( CREATED_TIME, '%Y-%m-%d' ) AS "happenTime",
CREATED_BY AS "staffId",
DATE_FORMAT( CREATED_TIME, '%Y-%m-%d %H:%i:%s' ) AS "createdTime"
FROM
project
WHERE
DEL_FLAG = '0'
AND ORIGIN = 'agency'
AND AGENCY_ID = #{agencyId}
<if test="staffId != null and staffId != ''">
AND CREATED_BY = #{staffId}
</if>
<if test="startTime != null and startTime != ''">
AND DATE_FORMAT( CREATED_TIME, '%Y-%m-%d' ) &gt;= #{startTime}
</if>
<if test="endTime != null and endTime != ''">
AND DATE_FORMAT( CREATED_TIME, '%Y-%m-%d' ) &lt;= #{endTime}
</if>
ORDER BY CREATED_TIME DESC
</select>
</mapper>

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

15
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/PatrolRoutineWorkController.java

@ -1,6 +1,10 @@
package com.epmet.controller;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.epmet.commons.tools.aop.NoRepeatSubmit;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.PatrolRoutineWorkFormDTO;
@ -8,16 +12,21 @@ import com.epmet.dto.form.PcWorkListFormDTO;
import com.epmet.dto.form.patrol.PatrolQueryFormDTO;
import com.epmet.dto.result.PatrolRoutineWorkResult;
import com.epmet.dto.result.PcWorkListResultDTO;
import com.epmet.excel.PcWorkListExport;
import com.epmet.service.PatrolRoutineWorkService;
import com.github.pagehelper.Page;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import static io.netty.handler.codec.smtp.SmtpRequests.data;
/**
* 例行工作
*
@ -70,4 +79,10 @@ public class PatrolRoutineWorkController {
return new Result<PcWorkListResultDTO>().ok(gridUserWorkService.pcWorkList(formDTO));
}
@PostMapping("pcwork/list/export")
public void pcWorkListExport(@RequestBody PcWorkListFormDTO formDTO, HttpServletResponse response) throws Exception {
ValidatorUtils.validateEntity(formDTO, PcWorkListFormDTO.PcWorkListForm.class);
gridUserWorkService.pcWorkListExport(formDTO,response);
}
}

25
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StaffPatrolController.java

@ -1,23 +1,37 @@
package com.epmet.controller;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.builder.ExcelWriterSheetBuilder;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.metadata.fill.FillWrapper;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.annotation.RequirePermission;
import com.epmet.commons.tools.aop.NoRepeatSubmit;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.enums.RequirePermissionEnum;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.*;
import com.epmet.dto.form.patrol.PcworkRecordListFormDTO;
import com.epmet.dto.result.*;
import com.epmet.excel.StaffPatrolRecordExcel;
import com.epmet.service.StaffPatrolDetailService;
import com.epmet.service.StaffPatrolRecordService;
import com.epmet.util.TestFileUtil;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.List;
/**
@ -167,4 +181,15 @@ public class StaffPatrolController {
return new Result<PcworkRecordListResultDTO>().ok(staffPatrolRecordService.pcworkRecordList(formDTO));
}
/**
* @Author sun
* @Description 网格员工作统计巡查记录列表导出
**/
@NoRepeatSubmit
@PostMapping("pcwork/record-list/export")
public void pcworkRecordListExport(HttpServletResponse response, @RequestBody PcworkRecordListFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, PcworkRecordListFormDTO.Staff.class);
staffPatrolRecordService.pcworkRecordListExport(response, formDTO);
}
}

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

@ -0,0 +1,71 @@
package com.epmet.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.write.style.ColumnWidth;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
/**
* @Author zxc
* @DateTime 2022/1/5 10:00 上午
* @DESC
*/
@Getter
@Setter
@EqualsAndHashCode
public class PcWorkListExport {
@ExcelProperty("事项名称")
@ColumnWidth(20)
private String title;
@ExcelProperty("事项类型码")
@ColumnWidth(20)
@ExcelIgnore
private String workTypeCode;
@ExcelProperty("事项类型名称")
@ColumnWidth(40)
private String workTypeNames;
@ExcelProperty("有无异常")
private String isNormal;
@ExcelProperty("发生地点")
@ColumnWidth(20)
private String happenAddress;
@ExcelProperty("发生时间")
@ColumnWidth(20)
private String happenTime;
@ExcelProperty("人员ID")
@ExcelIgnore
private String staffId;
@ExcelProperty("人员姓名")
@ColumnWidth(20)
private String staffName;
@ExcelProperty("网格ID")
@ExcelIgnore
private String gridId;
@ExcelProperty("网格名字")
@ColumnWidth(20)
private String gridName;
@ExcelProperty("提交日期")
@ColumnWidth(30)
private String createdTime;
@ExcelProperty("工作内容")
@ColumnWidth(60)
private String workContent;
}

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

@ -0,0 +1,83 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.excel;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
/**
* @Description 网格员工作统计巡查记录列表导出
* @Author sun
*/
@Getter
@Setter
@EqualsAndHashCode
public class StaffPatrolRecordExcel {
@ExcelProperty("人员ID")
@ExcelIgnore
private String staffId;
@ExcelProperty("人员名称")
@ColumnWidth(15)
private String staffName;
@ExcelProperty("网格ID")
@ExcelIgnore
private String gridId;
@ExcelProperty("网格名称")
@ColumnWidth(20)
private String gridName;
@ExcelProperty("状态(英文key)")
@ExcelIgnore
private String status;
@ExcelProperty("状态")
@ColumnWidth(18)
private String statusName;
@DateTimeFormat("yyyy年MM月dd日")
@ExcelProperty("巡查开始时间")
@ColumnWidth(20)
private Date patrolStartTime;
@DateTimeFormat("yyyy年MM月dd日")
@ExcelProperty("巡查结束时间")
@ColumnWidth(20)
private Date patrolEndTime;
@ExcelProperty("巡查时长")
@ColumnWidth(20)
private String totalTime;
@ExcelIgnore
private Integer totalTimeNum;;
}

2
epmet-user/epmet-user-server/src/main/java/com/epmet/service/PatrolRoutineWorkService.java

@ -26,6 +26,7 @@ import com.epmet.dto.result.PcWorkListResultDTO;
import com.epmet.entity.PatrolRoutineWorkEntity;
import com.github.pagehelper.Page;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
@ -56,4 +57,5 @@ public interface PatrolRoutineWorkService extends BaseService<PatrolRoutineWorkE
* @date 2022/1/4 2:18 下午
*/
PcWorkListResultDTO pcWorkList(PcWorkListFormDTO formDTO);
void pcWorkListExport(PcWorkListFormDTO formDTO, HttpServletResponse response) throws Exception;
}

4
epmet-user/epmet-user-server/src/main/java/com/epmet/service/StaffPatrolRecordService.java

@ -24,6 +24,7 @@ import com.epmet.dto.form.patrol.PcworkRecordListFormDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.StaffPatrolRecordEntity;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
@ -116,4 +117,7 @@ public interface StaffPatrolRecordService extends BaseService<StaffPatrolRecordE
* @Description 网格员工作统计巡查记录列表
**/
PcworkRecordListResultDTO pcworkRecordList(PcworkRecordListFormDTO formDTO);
void pcworkRecordListExport(HttpServletResponse response, PcworkRecordListFormDTO formDTO);
}

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

@ -17,6 +17,9 @@
package com.epmet.service.impl;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.rocketmq.messages.BaseMQMsgDTO;
@ -24,10 +27,15 @@ import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.result.DictTreeResultDTO;
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.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.utils.ConvertUtils;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.SystemMessageType;
import com.epmet.dao.PatrolRoutineWorkDao;
@ -41,6 +49,7 @@ import com.epmet.dto.result.PatrolRoutineWorkResult;
import com.epmet.dto.result.PcWorkListResultDTO;
import com.epmet.entity.PatrolRoutineWorkEntity;
import com.epmet.entity.PatrolRoutineWorkTypeEntity;
import com.epmet.excel.PcWorkListExport;
import com.epmet.feign.EpmetAdminOpenFeignClient;
import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.feign.GovOrgOpenFeignClient;
@ -57,6 +66,9 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.servlet.http.HttpServletResponse;
import java.beans.Encoder;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -190,6 +202,64 @@ public class PatrolRoutineWorkServiceImpl extends BaseServiceImpl<PatrolRoutineW
return result;
}
@Override
public void pcWorkListExport(PcWorkListFormDTO formDTO, HttpServletResponse response) throws Exception {
String fileName = getFileName(formDTO);
ExcelWriter excelWriter = null;
try {
String name = URLEncoder.encode(fileName, "UTF-8");
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-disposition", "attachment;");
excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(name,response),PcWorkListExport.class).build();
// 如果同一个sheet只要创建一次
WriteSheet writeSheet = EasyExcel.writerSheet(name).build();
Integer pageNo = NumConstant.ONE;
Integer pageSize = NumConstant.ONE_HUNDRED;
Integer num = NumConstant.ZERO;
do {
formDTO.setPageNo(pageNo);
formDTO.setPageSize(pageSize);
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();
excelWriter.write(data, writeSheet);
pageNo++;
}while (num > NumConstant.ZERO && num.compareTo(pageSize) == NumConstant.ZERO);
} finally {
if (excelWriter != null) {
excelWriter.finish();
}
}
}
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
* @param workTypeList
@ -206,7 +276,7 @@ public class PatrolRoutineWorkServiceImpl extends BaseServiceImpl<PatrolRoutineW
workTypeList.forEach(w1 -> {
w1.getChildren().forEach(w2 -> {
if (c.equals(w2.getId())){
result.add(w1.getName() + "-" + w2.getName());
result.add(w1.getName() + StrConstant.HYPHEN + w2.getName());
}
});
});

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

@ -1,6 +1,9 @@
package com.epmet.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
@ -13,7 +16,9 @@ import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.PatrolConstant;
import com.epmet.constant.SystemMessageType;
@ -29,6 +34,7 @@ import com.epmet.dto.result.*;
import com.epmet.entity.StaffPatrolDetailEntity;
import com.epmet.entity.StaffPatrolRecordEntity;
import com.epmet.entity.StatsStaffPatrolRecordDailyEntity;
import com.epmet.excel.StaffPatrolRecordExcel;
import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.feign.GovProjectOpenFeignClient;
@ -46,6 +52,9 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.*;
import java.util.stream.Collectors;
@ -497,10 +506,50 @@ public class StaffPatrolRecordServiceImpl extends BaseServiceImpl<StaffPatrolRec
r.setGridName(resultGrid.getData().getGridName());
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.封装数据并返回
resultDTO.setTotal((int)result.getTotal());
resultDTO.setList(result.getList());
return resultDTO;
}
/**
* @Author sun
* @Description 网格员工作统计巡查记录列表导出
**/
@Override
public void pcworkRecordListExport(HttpServletResponse response, PcworkRecordListFormDTO formDTO) {
formDTO.setPageNo(NumConstant.ONE);
formDTO.setPageSize(NumConstant.ONE_THOUSAND);
ExcelWriter excelWriter = null;
try {
excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel("网格员巡查记录.xlsx", response)).build();
/*WriteSheet writeSheet = EasyExcel.writerSheet("sheet").build();
writeSheet.setClazz(StaffPatrolRecordExcel.class);*/
int num = NumConstant.ZERO;
//一千条一个sheet页,循环分批写入
do {
PcworkRecordListResultDTO dto = pcworkRecordList(formDTO);
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);
num = data.size();
formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE);
} while (num == formDTO.getPageSize());
} catch (Exception e) {
e.printStackTrace();
} finally {
if (excelWriter != null) {
excelWriter.finish();
}
}
}
}

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,
spr.patrol_start_time patrolStartTime,
spr.patrol_end_time patrolEndTime,
spr.total_time totalTime
spr.total_time totalTimeNum
FROM
staff_patrol_record spr
LEFT JOIN customer_staff cs ON spr.staff_id = cs.user_id

Loading…
Cancel
Save