From 9b5e121b665a49f699fbd0207696f786c5fe568f Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Tue, 18 Jan 2022 14:24:09 +0800 Subject: [PATCH 01/17] =?UTF-8?q?=E8=81=94=E5=BB=BA=E5=8D=95=E4=BD=8D?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=83=85=E5=86=B5=EF=BC=8C=E7=A7=AF=E5=88=86?= =?UTF-8?q?=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/commons/tools/enums/DateEnum.java | 72 +++++++++++ .../epmet/dto/IcPartyUnitCompletionDTO.java | 115 ++++++++++++++++++ .../com/epmet/dto/form/CompletionFormDTO.java | 18 +++ .../epmet/dto/form/PointRecordFormDTO.java | 39 ++++++ .../com/epmet/dto/result/PointRecordDTO.java | 44 +++++++ .../dto/result/PointRecordResultDTO.java | 21 ++++ .../IcPartyUnitCompletionController.java | 50 ++++++++ .../controller/IcUserDemandRecController.java | 18 ++- .../epmet/dao/IcPartyUnitCompletionDao.java | 16 +++ .../com/epmet/dao/IcUserDemandRecDao.java | 17 ++- .../entity/IcPartyUnitCompletionEntity.java | 71 +++++++++++ .../service/IcPartyUnitCompletionService.java | 46 +++++++ .../epmet/service/IcUserDemandRecService.java | 11 ++ .../IcPartyUnitCompletionServiceImpl.java | 86 +++++++++++++ .../impl/IcUserDemandRecServiceImpl.java | 40 ++++++ .../db/migration/V0.0.9__add_icompletion.sql | 22 ++++ .../mapper/IcPartyUnitCompletionDao.xml | 27 ++++ .../resources/mapper/IcUserDemandRecDao.xml | 46 +++++++ 18 files changed, 755 insertions(+), 4 deletions(-) create mode 100644 epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DateEnum.java create mode 100644 epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyUnitCompletionDTO.java create mode 100644 epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/CompletionFormDTO.java create mode 100644 epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/PointRecordFormDTO.java create mode 100644 epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/PointRecordDTO.java create mode 100644 epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/PointRecordResultDTO.java create mode 100644 epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitCompletionController.java create mode 100644 epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPartyUnitCompletionDao.java create mode 100644 epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPartyUnitCompletionEntity.java create mode 100644 epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitCompletionService.java create mode 100644 epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitCompletionServiceImpl.java create mode 100644 epmet-module/epmet-heart/epmet-heart-server/src/main/resources/db/migration/V0.0.9__add_icompletion.sql create mode 100644 epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPartyUnitCompletionDao.xml diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DateEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DateEnum.java new file mode 100644 index 0000000000..7ffdda964f --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DateEnum.java @@ -0,0 +1,72 @@ +package com.epmet.commons.tools.enums; + +import com.epmet.commons.tools.exception.EpmetErrorCode; + +import java.util.Objects; + +/** + * @author Administrator + */ + +public enum DateEnum { + /** + * 月份相关枚举 + */ + JAN("01", "1月"), + FEB("02", "2月"), + MAR("03", "3月"), + APR("04", "4月"), + MAY("05", "5月"), + JUN("06", "6月"), + JUL("07", "7月"), + AUG("08", "8月"), + SEP("09", "9月"), + OCT("10", "10月"), + NOV("11", "11月"), + DEC("12", "12月"), + /** + * 季度相关枚举 + */ + Q1("Q1", "第一季度"), + Q2("Q2", "第二季度"), + Q3("Q3", "第三季度"), + Q4("Q4", "第四季度"), + + + UN_KNOWN("0", "未知"); + + private String code; + private String name; + + + DateEnum(String code, String name) { + this.code = code; + this.name = name; + } + + public static String getName(String code) { + DateEnum[] dateEnums = values(); + for (DateEnum dateEnum : dateEnums) { + if (Objects.equals(dateEnum.getCode(), code)) { + return dateEnum.getName(); + } + } + return EpmetErrorCode.SERVER_ERROR.getMsg(); + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyUnitCompletionDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyUnitCompletionDTO.java new file mode 100644 index 0000000000..1c7080f4a7 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyUnitCompletionDTO.java @@ -0,0 +1,115 @@ +package com.epmet.dto; + +import com.epmet.commons.tools.validator.group.AddGroup; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.Date; + + +/** + * 联建单位完成情况 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-01-17 + */ +@Data +public class IcPartyUnitCompletionDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 客户id + */ + private String customerId; + + /** + * 组织ID + */ + private String agencyId; + + /** + * + */ + private String pids; + + /** + * 单位ID + */ + @NotNull(message = "单位ID不能为空",groups = AddGroup.class) + private String unitId; + + /** + * 类型 monthly月度,quarter季度 + */ + @NotNull(message = "类型不能为空",groups = AddGroup.class) + private String type; + + /** + * 评分 百分制 + */ + @NotNull(message = "评分不能为空",groups = AddGroup.class) + private String score; + + /** + * 完成情况1已完成,0未完成 + */ + @NotNull(message = "完成情况不能为空",groups = AddGroup.class) + private String status; + + /** + * 年份 + */ + @NotNull(message = "年份不能为空",groups = AddGroup.class) + private String year; + + /** + * 月或季度 + */ + @NotNull(message = "月或季度",groups = AddGroup.class) + private String monthQuarter; + + private String monthQuarterName; + + /** + * 时间 + */ + private String recordDate; + + /** + * 删除标识 0未删除、1已删除 + */ + private String delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/CompletionFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/CompletionFormDTO.java new file mode 100644 index 0000000000..181074d3b9 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/CompletionFormDTO.java @@ -0,0 +1,18 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/1/17 15:46 + */ +@Data +public class CompletionFormDTO implements Serializable { + private static final long serialVersionUID = 4925867264241549310L; + private String unitId; + private Integer pageNo = 1; + private Integer pageSize = 10; +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/PointRecordFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/PointRecordFormDTO.java new file mode 100644 index 0000000000..bacdc786f6 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/PointRecordFormDTO.java @@ -0,0 +1,39 @@ +package com.epmet.dto.form; + +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/1/18 9:34 + */ +@NoArgsConstructor +@Data +public class PointRecordFormDTO implements Serializable { + private static final long serialVersionUID = -5200348821951188343L; + /** + * 服务方类型:社会组织:social_org;社区自组织:community_org;区域党建单位:party_unit + */ + private String serviceType; + /** + * 服务方ID + */ + private String serviceId; + /** + * 开始时间 + */ + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private String startTime; + /** + * 结束时间 + */ + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private String endTime; + private Integer pageNo = 1; + private Integer pageSize = 10; + private String customerId; +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/PointRecordDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/PointRecordDTO.java new file mode 100644 index 0000000000..b9c2c1e787 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/PointRecordDTO.java @@ -0,0 +1,44 @@ +package com.epmet.dto.result; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/1/18 9:30 + */ +@NoArgsConstructor +@Data +public class PointRecordDTO implements Serializable { + private static final long serialVersionUID = 8562346042241117055L; + /** + * 需求类型 + */ + @JsonIgnore + private String categoryCode; + private String categoryName; + /** + * 需求人 + */ + private String demandUserName; + /** + * 需求内容 + */ + private String content; + /** + * 发放积分时间 + */ + private String pointTime; + /** + * 评价 + */ + private String score; + /** + * 积分 + */ + private String point; +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/PointRecordResultDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/PointRecordResultDTO.java new file mode 100644 index 0000000000..52efbfa253 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/PointRecordResultDTO.java @@ -0,0 +1,21 @@ +package com.epmet.dto.result; + +import com.epmet.commons.tools.page.PageData; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2022/1/18 9:28 + */ +@NoArgsConstructor +@Data +public class PointRecordResultDTO implements Serializable { + private static final long serialVersionUID = -2359756064125925616L; + private Integer totalPoint; + private PageData page; + +} diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitCompletionController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitCompletionController.java new file mode 100644 index 0000000000..42dc75a6c1 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitCompletionController.java @@ -0,0 +1,50 @@ +package com.epmet.controller; + +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.commons.tools.validator.group.AddGroup; +import com.epmet.commons.tools.validator.group.DefaultGroup; +import com.epmet.dto.IcPartyUnitCompletionDTO; +import com.epmet.dto.form.CompletionFormDTO; +import com.epmet.service.IcPartyUnitCompletionService; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + + +/** + * 联建单位完成情况 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-01-17 + */ +@RestController +@RequestMapping("icpartyunitcompletion") +public class IcPartyUnitCompletionController { + + @Autowired + private IcPartyUnitCompletionService icPartyUnitCompletionService; + + @PostMapping("list") + public Result> page(@RequestParam CompletionFormDTO formDTO){ + PageData page = icPartyUnitCompletionService.page(formDTO); + return new Result>().ok(page); + } + + @PostMapping("save") + public Result save(@RequestBody IcPartyUnitCompletionDTO dto){ + //效验数据 + if (StringUtils.isBlank(dto.getUnitId())) { + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + } + icPartyUnitCompletionService.save(dto); + return new Result(); + } + + @PostMapping("delete") + public Result delete(@RequestBody IcPartyUnitCompletionDTO dto){ + icPartyUnitCompletionService.delete(dto.getId()); + return new Result(); + } +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcUserDemandRecController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcUserDemandRecController.java index e3e9cde3b8..1d14501080 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcUserDemandRecController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcUserDemandRecController.java @@ -25,7 +25,6 @@ import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.dto.form.mq.eventmsg.BasePointEventMsg; import com.epmet.commons.tools.enums.EventEnum; import com.epmet.commons.tools.exception.EpmetErrorCode; -import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.feign.ResultDataResolver; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; @@ -35,9 +34,11 @@ import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.constant.SystemMessageType; import com.epmet.constant.UserDemandConstant; import com.epmet.dto.form.LoginUserDetailsFormDTO; +import com.epmet.dto.form.PointRecordFormDTO; import com.epmet.dto.form.SystemMsgFormDTO; import com.epmet.dto.form.demand.*; import com.epmet.dto.result.LoginUserDetailsResultDTO; +import com.epmet.dto.result.PointRecordResultDTO; import com.epmet.dto.result.demand.*; import com.epmet.feign.EpmetMessageOpenFeignClient; import com.epmet.feign.EpmetUserOpenFeignClient; @@ -364,5 +365,20 @@ public class IcUserDemandRecController implements ResultDataResolver { return new Result().ok(page); } + /** + * 组织单位积分记录 + * + * @Param formDTO + * @Return {@link Result< PointRecordResultDTO>} + * @Author zhaoqifeng + * @Date 2022/1/18 9:45 + */ + @PostMapping("recordList") + public Result pointRecordList(@LoginUser TokenDto tokenDto, @RequestBody PointRecordFormDTO formDTO) { + formDTO.setCustomerId(tokenDto.getCustomerId()); + PointRecordResultDTO result = icUserDemandRecService.pointRecordList(formDTO); + return new Result().ok(result); + } + } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPartyUnitCompletionDao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPartyUnitCompletionDao.java new file mode 100644 index 0000000000..d99bd42168 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPartyUnitCompletionDao.java @@ -0,0 +1,16 @@ +package com.epmet.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.entity.IcPartyUnitCompletionEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 联建单位完成情况 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-01-17 + */ +@Mapper +public interface IcPartyUnitCompletionDao extends BaseDao { + +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcUserDemandRecDao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcUserDemandRecDao.java index 27eaa8c689..60b437ceb5 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcUserDemandRecDao.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcUserDemandRecDao.java @@ -19,13 +19,12 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.IcUserDemandRecDTO; +import com.epmet.dto.form.PointRecordFormDTO; import com.epmet.dto.form.demand.IcResiUserDemandFromDTO; import com.epmet.dto.form.demand.PageListAnalysisFormDTO; import com.epmet.dto.form.demand.UserDemandPageFormDTO; +import com.epmet.dto.result.PointRecordDTO; import com.epmet.dto.result.demand.*; -import com.epmet.dto.result.demand.DemandRecResultDTO; -import com.epmet.dto.result.demand.IcResiUserReportDemandRes; -import com.epmet.dto.result.demand.ServiceStatDTO; import com.epmet.entity.IcUserDemandRecEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -118,4 +117,16 @@ public interface IcUserDemandRecDao extends BaseDao { @Param("type")String type); int evaluate(@Param("demandRecId")String demandRecId, @Param("finishResult")String finishResult); + + /** + * 组织单位积分记录 + * + * @Param formDTO + * @Return {@link List< PointRecordDTO>} + * @Author zhaoqifeng + * @Date 2022/1/18 10:33 + */ + List getPointRecordList(PointRecordFormDTO formDTO); + + int getTotalPoint(PointRecordFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPartyUnitCompletionEntity.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPartyUnitCompletionEntity.java new file mode 100644 index 0000000000..ea4a22feb4 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPartyUnitCompletionEntity.java @@ -0,0 +1,71 @@ +package com.epmet.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 联建单位完成情况 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-01-17 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_party_unit_completion") +public class IcPartyUnitCompletionEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户id + */ + private String customerId; + + /** + * 组织ID + */ + private String agencyId; + + /** + * + */ + private String pids; + + /** + * 单位ID + */ + private String unitId; + + /** + * 类型 monthly月度,quarter季度 + */ + private String type; + + /** + * 评分 百分制 + */ + private String score; + + /** + * 完成情况1已完成,0未完成 + */ + private String status; + + /** + * 年份 + */ + private String year; + + /** + * 月或季度 + */ + private String monthQuarter; + + /** + * 时间 + */ + private String recordDate; + +} diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitCompletionService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitCompletionService.java new file mode 100644 index 0000000000..730da2c6ea --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitCompletionService.java @@ -0,0 +1,46 @@ +package com.epmet.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; +import com.epmet.dto.IcPartyUnitCompletionDTO; +import com.epmet.dto.form.CompletionFormDTO; +import com.epmet.entity.IcPartyUnitCompletionEntity; + +/** + * 联建单位完成情况 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-01-17 + */ +public interface IcPartyUnitCompletionService extends BaseService { + + /** + * 默认分页 + * + * @param formDTO + * @return PageData + * @author generator + * @date 2022-01-17 + */ + PageData page(CompletionFormDTO formDTO); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2022-01-17 + */ + void save(IcPartyUnitCompletionDTO dto); + + /** + * 删除 + * + * @param id + * @return void + * @author generator + * @date 2022-01-17 + */ + void delete(String id); +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java index 336cd21999..6497e96139 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java @@ -20,7 +20,9 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.IcUserDemandRecDTO; +import com.epmet.dto.form.PointRecordFormDTO; import com.epmet.dto.form.demand.*; +import com.epmet.dto.result.PointRecordResultDTO; import com.epmet.dto.result.demand.*; import com.epmet.entity.IcUserDemandRecEntity; @@ -224,4 +226,13 @@ public interface IcUserDemandRecService extends BaseService search(String customerId, String agencyId, String keyword, Integer pageNo, Integer pageSize); + + /** + * 组织单位积分记录 + * @Param formDTO + * @Return {@link PointRecordResultDTO} + * @Author zhaoqifeng + * @Date 2022/1/18 9:45 + */ + PointRecordResultDTO pointRecordList(PointRecordFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitCompletionServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitCompletionServiceImpl.java new file mode 100644 index 0000000000..ebfd7fd8c5 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitCompletionServiceImpl.java @@ -0,0 +1,86 @@ +package com.epmet.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.enums.DateEnum; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.dao.IcPartyUnitCompletionDao; +import com.epmet.dto.IcPartyUnitCompletionDTO; +import com.epmet.dto.IcPartyUnitDTO; +import com.epmet.dto.form.CompletionFormDTO; +import com.epmet.entity.IcPartyUnitCompletionEntity; +import com.epmet.service.IcPartyUnitCompletionService; +import com.epmet.service.IcPartyUnitService; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; + +/** + * 联建单位完成情况 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-01-17 + */ +@Service +public class IcPartyUnitCompletionServiceImpl extends BaseServiceImpl implements IcPartyUnitCompletionService { + + @Resource + private IcPartyUnitService icPartyUnitService; + + @Override + public PageData page(CompletionFormDTO formDTO) { + if (StringUtils.isBlank(formDTO.getUnitId())) { + return new PageData<>(Collections.emptyList(), NumConstant.ZERO); + } + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcPartyUnitCompletionEntity::getUnitId, formDTO.getUnitId()); + wrapper.orderByDesc(IcPartyUnitCompletionEntity::getCreatedTime); + List list = baseDao.selectList(wrapper); + PageInfo pageInfo = new PageInfo<>(list); + List dtoList = ConvertUtils.sourceToTarget(list, IcPartyUnitCompletionDTO.class); + + if(CollectionUtils.isNotEmpty(dtoList)) { + dtoList.forEach(item -> { + item.setMonthQuarterName(DateEnum.getName(item.getMonthQuarter())); + }); + } + + return new PageData<>(dtoList, pageInfo.getTotal()); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(IcPartyUnitCompletionDTO dto) { + IcPartyUnitCompletionEntity entity = ConvertUtils.sourceToTarget(dto, IcPartyUnitCompletionEntity.class); + if (StringUtils.isNotBlank(dto.getYear()) && StringUtils.isNotBlank(dto.getMonthQuarter())) { + entity.setRecordDate(dto.getYear().concat(dto.getMonthQuarter())); + } + if(StringUtils.isBlank(dto.getId())) { + IcPartyUnitDTO unity = icPartyUnitService.get(dto.getUnitId()); + entity.setCustomerId(unity.getCustomerId()); + entity.setAgencyId(unity.getAgencyId()); + entity.setPids(unity.getPids()); + insert(entity); + } else { + updateById(entity); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String id) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteById(id); + } + +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java index f7034a63ee..4bf7846cd0 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java @@ -1644,5 +1644,45 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl(list, new PageInfo<>(list).getTotal()); } + + /** + * 组织单位积分记录 + * + * @param formDTO + * @Param formDTO + * @Return {@link PointRecordResultDTO} + * @Author zhaoqifeng + * @Date 2022/1/18 9:45 + */ + @Override + public PointRecordResultDTO pointRecordList(PointRecordFormDTO formDTO) { + PointRecordResultDTO result = new PointRecordResultDTO(); + + if (StringUtils.isBlank(formDTO.getServiceId())) { + result.setTotalPoint(NumConstant.ZERO); + result.setPage(new PageData<>(Collections.emptyList(), NumConstant.ZERO)); + } + + //总积分 + result.setTotalPoint(baseDao.getTotalPoint(formDTO)); + //分页查询 + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); + List list = baseDao.getPointRecordList(formDTO); + PageInfo pageInfo = new PageInfo<>(list); + if (CollectionUtils.isNotEmpty(list)) { + //查询分类名称 + List categoryCodes = list.stream().map(PointRecordDTO::getCategoryCode).collect(Collectors.toList()); + List dictList = demandDictService.listByCodes(formDTO.getCustomerId(), categoryCodes); + Map dictMap = dictList.stream().collect(Collectors.toMap(IcResiDemandDictEntity::getCategoryCode, IcResiDemandDictEntity::getCategoryName)); + list.forEach(item -> { + if (dictMap.containsKey(item.getCategoryCode())) { + item.setCategoryName(dictMap.get(item.getCategoryCode())); + } + }); + } + result.setPage(new PageData<>(list, pageInfo.getTotal())); + + return result; + } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/db/migration/V0.0.9__add_icompletion.sql b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/db/migration/V0.0.9__add_icompletion.sql new file mode 100644 index 0000000000..7493e63f53 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/db/migration/V0.0.9__add_icompletion.sql @@ -0,0 +1,22 @@ +CREATE TABLE `ic_party_unit_completion` +( + `ID` varchar(64) NOT NULL COMMENT '主键', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户id', + `AGENCY_ID` varchar(64) NOT NULL COMMENT '组织ID', + `PIDS` varchar(255) NOT NULL, + `UNIT_ID` varchar(64) NOT NULL COMMENT '单位ID', + `TYPE` varchar(10) NOT NULL COMMENT '类型 monthly月度,quarter季度', + `SCORE` varchar(5) NOT NULL COMMENT '评分 百分制', + `STATUS` varchar(1) NOT NULL COMMENT '完成情况1已完成,0未完成', + `YEAR` varchar(4) NOT NULL COMMENT '年份', + `MONTH_QUARTER` varchar(4) NOT NULL COMMENT '月或季度', + `RECORD_DATE` varchar(12) NOT NULL COMMENT '时间', + `DEL_FLAG` varchar(1) NOT NULL DEFAULT '0' COMMENT '删除标识 0未删除、1已删除', + `REVISION` int(11) NOT NULL DEFAULT '0' COMMENT '乐观锁', + `CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) USING BTREE +) ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4 COMMENT ='联建单位完成情况'; \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPartyUnitCompletionDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPartyUnitCompletionDao.xml new file mode 100644 index 0000000000..2dd26ab7a2 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPartyUnitCompletionDao.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml index b59fa44be5..eb1260f58b 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml @@ -572,4 +572,50 @@ UPDATED_TIME=NOW() where id=#{demandRecId} + + + \ No newline at end of file From 3956d3e5b889edb48a34c03ee3a440d2a42f7fa3 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 18 Jan 2022 14:50:21 +0800 Subject: [PATCH 02/17] zancun --- .../epmet/constant/DataSourceConstant.java | 1 + .../customize/IcResiCategoryConfigDTO.java | 18 +++ .../IcUserCategoryAnalysisDailyFormDTO.java | 32 ++++ .../dto/user/result/OrgIcUserTotalDTO.java | 12 ++ .../data-statistical-server/pom.xml | 26 +++ .../com/epmet/controller/IcController.java | 76 +++++++++ .../IcResiCategoryStatsConfigDao.java | 14 ++ .../FactIcuserCategoryAnalysisDailyDao.java | 20 +++ .../main/java/com/epmet/dao/user/UserDao.java | 9 ++ ...FactIcuserCategoryAnalysisDailyEntity.java | 71 ++++++++ .../IcResiCategoryStatsConfigService.java | 22 +++ .../IcResiCategoryStatsConfigServiceImpl.java | 40 +++++ .../screen/ScreenCustomerGridService.java | 3 + .../impl/ScreenCustomerGridServiceImpl.java | 9 ++ ...actIcuserCategoryAnalysisDailyService.java | 20 +++ ...cuserCategoryAnalysisDailyServiceImpl.java | 153 ++++++++++++++++++ .../com/epmet/service/user/UserService.java | 19 +++ .../service/user/impl/UserServiceImpl.java | 75 +++++++++ .../src/main/resources/bootstrap.yml | 5 + .../IcResiCategoryStatsConfigDao.xml | 23 +++ .../FactIcuserCategoryAnalysisDailyDao.xml | 13 ++ .../main/resources/mapper/user/UserDao.xml | 51 ++++++ 22 files changed, 712 insertions(+) create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/customize/IcResiCategoryConfigDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/IcUserCategoryAnalysisDailyFormDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/OrgIcUserTotalDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/IcController.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/customize/IcResiCategoryStatsConfigDao.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactIcuserCategoryAnalysisDailyDao.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactIcuserCategoryAnalysisDailyEntity.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/customize/IcResiCategoryStatsConfigService.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/customize/impl/IcResiCategoryStatsConfigServiceImpl.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactIcuserCategoryAnalysisDailyService.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactIcuserCategoryAnalysisDailyServiceImpl.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/customize/IcResiCategoryStatsConfigDao.xml create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactIcuserCategoryAnalysisDailyDao.xml diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/DataSourceConstant.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/DataSourceConstant.java index 064104b9b2..1ae7002dc4 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/DataSourceConstant.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/DataSourceConstant.java @@ -15,4 +15,5 @@ public interface DataSourceConstant { String PARTY_MEMBER = "partyMember"; String EPMET_HEART="epmetHeart"; String EPMET_POINT = "epmetPoint"; + String OPER_CUSTOMIZE="operCustomize"; } diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/customize/IcResiCategoryConfigDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/customize/IcResiCategoryConfigDTO.java new file mode 100644 index 0000000000..ea519b9b20 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/customize/IcResiCategoryConfigDTO.java @@ -0,0 +1,18 @@ +package com.epmet.dto.customize; + +import lombok.Data; + +import java.io.Serializable; + + + +@Data +public class IcResiCategoryConfigDTO implements Serializable { + private String configId; + /** + * 列名 + */ + private String columnName; + + private String itemLabel; +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/IcUserCategoryAnalysisDailyFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/IcUserCategoryAnalysisDailyFormDTO.java new file mode 100644 index 0000000000..4804125448 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/IcUserCategoryAnalysisDailyFormDTO.java @@ -0,0 +1,32 @@ +package com.epmet.dto.extract.form; + +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import java.io.Serializable; + +/** + * 数字社区-人员类别分析,按天计算,入参 + * 以下参数都可以为空 + */ +@Data +public class IcUserCategoryAnalysisDailyFormDTO implements Serializable { + public interface AddUserInternalGroup { + } + + private String customerId; + @Length(max = 8, message = "日期格式:yyyyMMdd", groups = AddUserInternalGroup.class) + private String dateId; + + /** + * 开始时间 + */ + @Length(max = 8, message = "开始日期日期格式:yyyyMMdd", groups = AddUserInternalGroup.class) + private String startDate; + /** + * 结束时间 + */ + @Length(max = 8, message = "截止日期格式:yyyyMMdd", groups = AddUserInternalGroup.class) + private String endDate; + +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/OrgIcUserTotalDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/OrgIcUserTotalDTO.java new file mode 100644 index 0000000000..b7360d975d --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/OrgIcUserTotalDTO.java @@ -0,0 +1,12 @@ +package com.epmet.dto.user.result; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class OrgIcUserTotalDTO implements Serializable { + private String orgId; + private Integer total; + private String columnName; +} diff --git a/epmet-module/data-statistical/data-statistical-server/pom.xml b/epmet-module/data-statistical/data-statistical-server/pom.xml index 6c21774ece..8b145da840 100644 --- a/epmet-module/data-statistical/data-statistical-server/pom.xml +++ b/epmet-module/data-statistical/data-statistical-server/pom.xml @@ -260,6 +260,13 @@ epmet_point_user EpmEt-db-UsEr + + + + + epmet_oper_customize_user + EpmEt-db-UsEr + 0 192.168.1.140 @@ -382,6 +389,13 @@ epmet_point_user EpmEt-db-UsEr + + + + + epmet_oper_customize_user + EpmEt-db-UsEr + 0 192.168.1.140 @@ -504,6 +518,12 @@ epmet elink@833066 + + + + epmet + elink@833066 + 0 r-m5eoz5b6tkx09y6bpz.redis.rds.aliyuncs.com @@ -622,6 +642,12 @@ epmet_point_user EpmEt-db-UsEr + + + + epmet_oper_customize_user + EpmEt-db-UsEr + 0 r-m5ez3n1j0qc3ykq2ut.redis.rds.aliyuncs.com diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/IcController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/IcController.java new file mode 100644 index 0000000000..5f93d62c1e --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/IcController.java @@ -0,0 +1,76 @@ +package com.epmet.controller; + + +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.utils.DateUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.dto.extract.form.IcUserCategoryAnalysisDailyFormDTO; +import com.epmet.service.stats.DimCustomerService; +import com.epmet.service.stats.FactIcuserCategoryAnalysisDailyService; +import org.apache.commons.collections4.CollectionUtils; +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 java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; + +/** + * @Description 数字社区相关统计任务可以放这,目前只有人员类别分析 + * @Author yinzuomei + * @Date 2022/01/17 + * @Version 1.0 + */ +@RestController +@RequestMapping("ic") +public class IcController { + + @Autowired + private FactIcuserCategoryAnalysisDailyService userCategoryAnalysisDailyService; + @Autowired + private DimCustomerService dimCustomerService; + + /** + * 数字社区-基础信息-人员类别分析-每个类别的人员总数、较上月迁入迁出人数 + * 说明:安调统计,截止到当前dateId的党员总数;+30:迁入党员+之前的居民在本月内变更为党员身份的;-10:在本月丢失党员身份的人+迁出的人 + * @return + */ + @PostMapping("/user/category-analysis-daily") + public Result statUserCategoryDaily(@RequestBody IcUserCategoryAnalysisDailyFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, IcUserCategoryAnalysisDailyFormDTO.AddUserInternalGroup.class); + List customerIds = new ArrayList<>(); + if (StringUtils.isNotBlank(formDTO.getCustomerId())) { + customerIds.add(formDTO.getCustomerId()); + } else { + //未指定客户,则查询dim_customer表 + customerIds = dimCustomerService.selectCustomerIdPage(NumConstant.ONE, NumConstant.ONE_THOUSAND); + } + if (CollectionUtils.isNotEmpty(customerIds)) { + customerIds.forEach(customerId -> { + if (StringUtils.isNotBlank(formDTO.getStartDate()) && StringUtils.isNotBlank(formDTO.getEndDate())) { + //[a,b]yyyyMMdd + List daysBetween = DateUtils.getDaysBetween(formDTO.getStartDate(), formDTO.getEndDate()); + daysBetween.forEach(dateId -> { + //计算网格维度的数据 + userCategoryAnalysisDailyService.statUserCategoryGridDaily(customerId, dateId); + }); + } else if (StringUtils.isNotBlank(formDTO.getDateId())) { + //计算网格维度的数据 + userCategoryAnalysisDailyService.statUserCategoryGridDaily(customerId, formDTO.getDateId()); + } else { + //计算网格维度的数据 + //当前时间的前一天yyyyMMdd + String dateId = LocalDate.now().minusDays(NumConstant.ONE).toString().replace("-", ""); + userCategoryAnalysisDailyService.statUserCategoryGridDaily(customerId, dateId); + } + }); + } + return new Result(); + } + +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/customize/IcResiCategoryStatsConfigDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/customize/IcResiCategoryStatsConfigDao.java new file mode 100644 index 0000000000..43b78b9b73 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/customize/IcResiCategoryStatsConfigDao.java @@ -0,0 +1,14 @@ +package com.epmet.dao.customize; + + +import com.epmet.dto.customize.IcResiCategoryConfigDTO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface IcResiCategoryStatsConfigDao { + + + List queryDataColumn(String customerId); +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactIcuserCategoryAnalysisDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactIcuserCategoryAnalysisDailyDao.java new file mode 100644 index 0000000000..2b963f71d5 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactIcuserCategoryAnalysisDailyDao.java @@ -0,0 +1,20 @@ +package com.epmet.dao.stats; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.entity.stats.FactIcuserCategoryAnalysisDailyEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * 人员类别分析 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-01-17 + */ +@Mapper +public interface FactIcuserCategoryAnalysisDailyDao extends BaseDao { + + int limitDelete(@Param("customerId")String customerId, + @Param("dateId")String dateId, + @Param("orgType")String orgType); +} \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java index 547cc164b7..a6ecca8319 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java @@ -269,5 +269,14 @@ public interface UserDao { List filterUserIds(@Param("userIds") List userIds, @Param("roleKey") String roleKey); List selectRoutineWorkListByDateId(@Param("customerId") String customerId, @Param("dateId") String dateId); + + List selectCountForGrid(@Param("customerId") String customerId, + @Param("columnName") String columnName); + + OrgIcUserTotalDTO selectCountForAgency(@Param("customerId") String customerId, + @Param("columnName") String columnName, + @Param("agencyId") String agencyId); + + List selectGridIcUserCategoryTotal(@Param("customerId")String customerId, @Param("dateId")String dateId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactIcuserCategoryAnalysisDailyEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactIcuserCategoryAnalysisDailyEntity.java new file mode 100644 index 0000000000..d1db22e1e9 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactIcuserCategoryAnalysisDailyEntity.java @@ -0,0 +1,71 @@ +package com.epmet.entity.stats; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 人员类别分析 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-01-17 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("fact_icuser_category_analysis_daily") +public class FactIcuserCategoryAnalysisDailyEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户id + */ + private String customerId; + + /** + * 预警配置ID + */ + private String configId; + + /** + * 当前数据是截止到XXX的:yyyyMMdd + */ + private String dateId; + + /** + * 网格id或者组织id + */ + private String orgId; + + /** + * grid或者agency + */ + private String orgType; + + /** + * orgid的上级 + */ + private String pid; + + /** + * orgid的所有上级 + */ + private String pids; + + /** + * 当前类别总人数 + */ + private Integer total; + + /** + * 较上月迁出 + */ + private Integer qcIncr; + + /** + * 较上月迁入 + */ + private Integer qrIncr; + +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/customize/IcResiCategoryStatsConfigService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/customize/IcResiCategoryStatsConfigService.java new file mode 100644 index 0000000000..dfbaa5b85a --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/customize/IcResiCategoryStatsConfigService.java @@ -0,0 +1,22 @@ +package com.epmet.service.customize; + + +import com.epmet.dto.customize.IcResiCategoryConfigDTO; + +import java.util.List; + +/** + * 居民类别配置表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-11-04 + */ +public interface IcResiCategoryStatsConfigService { + + /** + * 返回用于数据分析的列名+居民类别配置表的id + * @param customerId + * @return + */ + List queryDataColumn(String customerId); +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/customize/impl/IcResiCategoryStatsConfigServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/customize/impl/IcResiCategoryStatsConfigServiceImpl.java new file mode 100644 index 0000000000..2aba7c4480 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/customize/impl/IcResiCategoryStatsConfigServiceImpl.java @@ -0,0 +1,40 @@ +package com.epmet.service.customize.impl; + +import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.constant.DataSourceConstant; +import com.epmet.dao.customize.IcResiCategoryStatsConfigDao; +import com.epmet.dto.customize.IcResiCategoryConfigDTO; +import com.epmet.service.customize.IcResiCategoryStatsConfigService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + + +/** + * 居民类别配置表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-11-04 + */ +@Slf4j +@DataSource(DataSourceConstant.OPER_CUSTOMIZE) +@Service +public class IcResiCategoryStatsConfigServiceImpl implements IcResiCategoryStatsConfigService{ + + @Autowired + private IcResiCategoryStatsConfigDao baseDao; + + + /** + * 返回用于数据分析的列名+居民类别配置表的id + * + * @param customerId + * @return + */ + @Override + public List queryDataColumn(String customerId) { + return baseDao.queryDataColumn(customerId); + } +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenCustomerGridService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenCustomerGridService.java index e7e08d78b2..5ea9362398 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenCustomerGridService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenCustomerGridService.java @@ -19,6 +19,7 @@ package com.epmet.service.evaluationindex.screen; import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.dto.CustomerGridDTO; import com.epmet.dto.extract.form.*; import com.epmet.dto.extract.result.GridInfoResultDTO; import com.epmet.dto.indexcollect.form.CustomerBizOrgFormDTO; @@ -136,4 +137,6 @@ public interface ScreenCustomerGridService extends BaseService getByCustomerId(String customerId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerGridServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerGridServiceImpl.java index edf9ef160f..fe3f1a863e 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerGridServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerGridServiceImpl.java @@ -29,6 +29,7 @@ import com.epmet.constant.DataSourceConstant; import com.epmet.constant.OrgSourceTypeConstant; import com.epmet.dao.evaluationindex.screen.DimLastSyncRecordDao; import com.epmet.dao.evaluationindex.screen.ScreenCustomerGridDao; +import com.epmet.dto.CustomerGridDTO; import com.epmet.dto.extract.form.*; import com.epmet.dto.extract.result.GridInfoResultDTO; import com.epmet.dto.indexcollect.form.CustomerBizOrgFormDTO; @@ -290,4 +291,12 @@ public class ScreenCustomerGridServiceImpl extends BaseServiceImpl getByCustomerId(String customerId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ScreenCustomerGridEntity::getCustomerId, customerId); + List list = baseDao.selectList(wrapper); + return ConvertUtils.sourceToTarget(list,CustomerGridDTO.class); + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactIcuserCategoryAnalysisDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactIcuserCategoryAnalysisDailyService.java new file mode 100644 index 0000000000..afa940d37b --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactIcuserCategoryAnalysisDailyService.java @@ -0,0 +1,20 @@ +package com.epmet.service.stats; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.entity.stats.FactIcuserCategoryAnalysisDailyEntity; + +/** + * 人员类别分析 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-01-17 + */ +public interface FactIcuserCategoryAnalysisDailyService extends BaseService { + /** + * 数字社区-基础信息-人员类别分析-每个类别的人员总数、较上月迁入迁出人数 + * 网格 + * @param customerId + * @param dateId + */ + void statUserCategoryGridDaily(String customerId, String dateId); +} \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactIcuserCategoryAnalysisDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactIcuserCategoryAnalysisDailyServiceImpl.java new file mode 100644 index 0000000000..9384c21423 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactIcuserCategoryAnalysisDailyServiceImpl.java @@ -0,0 +1,153 @@ +package com.epmet.service.stats.impl; + +import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.enums.OrgTypeEnum; +import com.epmet.constant.DataSourceConstant; +import com.epmet.dao.stats.FactIcuserCategoryAnalysisDailyDao; +import com.epmet.dto.CustomerGridDTO; +import com.epmet.dto.customize.IcResiCategoryConfigDTO; +import com.epmet.dto.user.result.OrgIcUserTotalDTO; +import com.epmet.entity.stats.FactIcuserCategoryAnalysisDailyEntity; +import com.epmet.service.customize.IcResiCategoryStatsConfigService; +import com.epmet.service.evaluationindex.screen.ScreenCustomerAgencyService; +import com.epmet.service.evaluationindex.screen.ScreenCustomerGridService; +import com.epmet.service.stats.FactIcuserCategoryAnalysisDailyService; +import com.epmet.service.user.UserService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.MapUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 人员类别分析 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-01-17 + */ +@Service +@Slf4j +@DataSource(DataSourceConstant.STATS) +public class FactIcuserCategoryAnalysisDailyServiceImpl extends BaseServiceImpl implements FactIcuserCategoryAnalysisDailyService { + + @Autowired + private IcResiCategoryStatsConfigService icResiCategoryStatsConfigService; + @Autowired + private ScreenCustomerAgencyService agencyService; + @Autowired + private ScreenCustomerGridService gridService; + @Autowired + private UserService userService; + /** + * 数字社区-基础信息-人员类别分析-每个类别的人员总数、较上月迁入迁出人数 + * + * @param customerId + * @param dateId + */ + @Override + public void statUserCategoryGridDaily(String customerId, String dateId) { + //查询出所有用语数据分析的类别column_name,没有则不计算 + List columnList=icResiCategoryStatsConfigService.queryDataColumn(customerId); + if(CollectionUtils.isEmpty(columnList)){ + return; + } + // //所有网格和组织查询出来 + // List agencyDTOList=agencyService.getByCustomerId(customerId); + List gridDTOList=gridService.getByCustomerId(customerId); + //网格维度、组织维度初始好数据 + List initList=constructInitValue(customerId,dateId,gridDTOList,columnList); + if(CollectionUtils.isEmpty(initList)){ + return; + } + // 批量插入数据 + + + //删除旧数据 + clearOldDatas(customerId,dateId,OrgTypeEnum.GRID.getCode()); + } + + private void clearOldDatas(String customerId, String dateId,String orgType) { + int deleteNum; + do { + //每次删除1000条 + deleteNum = baseDao.limitDelete(customerId,dateId,orgType); + } while (deleteNum != NumConstant.ZERO); + } + + /** + * + * @param customerId + * @param dateId yyyyMMdd + * @param gridDTOList 当前客户下所有的网格 + * @param columnList 所有需要分析的类别对应的ic_resi_user的列名,目前只有18类 + * @return + */ + private List constructInitValue(String customerId,String dateId, List gridDTOList,List columnList) { + List list=new ArrayList<>(); + if(CollectionUtils.isEmpty(gridDTOList)){ + //没有配置的类别,退出吧 + return list; + } + + //1、total + // 查询明细ic_user_change_detailed变更明细表,各个网格的各个分类的总人数 + Map> totalMapList=userService.calGridIcUserTotal(customerId,dateId); + + String monthId=dateId.substring(NumConstant.ZERO,NumConstant.SIX); + String startDate=monthId.concat("01"); + String endDate=dateId; + + //2、迁入+30:eg:dateId:20211226, [20211201,20211226],类别sum值=1的 + Map> qrList=userService.calGridIcUserQr(customerId,dateId); + + //3、迁出 -10 :eg:dateId:20211226, [20211201,20211226],类别sum值 !=1的 + Map> qrList=userService.calGridIcUserQr(customerId,dateId); + + for(IcResiCategoryConfigDTO config:columnList){ + gridDTOList.forEach(grid->{ + FactIcuserCategoryAnalysisDailyEntity gridData=new FactIcuserCategoryAnalysisDailyEntity(); + gridData.setCustomerId(customerId); + gridData.setConfigId(config.getConfigId()); + gridData.setDateId(dateId); + gridData.setOrgId(grid.getId()); + gridData.setOrgType(OrgTypeEnum.GRID.getCode()); + gridData.setPid(StringUtils.isNotBlank(grid.getPid())?grid.getPid(): NumConstant.ZERO_STR); + gridData.setPids(grid.getPids()); + + boolean zeroFlag=true; + if(MapUtils.isNotEmpty(totalMapList)&&totalMapList.containsKey(grid.getId())){ + //当前网格下,有的类别 + List crrentGrid=totalMapList.get(grid.getId()); + if(CollectionUtils.isNotEmpty(crrentGrid)){ + //各个类别对应的数 + Map categoryTotalMap=crrentGrid.stream().collect(Collectors.toMap(OrgIcUserTotalDTO::getColumnName, OrgIcUserTotalDTO::getTotal, (key1, key2) -> key2)); + if(MapUtils.isNotEmpty(categoryTotalMap)&&categoryTotalMap.containsKey(config.getColumnName())){ + zeroFlag=false; + gridData.setTotal(categoryTotalMap.get(config.getColumnName())); + } + } + } + if(zeroFlag){ + gridData.setTotal(NumConstant.ZERO); + } + gridData.setQcIncr(NumConstant.ZERO); + gridData.setQrIncr(NumConstant.ZERO); + list.add(gridData); + }); + } + return list; + } + + public static void main(String[] args) { + String dateId="20211225"; + System.out.println(dateId.substring(0,6)); + } +} \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/UserService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/UserService.java index 29e5e6d149..522e6eeaa5 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/UserService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/UserService.java @@ -157,4 +157,23 @@ public interface UserService { * @return */ List selectRoutineWorkListByDateId(String customerId, String dateId); + + Map selectCountForGrid(String customerId, String columnName); + + /** + * + * @param customerId + * @param columnName + * @param agencyIds + * @return + */ + Map selectCountForGrid(String customerId, String columnName, List agencyIds); + + /** + * + * @param customerId + * @param dateId 截止到这一天的,各个网格下,每个分类的总人数 + * @return + */ + Map> calGridIcUserTotal(String customerId, String dateId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java index f6c78dbfb0..007cad7e2b 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java @@ -1126,4 +1126,79 @@ public class UserServiceImpl implements UserService { public List selectRoutineWorkListByDateId(String customerId, String dateId) { return userDao.selectRoutineWorkListByDateId(customerId, dateId); } + + /** + * + * @param customerId + * @param columnName + * @return 截止到目前,每个网格内,某个分类的总人数 + */ + @Override + public Map selectCountForGrid(String customerId, String columnName) { + Map map = new HashMap<>(); + List list = userDao.selectCountForGrid(customerId, columnName); + if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(list)) { + map = list.stream().collect(Collectors.toMap(OrgIcUserTotalDTO::getOrgId, OrgIcUserTotalDTO::getTotal)); + } + return map; + } + + /** + * @param customerId + * @param columnName + * @param agencyIds + * @return 截止到目前,各个组织内,某个分类的总人数 + */ + @Override + public Map selectCountForGrid(String customerId, String columnName, List agencyIds) { + Map map = new HashMap<>(); + if (CollectionUtils.isEmpty(agencyIds)) { + return map; + } + List list = new ArrayList<>(); + for (String agencyId:agencyIds) { + OrgIcUserTotalDTO dto=new OrgIcUserTotalDTO(); + dto.setOrgId(agencyId); + OrgIcUserTotalDTO totalDto=userDao.selectCountForAgency(customerId,columnName,agencyId); + dto.setTotal(null!=totalDto?totalDto.getTotal():NumConstant.ZERO); + list.add(dto); + } + if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(list)) { + map = list.stream().collect(Collectors.toMap(OrgIcUserTotalDTO::getOrgId, OrgIcUserTotalDTO::getTotal)); + } + return map; + } + + /** + * @param customerId + * @param dateId 截止到这一天的,各个网格下,每个分类的总人数 + * @return + */ + @Override + public Map> calGridIcUserTotal(String customerId, String dateId) { + Map> resultMap=new HashMap<>(); + List list=userDao.selectGridIcUserCategoryTotal(customerId,dateId); + if(CollectionUtils.isEmpty(list)){ + return resultMap; + } + // list 数据 + // gridId columnName total + // 1001 IS_DBH 1 + // 1001 IS_PARTY 1 + // 1002 IS_DBH 1 + // 1002 IS_ENSURE_HOUSE 1 + // 1003 IS_VETERANS 1 + // 1004 IS_PARTY 1 + for(OrgIcUserTotalDTO dto:list){ + if(resultMap.containsKey(dto.getOrgId())){ + resultMap.get(dto.getOrgId()).add(dto); + continue; + } + List newList=new ArrayList<>(); + newList.add(dto); + resultMap.put(dto.getOrgId(),newList); + } + return resultMap; + } + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/bootstrap.yml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/bootstrap.yml index 1f2089ea27..c70278a240 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/bootstrap.yml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/bootstrap.yml @@ -188,6 +188,11 @@ dynamic: url: @datasource.druid.epmetPoint.url@ username: @datasource.druid.epmetPoint.username@ password: @datasource.druid.epmetPoint.password@ + operCustomize: + driver-class-name: com.mysql.cj.jdbc.Driver + url: @datasource.druid.operCustomize.url@ + username: @datasource.druid.operCustomize.username@ + password: @datasource.druid.operCustomize.password@ thread: # 线程池配置 diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/customize/IcResiCategoryStatsConfigDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/customize/IcResiCategoryStatsConfigDao.xml new file mode 100644 index 0000000000..566e6f2c9d --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/customize/IcResiCategoryStatsConfigDao.xml @@ -0,0 +1,23 @@ + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactIcuserCategoryAnalysisDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactIcuserCategoryAnalysisDailyDao.xml new file mode 100644 index 0000000000..01f0963249 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactIcuserCategoryAnalysisDailyDao.xml @@ -0,0 +1,13 @@ + + + + + + + delete from fact_icuser_category_analysis_daily + where CUSTOMER_ID = #{customerId} + and date_id=#{dateId} + and org_type=#{orgType} + limit 1000 + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml index 6e8e25fefa..7bec8ecc7b 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml @@ -1074,4 +1074,55 @@ + + + + + From f8d07b907fa157f84d702bc0a52936dd14b3a674 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Tue, 18 Jan 2022 15:10:29 +0800 Subject: [PATCH 03/17] =?UTF-8?q?=E8=81=94=E5=BB=BA=E5=8D=95=E4=BD=8D?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=83=85=E5=86=B5=EF=BC=8C=E7=A7=AF=E5=88=86?= =?UTF-8?q?=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/dto/form/PointRecordFormDTO.java | 5 +++-- .../epmet/controller/IcPartyUnitCompletionController.java | 2 +- .../src/main/java/com/epmet/dao/IcUserDemandRecDao.java | 2 +- .../com/epmet/service/impl/IcUserDemandRecServiceImpl.java | 4 ++-- .../src/main/resources/mapper/IcUserDemandRecDao.xml | 4 ++-- 5 files changed, 9 insertions(+), 8 deletions(-) diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/PointRecordFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/PointRecordFormDTO.java index bacdc786f6..3e809dccab 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/PointRecordFormDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/PointRecordFormDTO.java @@ -5,6 +5,7 @@ import lombok.NoArgsConstructor; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; +import java.util.Date; /** * @Description @@ -27,12 +28,12 @@ public class PointRecordFormDTO implements Serializable { * 开始时间 */ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") - private String startTime; + private Date startTime; /** * 结束时间 */ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") - private String endTime; + private Date endTime; private Integer pageNo = 1; private Integer pageSize = 10; private String customerId; diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitCompletionController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitCompletionController.java index 42dc75a6c1..b49c577f00 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitCompletionController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitCompletionController.java @@ -27,7 +27,7 @@ public class IcPartyUnitCompletionController { private IcPartyUnitCompletionService icPartyUnitCompletionService; @PostMapping("list") - public Result> page(@RequestParam CompletionFormDTO formDTO){ + public Result> page(@RequestBody CompletionFormDTO formDTO){ PageData page = icPartyUnitCompletionService.page(formDTO); return new Result>().ok(page); } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcUserDemandRecDao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcUserDemandRecDao.java index 60b437ceb5..fa34fd7497 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcUserDemandRecDao.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcUserDemandRecDao.java @@ -128,5 +128,5 @@ public interface IcUserDemandRecDao extends BaseDao { */ List getPointRecordList(PointRecordFormDTO formDTO); - int getTotalPoint(PointRecordFormDTO formDTO); + Integer getTotalPoint(PointRecordFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java index 4bf7846cd0..591d08130c 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java @@ -1662,9 +1662,9 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl(Collections.emptyList(), NumConstant.ZERO)); } - + Integer total = baseDao.getTotalPoint(formDTO); //总积分 - result.setTotalPoint(baseDao.getTotalPoint(formDTO)); + result.setTotalPoint(null == total?NumConstant.ZERO:total); //分页查询 PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); List list = baseDao.getPointRecordList(formDTO); diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml index eb1260f58b..486f1eade4 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml @@ -591,10 +591,10 @@ a.DEL_FLAG = '0' AND a.`STATUS` = 'finished' AND a.EVALUATE_FLAG = 1 - + AND c.EVALUATE_TIME >= #{startTime} - + AND c.EVALUATE_TIME <= #{endTime} ORDER BY c.EVALUATE_TIME DESC From 0dca38f956ee22f69fa14d5ff87a8806fe352d3e Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Tue, 18 Jan 2022 15:43:39 +0800 Subject: [PATCH 04/17] =?UTF-8?q?=E9=A2=84=E8=AD=A6=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../result/PersonWarnRightListResultDTO.java | 7 ++ .../java/com/epmet/dao/IcResiUserDao.java | 2 + .../service/impl/IcResiUserServiceImpl.java | 66 ++++++++++++++++++- .../main/resources/mapper/IcResiUserDao.xml | 19 ++++++ 4 files changed, 93 insertions(+), 1 deletion(-) diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonWarnRightListResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonWarnRightListResultDTO.java index 031f0e6c3d..c98b26cbec 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonWarnRightListResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonWarnRightListResultDTO.java @@ -1,6 +1,7 @@ package com.epmet.dto.result; import com.epmet.commons.tools.constant.NumConstant; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serializable; @@ -39,6 +40,9 @@ public class PersonWarnRightListResultDTO implements Serializable { */ private String gridName; + @JsonIgnore + private String gridId; + /** * 姓名 */ @@ -49,6 +53,9 @@ public class PersonWarnRightListResultDTO implements Serializable { */ private String family; + @JsonIgnore + private String homeId; + /** * 电话 */ diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java index db5f3aa613..bc292276a2 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java @@ -231,4 +231,6 @@ public interface IcResiUserDao extends BaseDao { List listIcResiInfosByUserIds(@Param("userIds") List userIds); Map getCategoryListMap(@Param("icUserId") String icUserId); + + List> selectResiUsers(@Param("types")List types,@Param("orgId")String orgId); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java index 91192dcf42..745b8cf907 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java @@ -1099,7 +1099,71 @@ public class IcResiUserServiceImpl extends BaseServiceImpl> configListResult = operCustomizeOpenFeignClient.getCustomerCategoryShowAndWarnList(tokenDto.getCustomerId()); + if (!configListResult.success()){ + throw new EpmetException("查询居民分类配置失败..."); + } + PersonWarnRightListResultDTO result = new PersonWarnRightListResultDTO(); + if (CollectionUtils.isEmpty(configListResult.getData())){ + return result; + } + List configList = configListResult.getData(); + PageInfo> pageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.selectResiUsers(configList.stream().map(m -> m.getColumnName()).collect(Collectors.toList()), staffInfo.getAgencyId())); + List> list = pageInfo.getList(); + if (CollectionUtils.isEmpty(list)) { + return result; + } + result.setTotal(Integer.valueOf(String.valueOf(pageInfo.getTotal()))); + List userList = disposeCategory(list, configList); + Result> houseInfosResult = govOrgOpenFeignClient.queryListHouseInfo(userList.stream().distinct().map(m -> m.getHomeId()).collect(Collectors.toSet())); + if (!houseInfosResult.success()){ + throw new EpmetException("查询房屋信息失败..."); + } + List houseInfos = houseInfosResult.getData(); + userList.forEach(u -> houseInfos.stream().filter(h -> h.getHomeId().equals(u.getHomeId())).forEach(h -> { + String name = h.getNeighborHoodName()+h.getBuildingName()+h.getUnitName()+h.getHouseName(); + u.setFamily(name); + })); + result.setList(userList); + return result; + } + + /** + * @Description 居民分类 和 网格名 处理 + * @param list + * @param configList + * @author zxc + * @date 2022/1/18 3:22 下午 + */ + public List disposeCategory(List> list,List configList){ + List userList = new ArrayList<>(); + list.forEach(l -> { + PersonWarnRightListResultDTO.PersonWarnRightList dto = ConvertUtils.mapToEntity(l, PersonWarnRightListResultDTO.PersonWarnRightList.class); + // 分类名字 + List types = new ArrayList<>(); + configList.forEach(c -> { + l.forEach((k,v) -> { + if (c.getColumnName().equals(k) && null != v && v.equals(NumConstant.ONE_STR)){ + types.add(c.getLabel()); + } + }); + }); + // 只显示有类别的居民 + if (CollectionUtils.isNotEmpty(types)){ + dto.setType(types); + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(dto.getGridId()); + if (null == gridInfo){ + throw new EpmetException(String.format("查询网格信息失败%s",dto.getGridId())); + } + dto.setGridName(gridInfo.getGridNamePath()); + userList.add(dto); + } + }); + return userList; } /** diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml index d2cf1d73aa..dbba0456fc 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml @@ -540,5 +540,24 @@ del_flag = '0' AND id = #{icUserId} + From ddf1828b8fe6444bf2dfa1e5c998812fcade66a7 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Tue, 18 Jan 2022 15:45:50 +0800 Subject: [PATCH 05/17] =?UTF-8?q?=E9=A2=84=E8=AD=A6=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/service/impl/IcResiUserServiceImpl.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java index 745b8cf907..0e4630e9db 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java @@ -1124,10 +1124,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl houseInfos = houseInfosResult.getData(); - userList.forEach(u -> houseInfos.stream().filter(h -> h.getHomeId().equals(u.getHomeId())).forEach(h -> { - String name = h.getNeighborHoodName()+h.getBuildingName()+h.getUnitName()+h.getHouseName(); - u.setFamily(name); - })); + userList.forEach(u -> houseInfos.stream().filter(h -> h.getHomeId().equals(u.getHomeId())).forEach(h -> u.setFamily(h.getNeighborHoodName()+h.getBuildingName()+h.getUnitName()+h.getHouseName()))); result.setList(userList); return result; } From 9abbd5ed913a4e4cb64e5add45491edf25fb2115 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Tue, 18 Jan 2022 15:49:27 +0800 Subject: [PATCH 06/17] =?UTF-8?q?=E8=81=94=E5=BB=BA=E5=8D=95=E4=BD=8D?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=83=85=E5=86=B5=EF=BC=8C=E7=A7=AF=E5=88=86?= =?UTF-8?q?=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/IcUserDemandRecDao.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml index 486f1eade4..eb1260f58b 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml @@ -591,10 +591,10 @@ a.DEL_FLAG = '0' AND a.`STATUS` = 'finished' AND a.EVALUATE_FLAG = 1 - + AND c.EVALUATE_TIME >= #{startTime} - + AND c.EVALUATE_TIME <= #{endTime} ORDER BY c.EVALUATE_TIME DESC From fb2bdcb0e1d9af838f5e32f3768a54fe4d6739ee Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 18 Jan 2022 15:57:58 +0800 Subject: [PATCH 07/17] =?UTF-8?q?=E4=BA=BA=E5=91=98=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E3=80=81=E4=BA=BA=E5=91=98=E8=B0=83=E5=8A=A8=E3=80=81=E5=8F=98?= =?UTF-8?q?=E6=9B=B4=E8=AE=B0=E5=BD=95=E3=80=81=E5=8F=98=E6=9B=B4=E6=98=8E?= =?UTF-8?q?=E7=BB=86sql=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../V0.0.23__ic_user_transfer_and_change.sql | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.23__ic_user_transfer_and_change.sql diff --git a/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.23__ic_user_transfer_and_change.sql b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.23__ic_user_transfer_and_change.sql new file mode 100644 index 0000000000..0ec0f9e094 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.23__ic_user_transfer_and_change.sql @@ -0,0 +1,96 @@ + +ALTER TABLE `ic_resi_user` +ADD COLUMN `STATUS` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '用户状态【0:正常 1:转出】' AFTER `JTXX_REMAKES`; + +ALTER TABLE `ic_resi_user` +DROP INDEX `customer_idcard_unique`; + +CREATE TABLE `ic_user_transfer_record` ( + `ID` varchar(64) NOT NULL COMMENT '唯一标识', + `IC_USER_ID` varchar(64) NOT NULL COMMENT '被调动人Id【ic_resi_user表id】', + `OPERATOR_ID` varchar(64) NOT NULL COMMENT '调动(工作)人员Id【customer_staff表userId】', + `IC_USER_NAME` varchar(64) NOT NULL COMMENT '被调动人名称【ic_resi_user表name】', + `OPERATOR_NAME` varchar(64) NOT NULL COMMENT '调动(工作)人员名称【customer_staff表real_name】', + `OLD_CUSTOMER_ID` varchar(64) NOT NULL COMMENT '调动前客户Id', + `NEW_CUSTOMER_ID` varchar(64) DEFAULT NULL COMMENT '调动后客户Id', + `OLD_AGENCY_ID` varchar(64) DEFAULT NULL COMMENT '调动前组织Id', + `NEW_AGENCY_ID` varchar(64) DEFAULT NULL COMMENT '调动后组织Id', + `OLD_AGENCY_NAME` varchar(64) DEFAULT NULL COMMENT '调动前组织名称', + `NEW_AGENCY_NAME` varchar(255) DEFAULT NULL COMMENT '调动后组织名称', + `OLD_GRID_ID` varchar(64) DEFAULT NULL COMMENT '调动前网格Id', + `NEW_GRID_ID` varchar(64) DEFAULT NULL COMMENT '调动后网格Id', + `OLD_GRID_NAME` varchar(255) DEFAULT NULL COMMENT '调动前网格名称', + `NEW_GRID_NAME` varchar(255) DEFAULT NULL COMMENT '调动后网格名称', + `OLD_NEIGHBOR_HOOD_ID` varchar(64) DEFAULT NULL COMMENT '调动前小区Id', + `NEW_NEIGHBOR_HOOD_ID` varchar(64) DEFAULT NULL COMMENT '调动后小区Id', + `OLD_NEIGHBOR_HOOD_NAME` varchar(255) DEFAULT NULL COMMENT '调动前小区名称', + `NEW_NEIGHBOR_HOOD_NAME` varchar(255) DEFAULT NULL COMMENT '调动后小区名称', + `OLD_BUILDING_ID` varchar(64) DEFAULT NULL COMMENT '调动前楼栋Id', + `NEW_BUILDING_ID` varchar(64) DEFAULT NULL COMMENT '调动后楼栋Id', + `OLD_BUILDING_NAME` varchar(255) DEFAULT NULL COMMENT '调动前楼栋名称', + `NEW_BUILDING_NAME` varchar(255) DEFAULT NULL COMMENT '调动后楼栋名称', + `OLD_BUILDING_UNIT_ID` varchar(64) DEFAULT NULL COMMENT '调动前单元Id', + `NEW_BUILDING_UNIT_ID` varchar(64) DEFAULT NULL COMMENT '调动后单元Id', + `OLD_BUILDING_UNIT_NAME` varchar(255) DEFAULT NULL COMMENT '调动前单元名称', + `NEW_BUILDING_UNIT_NAME` varchar(255) DEFAULT NULL COMMENT '调动后单元名称', + `OLD_HOUSE_ID` varchar(64) DEFAULT NULL COMMENT '调动前房屋Id', + `NEW_HOUSE_ID` varchar(64) DEFAULT NULL COMMENT '调动后房屋Id', + `OLD_HOUSE_NAME` varchar(255) DEFAULT NULL COMMENT '调动前房屋名称', + `NEW_HOUSE_NAME` varchar(255) DEFAULT NULL COMMENT '调动后房屋名称', + `TRANSFER_TIME` datetime NOT NULL COMMENT '调动时间', + `REMARK` varchar(512) DEFAULT NULL COMMENT '备注说明', + `DEL_FLAG` varchar(1) NOT NULL COMMENT '删除标识', + `REVISION` int(10) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='居民调动记录表'; + +CREATE TABLE `ic_user_change_record` ( + `ID` varchar(64) NOT NULL COMMENT '唯一标识', + `IC_USER_TRANSFER_RECORD_ID` varchar(64) DEFAULT NULL COMMENT '调动表Id【只有调动记录此列才有值】', + `CUSTOMER_ID` varchar(64) DEFAULT NULL COMMENT '当前所属客户Id[迁出客户的此列没值]', + `OPERATOR_ID` varchar(64) NOT NULL COMMENT '操作人Id【customer_staff表userId】', + `IC_USER_ID` varchar(64) NOT NULL COMMENT '被操作人Id【ic_resi_user表id】', + `OPERATOR_NAME` varchar(64) NOT NULL COMMENT '操作人名称【customer_staff表real_name】', + `IC_USER_NAME` varchar(64) NOT NULL COMMENT '被操作人名称【ic_resi_user表name】', + `TYPE` varchar(64) NOT NULL COMMENT '操作类型【add:新增 category:类别 transfer:调动】', + `TYPE_NAME` varchar(64) NOT NULL COMMENT '操作类型名称【add:新增 category:类别 transfer:调动】', + `BEFORE_CHANGE_NAME` varchar(512) DEFAULT NULL COMMENT '变更前文字描述', + `AFTER_CHANGE_NAME` varchar(512) DEFAULT NULL COMMENT '变更后文字描述', + `CHANGE_TIME` datetime NOT NULL COMMENT '调整时间', + `REMARK` varchar(512) DEFAULT NULL COMMENT '备注说明', + `DEL_FLAG` varchar(1) NOT NULL COMMENT '删除标识', + `REVISION` int(10) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='居民变更记录表'; + +CREATE TABLE `ic_user_change_detailed` ( + `ID` varchar(64) NOT NULL COMMENT '唯一标识', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户Id', + `IC_USER_CHANGE_RECORD_ID` varchar(64) NOT NULL COMMENT '变更记录表主键【ic_user_change_record.id】', + `AGENCY_ID` varchar(64) NOT NULL COMMENT '组织Id', + `GRID_ID` varchar(64) NOT NULL COMMENT '网格Id', + `NEIGHBOR_HOOD_ID` varchar(64) NOT NULL COMMENT '小区Id', + `BUILDING_ID` varchar(64) NOT NULL COMMENT '楼栋Id', + `BUILDING_UNIT_ID` varchar(64) NOT NULL COMMENT '单元Id', + `HOUSE_ID` varchar(64) NOT NULL COMMENT '房屋Id', + `IC_USER_ID` varchar(64) NOT NULL COMMENT '变更人Id', + `TYPE` varchar(255) NOT NULL COMMENT '操作类型【add:新增 category:类别 in:迁入 out:迁出】', + `TYPE_NAME` varchar(255) NOT NULL COMMENT '操作类型名称【add:新增 category:类别 in:迁入 out:迁出】', + `FIELD_NAME` varchar(64) NOT NULL COMMENT '字段名【18类对应的ic_resi_user表字段名】', + `VALUE` int(3) NOT NULL COMMENT '当前类别的值', + `DEL_FLAG` varchar(1) NOT NULL COMMENT '删除标识', + `REVISION` int(10) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='变更明细表\r\n[一条变更记录对应多条人员类别数据]'; \ No newline at end of file From cbe0ff7d87db9ef459d1de66476e99f015db87b3 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Tue, 18 Jan 2022 16:09:31 +0800 Subject: [PATCH 08/17] =?UTF-8?q?=E6=88=BF=E5=B1=8B=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/commons/tools/redis/RedisKeys.java | 4 +++ .../com/epmet/dto/result/HouseInfoDTO.java | 5 +++ .../main/java/com/epmet/dao/IcHouseDao.java | 2 ++ .../java/com/epmet/redis/IcHouseRedis.java | 35 +++++++++++++++++++ .../epmet/service/impl/HouseServiceImpl.java | 10 +++++- .../src/main/resources/mapper/IcHouseDao.xml | 24 +++++++++++++ 6 files changed, 79 insertions(+), 1 deletion(-) diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java index f3c669d7cd..1390ed7a3a 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java @@ -636,4 +636,8 @@ public class RedisKeys { public static String getOrgTreeCacheKey(String agencyId) { return rootPrefix.concat("org:temp:orgtree").concat(agencyId); } + + public static String getHouseInfoCacheKey(String houseId){ + return rootPrefix.concat("house:").concat(houseId); + } } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseInfoDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseInfoDTO.java index 853558739b..312befe6ca 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseInfoDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseInfoDTO.java @@ -71,4 +71,9 @@ public class HouseInfoDTO implements Serializable { * 楼的纬度 */ private String buildingLatitude; + + /** + * 小区名+楼栋名+单元名+房屋名 + */ + private String allName; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java index 93c5af18e5..a394aaaef5 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java @@ -59,6 +59,8 @@ public interface IcHouseDao extends BaseDao { List queryHouseInfo(@Param("houseIdList") Set houseIdList); + HouseInfoDTO queryHouseInfoByHouseId(@Param("houseId") String houseId); + /** * @Description 查询房屋信息 * @param idCard diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/IcHouseRedis.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/IcHouseRedis.java index 9159c6eb88..f5b7b8639b 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/IcHouseRedis.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/IcHouseRedis.java @@ -17,9 +17,17 @@ package com.epmet.redis; +import cn.hutool.core.bean.BeanUtil; +import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisUtils; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.dao.IcHouseDao; +import com.epmet.dto.result.HouseInfoDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import java.util.Map; /** * 房屋信息 @@ -32,6 +40,9 @@ public class IcHouseRedis { @Autowired private RedisUtils redisUtils; + @Autowired + private IcHouseDao icHouseDao; + public void delete(Object[] ids) { } @@ -44,4 +55,28 @@ public class IcHouseRedis { return null; } + /** + * @Description 往缓存放房屋信息 + * @param houseId + * @param map + * @author zxc + * @date 2022/1/18 3:55 下午 + */ + public void setHouseInfo(String houseId, Map map){ + String key = RedisKeys.getHouseInfoCacheKey(houseId); + redisUtils.hMSet(key, map); + } + + public HouseInfoDTO getHouseInfo(String houseId){ + String key = RedisKeys.getHouseInfoCacheKey(houseId); + Map map = redisUtils.hGetAll(key); + if (!CollectionUtils.isEmpty(map)){ + return ConvertUtils.mapToEntity(map,HouseInfoDTO.class); + } + HouseInfoDTO houseInfo = icHouseDao.queryHouseInfoByHouseId(houseId); + Map result = BeanUtil.beanToMap(houseInfo, false, true); + setHouseInfo(houseId,result); + return houseInfo; + } + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java index 90a46acfc0..551cd9a82f 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java @@ -1,6 +1,7 @@ package com.epmet.service.impl; import cn.afterturn.easypoi.excel.entity.TemplateExportParams; +import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.epmet.commons.tools.constant.NumConstant; @@ -31,6 +32,7 @@ import com.epmet.enums.HouseRentFlagEnums; import com.epmet.enums.HouseTypeEnums; import com.epmet.excel.IcHouseExcel; import com.epmet.feign.GovOrgOpenFeignClient; +import com.epmet.redis.IcHouseRedis; import com.epmet.service.HouseService; import com.epmet.service.IcBuildingService; import com.epmet.service.IcBuildingUnitService; @@ -69,6 +71,8 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { private IcHouseDao icHouseDao; @Autowired private GovOrgOpenFeignClient govOrgOpenFeignClient; + @Autowired + private IcHouseRedis icHouseRedis; @Override @Transactional(rollbackFor = Exception.class) @@ -313,6 +317,10 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { if(org.apache.commons.collections4.CollectionUtils.isEmpty(houseIdList)){ return new ArrayList<>(); } - return icHouseDao.queryHouseInfo(houseIdList); + List result = new ArrayList<>(); + houseIdList.forEach(h -> { + result.add(icHouseRedis.getHouseInfo(h)); + }); + return result; } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml index b5a8b72a25..900d34ba66 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml @@ -300,4 +300,28 @@ and ih.id !=#{houseId} + From af777cb478b6f12ddbab43918d5c522a768597f3 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 18 Jan 2022 16:19:20 +0800 Subject: [PATCH 09/17] =?UTF-8?q?=E7=BD=91=E6=A0=BC=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E7=B1=BB=E5=88=AB=E5=88=86=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/epmet/dao/user/UserDao.java | 5 + ...FactIcuserCategoryAnalysisDailyEntity.java | 5 +- .../screen/ScreenCustomerGridService.java | 3 +- .../impl/ScreenCustomerGridServiceImpl.java | 6 +- ...cuserCategoryAnalysisDailyServiceImpl.java | 145 ++++++++++++------ .../com/epmet/service/user/UserService.java | 10 ++ .../service/user/impl/UserServiceImpl.java | 26 ++++ .../main/resources/mapper/user/UserDao.xml | 35 ++++- 8 files changed, 176 insertions(+), 59 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java index a6ecca8319..58c9b870ff 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java @@ -278,5 +278,10 @@ public interface UserDao { @Param("agencyId") String agencyId); List selectGridIcUserCategoryTotal(@Param("customerId")String customerId, @Param("dateId")String dateId); + + List selectGridIcUserCategoryIncr(@Param("customerId")String customerId, + @Param("startDate")String startDate, + @Param("endDate")String endDate, + @Param("type")String type); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactIcuserCategoryAnalysisDailyEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactIcuserCategoryAnalysisDailyEntity.java index d1db22e1e9..ff98e8bea5 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactIcuserCategoryAnalysisDailyEntity.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactIcuserCategoryAnalysisDailyEntity.java @@ -27,7 +27,10 @@ public class FactIcuserCategoryAnalysisDailyEntity extends BaseEpmetEntity { * 预警配置ID */ private String configId; - + /** + * 类别列名,对个数据太麻烦了,在这个表存一下 + */ + private String columnName; /** * 当前数据是截止到XXX的:yyyyMMdd */ diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenCustomerGridService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenCustomerGridService.java index 5ea9362398..053dee1079 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenCustomerGridService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenCustomerGridService.java @@ -19,7 +19,6 @@ package com.epmet.service.evaluationindex.screen; import com.epmet.commons.mybatis.service.BaseService; -import com.epmet.dto.CustomerGridDTO; import com.epmet.dto.extract.form.*; import com.epmet.dto.extract.result.GridInfoResultDTO; import com.epmet.dto.indexcollect.form.CustomerBizOrgFormDTO; @@ -138,5 +137,5 @@ public interface ScreenCustomerGridService extends BaseService getByCustomerId(String customerId); + List getByCustomerId(String customerId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerGridServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerGridServiceImpl.java index fe3f1a863e..d184f762d1 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerGridServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerGridServiceImpl.java @@ -29,7 +29,6 @@ import com.epmet.constant.DataSourceConstant; import com.epmet.constant.OrgSourceTypeConstant; import com.epmet.dao.evaluationindex.screen.DimLastSyncRecordDao; import com.epmet.dao.evaluationindex.screen.ScreenCustomerGridDao; -import com.epmet.dto.CustomerGridDTO; import com.epmet.dto.extract.form.*; import com.epmet.dto.extract.result.GridInfoResultDTO; import com.epmet.dto.indexcollect.form.CustomerBizOrgFormDTO; @@ -293,10 +292,9 @@ public class ScreenCustomerGridServiceImpl extends BaseServiceImpl getByCustomerId(String customerId) { + public List getByCustomerId(String customerId) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(ScreenCustomerGridEntity::getCustomerId, customerId); - List list = baseDao.selectList(wrapper); - return ConvertUtils.sourceToTarget(list,CustomerGridDTO.class); + return baseDao.selectList(wrapper); } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactIcuserCategoryAnalysisDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactIcuserCategoryAnalysisDailyServiceImpl.java index 9384c21423..a3d0b5ab26 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactIcuserCategoryAnalysisDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactIcuserCategoryAnalysisDailyServiceImpl.java @@ -6,15 +6,16 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.enums.OrgTypeEnum; import com.epmet.constant.DataSourceConstant; import com.epmet.dao.stats.FactIcuserCategoryAnalysisDailyDao; -import com.epmet.dto.CustomerGridDTO; import com.epmet.dto.customize.IcResiCategoryConfigDTO; import com.epmet.dto.user.result.OrgIcUserTotalDTO; +import com.epmet.entity.evaluationindex.screen.ScreenCustomerGridEntity; import com.epmet.entity.stats.FactIcuserCategoryAnalysisDailyEntity; import com.epmet.service.customize.IcResiCategoryStatsConfigService; import com.epmet.service.evaluationindex.screen.ScreenCustomerAgencyService; import com.epmet.service.evaluationindex.screen.ScreenCustomerGridService; import com.epmet.service.stats.FactIcuserCategoryAnalysisDailyService; import com.epmet.service.user.UserService; +import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.MapUtils; @@ -45,7 +46,8 @@ public class FactIcuserCategoryAnalysisDailyServiceImpl extends BaseServiceImpl< @Autowired private ScreenCustomerGridService gridService; @Autowired - private UserService userService; + private UserService userService; + /** * 数字社区-基础信息-人员类别分析-每个类别的人员总数、较上月迁入迁出人数 * @@ -55,99 +57,142 @@ public class FactIcuserCategoryAnalysisDailyServiceImpl extends BaseServiceImpl< @Override public void statUserCategoryGridDaily(String customerId, String dateId) { //查询出所有用语数据分析的类别column_name,没有则不计算 - List columnList=icResiCategoryStatsConfigService.queryDataColumn(customerId); - if(CollectionUtils.isEmpty(columnList)){ + List columnList = icResiCategoryStatsConfigService.queryDataColumn(customerId); + if (CollectionUtils.isEmpty(columnList)) { + return; + } + //所有网格查询出来 + List gridDTOList = gridService.getByCustomerId(customerId); + if (CollectionUtils.isEmpty(gridDTOList)) { return; } - // //所有网格和组织查询出来 - // List agencyDTOList=agencyService.getByCustomerId(customerId); - List gridDTOList=gridService.getByCustomerId(customerId); //网格维度、组织维度初始好数据 - List initList=constructInitValue(customerId,dateId,gridDTOList,columnList); - if(CollectionUtils.isEmpty(initList)){ + List initList = constructInitValue(customerId, dateId, gridDTOList, columnList); + if (CollectionUtils.isEmpty(initList)) { return; } - // 批量插入数据 - - + //当这3个数都为0的时候不插入数据库了 + List insertList = initList.stream().filter(entity -> (null != entity.getTotal() && entity.getTotal() > 0) + || (null != entity.getQcIncr() && entity.getQcIncr() > 0) + || (null != entity.getQrIncr() && entity.getQrIncr() > 0)).collect(Collectors.toList()); //删除旧数据 - clearOldDatas(customerId,dateId,OrgTypeEnum.GRID.getCode()); + clearOldDatas(customerId, dateId, OrgTypeEnum.GRID.getCode()); + // 批量插入数据 + Lists.partition(insertList, NumConstant.ONE_HUNDRED).forEach(list -> { + insertBatch(list); + }); } - private void clearOldDatas(String customerId, String dateId,String orgType) { + /** + * 删除旧数据 + * + * @param customerId + * @param dateId + * @param orgType grid、agency + */ + private void clearOldDatas(String customerId, String dateId, String orgType) { int deleteNum; do { //每次删除1000条 - deleteNum = baseDao.limitDelete(customerId,dateId,orgType); + deleteNum = baseDao.limitDelete(customerId, dateId, orgType); } while (deleteNum != NumConstant.ZERO); } /** - * * @param customerId - * @param dateId yyyyMMdd + * @param dateId yyyyMMdd * @param gridDTOList 当前客户下所有的网格 - * @param columnList 所有需要分析的类别对应的ic_resi_user的列名,目前只有18类 + * @param columnList 所有需要分析的类别对应的ic_resi_user的列名,目前只有18类 * @return */ - private List constructInitValue(String customerId,String dateId, List gridDTOList,List columnList) { - List list=new ArrayList<>(); - if(CollectionUtils.isEmpty(gridDTOList)){ - //没有配置的类别,退出吧 - return list; - } + private List constructInitValue(String customerId, String dateId, List gridDTOList, List columnList) { + List list = new ArrayList<>(); //1、total // 查询明细ic_user_change_detailed变更明细表,各个网格的各个分类的总人数 - Map> totalMapList=userService.calGridIcUserTotal(customerId,dateId); + Map> totalMapList = userService.calGridIcUserTotal(customerId, dateId); - String monthId=dateId.substring(NumConstant.ZERO,NumConstant.SIX); - String startDate=monthId.concat("01"); - String endDate=dateId; + String monthId = dateId.substring(NumConstant.ZERO, NumConstant.SIX); + String startDate = monthId.concat("01"); + String endDate = dateId; //2、迁入+30:eg:dateId:20211226, [20211201,20211226],类别sum值=1的 - Map> qrList=userService.calGridIcUserQr(customerId,dateId); + Map> qrList = userService.calGridIcUserIncr(customerId, startDate, endDate, "qr"); //3、迁出 -10 :eg:dateId:20211226, [20211201,20211226],类别sum值 !=1的 - Map> qrList=userService.calGridIcUserQr(customerId,dateId); + Map> qcList = userService.calGridIcUserIncr(customerId, startDate, endDate, "qc"); - for(IcResiCategoryConfigDTO config:columnList){ - gridDTOList.forEach(grid->{ - FactIcuserCategoryAnalysisDailyEntity gridData=new FactIcuserCategoryAnalysisDailyEntity(); + for (IcResiCategoryConfigDTO config : columnList) { + gridDTOList.forEach(grid -> { + FactIcuserCategoryAnalysisDailyEntity gridData = new FactIcuserCategoryAnalysisDailyEntity(); gridData.setCustomerId(customerId); gridData.setConfigId(config.getConfigId()); + gridData.setColumnName(config.getColumnName()); gridData.setDateId(dateId); - gridData.setOrgId(grid.getId()); + gridData.setOrgId(grid.getGridId()); gridData.setOrgType(OrgTypeEnum.GRID.getCode()); - gridData.setPid(StringUtils.isNotBlank(grid.getPid())?grid.getPid(): NumConstant.ZERO_STR); - gridData.setPids(grid.getPids()); + gridData.setPid(StringUtils.isNotBlank(grid.getParentAgencyId()) ? grid.getParentAgencyId() : NumConstant.ZERO_STR); + gridData.setPids(grid.getAllParentIds()); - boolean zeroFlag=true; - if(MapUtils.isNotEmpty(totalMapList)&&totalMapList.containsKey(grid.getId())){ + //截止到目前累计值 + boolean totalZeroFlag = true; + if (MapUtils.isNotEmpty(totalMapList) && totalMapList.containsKey(grid.getGridId())) { //当前网格下,有的类别 - List crrentGrid=totalMapList.get(grid.getId()); - if(CollectionUtils.isNotEmpty(crrentGrid)){ + List crrentGrid = totalMapList.get(grid.getGridId()); + if (CollectionUtils.isNotEmpty(crrentGrid)) { //各个类别对应的数 - Map categoryTotalMap=crrentGrid.stream().collect(Collectors.toMap(OrgIcUserTotalDTO::getColumnName, OrgIcUserTotalDTO::getTotal, (key1, key2) -> key2)); - if(MapUtils.isNotEmpty(categoryTotalMap)&&categoryTotalMap.containsKey(config.getColumnName())){ - zeroFlag=false; + Map categoryTotalMap = crrentGrid.stream().collect(Collectors.toMap(OrgIcUserTotalDTO::getColumnName, OrgIcUserTotalDTO::getTotal, (key1, key2) -> key2)); + if (MapUtils.isNotEmpty(categoryTotalMap) && categoryTotalMap.containsKey(config.getColumnName())) { + totalZeroFlag = false; gridData.setTotal(categoryTotalMap.get(config.getColumnName())); } } } - if(zeroFlag){ + if (totalZeroFlag) { gridData.setTotal(NumConstant.ZERO); } - gridData.setQcIncr(NumConstant.ZERO); - gridData.setQrIncr(NumConstant.ZERO); + + //较上月迁入 + boolean incrZeroFlag = true; + if (MapUtils.isNotEmpty(qrList) && qrList.containsKey(grid.getGridId())) { + //当前网格下,有的类别 + List crrentGrid = qrList.get(grid.getGridId()); + if (CollectionUtils.isNotEmpty(crrentGrid)) { + //各个类别对应的数 + Map categoryTotalMap = crrentGrid.stream().collect(Collectors.toMap(OrgIcUserTotalDTO::getColumnName, OrgIcUserTotalDTO::getTotal, (key1, key2) -> key2)); + if (MapUtils.isNotEmpty(categoryTotalMap) && categoryTotalMap.containsKey(config.getColumnName())) { + incrZeroFlag = false; + gridData.setQrIncr(categoryTotalMap.get(config.getColumnName())); + } + } + } + if (incrZeroFlag) { + gridData.setQrIncr(NumConstant.ZERO); + } + + // 较上月迁出: + boolean qcZeroFlag = true; + if (MapUtils.isNotEmpty(qcList) && qcList.containsKey(grid.getGridId())) { + //当前网格下,有的类别 + List crrentGridQc = qcList.get(grid.getGridId()); + if (CollectionUtils.isNotEmpty(crrentGridQc)) { + //各个类别对应的数 + Map categoryTotalMap = crrentGridQc.stream().collect(Collectors.toMap(OrgIcUserTotalDTO::getColumnName, OrgIcUserTotalDTO::getTotal, (key1, key2) -> key2)); + if (MapUtils.isNotEmpty(categoryTotalMap) && categoryTotalMap.containsKey(config.getColumnName())) { + qcZeroFlag = false; + gridData.setQcIncr(categoryTotalMap.get(config.getColumnName())); + } + } + } + if (qcZeroFlag) { + gridData.setQcIncr(NumConstant.ZERO); + } + list.add(gridData); }); } return list; } - public static void main(String[] args) { - String dateId="20211225"; - System.out.println(dateId.substring(0,6)); - } + } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/UserService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/UserService.java index 522e6eeaa5..69482594fb 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/UserService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/UserService.java @@ -176,4 +176,14 @@ public interface UserService { * @return */ Map> calGridIcUserTotal(String customerId, String dateId); + + /** + * + * @param customerId + * @param startDate :变动时间在此范围内的 yyyyMMdd + * @param endDate :yyyyMMdd + * @param type:qr:迁入;qc:迁出 + * @return + */ + Map> calGridIcUserIncr(String customerId, String startDate, String endDate, String type); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java index 007cad7e2b..06c94a0392 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java @@ -1201,4 +1201,30 @@ public class UserServiceImpl implements UserService { return resultMap; } + /** + * @param customerId + * @param startDate :变动时间在此范围内的 yyyyMMdd + * @param endDate :yyyyMMdd + * @param type :qr:迁入;qc:迁出 + * @return + */ + @Override + public Map> calGridIcUserIncr(String customerId, String startDate, String endDate, String type) { + Map> resultMap=new HashMap<>(); + List list=userDao.selectGridIcUserCategoryIncr(customerId,startDate,endDate,type); + if(CollectionUtils.isEmpty(list)){ + return resultMap; + } + for(OrgIcUserTotalDTO dto:list){ + if(resultMap.containsKey(dto.getOrgId())){ + resultMap.get(dto.getOrgId()).add(dto); + continue; + } + List newList=new ArrayList<>(); + newList.add(dto); + resultMap.put(dto.getOrgId(),newList); + } + return resultMap; + } + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml index 7bec8ecc7b..11d9e4aaef 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml @@ -1107,7 +1107,7 @@ select temp.orgId, temp.FIELD_NAME as columnName, - count(distinct temp.IC_USER_ID) as total + count(temp.IC_USER_ID) as total from ( SELECT d.GRID_ID as orgId, @@ -1120,9 +1120,40 @@ d.DEL_FLAG = '0' AND d.CUSTOMER_ID = #{customerId} AND DATE_FORMAT( d.CREATED_TIME, '%Y%m%d' ) <= #{dateId} - group by d.orgId,d.IC_USER_ID,d.FIELD_NAME + group by d.GRID_ID,d.IC_USER_ID,d.FIELD_NAME )temp where temp.result=1 group by temp.orgId,temp.FIELD_NAME + + + From 3cbb59cd91320a640893b67939b9bd2365e23742 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Tue, 18 Jan 2022 16:27:19 +0800 Subject: [PATCH 10/17] =?UTF-8?q?=E6=88=BF=E5=B1=8B=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/commons/tools/redis/RedisKeys.java | 4 ++-- .../epmet/service/impl/IcUserDemandRecServiceImpl.java | 4 ++-- .../main/java/com/epmet/dto/result/HouseInfoDTO.java | 2 ++ .../java/com/epmet/feign/GovOrgOpenFeignClient.java | 2 +- .../feign/fallback/GovOrgOpenFeignClientFallback.java | 4 ++-- .../java/com/epmet/controller/HouseController.java | 4 ++-- .../src/main/java/com/epmet/redis/IcHouseRedis.java | 10 +++++----- .../src/main/java/com/epmet/service/HouseService.java | 2 +- .../java/com/epmet/service/impl/HouseServiceImpl.java | 4 ++-- .../src/main/resources/mapper/IcHouseDao.xml | 1 + .../com/epmet/service/impl/IcResiUserServiceImpl.java | 4 ++-- 11 files changed, 22 insertions(+), 19 deletions(-) diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java index 1390ed7a3a..dc3fb232bc 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java @@ -637,7 +637,7 @@ public class RedisKeys { return rootPrefix.concat("org:temp:orgtree").concat(agencyId); } - public static String getHouseInfoCacheKey(String houseId){ - return rootPrefix.concat("house:").concat(houseId); + public static String getHouseInfoCacheKey(String houseId,String customerId){ + return rootPrefix.concat("house:").concat(customerId).concat(":").concat(houseId); } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java index 591d08130c..ffb5bac51c 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java @@ -154,7 +154,7 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl houseIds=new HashSet<>(); houseIds.add(updateEntity.getDemandUserHouseId()); - Result> houseInfoRes=govOrgOpenFeignClient.queryListHouseInfo(houseIds); + Result> houseInfoRes=govOrgOpenFeignClient.queryListHouseInfo(houseIds,dto.getCustomerId()); if(!houseInfoRes.success()||CollectionUtils.isEmpty(houseInfoRes.getData())){ throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), "查询需求人房屋地址信息异常"+JSON.toJSONString(houseInfoRes)); } @@ -223,7 +223,7 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl houseIds=new HashSet<>(); houseIds.add(insertEntity.getDemandUserHouseId()); - Result> houseInfoRes=govOrgOpenFeignClient.queryListHouseInfo(houseIds); + Result> houseInfoRes=govOrgOpenFeignClient.queryListHouseInfo(houseIds, fromDTO.getCustomerId()); if(!houseInfoRes.success()||CollectionUtils.isEmpty(houseInfoRes.getData())){ throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), "查询需求人房屋地址信息异常"+JSON.toJSONString(houseInfoRes)); } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseInfoDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseInfoDTO.java index 312befe6ca..3a3ca19096 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseInfoDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseInfoDTO.java @@ -76,4 +76,6 @@ public class HouseInfoDTO implements Serializable { * 小区名+楼栋名+单元名+房屋名 */ private String allName; + + private String customerId; } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java index 497cae9547..9293546170 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java @@ -460,7 +460,7 @@ public interface GovOrgOpenFeignClient { Result getGridBaseInfoByGridId(CustomerGridFormDTO customerGridFormDTO); @PostMapping(value = "/gov/org/house/queryListHouseInfo",consumes = MediaType.APPLICATION_JSON_VALUE) - Result> queryListHouseInfo(@RequestBody Set houseIds); + Result> queryListHouseInfo(@RequestBody Set houseIds, @RequestParam("customerId") String customerId); diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java index d4330f90d0..7b245ec735 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java @@ -276,8 +276,8 @@ public class GovOrgOpenFeignClientFallback implements GovOrgOpenFeignClient { } @Override - public Result> queryListHouseInfo(Set houseIds) { - return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "queryListHouseInfo", houseIds); + public Result> queryListHouseInfo(Set houseIds ,String customerId) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "queryListHouseInfo", houseIds, customerId); } @Override diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java index f593287e77..cd54f15e64 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java @@ -229,7 +229,7 @@ public class HouseController implements ResultDataResolver { } @PostMapping( "queryListHouseInfo") - Result> queryListHouseInfo(@RequestBody Set houseIds){ - return new Result>().ok(houseService.queryListHouseInfo(houseIds)); + Result> queryListHouseInfo(@RequestBody Set houseIds, @RequestParam("customerId") String customerId){ + return new Result>().ok(houseService.queryListHouseInfo(houseIds,customerId)); } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/IcHouseRedis.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/IcHouseRedis.java index f5b7b8639b..4f3ece54a8 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/IcHouseRedis.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/redis/IcHouseRedis.java @@ -62,20 +62,20 @@ public class IcHouseRedis { * @author zxc * @date 2022/1/18 3:55 下午 */ - public void setHouseInfo(String houseId, Map map){ - String key = RedisKeys.getHouseInfoCacheKey(houseId); + public void setHouseInfo(String houseId, Map map,String customerId){ + String key = RedisKeys.getHouseInfoCacheKey(houseId,customerId); redisUtils.hMSet(key, map); } - public HouseInfoDTO getHouseInfo(String houseId){ - String key = RedisKeys.getHouseInfoCacheKey(houseId); + public HouseInfoDTO getHouseInfo(String houseId,String customerId){ + String key = RedisKeys.getHouseInfoCacheKey(houseId,customerId); Map map = redisUtils.hGetAll(key); if (!CollectionUtils.isEmpty(map)){ return ConvertUtils.mapToEntity(map,HouseInfoDTO.class); } HouseInfoDTO houseInfo = icHouseDao.queryHouseInfoByHouseId(houseId); Map result = BeanUtil.beanToMap(houseInfo, false, true); - setHouseInfo(houseId,result); + setHouseInfo(houseId,result,houseInfo.getCustomerId()); return houseInfo; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java index ac7f28dbbc..ad5d1d69cb 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java @@ -61,5 +61,5 @@ public interface HouseService { void exportBuildinginfo(ListIcNeighborHoodFormDTO formDTO, HttpServletResponse response) throws Exception; - List queryListHouseInfo(Set houseIds); + List queryListHouseInfo(Set houseIds, String customerId); } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java index 551cd9a82f..d8ad9630ef 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java @@ -313,13 +313,13 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { }*/ @Override - public List queryListHouseInfo(Set houseIdList) { + public List queryListHouseInfo(Set houseIdList, String customerId) { if(org.apache.commons.collections4.CollectionUtils.isEmpty(houseIdList)){ return new ArrayList<>(); } List result = new ArrayList<>(); houseIdList.forEach(h -> { - result.add(icHouseRedis.getHouseInfo(h)); + result.add(icHouseRedis.getHouseInfo(h,customerId)); }); return result; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml index 900d34ba66..7411fb6575 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml @@ -315,6 +315,7 @@ IFNULL(ih.HOUSE_NAME,'') as HOUSE_NAME, IFNULL(ib.LONGITUDE,'') as buildingLongitude, IFNULL(ib.LATITUDE,'') as buildingLatitude, + ih.CUSTOMER_ID AS customerId, concat(IFNULL(n.NEIGHBOR_HOOD_NAME,''),IFNULL(ib.BUILDING_NAME,''),IFNULL(u.UNIT_NAME,''),IFNULL(ih.HOUSE_NAME,'')) AS allName FROM ic_house ih left JOIN ic_neighbor_hood n ON ( ih.NEIGHBOR_HOOD_ID = n.id ) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java index 0e4630e9db..4e02d02cea 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java @@ -526,7 +526,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl gridInfoMap = gridInfoList.stream().collect(Collectors.toMap(AllGridsByUserIdResultDTO::getGridId, Function.identity())); //查询房子名称 - Result> houseInfoRes=govOrgOpenFeignClient.queryListHouseInfo(houseIds); + Result> houseInfoRes=govOrgOpenFeignClient.queryListHouseInfo(houseIds,formDTO.getCustomerId()); List houseInfoDTOList = houseInfoRes.success() && !CollectionUtils.isEmpty(houseInfoRes.getData()) ? houseInfoRes.getData() : new ArrayList<>(); Map houseInfoMap = houseInfoDTOList.stream().collect(Collectors.toMap(HouseInfoDTO::getHomeId, Function.identity())); for (Map resultMap : list) { @@ -1119,7 +1119,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl userList = disposeCategory(list, configList); - Result> houseInfosResult = govOrgOpenFeignClient.queryListHouseInfo(userList.stream().distinct().map(m -> m.getHomeId()).collect(Collectors.toSet())); + Result> houseInfosResult = govOrgOpenFeignClient.queryListHouseInfo(userList.stream().distinct().map(m -> m.getHomeId()).collect(Collectors.toSet()),tokenDto.getCustomerId()); if (!houseInfosResult.success()){ throw new EpmetException("查询房屋信息失败..."); } From e54149303efbc4cf040dc977791cd5484370dbb1 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 18 Jan 2022 16:32:11 +0800 Subject: [PATCH 11/17] =?UTF-8?q?=E4=BA=BA=E5=91=98=E5=8F=98=E6=9B=B4?= =?UTF-8?q?=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/CustomerAgencyServiceImpl.java | 8 +-- .../service/impl/IcResiUserServiceImpl.java | 37 +++++----- .../impl/IcUserTransferRecordServiceImpl.java | 71 ++++++++++--------- 3 files changed, 62 insertions(+), 54 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java index 372aafa390..7403df24f9 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java @@ -1387,10 +1387,10 @@ public class CustomerAgencyServiceImpl extends BaseServiceImpl map) { - Date date = (Date) new java.util.Date(); + java.util.Date date = new java.util.Date(); //1.判断维度数据是否修改【网格、小区、楼栋、单元、房间有变化则先走人员调动逻辑】 if ((map.containsKey("GRID_ID") && !entity.getGridId().equals(map.get("GRID_ID"))) || (map.containsKey("VILLAGE_ID") && !entity.getVillageId().equals(map.get("VILLAGE_ID"))) || (map.containsKey("BUILD_ID") && !entity.getBuildId().equals(map.get("BUILD_ID"))) || (map.containsKey("UNIT_ID") && !entity.getUnitId().equals(map.get("UNIT_ID"))) @@ -413,22 +413,25 @@ public class IcResiUserServiceImpl extends BaseServiceImpl l.setIcUserChangeRecordId(changeRecordEntity.getId())); - icUserChangeDetailedService.insertBatch(list); + //居民信息修改中有类别修改的才会生成变更记录和变更明细 + if (list.size() > NumConstant.ZERO) { + //变更记录 + CustomerStaffInfoCacheResult staffInfoCache = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId()); + changeRecordEntity.setCustomerId(tokenDto.getCustomerId()); + changeRecordEntity.setOperatorId(tokenDto.getUserId()); + changeRecordEntity.setIcUserId(entity.getId()); + changeRecordEntity.setOperatorName(staffInfoCache.getRealName()); + changeRecordEntity.setIcUserName(map.containsKey("NAME") ? map.get("NAME") : entity.getName()); + changeRecordEntity.setType("category"); + changeRecordEntity.setTypeName("类别"); + changeRecordEntity.setBeforeChangeName(beforeChangeName.toString()); + changeRecordEntity.setAfterChangeName(afterChangeName.toString()); + changeRecordEntity.setChangeTime(date); + icUserChangeRecordService.insert(changeRecordEntity); + + list.forEach(l -> l.setIcUserChangeRecordId(changeRecordEntity.getId())); + icUserChangeDetailedService.insertBatch(list); + } } /** diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcUserTransferRecordServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcUserTransferRecordServiceImpl.java index e2616d2842..1d994dd30c 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcUserTransferRecordServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcUserTransferRecordServiceImpl.java @@ -98,22 +98,24 @@ public class IcUserTransferRecordServiceImpl extends BaseServiceImpl result2 = govOrgOpenFeignClient.icResiUserOrgMsg(orgMsgFormDTO2); - if (!result2.success() || null == result2.getData().getAgencyDTO() || null == result2.getData().getGridDTO() || null == result2.getData().getNeighborHoodDTO() - || null == result2.getData().getBuildingDTO() || null == result2.getData().getBuildingUnitDTO() || null == result2.getData().getHouseDTO()) { - log.warn("查找被调动人调动后的组织、网格、小区、楼栋、单元、房屋信息失败"); - throw new RenException("9000", "获取被调动人基础信息失败"); + Result result2 = new Result<>(); + if("in".equals(formDTO.getType())){ + IcResiUserOrgMsgFormDTO orgMsgFormDTO2 = new IcResiUserOrgMsgFormDTO(); + orgMsgFormDTO2.setCustomerId(formDTO.getCustomerId()); + orgMsgFormDTO2.setAgencyId(formDTO.getNewAgencyId()); + orgMsgFormDTO2.setGridId(formDTO.getNewGridId()); + orgMsgFormDTO2.setNeighborHoodId(formDTO.getNewNeighborHoodId()); + orgMsgFormDTO2.setBuildingId(formDTO.getNewBuildingId()); + orgMsgFormDTO2.setBuildingUnitId(formDTO.getNewBuildingUnitId()); + orgMsgFormDTO2.setHouseId(formDTO.getNewHouseId()); + result2 = govOrgOpenFeignClient.icResiUserOrgMsg(orgMsgFormDTO2); + if (!result2.success() || null == result2.getData().getAgencyDTO() || null == result2.getData().getGridDTO() || null == result2.getData().getNeighborHoodDTO() + || null == result2.getData().getBuildingDTO() || null == result2.getData().getBuildingUnitDTO() || null == result2.getData().getHouseDTO()) { + log.warn("查找被调动人调动后的组织、网格、小区、楼栋、单元、房屋信息失败"); + throw new RenException("9000", "获取被调动人基础信息失败"); + } } - //4.修改被调动人所属各维度信息或人员状态信息 if (formDTO.getIdEdit()) { IcResiUserEntity userEntity = new IcResiUserEntity(); @@ -156,10 +158,12 @@ public class IcUserTransferRecordServiceImpl extends BaseServiceImpl Date: Tue, 18 Jan 2022 16:37:09 +0800 Subject: [PATCH 12/17] =?UTF-8?q?=E4=BA=BA=E5=91=98=E5=8F=98=E6=9B=B4?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E7=B1=BB=E5=88=AB=E5=AD=97=E5=85=B8=E8=A1=A8?= =?UTF-8?q?=EF=BC=9A=E8=BF=81=E5=85=A5=EF=BC=8C=E8=BF=81=E5=87=BA=EF=BC=8C?= =?UTF-8?q?=E7=B1=BB=E5=88=AB=EF=BC=8C=E6=96=B0=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../db/migration/V0.0.10__add_icuserchangetype_dict.sql | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 epmet-admin/epmet-admin-server/src/main/resources/db/migration/V0.0.10__add_icuserchangetype_dict.sql diff --git a/epmet-admin/epmet-admin-server/src/main/resources/db/migration/V0.0.10__add_icuserchangetype_dict.sql b/epmet-admin/epmet-admin-server/src/main/resources/db/migration/V0.0.10__add_icuserchangetype_dict.sql new file mode 100644 index 0000000000..52b0043f7f --- /dev/null +++ b/epmet-admin/epmet-admin-server/src/main/resources/db/migration/V0.0.10__add_icuserchangetype_dict.sql @@ -0,0 +1,7 @@ +INSERT INTO `epmet_admin`.`sys_dict_type` (`id`, `dict_type`, `dict_name`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1483355574648180737', 'ic_user_change_type', '人员变动类型', '操作类型名称【add:新增 category:类别 in:迁入 out:迁出】', 17, 0, 0, '1', '2022-01-18 16:28:23', '1', '2022-01-18 16:28:42'); + + +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1483355968996642817', 1483355574648180737, '迁出', 'out', '0', '操作类型名称【add:新增 category:类别 in:迁入 out:迁出】', 4, 0, 0, '1', '2022-01-18 16:29:57', '1', '2022-01-18 16:29:57'); +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1483355899824181249', 1483355574648180737, '迁入', 'in', '0', '操作类型名称【add:新增 category:类别 in:迁入 out:迁出】', 3, 0, 0, '1', '2022-01-18 16:29:41', '1', '2022-01-18 16:29:41'); +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1483355832321052673', 1483355574648180737, '类别', 'category', '0', '操作类型名称【add:新增 category:类别 in:迁入 out:迁出】', 2, 0, 0, '1', '2022-01-18 16:29:25', '1', '2022-01-18 16:29:25'); +INSERT INTO `epmet_admin`.`sys_dict_data` (`id`, `dict_type_id`, `dict_label`, `dict_value`, `dict_p_value`, `remark`, `sort`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1483355752541196290', 1483355574648180737, '新增', 'add', '0', '操作类型名称【add:新增 category:类别 in:迁入 out:迁出】', 1, 0, 0, '1', '2022-01-18 16:29:05', '1', '2022-01-18 16:29:05'); \ No newline at end of file From 415863852bbcb9cecc16dbfefd34e50c1086afe3 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Tue, 18 Jan 2022 16:51:52 +0800 Subject: [PATCH 13/17] =?UTF-8?q?=E6=88=BF=E5=B1=8B=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/epmet/service/impl/IcResiUserServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java index 988a5c6eb0..fdd4137135 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java @@ -1127,7 +1127,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl houseInfos = houseInfosResult.getData(); - userList.forEach(u -> houseInfos.stream().filter(h -> h.getHomeId().equals(u.getHomeId())).forEach(h -> u.setFamily(h.getNeighborHoodName()+h.getBuildingName()+h.getUnitName()+h.getHouseName()))); + userList.forEach(u -> houseInfos.stream().filter(h -> h.getHomeId().equals(u.getHomeId())).forEach(h -> u.setFamily(h.getAllName()))); result.setList(userList); return result; } From 1319a1d65bd91d319aa66364d90d886c5d28dc3b Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 18 Jan 2022 17:27:09 +0800 Subject: [PATCH 14/17] =?UTF-8?q?=E4=BA=BA=E5=91=98=E5=8F=98=E6=9B=B4?= =?UTF-8?q?=E6=98=8E=E7=BB=86=E8=A1=A8=E5=A2=9E=E5=8A=A0pids=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/dto/IcUserChangeDetailedDTO.java | 5 +++++ .../epmet/entity/IcUserChangeDetailedEntity.java | 5 +++++ .../service/impl/IcResiUserServiceImpl.java | 7 +++++++ .../impl/IcUserTransferRecordServiceImpl.java | 16 ++++++++++++++++ .../migration/V0.0.24__alter_change_detailed.sql | 3 +++ 5 files changed, 36 insertions(+) create mode 100644 epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.24__alter_change_detailed.sql diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcUserChangeDetailedDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcUserChangeDetailedDTO.java index 2220f907f5..cc4ed1a405 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcUserChangeDetailedDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcUserChangeDetailedDTO.java @@ -49,6 +49,11 @@ public class IcUserChangeDetailedDTO implements Serializable { */ private String icUserChangeRecordId; + /** + * 组织的所有上级Id + */ + private String pids; + /** * 组织Id */ diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcUserChangeDetailedEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcUserChangeDetailedEntity.java index 35608feae9..f60a5d1e36 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcUserChangeDetailedEntity.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcUserChangeDetailedEntity.java @@ -46,6 +46,11 @@ public class IcUserChangeDetailedEntity extends BaseEpmetEntity { */ private String icUserChangeRecordId; + /** + * 组织的所有上级Id + */ + private String pids; + /** * 组织Id */ diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java index fdd4137135..28036d3a59 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java @@ -40,6 +40,7 @@ import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.redis.common.CustomerOrgRedis; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; +import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; @@ -254,6 +255,10 @@ public class IcResiUserServiceImpl extends BaseServiceImpl list = new ArrayList<>(); IcUserChangeDetailedEntity outEntity = null; IcUserChangeDetailedEntity inEntity = null; + AgencyInfoCache oldAgencyInfo = CustomerOrgRedis.getAgencyInfo(resiUserDTO.getAgencyId()); + if (null == oldAgencyInfo) { + throw new EpmetException(String.format("查询组织信息失败%s", resiUserDTO.getAgencyId())); + } + AgencyInfoCache newAgencyInfo = new AgencyInfoCache(); + if ("in".equals(formDTO.getType())) { + newAgencyInfo = CustomerOrgRedis.getAgencyInfo(formDTO.getNewAgencyId()); + if (null == newAgencyInfo) { + throw new EpmetException(String.format("查询组织信息失败%s", formDTO.getNewAgencyId())); + } + } for (IcResiCategoryWarnConfigDTO cf : configList) { if ("1".equals(map.get(cf.getColumnName()))) { //迁出 outEntity = new IcUserChangeDetailedEntity(); outEntity.setCustomerId(formDTO.getCustomerId()); outEntity.setIcUserChangeRecordId(icUserChangeRecordId); + outEntity.setPids(oldAgencyInfo.getPids()); outEntity.setAgencyId(resiUserDTO.getAgencyId()); outEntity.setGridId(resiUserDTO.getGridId()); outEntity.setNeighborHoodId(resiUserDTO.getVillageId()); @@ -254,6 +269,7 @@ public class IcUserTransferRecordServiceImpl extends BaseServiceImpl Date: Tue, 18 Jan 2022 18:08:39 +0800 Subject: [PATCH 15/17] =?UTF-8?q?=E4=BA=BA=E5=91=98=E7=B1=BB=E5=88=AB?= =?UTF-8?q?=E5=88=86=E6=9E=90=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/IcUsercategoryAnalysisFormDTO.java | 42 +++++++++++++ .../IcUsercategoryAnalysisResultDTO.java | 33 ++++++++++ .../IcUserChangeRecordController.java | 14 +++++ .../com/epmet/dao/IcUserChangeRecordDao.java | 4 ++ .../service/IcUserChangeRecordService.java | 10 +++ .../impl/IcUserChangeRecordServiceImpl.java | 63 +++++++++++++++++++ .../mapper/IcUserChangeRecordDao.xml | 29 +++++++++ 7 files changed, 195 insertions(+) create mode 100644 epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcUsercategoryAnalysisFormDTO.java create mode 100644 epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcUsercategoryAnalysisResultDTO.java diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcUsercategoryAnalysisFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcUsercategoryAnalysisFormDTO.java new file mode 100644 index 0000000000..5e448e6ad8 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcUsercategoryAnalysisFormDTO.java @@ -0,0 +1,42 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * 数字社区-人员类别分析 入参DTO + * 某个类别的迁入、迁出、新增、类别列表 + */ +@Data +public class IcUsercategoryAnalysisFormDTO implements Serializable { + public interface AddUserInternalGroup {} + public interface AddUserShowGroup extends CustomerClientShowGroup {} + @NotBlank(message = "请选择查看某个人员类别",groups =AddUserShowGroup.class ) + private String categoryKey; + + @NotBlank(message = "dateId不能为空",groups =AddUserInternalGroup.class ) + @Length(min = 8, max = 8,message = "dateId格式:yyyyMMdd",groups =AddUserInternalGroup.class) + private String dateId; + + private String type; + + @NotNull(message = "页码pageNo不能为空",groups =AddUserInternalGroup.class ) + private Integer pageNo; + @NotNull(message = "页量pageSize不能为空",groups =AddUserInternalGroup.class ) + private Integer pageSize; + + @NotBlank(message = "请选择查看某个组织或网格",groups =AddUserShowGroup.class ) + private String orgId; + @NotBlank(message = "orgType不能为空",groups =AddUserInternalGroup.class ) + private String orgType; + + private String startDate; + private String endDate; + +} + diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcUsercategoryAnalysisResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcUsercategoryAnalysisResultDTO.java new file mode 100644 index 0000000000..ac3ff1a3b2 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcUsercategoryAnalysisResultDTO.java @@ -0,0 +1,33 @@ +package com.epmet.dto.result; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 人员类别分析 + * 列表返参 + */ +@Data +public class IcUsercategoryAnalysisResultDTO implements Serializable { + private static final long serialVersionUID = 8071180665763717817L; + private String icUserId; + private String name; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") + private Date changeTime; + private String typeName; + private String type; + private String gridName; + private String address; + + // @JsonIgnore + private String buildingId; + // @JsonIgnore + private String gridId; + // @JsonIgnore + private Integer value; + // @JsonIgnore + private String fieldName; +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcUserChangeRecordController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcUserChangeRecordController.java index fc11027e8f..5ab2dae1eb 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcUserChangeRecordController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcUserChangeRecordController.java @@ -17,11 +17,14 @@ package com.epmet.controller; +import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.form.IcResiUserChangeRecordFormDTO; import com.epmet.dto.form.IcResiUserTransferFormDTO; +import com.epmet.dto.form.IcUsercategoryAnalysisFormDTO; import com.epmet.dto.result.IcUserChangeRecordResultDTO; +import com.epmet.dto.result.IcUsercategoryAnalysisResultDTO; import com.epmet.service.IcUserChangeRecordService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; @@ -53,4 +56,15 @@ public class IcUserChangeRecordController { return new Result().ok(icUserChangeRecordService.list(formDTO)); } + /** + * 人员类别分析 + * @param formDTO + * @return + */ + // /epmetuser/icuserchangerecord/category-analysis-list + @PostMapping("category-analysis-list") + public Result> categoryAnalysisList(@RequestBody IcUsercategoryAnalysisFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO,IcUsercategoryAnalysisFormDTO.AddUserShowGroup.class,IcUsercategoryAnalysisFormDTO.AddUserInternalGroup.class); + return new Result>().ok(icUserChangeRecordService.categoryAnalysisList(formDTO)); + } } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcUserChangeRecordDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcUserChangeRecordDao.java index d0079ab6eb..0e82f9564e 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcUserChangeRecordDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcUserChangeRecordDao.java @@ -19,6 +19,8 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.IcUserChangeRecordDTO; +import com.epmet.dto.form.IcUsercategoryAnalysisFormDTO; +import com.epmet.dto.result.IcUsercategoryAnalysisResultDTO; import com.epmet.entity.IcUserChangeRecordEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -39,4 +41,6 @@ public interface IcUserChangeRecordDao extends BaseDao * @Description 查询居民变更记录 **/ List getList(@Param("icUserId") String icUserId); + + List categoryAnalysisList(IcUsercategoryAnalysisFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcUserChangeRecordService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcUserChangeRecordService.java index 8032331a16..252c5abd94 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcUserChangeRecordService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcUserChangeRecordService.java @@ -18,8 +18,11 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; import com.epmet.dto.form.IcResiUserChangeRecordFormDTO; +import com.epmet.dto.form.IcUsercategoryAnalysisFormDTO; import com.epmet.dto.result.IcUserChangeRecordResultDTO; +import com.epmet.dto.result.IcUsercategoryAnalysisResultDTO; import com.epmet.entity.IcUserChangeRecordEntity; /** @@ -35,4 +38,11 @@ public interface IcUserChangeRecordService extends BaseService categoryAnalysisList(IcUsercategoryAnalysisFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcUserChangeRecordServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcUserChangeRecordServiceImpl.java index 4b61577545..9f764e9c05 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcUserChangeRecordServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcUserChangeRecordServiceImpl.java @@ -18,17 +18,34 @@ package com.epmet.service.impl; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.StrConstant; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.Result; import com.epmet.dao.IcUserChangeRecordDao; import com.epmet.dto.IcUserChangeRecordDTO; import com.epmet.dto.form.IcResiUserChangeRecordFormDTO; +import com.epmet.dto.form.IcUsercategoryAnalysisFormDTO; +import com.epmet.dto.result.AllGridsByUserIdResultDTO; +import com.epmet.dto.result.BuildingResultDTO; import com.epmet.dto.result.IcUserChangeRecordResultDTO; +import com.epmet.dto.result.IcUsercategoryAnalysisResultDTO; import com.epmet.entity.IcUserChangeRecordEntity; +import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.service.IcUserChangeRecordService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.Function; +import java.util.stream.Collectors; + /** * 居民变更记录表 * @@ -37,6 +54,9 @@ import org.springframework.util.CollectionUtils; */ @Service public class IcUserChangeRecordServiceImpl extends BaseServiceImpl implements IcUserChangeRecordService { + @Autowired + private GovOrgOpenFeignClient govOrgOpenFeignClient; + /** * @Author sun @@ -55,4 +75,47 @@ public class IcUserChangeRecordServiceImpl extends BaseServiceImpl categoryAnalysisList(IcUsercategoryAnalysisFormDTO formDTO) { + formDTO.setEndDate(formDTO.getDateId()); + String monthId = formDTO.getDateId().substring(NumConstant.ZERO, NumConstant.SIX); + formDTO.setStartDate(monthId.concat("01")); + PageInfo pageInfo = PageHelper.startPage(formDTO.getPageNo(), + formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.categoryAnalysisList(formDTO)); + List list = pageInfo.getList(); + if (!CollectionUtils.isEmpty(list)) { + //获取网格信息 + Set gridIds = list.stream().map(IcUsercategoryAnalysisResultDTO::getGridId).collect(Collectors.toSet()); + Result> gridInfoRes = govOrgOpenFeignClient.getGridListByGridIds(new ArrayList<>(gridIds)); + List gridInfoList = gridInfoRes.success() && !org.apache.commons.collections4.CollectionUtils.isEmpty(gridInfoRes.getData()) ? gridInfoRes.getData() : new ArrayList<>(); + Map gridInfoMap = gridInfoList.stream().collect(Collectors.toMap(AllGridsByUserIdResultDTO::getGridId, Function.identity())); + //获取楼栋信息 + Set buildingIds = list.stream().map(IcUsercategoryAnalysisResultDTO::getBuildingId).collect(Collectors.toSet()); + Result> buildRes = govOrgOpenFeignClient.buildingListByIds(new ArrayList<>(buildingIds)); + List buildInfoList = buildRes.success() && !org.apache.commons.collections4.CollectionUtils.isEmpty(buildRes.getData()) ? buildRes.getData() : new ArrayList<>(); + Map buildInfoMap = buildInfoList.stream().collect(Collectors.toMap(BuildingResultDTO::getBuildingId, Function.identity())); + list.forEach(resultDto -> { + //赋值小区名+楼栋名 + if (null != buildInfoMap && buildInfoMap.containsKey(resultDto.getBuildingId())) { + resultDto.setAddress(buildInfoMap.get(resultDto.getBuildingId()).getNeighborhoodName().concat(buildInfoMap.get(resultDto.getBuildingId()).getBuildingName())); + } else { + resultDto.setAddress(StrConstant.EPMETY_STR); + } + //赋值XXX-xxx网格名 + if (null != gridInfoMap && gridInfoMap.containsKey(resultDto.getGridId())) { + resultDto.setGridName(gridInfoMap.get(resultDto.getGridId()).getGridName()); + } else { + resultDto.setGridName(StrConstant.EPMETY_STR); + } + }); + } + return new PageData<>(list, pageInfo.getTotal()); + } + } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcUserChangeRecordDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcUserChangeRecordDao.xml index 7c606296e0..6ef762b208 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcUserChangeRecordDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcUserChangeRecordDao.xml @@ -26,4 +26,33 @@ ORDER BY change_time DESC, type ASC + + \ No newline at end of file From 6cfe2b37e87fe0df5aa61f71cbc6e30d088ede18 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Wed, 19 Jan 2022 10:32:51 +0800 Subject: [PATCH 16/17] =?UTF-8?q?=E4=BA=BA=E5=91=98=E7=B1=BB=E5=88=AB?= =?UTF-8?q?=E5=88=86=E6=9E=90-3=E4=B8=AA=E6=95=B0=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FactIcuserCategoryAnalysisDailyDTO.java | 110 ++++++++++++++++++ .../epmetuser/form/IcUserCategoryFormDTO.java | 37 ++++++ .../result/IcUserCategoryResultDTO.java | 50 ++++++++ .../controller/IcUserController.java | 42 +++++++ .../dataaggre/dao/datastats/DataStatsDao.java | 10 +- .../dao/opercustomize/CustomerFootBarDao.java | 2 + .../service/datastats/DataStatsService.java | 5 + .../datastats/impl/DataStatsServiceImpl.java | 19 ++- .../service/epmetuser/EpmetUserService.java | 7 ++ .../epmetuser/impl/EpmetUserServiceImpl.java | 64 +++++++++- .../opercustomize/CustomerFootBarService.java | 9 ++ .../impl/CustomerFootBarServiceImpl.java | 14 ++- .../mapper/datastats/DatsStatsDao.xml | 36 ++++++ .../opercustomize/CustomerFootBarDao.xml | 15 +++ 14 files changed, 415 insertions(+), 5 deletions(-) create mode 100644 epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/FactIcuserCategoryAnalysisDailyDTO.java create mode 100644 epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/IcUserCategoryFormDTO.java create mode 100644 epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/IcUserCategoryResultDTO.java create mode 100644 epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/IcUserController.java diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/FactIcuserCategoryAnalysisDailyDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/FactIcuserCategoryAnalysisDailyDTO.java new file mode 100644 index 0000000000..f88dfcd4db --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/FactIcuserCategoryAnalysisDailyDTO.java @@ -0,0 +1,110 @@ +package com.epmet.dataaggre.dto.epmetuser; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +/** + * 人员类别分析 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-01-17 + */ +@Data +public class FactIcuserCategoryAnalysisDailyDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键(人员类别分析表) + */ + private String id; + + /** + * 客户id + */ + private String customerId; + + /** + * 预警配置ID + */ + private String configId; + + /** + * 类别列名,对个数据太麻烦了,在这个表存一下 + */ + private String columnName; + + /** + * 当前数据是截止到XXX的:yyyyMMdd + */ + private String dateId; + + /** + * 网格id或者组织id + */ + private String orgId; + + /** + * grid或者agency + */ + private String orgType; + + /** + * orgid的上级 + */ + private String pid; + + /** + * orgid的所有上级 + */ + private String pids; + + /** + * 当前类别总人数 + */ + private Integer total; + + /** + * 较上月迁出 + */ + private Integer qcIncr; + + /** + * 较上月迁入 + */ + private Integer qrIncr; + + /** + * 删除标识 0.未删除 1.已删除 + */ + private Integer delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + +} \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/IcUserCategoryFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/IcUserCategoryFormDTO.java new file mode 100644 index 0000000000..a979ee68a6 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/form/IcUserCategoryFormDTO.java @@ -0,0 +1,37 @@ +package com.epmet.dataaggre.dto.epmetuser.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 人员类别分析 入参 + */ +@Data +public class IcUserCategoryFormDTO implements Serializable { + private static final long serialVersionUID = 2834180692632036316L; + + public interface AddUserInternalGroup { + } + + public interface AddUserShowGroup extends CustomerClientShowGroup { + } + + @NotBlank(message = "请选择查看某个组织或网格", groups = AddUserShowGroup.class) + private String orgId; + + @NotBlank(message = "orgType不能为空", groups = AddUserInternalGroup.class) + private String orgType; + + @NotBlank(message = "dateId不能为空", groups = AddUserInternalGroup.class) + @Length(min = 8, max = 8, message = "dateId格式:yyyyMMdd", groups = AddUserInternalGroup.class) + private String dateId; + + + @NotBlank(message = "customerId不能为空", groups = AddUserInternalGroup.class) + private String customerId; + +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/IcUserCategoryResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/IcUserCategoryResultDTO.java new file mode 100644 index 0000000000..08d4d30b7b --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/IcUserCategoryResultDTO.java @@ -0,0 +1,50 @@ +package com.epmet.dataaggre.dto.epmetuser.result; + + +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.io.Serializable; + +/** + * 人员类别分析-返参DTO + */ +@Data +public class IcUserCategoryResultDTO implements Serializable { + private static final long serialVersionUID = -2150403803220667018L; + + /** + * 居民类别配置主键 + */ + // @JsonIgnore + private String configId; + /** + * 当前类别对应的列名 + */ + private String categoryKey; + /** + * 类别名称 + */ + private String categoryName; + /** + * 类别图标 + */ + private String dataIcon; + + + + /** + * 当前类别下总人数 + */ + private Integer total=0; + + /** + * 桥上月迁入 + */ + private Integer immigration=0; + + /** + * 较上月迁出 + */ + private Integer emigration=0; +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/IcUserController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/IcUserController.java new file mode 100644 index 0000000000..15c0473ba0 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/IcUserController.java @@ -0,0 +1,42 @@ +package com.epmet.dataaggre.controller; + + +import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.dataaggre.dto.epmetuser.form.IcUserCategoryFormDTO; +import com.epmet.dataaggre.dto.epmetuser.result.IcUserCategoryResultDTO; +import com.epmet.dataaggre.service.epmetuser.EpmetUserService; +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 java.util.List; + +@RestController +@RequestMapping("icuser") +public class IcUserController { + + @Autowired + private EpmetUserService epmetUserService; + + + /** + * 【人员类别分析】-各类别人数 + * + * @param tokenDto + * @param formDTO + * @return + */ + @PostMapping("category-data") + public Result> queryIcUserCategoryData(@LoginUser TokenDto tokenDto, @RequestBody IcUserCategoryFormDTO formDTO) { + formDTO.setCustomerId(tokenDto.getCustomerId()); + ValidatorUtils.validateEntity(formDTO, IcUserCategoryFormDTO.AddUserShowGroup.class, IcUserCategoryFormDTO.AddUserInternalGroup.class); + return new Result>().ok(epmetUserService.queryIcUserCategoryData(formDTO)); + } + + +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java index 237432f5c2..309d5432d9 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java @@ -22,10 +22,10 @@ import com.epmet.dataaggre.dto.datastats.form.CustomerDataManageFormDTO; import com.epmet.dataaggre.dto.datastats.form.SubAgencyFormDTO; import com.epmet.dataaggre.dto.datastats.form.SubGridFormDTO; import com.epmet.dataaggre.dto.datastats.result.*; +import com.epmet.dataaggre.dto.epmetuser.FactIcuserCategoryAnalysisDailyDTO; import com.epmet.dataaggre.dto.epmetuser.form.GridMemberPatrolListFormDTO; import com.epmet.dataaggre.dto.epmetuser.result.GridMemberPatrolListResultDTO; import com.epmet.dataaggre.dto.govproject.form.ProjectTotalFormDTO; -import com.epmet.dataaggre.dto.govproject.result.ProjectMonthIncrResultDTO; import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; import com.epmet.dataaggre.entity.datastats.DimAgencyEntity; @@ -349,4 +349,12 @@ public interface DataStatsDao { * @author sun */ List getProjectMonthIncr(ProjectTotalFormDTO formDTO); + + List queryGridIcUserCategoryData(@Param("orgId") String orgId, + @Param("dateId") String dateId, + @Param("configIds") List configIds); + + List queryAgencyIcUserCategoryData(@Param("gridPids") String gridPids, + @Param("dateId") String dateId, + @Param("configIds") List configIds); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/opercustomize/CustomerFootBarDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/opercustomize/CustomerFootBarDao.java index 4d5ab737b5..674d6de835 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/opercustomize/CustomerFootBarDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/opercustomize/CustomerFootBarDao.java @@ -20,6 +20,7 @@ package com.epmet.dataaggre.dao.opercustomize; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dataaggre.dto.app.result.CustomerFootBarDTO; import com.epmet.dataaggre.dto.epmetuser.IcFormResColumnDTO; +import com.epmet.dataaggre.dto.epmetuser.result.IcUserCategoryResultDTO; import com.epmet.dataaggre.entity.opercustomize.CustomerFootBarEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -59,4 +60,5 @@ public interface CustomerFootBarDao extends BaseDao { */ CustomerFootBarEntity selectDefaultIcon(@Param("customerId") String customerId, @Param("appType")String appType, @Param("barKey")String barKey); + List queryCustomerIcResiCategoryStatsConfig(String customerId); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java index 3d21ac929d..23a33137ab 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java @@ -3,6 +3,7 @@ package com.epmet.dataaggre.service.datastats; import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO; import com.epmet.dataaggre.dto.datastats.form.*; import com.epmet.dataaggre.dto.datastats.result.*; +import com.epmet.dataaggre.dto.epmetuser.FactIcuserCategoryAnalysisDailyDTO; import com.epmet.dataaggre.dto.epmetuser.form.GridMemberPatrolListFormDTO; import com.epmet.dataaggre.dto.epmetuser.result.GridMemberPatrolListResultDTO; import com.epmet.dataaggre.dto.govorg.result.GridMemberDataAnalysisResultDTO; @@ -279,4 +280,8 @@ public interface DataStatsService { String startDateID, String endDateID, Boolean needCount); + + List queryGridIcUserCategoryData(String orgId, String dateId, List configIds); + + List queryAgencyIcUserCategoryData(String gridPids, String dateId, List configIds); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java index a8fb5ee168..79465829b7 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java @@ -16,7 +16,8 @@ import com.epmet.dataaggre.dao.datastats.FactGridMemberStatisticsDailyDao; import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO; import com.epmet.dataaggre.dto.datastats.form.*; import com.epmet.dataaggre.dto.datastats.result.*; -import com.epmet.dataaggre.dto.epmetuser.form.GridMemberPatrolListFormDTO; + import com.epmet.dataaggre.dto.epmetuser.FactIcuserCategoryAnalysisDailyDTO; + import com.epmet.dataaggre.dto.epmetuser.form.GridMemberPatrolListFormDTO; import com.epmet.dataaggre.dto.epmetuser.result.GridMemberPatrolListResultDTO; import com.epmet.dataaggre.dto.epmetuser.result.PatrolDailySumResult; import com.epmet.dataaggre.dto.evaluationindex.ScreenAgencyOrGridListDTO; @@ -2170,4 +2171,20 @@ public class DataStatsServiceImpl implements DataStatsService, ResultDataResolve PageHelper.startPage(pageNo, pageSize, needCount); return factGridMemberStatisticsDailyDao.listGridMemberDataStatsIncr(pids, gridId, startDateID, endDateID); } + + @Override + public List queryGridIcUserCategoryData(String orgId, String dateId, List configIds) { + if(CollectionUtils.isEmpty(configIds)||StringUtils.isBlank(orgId)){ + return new ArrayList<>(); + } + return dataStatsDao.queryGridIcUserCategoryData(orgId,dateId,configIds); + } + + @Override + public List queryAgencyIcUserCategoryData(String gridPids, String dateId, List configIds) { + if(CollectionUtils.isEmpty(configIds)||StringUtils.isBlank(gridPids)){ + return new ArrayList<>(); + } + return dataStatsDao.queryAgencyIcUserCategoryData(gridPids,dateId,configIds); + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java index a1509063c1..ed93a19d5a 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java @@ -175,4 +175,11 @@ public interface EpmetUserService { * @return */ List listStaffsByIds(List userIdsPart); + + /** + * 【人员类别分析】-各类别人数 + * @param formDTO + * @return + */ + List queryIcUserCategoryData(IcUserCategoryFormDTO formDTO); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java index 7f9809a052..c5da95a3fa 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java @@ -11,9 +11,11 @@ import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.constant.BadgeConstant; +import com.epmet.constant.OrgInfoConstant; import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.dao.epmetuser.*; import com.epmet.dataaggre.dto.epmetuser.CustomerStaffDTO; +import com.epmet.dataaggre.dto.epmetuser.FactIcuserCategoryAnalysisDailyDTO; import com.epmet.dataaggre.dto.epmetuser.StaffPatrolDetailDTO; import com.epmet.dataaggre.dto.epmetuser.StaffPatrolRecordDTO; import com.epmet.dataaggre.dto.epmetuser.form.*; @@ -30,18 +32,21 @@ import com.epmet.dataaggre.dto.govproject.result.ProjectAnalysisResultDTO; import com.epmet.dataaggre.entity.epmetuser.CustomerStaffEntity; import com.epmet.dataaggre.entity.epmetuser.GovStaffRoleEntity; import com.epmet.dataaggre.entity.epmetuser.ResiUserBadgeEntity; -import com.epmet.dataaggre.service.datastats.DataStatsService; import com.epmet.dataaggre.entity.epmetuser.StaffRoleEntity; +import com.epmet.dataaggre.entity.govorg.CustomerAgencyEntity; +import com.epmet.dataaggre.service.datastats.DataStatsService; import com.epmet.dataaggre.service.epmetuser.EpmetUserService; import com.epmet.dataaggre.service.epmetuser.StaffPatrolDetailService; import com.epmet.dataaggre.service.epmetuser.StaffPatrolRecordService; import com.epmet.dataaggre.service.govorg.GovOrgService; import com.epmet.dataaggre.service.govproject.GovProjectService; +import com.epmet.dataaggre.service.opercustomize.CustomerFootBarService; import com.epmet.dto.IcResiUserDTO; import com.epmet.dto.UserBaseInfoDTO; import com.epmet.dto.result.StaffRoleResultDTO; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -84,6 +89,8 @@ public class EpmetUserServiceImpl implements EpmetUserService { private GovStaffRoleDao govStaffRoleDao; @Resource private IcResiUserDao icResiUserDao; + @Resource + private CustomerFootBarService customerFootBarService; /** * @Description 根据UserIds查询 @@ -742,4 +749,59 @@ public class EpmetUserServiceImpl implements EpmetUserService { return customerStaffDao.selectList(query); } + + /** + * 【人员类别分析】-各类别人数 + * + * @param formDTO + * @return + */ + @Override + public List queryIcUserCategoryData(IcUserCategoryFormDTO formDTO) { + // 1、 先查询出居民类别配置(状态为显示) + List resList=customerFootBarService.queryCustomerIcResiCategoryStatsConfig(formDTO.getCustomerId()); + if(CollectionUtils.isNotEmpty(resList)){ + //所有类别初始值为0 todo + List configIds=resList.stream().map(IcUserCategoryResultDTO::getConfigId).collect(Collectors.toList()); + if(OrgInfoConstant.GRID.equals(formDTO.getOrgType())){ + List list=dataStatsService.queryGridIcUserCategoryData(formDTO.getOrgId(),formDTO.getDateId(),configIds); + if(CollectionUtils.isNotEmpty(list)){ + Map configMap = list.stream().collect(Collectors.toMap(FactIcuserCategoryAnalysisDailyDTO::getConfigId, m -> m, (k1, k2) -> k1)); + resList.forEach(resDto->{ + if(MapUtils.isNotEmpty(configMap)&&configMap.containsKey(resDto.getConfigId())){ + FactIcuserCategoryAnalysisDailyDTO dailyDTO=configMap.get(resDto.getConfigId()); + resDto.setTotal(dailyDTO.getTotal()); + resDto.setImmigration(dailyDTO.getQrIncr()); + resDto.setEmigration(dailyDTO.getQcIncr()); + } + }); + } + }else if(OrgInfoConstant.AGENCY.equals(formDTO.getOrgType())){ + CustomerAgencyEntity agencyEntity=govOrgService.getAgencyInfo(formDTO.getOrgId()); + String gridPids=""; + if(NumConstant.ZERO_STR.equals(agencyEntity.getPid())){ + // 当前组织是根组织 + gridPids=formDTO.getOrgId(); + }else { + gridPids=agencyEntity.getPids().concat(StrConstant.COLON).concat(formDTO.getOrgId()); + } + List list = dataStatsService.queryAgencyIcUserCategoryData(gridPids, formDTO.getDateId(), configIds); + if(CollectionUtils.isNotEmpty(list)){ + Map configMap = list.stream().collect(Collectors.toMap(FactIcuserCategoryAnalysisDailyDTO::getConfigId, m -> m, (k1, k2) -> k1)); + resList.forEach(resDto->{ + if(MapUtils.isNotEmpty(configMap)&&configMap.containsKey(resDto.getConfigId())){ + FactIcuserCategoryAnalysisDailyDTO dailyDTO=configMap.get(resDto.getConfigId()); + resDto.setTotal(dailyDTO.getTotal()); + resDto.setImmigration(dailyDTO.getQrIncr()); + resDto.setEmigration(dailyDTO.getQcIncr()); + } + }); + } + } + } + return resList; + } + + + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercustomize/CustomerFootBarService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercustomize/CustomerFootBarService.java index 810122f74c..b4b996eb49 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercustomize/CustomerFootBarService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercustomize/CustomerFootBarService.java @@ -20,8 +20,11 @@ package com.epmet.dataaggre.service.opercustomize; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.dataaggre.dto.app.form.AppFootBarFormDTO; import com.epmet.dataaggre.dto.app.result.AppFootBarResultDTO; +import com.epmet.dataaggre.dto.epmetuser.result.IcUserCategoryResultDTO; import com.epmet.dataaggre.entity.opercustomize.CustomerFootBarEntity; +import java.util.List; + /** * APP底部菜单栏信息 * @@ -40,4 +43,10 @@ public interface CustomerFootBarService extends BaseService queryCustomerIcResiCategoryStatsConfig(String customerId); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercustomize/impl/CustomerFootBarServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercustomize/impl/CustomerFootBarServiceImpl.java index d301e23b16..a0fd9b7b5d 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercustomize/impl/CustomerFootBarServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/opercustomize/impl/CustomerFootBarServiceImpl.java @@ -27,7 +27,7 @@ import com.epmet.dataaggre.dao.opercustomize.CustomerFootBarDao; import com.epmet.dataaggre.dto.app.form.AppFootBarFormDTO; import com.epmet.dataaggre.dto.app.result.AppFootBarResultDTO; import com.epmet.dataaggre.dto.app.result.CustomerFootBarDTO; -import com.epmet.dataaggre.dto.epmetuser.IcFormResColumnDTO; +import com.epmet.dataaggre.dto.epmetuser.result.IcUserCategoryResultDTO; import com.epmet.dataaggre.entity.opercrm.CustomerParameterEntity; import com.epmet.dataaggre.entity.opercustomize.CustomerFootBarEntity; import com.epmet.dataaggre.service.opercrm.CustomerParameterService; @@ -39,7 +39,6 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.List; -import java.util.Set; /** @@ -114,4 +113,15 @@ public class CustomerFootBarServiceImpl extends BaseServiceImpl queryCustomerIcResiCategoryStatsConfig(String customerId) { + return baseDao.queryCustomerIcResiCategoryStatsConfig(customerId); + } + } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml index 681c057922..fa315b0aa1 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml @@ -1107,4 +1107,40 @@ ORDER BY month_id ASC + + + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/opercustomize/CustomerFootBarDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/opercustomize/CustomerFootBarDao.xml index 51340127fc..dc44858528 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/opercustomize/CustomerFootBarDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/opercustomize/CustomerFootBarDao.xml @@ -39,4 +39,19 @@ AND C.DISPLAY='1' + \ No newline at end of file From 943f3530c5b2ac9897064a5983383f337f2b87d4 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Wed, 19 Jan 2022 10:52:30 +0800 Subject: [PATCH 17/17] =?UTF-8?q?=E7=B1=BB=E5=88=AB=E5=88=86=E6=9E=90?= =?UTF-8?q?=EF=BC=8C=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmetuser/impl/EpmetUserServiceImpl.java | 1 - .../feign/DataStatisticalOpenFeignClient.java | 8 ++--- ...ataStatisticalOpenFeignClientFallBack.java | 10 +++--- .../task/IcUserCategoryAnalysisTask.java | 34 +++++++++++++++++++ 4 files changed, 44 insertions(+), 9 deletions(-) create mode 100644 epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/IcUserCategoryAnalysisTask.java diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java index c5da95a3fa..19bebf11f1 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java @@ -761,7 +761,6 @@ public class EpmetUserServiceImpl implements EpmetUserService { // 1、 先查询出居民类别配置(状态为显示) List resList=customerFootBarService.queryCustomerIcResiCategoryStatsConfig(formDTO.getCustomerId()); if(CollectionUtils.isNotEmpty(resList)){ - //所有类别初始值为0 todo List configIds=resList.stream().map(IcUserCategoryResultDTO::getConfigId).collect(Collectors.toList()); if(OrgInfoConstant.GRID.equals(formDTO.getOrgType())){ List list=dataStatsService.queryGridIcUserCategoryData(formDTO.getOrgId(),formDTO.getDateId(),configIds); diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java index dab2edf301..c1c77c88ec 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java @@ -5,10 +5,7 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.dto.StatsFormDTO; import com.epmet.dto.basereport.form.EventInfoFormDTO; import com.epmet.dto.basereport.result.EventInfoResultDTO; -import com.epmet.dto.extract.form.BizDataFormDTO; -import com.epmet.dto.extract.form.ExtractIndexFormDTO; -import com.epmet.dto.extract.form.ExtractOriginFormDTO; -import com.epmet.dto.extract.form.ExtractScreenFormDTO; +import com.epmet.dto.extract.form.*; import com.epmet.dto.group.form.GroupStatsFormDTO; import com.epmet.dto.group.form.GroupTotalFormDTO; import com.epmet.dto.org.form.GridBaseInfoFormDTO; @@ -353,4 +350,7 @@ public interface DataStatisticalOpenFeignClient { */ @PostMapping("/data/stats/demand/volunteer/daily") Result statsVolunteerDemandServicesDaily(@RequestParam(value = "customer-id", required = false) String customerId); + + @PostMapping("/data/stats/ic/user/category-analysis-daily") + Result statUserCategoryDaily(@RequestBody IcUserCategoryAnalysisDailyFormDTO formDTO); } diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java index 56fea9c03f..302124c871 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java @@ -6,10 +6,7 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.dto.StatsFormDTO; import com.epmet.dto.basereport.form.EventInfoFormDTO; import com.epmet.dto.basereport.result.EventInfoResultDTO; -import com.epmet.dto.extract.form.BizDataFormDTO; -import com.epmet.dto.extract.form.ExtractIndexFormDTO; -import com.epmet.dto.extract.form.ExtractOriginFormDTO; -import com.epmet.dto.extract.form.ExtractScreenFormDTO; +import com.epmet.dto.extract.form.*; import com.epmet.dto.group.form.GroupStatsFormDTO; import com.epmet.dto.group.form.GroupTotalFormDTO; import com.epmet.dto.org.form.GridBaseInfoFormDTO; @@ -339,4 +336,9 @@ public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOp public Result statsVolunteerDemandServicesDaily(String customerId) { return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "statsVolunteerDemandServicesDaily", customerId); } + + @Override + public Result statUserCategoryDaily(IcUserCategoryAnalysisDailyFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "statUserCategoryDaily", formDTO); + } } diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/IcUserCategoryAnalysisTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/IcUserCategoryAnalysisTask.java new file mode 100644 index 0000000000..c0c5b8ee9b --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/IcUserCategoryAnalysisTask.java @@ -0,0 +1,34 @@ +package com.epmet.task; + +import com.alibaba.fastjson.JSON; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.extract.form.IcUserCategoryAnalysisDailyFormDTO; +import com.epmet.feign.DataStatisticalOpenFeignClient; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + + +@Slf4j +@Component("icUserCategoryAnalysisTask") +public class IcUserCategoryAnalysisTask implements ITask { + + @Autowired + private DataStatisticalOpenFeignClient dataStatisticalOpenFeignClient; + + @Override + public void run(String params) { + log.info("icUserCategoryAnalysisTask定时任务正在执行,参数为:{}", params); + IcUserCategoryAnalysisDailyFormDTO formDTO = new IcUserCategoryAnalysisDailyFormDTO(); + if (StringUtils.isNotBlank(params)) { + formDTO = JSON.parseObject(params, IcUserCategoryAnalysisDailyFormDTO.class); + } + Result result = dataStatisticalOpenFeignClient.statUserCategoryDaily(formDTO); + if (result.success()) { + log.info("icUserCategoryAnalysisTask定时任务正在执行定时任务执行成功"); + } else { + log.warn("icUserCategoryAnalysisTask定时任务正在执行定时任务执行失败:" + result.getMsg()); + } + } +}