diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/form/CategoryTopAppealFormDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/form/CategoryTopAppealFormDTO.java new file mode 100644 index 0000000000..a6c992abef --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/form/CategoryTopAppealFormDTO.java @@ -0,0 +1,28 @@ +package com.epmet.project.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/8/17 10:06 上午 + * @DESC + */ +@Data +public class CategoryTopAppealFormDTO implements Serializable { + + private static final long serialVersionUID = -1252908912057212505L; + + public interface CategoryTopAppealForm{} + + @NotBlank(message = "组织ID不能为空",groups = CategoryTopAppealForm.class) + private String agencyId; + + @NotNull(message = "topCount不能为空",groups = CategoryTopAppealForm.class) + private Integer topCount; + + private String customerId; +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/CategoryTopAppealResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/CategoryTopAppealResultDTO.java new file mode 100644 index 0000000000..6b5a1000ec --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/CategoryTopAppealResultDTO.java @@ -0,0 +1,38 @@ +package com.epmet.project.dto.result; + +import com.epmet.commons.tools.constant.NumConstant; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/8/18 11:09 上午 + * @DESC + */ +@Data +public class CategoryTopAppealResultDTO implements Serializable { + + private static final long serialVersionUID = -4334256489103188282L; + + /** + * 分类ID + */ + private String categoryId; + + /** + * 分类名称 + */ + private String categoryName; + + /** + * 分类数量 + */ + private Integer categoryCount; + + public CategoryTopAppealResultDTO() { + this.categoryId = ""; + this.categoryName = ""; + this.categoryCount = NumConstant.ZERO; + } +} diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/ScreenProjectController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/ScreenProjectController.java index c41380b282..94cd036277 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/ScreenProjectController.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/ScreenProjectController.java @@ -12,6 +12,8 @@ import com.epmet.evaluationindex.screen.dto.form.ScreenProjectDetailFormDTO; import com.epmet.evaluationindex.screen.dto.form.ScreenProjectDistributionFormDTO; import com.epmet.evaluationindex.screen.dto.result.ProjectDetailResultDTO; import com.epmet.evaluationindex.screen.dto.result.ScreenProjectDistributionResultDTO; +import com.epmet.project.dto.form.CategoryTopAppealFormDTO; +import com.epmet.project.dto.result.CategoryTopAppealResultDTO; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -139,4 +141,18 @@ public class ScreenProjectController { return new Result().ok(screenProjectService.colorProjectTotal(formDTO)); } + /** + * @Description 事件分析-类型分析-群众诉求【top20】 + * @Param customerId + * @Param formDTO + * @author zxc + * @date 2021/8/18 11:16 上午 + */ + @PostMapping("categorytopappeal") + public Result> categoryTopAppeal(@RequestHeader("CustomerId") String customerId, @RequestBody CategoryTopAppealFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO, CategoryTopAppealFormDTO.CategoryTopAppealForm.class); + formDTO.setCustomerId(customerId); + return new Result>().ok(screenProjectService.categoryTopAppeal(formDTO)); + } + } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.java index 9e203ee3e4..98de75653b 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenProjectCategoryOrgDailyDao.java @@ -19,6 +19,7 @@ package com.epmet.datareport.dao.evaluationindex.screen; import com.epmet.dto.result.screen.CategoryAnalysisResultDTO; import com.epmet.project.CustomerProjectCategoryDTO; +import com.epmet.project.dto.result.CategoryTopAppealResultDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -42,4 +43,13 @@ public interface ScreenProjectCategoryOrgDailyDao { List selectCategoryAnalysis(@Param("agencyId") String agencyId,@Param("customerId")String customerId); CustomerProjectCategoryDTO selectProjectCategory(@Param("categoryCode")String categoryCode, @Param("customerId")String customerId, @Param("subCustomerIds")List subCustomerIds); + + /** + * @Description 查询事件分类 + * @Param agencyId + * @Param customerId + * @author zxc + * @date 2021/8/18 1:40 下午 + */ + List categoryTopAppeal(@Param("agencyId") String agencyId,@Param("customerId")String customerId,@Param("topCount")Integer topCount); } \ No newline at end of file diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/ScreenProjectService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/ScreenProjectService.java index 7e708c3abe..e8d9110198 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/ScreenProjectService.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/ScreenProjectService.java @@ -10,6 +10,8 @@ import com.epmet.evaluationindex.screen.dto.form.ScreenProjectDetailFormDTO; import com.epmet.evaluationindex.screen.dto.form.ScreenProjectDistributionFormDTO; import com.epmet.evaluationindex.screen.dto.result.ProjectDetailResultDTO; import com.epmet.evaluationindex.screen.dto.result.ScreenProjectDistributionResultDTO; +import com.epmet.project.dto.form.CategoryTopAppealFormDTO; +import com.epmet.project.dto.result.CategoryTopAppealResultDTO; import java.util.List; @@ -50,4 +52,14 @@ public interface ScreenProjectService { * @date 2021/6/1 3:20 下午 */ ColorProjectTotalResultDTO colorProjectTotal(ColorProjectTotalFormDTO formDTO); + + /** + * @Description 事件分析-类型分析-群众诉求【top20】 + * @Param customerId + * @Param formDTO + * @author zxc + * @date 2021/8/18 11:16 上午 + */ + List categoryTopAppeal(CategoryTopAppealFormDTO formDTO); + } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/ScreenProjectServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/ScreenProjectServiceImpl.java index 81a854c5de..afd527d643 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/ScreenProjectServiceImpl.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/ScreenProjectServiceImpl.java @@ -25,6 +25,8 @@ import com.epmet.evaluationindex.screen.dto.result.ScreenProjectDistributionResu import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.feign.OperCrmOpenFeignClient; import com.epmet.project.CustomerProjectCategoryDTO; +import com.epmet.project.dto.form.CategoryTopAppealFormDTO; +import com.epmet.project.dto.result.CategoryTopAppealResultDTO; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -206,4 +208,35 @@ public class ScreenProjectServiceImpl implements ScreenProjectService { } return result; } + + /** + * @Description 事件分析-类型分析-群众诉求【top20】分类level = '1'的 + * 为了方便直接copy的事件分析接口 哈哈哈😂 + * @Param customerId + * @Param formDTO + * @author zxc + * @date 2021/8/18 11:16 上午 + */ + @Override + public List categoryTopAppeal(CategoryTopAppealFormDTO formDTO) { + String customerId = formDTO.getCustomerId(); + List result = screenProjectCategoryOrgDailyDao.categoryTopAppeal(formDTO.getAgencyId(), customerId, formDTO.getTopCount()); + if (CollectionUtils.isEmpty(result)){ + return new ArrayList<>(); + } + Result> sonCustomer = operCrmOpenFeignClient.getAllSubCustomerIds(customerId); + List subCustomerIds = new ArrayList<>(); + if (sonCustomer.success() && !CollectionUtils.isEmpty(sonCustomer.getData())) { + subCustomerIds = sonCustomer.getData(); + } + for (CategoryTopAppealResultDTO r : result) { + CustomerProjectCategoryDTO projectCategoryDTO = screenProjectCategoryOrgDailyDao.selectProjectCategory(r.getCategoryId(), customerId, subCustomerIds); + if (null == projectCategoryDTO || StringUtils.isBlank(projectCategoryDTO.getCategoryName())) { + log.warn(String.format("查询分类名称失败,当前客户:%s, categoryCode:%s", r.getCategoryId(), customerId)); + continue; + } + r.setCategoryName(projectCategoryDTO.getCategoryName()); + } + return result; + } } diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectCategoryOrgDailyDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectCategoryOrgDailyDao.xml index 073fcf7972..4bd5e6a20d 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectCategoryOrgDailyDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenProjectCategoryOrgDailyDao.xml @@ -64,6 +64,23 @@ ) temp WHERE temp.CATEGORY_CODE = #{categoryCode} + ORDER BY temp.`LEVEL` DESC LIMIT 1 + + + \ No newline at end of file diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/GridManagerUserListResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/GridManagerUserListResultDTO.java index 8a8e51887b..06a31e07bc 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/GridManagerUserListResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/GridManagerUserListResultDTO.java @@ -62,4 +62,7 @@ public class GridManagerUserListResultDTO implements Serializable { @JsonIgnore private Boolean llStatus; + @JsonIgnore + private String recordId; + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StaffPatrolRecordDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StaffPatrolRecordDao.java index a476cfd3a5..7ab70be6bf 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StaffPatrolRecordDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StaffPatrolRecordDao.java @@ -44,6 +44,16 @@ public interface StaffPatrolRecordDao extends BaseDao { */ List selectLL(@Param("userIds")List userIds); + List selectPatrolRecord(@Param("userIds")List userIds); + + /** + * @Description 按照巡查记录查询经纬度 + * @Param recordIds + * @author zxc + * @date 2021/8/18 5:16 下午 + */ + List selectPatrolLL(@Param("recordIds")List recordIds); + /** * @Description 巡查记录查询 * @Param formDTO diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java index 5e3fd465ec..7d6aa5e196 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java @@ -411,10 +411,21 @@ public class StaffPatrolRecordServiceImpl extends BaseServiceImpl llResult = baseDao.selectLL(userIds); - if (!CollectionUtils.isEmpty(llResult)){ - result.setLl(llResult); + // 查询记录 +// List llResult = baseDao.selectLL(userIds); + List recordList = baseDao.selectPatrolRecord(userIds); + if (!CollectionUtils.isEmpty(recordList)){ + // 查询经纬度 + List llList = baseDao.selectPatrolLL(recordList.stream().map(m -> m.getRecordId()).collect(Collectors.toList())); + recordList.forEach(r -> { + llList.forEach(l -> { + if (r.getRecordId().equals(l.getRecordId())){ + r.setLatitude(l.getLatitude()); + r.setLongitude(l.getLongitude()); + } + }); + }); + result.setLl(recordList); } // 姓名查询 List nameResult = customerStaffDao.selectUserName(userIds); diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/StaffPatrolRecordDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/StaffPatrolRecordDao.xml index 7e86005b82..27fc5211ec 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/StaffPatrolRecordDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/StaffPatrolRecordDao.xml @@ -46,4 +46,33 @@ ORDER BY CREATED_TIME DESC + + + + + \ No newline at end of file