diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java index fc40fcae64..478e7d4376 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java @@ -16,6 +16,9 @@ public enum DictTypeEnum { SCALE("scale", "人员规模", 6), PARTY_UNIT_TYPE("party_unit_type", "联建单位分类", 7), GENDER("gender", "性别", 8), + USER_DEMAND_STATUS("user_demand_status", "居民需求状态",8), + USER_DEMAND_REPORT_TYPE("user_demand_report_type","居民需求上报类型",9), + USER_DEMAND_SERVICE_TYPE("user_demand_service_type","居民需求服务方类型",10) ; private final String code; diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/external/ScreenProjectDataCollController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/external/ScreenProjectDataCollController.java index 7d4c7e9c71..85dad1166f 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/external/ScreenProjectDataCollController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/external/ScreenProjectDataCollController.java @@ -1,7 +1,9 @@ package com.epmet.controller.external; +import com.epmet.commons.rocketmq.messages.DisputeProcessMQMsg; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.constant.SystemMessageType; import com.epmet.dto.screen.*; import com.epmet.dto.screen.form.CategoryDictFormDTO; import com.epmet.dto.screen.form.ScreenProjectDataInfoFormDTO; @@ -13,6 +15,9 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; +import java.util.List; + /** * @Description 事件/项目采集接口入口 * @ClassName ScreenProjectDataCollController @@ -135,6 +140,15 @@ public class ScreenProjectDataCollController { param.setCustomerId(customerId); ValidatorUtils.validateEntity(param, ScreenCollFormDTO.CustomerIdShowGroup.class, ScreenCollFormDTO.DateIdShowGroup.class, ScreenCollFormDTO.DataListShowGroup.class); projectDataService.collect(param); + + //发送MQ消息,上报事件 + param.getDataList().forEach(item -> { + List projectList = new ArrayList<>(); + projectList.add(item.getProjectId()); + DisputeProcessMQMsg msg = new DisputeProcessMQMsg(param.getCustomerId(), projectList, SystemMessageType.PROJECT_ADD); + projectDataService.sendProjectChangeMq(msg); + }); + return new Result(); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java index 83bb35a03d..e3057c2a8e 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java @@ -1,5 +1,6 @@ package com.epmet.service.impl; +import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; @@ -40,6 +41,9 @@ import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; +import static java.util.stream.Collectors.collectingAndThen; +import static java.util.stream.Collectors.toCollection; + /** * @dscription 省网格化平台数据上报--数据查询 * @author sun @@ -141,23 +145,28 @@ public class DataReportingServiceImpl implements DataReportingService { Map epmetCodeMap = new HashMap<>(); Result parentCustomer = operCrmOpenFeignClient.getExternalAndParentCustomerId(formDTO.getCustomerId()); if (StringUtils.isNotBlank(parentCustomer.getData())) { - customerProjectCategoryDictService.getByCategoryCodeMap(parentCustomer.getData()); + epmetCodeMap = customerProjectCategoryDictService.getByCategoryCodeMap(parentCustomer.getData()); } Map codeMap = customerProjectCategoryDictService.getByCategoryCodeMap(formDTO.getCustomerId());; //项目ID不为空时,因为只有一条,可以直接处理 + Map finalEpmetCodeMap = epmetCodeMap; if (CollectionUtils.isNotEmpty(formDTO.getProjectId())) { list = projectList.stream().map(project -> { - EventInfoResultDTO dto = getEventInfoResultDTO(project, epmetCodeMap, codeMap); + EventInfoResultDTO dto = getEventInfoResultDTO(project, finalEpmetCodeMap, codeMap); if (OrgTypeConstant.AGENCY.equals(project.getOrgType())) { ScreenCustomerAgencyEntity agency = screenCustomerAgencyService.getAgencyById(project.getOrgId()); dto.setOrgId(project.getOrgId()); - dto.setOrgCode(agency.getCode()); - dto.setOrgName(agency.getAgencyName()); + if (null != agency) { + dto.setOrgCode(agency.getCode()); + dto.setOrgName(agency.getAgencyName()); + } } else { ScreenCustomerGridDTO grid = screenCustomerGridService.getGridById(project.getOrgId()); dto.setOrgId(project.getOrgId()); - dto.setOrgCode(grid.getCode()); - dto.setOrgName(grid.getGridName()); + if (null != grid) { + dto.setOrgCode(grid.getCode()); + dto.setOrgName(grid.getGridName()); + } } return dto; }).collect(Collectors.toList()); @@ -166,22 +175,26 @@ public class DataReportingServiceImpl implements DataReportingService { Map agencyMap = screenCustomerAgencyService.getAgencyList(formDTO.getCustomerId()); Map gridMap = screenCustomerGridService.getGridList(formDTO.getCustomerId()); list = projectList.stream().map(project -> { - EventInfoResultDTO dto = getEventInfoResultDTO(project, epmetCodeMap, codeMap); + EventInfoResultDTO dto = getEventInfoResultDTO(project, finalEpmetCodeMap, codeMap); if (OrgTypeConstant.AGENCY.equals(project.getOrgType())) { ScreenCustomerAgencyEntity agency = agencyMap.get(project.getOrgId()); dto.setOrgId(project.getOrgId()); - dto.setOrgCode(agency.getCode()); - dto.setOrgName(agency.getAgencyName()); + if (null != agency) { + dto.setOrgCode(agency.getCode()); + dto.setOrgName(agency.getAgencyName()); + } } else { ScreenCustomerGridDTO grid = gridMap.get(project.getOrgId()); dto.setOrgId(project.getOrgId()); - dto.setOrgCode(grid.getCode()); - dto.setOrgName(grid.getGridName()); + if (null != grid) { + dto.setOrgCode(grid.getCode()); + dto.setOrgName(grid.getGridName()); + } } return dto; }).collect(Collectors.toList()); } - return list.stream().filter(item -> StringUtils.isNotBlank(item.getEventCategory())).collect(Collectors.toList()); + return list.stream().collect(collectingAndThen(toCollection(() -> new TreeSet<>(Comparator.comparing(EventInfoResultDTO::getId))), ArrayList::new)); } private EventInfoResultDTO getEventInfoResultDTO(ScreenProjectDataDTO project, Map epmetCodeMap, Map codeMap) { @@ -198,8 +211,22 @@ public class DataReportingServiceImpl implements DataReportingService { "46c55cb862d6d5e6d05d2ab61a1cc07e".equals(project.getCustomerId())) { CustomerProjectCategoryDictEntity categoryEntity = codeMap.get(categoryCode); if (null != categoryEntity) { - categoryCode = categoryEntity.getEpmetCategoryCode(); - parentCode = epmetCodeMap.get(categoryEntity.getEpmetCategoryCode()).getParentCategoryCode(); + String code = categoryEntity.getEpmetCategoryCode(); + if (StringUtils.isBlank(code)) { + //没有对应平阴的分类code,那么一级分类和二级分类都为空 + categoryCode = null; + parentCode = null; + } else { + //如果是对应一级分类,则二级分类为空。如果对应平阴二级分类,则取对应的一级分类 + CustomerProjectCategoryDictEntity epmetCode = epmetCodeMap.get(code); + if (NumConstant.ONE == epmetCode.getLevel()) { + categoryCode = null; + parentCode = code; + } else { + categoryCode = code; + parentCode = epmetCode.getParentCategoryCode(); + } + } } else { categoryCode = null; parentCode = null; @@ -218,16 +245,18 @@ public class DataReportingServiceImpl implements DataReportingService { if (OrgTypeConstant.AGENCY.equals(project.getFinishOrgType())) { //如果是孔村的项目办结层级需要降一级 if("2fe0065f70ca0e23ce4c26fca5f1d933".equals(project.getCustomerId())) { - switch (project.getFinishOrgLevel()) { - case OrgTypeConstant.DISTRICT: - dto.setCompleteLevel("04"); - break; - case OrgTypeConstant.STREET: - case OrgTypeConstant.COMMUNITY: - dto.setCompleteLevel("06"); - break; - default: - break; + if (StringUtils.isNotBlank(project.getFinishOrgLevel())) { + switch (project.getFinishOrgLevel()) { + case OrgTypeConstant.DISTRICT: + dto.setCompleteLevel("3"); + break; + case OrgTypeConstant.STREET: + case OrgTypeConstant.COMMUNITY: + dto.setCompleteLevel("4"); + break; + default: + break; + } } } else { dto.setCompleteLevel(getCompleteLevel(project.getFinishOrgLevel())); @@ -237,10 +266,12 @@ public class DataReportingServiceImpl implements DataReportingService { String[] orgIds = project.getOrgIdPath().split(StrConstant.COLON); int size = orgIds.length; ScreenCustomerAgencyEntity agency = screenCustomerAgencyService.getAgencyById(orgIds[size - 1]); - dto.setCompleteLevel(getCompleteLevel(agency.getLevel())); + if (null != agency) { + dto.setCompleteLevel(getCompleteLevel(agency.getLevel())); + } } else { //办结组织是网格时,办结层级为网格 - dto.setCompleteLevel("07"); + dto.setCompleteLevel("5"); } } dto.setStatus(getProjectStatus(project.getProjectStatusCode())); @@ -253,15 +284,15 @@ public class DataReportingServiceImpl implements DataReportingService { private String getCompleteLevel(String level) { switch (level) { case OrgTypeConstant.PROVINCE: - return "01"; + return "0"; case OrgTypeConstant.CITY: - return "02"; + return "1"; case OrgTypeConstant.DISTRICT: - return "03"; + return "2"; case OrgTypeConstant.STREET: - return "04"; + return "3"; case OrgTypeConstant.COMMUNITY: - return "06"; + return "4"; default: return null; } diff --git a/epmet-module/data-statistical/data-statistical-server/src/test/java/resources/评价指标体系算法需求-备注3.0版新权重.xlsx b/epmet-module/data-statistical/data-statistical-server/src/test/java/resources/评价指标体系算法需求-备注3.0版新权重.xlsx index cb442ccfe9..1b8299fbab 100644 Binary files a/epmet-module/data-statistical/data-statistical-server/src/test/java/resources/评价指标体系算法需求-备注3.0版新权重.xlsx and b/epmet-module/data-statistical/data-statistical-server/src/test/java/resources/评价指标体系算法需求-备注3.0版新权重.xlsx differ diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/DemandDetailFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/DemandDetailFormDTO.java new file mode 100644 index 0000000000..25ec764f3f --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/DemandDetailFormDTO.java @@ -0,0 +1,20 @@ +package com.epmet.dto.form.demand; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +@Data +public class DemandDetailFormDTO implements Serializable { + private static final long serialVersionUID = 514538389753713095L; + public interface AddUserInternalGroup { + } + + @NotBlank(message = "demandRecId不能为空", groups = AddUserInternalGroup.class) + private String demandRecId; + + + @NotBlank(message = "tokenDto获取客户id不能为空", groups = IcResiUserDemandFromDTO.AddUserInternalGroup.class) + private String customerId; +} diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/IcResiUserDemandFromDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/IcResiUserDemandFromDTO.java index de813e286f..51d334d874 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/IcResiUserDemandFromDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/IcResiUserDemandFromDTO.java @@ -11,10 +11,29 @@ public class IcResiUserDemandFromDTO implements Serializable { public interface AddUserInternalGroup { } + + /** + * 居民信息录入的居民的id + */ @NotBlank(message = "userId不能为空", groups = AddUserInternalGroup.class) private String userId; + + /** + * icresiuser/persondata接口返参中有此值 + */ + private String epmetUserId; + @NotNull(message = "pageNo不能为空", groups = AddUserInternalGroup.class) private Integer pageNo; @NotNull(message = "pageSize不能为空", groups = AddUserInternalGroup.class) private Integer pageSize; + + /** + * 研判分析界面,查看同类型的需求可以用此接口,只需传入分类编码 + */ + private String firstCategoryCode; + + @NotBlank(message = "tokenDto获取客户id不能为空", groups = AddUserInternalGroup.class) + private String customerId; + } diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandRecResultDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandRecResultDTO.java index d1eac19bff..feb5c70b84 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandRecResultDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandRecResultDTO.java @@ -22,7 +22,8 @@ public class DemandRecResultDTO implements Serializable { private String categoryCode; private String parentCode; private String categoryName; - + private String firstCategoryCode; + private String firstCategoryName; //社区帮办:community;楼长帮办:building_caption;党员帮办:party;自身上报:self_help diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/IcResiUserReportDemandRes.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/IcResiUserReportDemandRes.java index 079ed8ce0d..e4792920b3 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/IcResiUserReportDemandRes.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/IcResiUserReportDemandRes.java @@ -1,10 +1,33 @@ package com.epmet.dto.result.demand; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serializable; +import java.util.Date; @Data public class IcResiUserReportDemandRes implements Serializable { private static final long serialVersionUID = 7043350476644105434L; + + private String demandRecId; + + @JsonIgnore + private String categoryCode; + + @JsonIgnore + private String parentCode; + + private String categoryName; + + private String content; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") + private Date wantServiceTime; + + @JsonIgnore + private String status; + + private String statusName; } 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 27b340c61c..9ce587e7b3 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 @@ -184,13 +184,33 @@ public class IcUserDemandRecController { /** - * 数据分析-个人档案,居民需求列表 - * @param fromDTO + * 数据分析-个人档案,居民需求列表table + * + * @param formDTO * @return */ @PostMapping("mydemand") - public Result> queryMyDemand(@RequestBody IcResiUserDemandFromDTO fromDTO){ - ValidatorUtils.validateEntity(fromDTO,IcResiUserDemandFromDTO.AddUserInternalGroup.class); - return null; + public Result> queryMyDemand(@LoginUser TokenDto tokenDto,@RequestBody IcResiUserDemandFromDTO formDTO){ + formDTO.setCustomerId(tokenDto.getCustomerId()); + ValidatorUtils.validateEntity(formDTO,IcResiUserDemandFromDTO.AddUserInternalGroup.class); + return new Result>().ok(icUserDemandRecService.queryMyDemand(formDTO)); } + + /** + * 数据分析-个人档案、居民需求列表-查看需求详情 + * + * @param formDTO + * @return + */ + @PostMapping("demandDetail") + public Result queryDemandDetail(@LoginUser TokenDto tokenDto, @RequestBody DemandDetailFormDTO formDTO){ + formDTO.setCustomerId(tokenDto.getCustomerId()); + ValidatorUtils.validateEntity(formDTO,DemandDetailFormDTO.AddUserInternalGroup.class); + return new Result().ok(icUserDemandRecService.queryDemandDetail(formDTO)); + } + + + + + } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcResiDemandDictDao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcResiDemandDictDao.java index cf2625d680..ed09bfd858 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcResiDemandDictDao.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcResiDemandDictDao.java @@ -65,4 +65,5 @@ public interface IcResiDemandDictDao extends BaseDao { List selectSecondCodes(@Param("customerId") String customerId, @Param("cateogryCodes") List categoryCodes); + String selectNameByCode(@Param("customerId")String customerId, @Param("categoryCode") String categoryCode); } \ 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 12bc2f68b4..a06f831778 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 @@ -18,10 +18,13 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.form.demand.IcResiUserDemandFromDTO; import com.epmet.dto.form.demand.UserDemandPageFormDTO; import com.epmet.dto.result.demand.DemandRecResultDTO; +import com.epmet.dto.result.demand.IcResiUserReportDemandRes; import com.epmet.entity.IcUserDemandRecEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -36,4 +39,21 @@ public interface IcUserDemandRecDao extends BaseDao { List pageSelect(UserDemandPageFormDTO formDTO); + + /** + * 数据分析-个人档案,居民需求列表table + * + * @param formDTO + * @return + */ + List selectUserDemand(IcResiUserDemandFromDTO formDTO); + + /** + * 数据分析-个人档案,居民需求详情 + * + * @param customerId + * @param demandRecId + * @return + */ + DemandRecResultDTO selectDemandRecDetail(@Param("customerId") String customerId, @Param("demandRecId") String demandRecId); } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcResiDemandDictService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcResiDemandDictService.java index 3836539181..ce9c4741a7 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcResiDemandDictService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcResiDemandDictService.java @@ -109,4 +109,13 @@ public interface IcResiDemandDictService extends BaseService listByCodes(String customerId, List categoryCodes); + + /** + * 查询当前分类的名称 + * + * @param customerId + * @param categoryCode + * @return + */ + String getCategoryName(String customerId, String categoryCode); } \ 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 a0b3799d4e..e3b719615e 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 @@ -22,6 +22,7 @@ import com.epmet.commons.tools.page.PageData; import com.epmet.dto.IcUserDemandRecDTO; import com.epmet.dto.form.demand.*; import com.epmet.dto.result.demand.DemandRecResultDTO; +import com.epmet.dto.result.demand.IcResiUserReportDemandRes; import com.epmet.entity.IcUserDemandRecEntity; import java.util.List; @@ -127,4 +128,20 @@ public interface IcUserDemandRecService extends BaseService queryMyDemand(IcResiUserDemandFromDTO formDTO); + + /** + * 数据分析-个人档案、居民需求列表-查看需求详情 + * + * @param formDTO + * @return + */ + DemandRecResultDTO queryDemandDetail(DemandDetailFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcResiDemandDictServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcResiDemandDictServiceImpl.java index 4fd9a2b193..520e367177 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcResiDemandDictServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcResiDemandDictServiceImpl.java @@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.result.OptionResultDTO; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.RenException; @@ -227,5 +228,18 @@ public class IcResiDemandDictServiceImpl extends BaseServiceImpl page(Map params) { @@ -238,6 +244,17 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl> reportTypeRes=adminOpenFeignClient.dictMap(DictTypeEnum.USER_DEMAND_REPORT_TYPE.getCode()); + Map reportTypeMap=reportTypeRes.success()&& MapUtils.isNotEmpty(reportTypeRes.getData())?reportTypeRes.getData():new HashMap<>(); + + Result> statusRes=adminOpenFeignClient.dictMap(DictTypeEnum.USER_DEMAND_STATUS.getCode()); + Map statusMap=statusRes.success()&& MapUtils.isNotEmpty(statusRes.getData())?statusRes.getData():new HashMap<>(); + + Result> serviceTypeRes=adminOpenFeignClient.dictMap(DictTypeEnum.USER_DEMAND_SERVICE_TYPE.getCode()); + Map serviceTypeMap=serviceTypeRes.success()&& MapUtils.isNotEmpty(serviceTypeRes.getData())?serviceTypeRes.getData():new HashMap<>(); + for(DemandRecResultDTO res:list){ if (null != gridInfoMap && gridInfoMap.containsKey(res.getGridId())) { res.setGridName(gridInfoMap.get(res.getGridId()).getGridName()); @@ -246,12 +263,13 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl(list, pageInfo.getTotal()); @@ -437,4 +457,100 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl queryMyDemand(IcResiUserDemandFromDTO formDTO) { + /*//1、查询当前居民在小程序里是否有用户id + ResiUserFormDTO resiUserFormDTO=new ResiUserFormDTO(); + resiUserFormDTO.setCustomerId(formDTO.getCustomerId()); + resiUserFormDTO.setIcResiUserId(formDTO.getUserId()); + Result userRes=epmetUserOpenFeignClient.findUser(resiUserFormDTO); + if(!userRes.success()){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"/epmetuser/user/finduser接口异常","查找居民端小程序用户信息异常"); + } + formDTO.setEpmetUserId(userRes.getData().getEpmetUserId());*/ + //icresiuser/persondata接口已经返回去epmetUserId,这里就不需要再查询了。直接让前端传过来 + + //2、小程序内自己上报+赋能平台待录入的 + PageInfo pageInfo = PageHelper.startPage(formDTO.getPageNo(), + formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.selectUserDemand(formDTO)); + List list = pageInfo.getList(); + if (CollectionUtils.isNotEmpty(list)) { + // 1、状态字典 + Result> statusRes = adminOpenFeignClient.dictMap(DictTypeEnum.USER_DEMAND_STATUS.getCode()); + Map statusMap = statusRes.success() && MapUtils.isNotEmpty(statusRes.getData()) ? statusRes.getData() : new HashMap<>(); + //2、查询分类名称 + List categoryCodes = list.stream().map(IcResiUserReportDemandRes::getCategoryCode).collect(Collectors.toList()); + List dictList = demandDictService.listByCodes(formDTO.getCustomerId(), categoryCodes); + Map dictMap = dictList.stream().collect(Collectors.toMap(IcResiDemandDictEntity::getCategoryCode, IcResiDemandDictEntity::getCategoryName)); + + for (IcResiUserReportDemandRes resDto : list) { + resDto.setStatusName(statusMap.containsKey(resDto.getStatus()) ? statusMap.get(resDto.getStatus()) : StrConstant.EPMETY_STR); + if (null != dictMap && dictMap.containsKey(resDto.getCategoryCode())) { + resDto.setCategoryName(dictMap.get(resDto.getCategoryCode())); + } + } + } + return new PageData<>(list, pageInfo.getTotal()); + } + + /** + * 数据分析-个人档案、居民需求列表-查看需求详情 + * + * @param formDTO + * @return + */ + @Override + public DemandRecResultDTO queryDemandDetail(DemandDetailFormDTO formDTO) { + DemandRecResultDTO res = baseDao.selectDemandRecDetail(formDTO.getCustomerId(), formDTO.getDemandRecId()); + if (null != res) { + CustomerGridFormDTO customerGridFormDTO = new CustomerGridFormDTO(); + customerGridFormDTO.setGridId(res.getGridId()); + Result gridInfoRes = govOrgOpenFeignClient.getGridBaseInfoByGridId(customerGridFormDTO); + res.setGridName(gridInfoRes.success() && null != gridInfoRes.getData() ? gridInfoRes.getData().getGridNamePath() : StrConstant.EPMETY_STR); + + res.setCategoryName(demandDictService.getCategoryName(formDTO.getCustomerId(), res.getCategoryCode())); + res.setFirstCategoryName(demandDictService.getCategoryName(formDTO.getCustomerId(),res.getFirstCategoryCode())); + if (UserDemandConstant.VOLUNTEER.equals(res.getServiceType())) { + // 如果服务方是志愿者,需要查询小程序端的志愿者姓名 + List userIdList = Arrays.asList(res.getServerId()); + Result> userInfoRes = epmetUserOpenFeignClient.queryUserBaseInfo(userIdList); + if (!userInfoRes.success() || CollectionUtils.isEmpty(userInfoRes.getData())) { + throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), "查询志愿者信息异常"); + } + res.setServiceName(userInfoRes.getData().get(NumConstant.ZERO).getRealName()); + } + //查询字典表 + Result> reportTypeRes = adminOpenFeignClient.dictMap(DictTypeEnum.USER_DEMAND_REPORT_TYPE.getCode()); + Map reportTypeMap = reportTypeRes.success() && MapUtils.isNotEmpty(reportTypeRes.getData()) ? reportTypeRes.getData() : new HashMap<>(); + + Result> statusRes = adminOpenFeignClient.dictMap(DictTypeEnum.USER_DEMAND_STATUS.getCode()); + Map statusMap = statusRes.success() && MapUtils.isNotEmpty(statusRes.getData()) ? statusRes.getData() : new HashMap<>(); + + Result> serviceTypeRes = adminOpenFeignClient.dictMap(DictTypeEnum.USER_DEMAND_SERVICE_TYPE.getCode()); + Map serviceTypeMap = serviceTypeRes.success() && MapUtils.isNotEmpty(serviceTypeRes.getData()) ? serviceTypeRes.getData() : new HashMap<>(); + + //社区帮办:community;楼长帮办:building_caption;党员帮办:party;自身上报:self_help + res.setReportTypeName(reportTypeMap.containsKey(res.getReportType()) ? reportTypeMap.get(res.getReportType()) : StrConstant.EPMETY_STR); + + //待处理:pending;已取消canceled;已派单:assigned;已接单:have_order;已完成:finished + res.setStatusName(statusMap.containsKey(res.getStatus()) ? statusMap.get(res.getStatus()) : StrConstant.EPMETY_STR); + + //服务方类型:志愿者:volunteer;社会组织:social_org;社区自组织:community_org;区域党建单位:party_unit; + res.setServiceShowName(serviceTypeMap.containsKey(res.getServiceType()) ? res.getServiceName().concat("(").concat(serviceTypeMap.get(res.getServiceType())).concat(")") : StrConstant.EPMETY_STR); + } + return res; + } + + + + + + + } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcResiDemandDictDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcResiDemandDictDao.xml index 6b49401adf..0e6293002d 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcResiDemandDictDao.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcResiDemandDictDao.xml @@ -223,4 +223,17 @@ + + + \ 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 72ac018284..8aed916dee 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 @@ -70,7 +70,12 @@ s.SERVICE_END_TIME as serviceEndTime, IFNULL(s.FINISH_DESC,'') as finishDesc, '' AS serviceShowName, - s.id as serviceId + s.id as serviceId, + ( + case when r.PARENT_CODE !='0' then r.PARENT_CODE + ELSE R.CATEGORY_CODE + END + ) as firstCategoryCode FROM ic_user_demand_rec r left JOIN ic_user_demand_service s ON ( r.id = s.DEMAND_REC_ID AND s.DEL_FLAG = '0' ) @@ -116,4 +121,82 @@ order by r.WANT_SERVICE_TIME desc,r.CREATED_TIME asc + + + + \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/CustomerGridFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/CustomerGridFormDTO.java index c34d3c5870..1949f6d8a8 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/CustomerGridFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/CustomerGridFormDTO.java @@ -31,11 +31,12 @@ import java.io.Serializable; public class CustomerGridFormDTO implements Serializable { private static final long serialVersionUID = 1L; - /** * 网格Id */ - @NotBlank(message = "网格ID不能为空") + @NotBlank(message = "网格ID不能为空", groups = {Grid.class}) private String gridId; + public interface Grid{} + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerGridController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerGridController.java index 2780e25b56..0b58b4d6f0 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerGridController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerGridController.java @@ -103,6 +103,7 @@ public class CustomerGridController { */ @PostMapping("getcustomergridbygridid") public Result getCustomerGridByGridId(@RequestBody CustomerGridFormDTO customerGridFormDTO) { + ValidatorUtils.validateEntity(customerGridFormDTO, CustomerGridFormDTO.Grid.class); return customerGridService.getCustomerGridByGridId(customerGridFormDTO); } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java index 36475ba740..3c70e51a3a 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java @@ -71,6 +71,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; +import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; import java.util.function.Function; @@ -2789,4 +2790,53 @@ public class ProjectServiceImpl extends BaseServiceImpl getIntervalTimeList(String start,String end,Integer interval) { + Date startDate = convertStringToDate("HH:mm", start); + Date endDate = convertStringToDate("HH:mm", end); + List list = new ArrayList<>(); + while (startDate.getTime() <= endDate.getTime()) { + list.add(convertDateToString("HH:mm", startDate)); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(startDate); + calendar.add(Calendar.MINUTE, interval); + if (calendar.getTime().getTime() > endDate.getTime()) { + if (!startDate.equals(endDate)) { + list.add(convertDateToString("HH:mm", endDate)); + } + startDate = calendar.getTime(); + } else { + startDate = calendar.getTime(); + } + + } + list.remove(list.size() - NumConstant.ONE); + list.add(list.size(),"24:00"); + return list; + } + + + public static Date convertStringToDate(String format, String dateStr) { + SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format); + try { + Date date = simpleDateFormat.parse(dateStr); + return date; + } catch (ParseException e) { + e.printStackTrace(); + } + return null; + } + + public static String convertDateToString(String format, Date date) { + SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format); + return simpleDateFormat.format(date); + } } \ No newline at end of file diff --git a/epmet-module/open-data-worker/open-data-worker-server/deploy/docker-compose-prod.yml b/epmet-module/open-data-worker/open-data-worker-server/deploy/docker-compose-prod.yml index feedbad307..74d27bd4c8 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/deploy/docker-compose-prod.yml +++ b/epmet-module/open-data-worker/open-data-worker-server/deploy/docker-compose-prod.yml @@ -2,7 +2,7 @@ version: "3.7" services: gov-voice-server: container_name: open-data-worker-server-prod - image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/open-data-worker-server:0.3.69 + image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/open-data-worker-server:0.3.1 ports: - "8107:8107" network_mode: host # 使用现有网络 diff --git a/epmet-module/open-data-worker/open-data-worker-server/pom.xml b/epmet-module/open-data-worker/open-data-worker-server/pom.xml index 6a40fad5b3..855babdf18 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/pom.xml +++ b/epmet-module/open-data-worker/open-data-worker-server/pom.xml @@ -2,6 +2,7 @@ + 0.3.1 open-data-worker com.epmet diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/RocketMQConsumerRegister.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/RocketMQConsumerRegister.java index 3fa339bc0b..dc02f0498a 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/RocketMQConsumerRegister.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/RocketMQConsumerRegister.java @@ -4,11 +4,13 @@ import com.epmet.commons.rocketmq.constants.ConsomerGroupConstants; import com.epmet.commons.rocketmq.constants.TopicConstants; import com.epmet.commons.rocketmq.register.MQAbstractRegister; import com.epmet.commons.rocketmq.register.MQConsumerProperties; +import com.epmet.commons.tools.distributedlock.DistributedLock; import com.epmet.opendata.mq.listener.OpenDataOrgChangeEventListener; import com.epmet.opendata.mq.listener.OpenDataPatrolChangeEventListener; import com.epmet.opendata.mq.listener.OpenDataProjectChangeEventListener; import com.epmet.opendata.mq.listener.OpenDataStaffChangeEventListener; import org.apache.rocketmq.common.protocol.heartbeat.MessageModel; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; /** @@ -19,35 +21,39 @@ import org.springframework.stereotype.Component; @Component public class RocketMQConsumerRegister extends MQAbstractRegister { + @Autowired + private DistributedLock distributedLock; + @Override public void registerAllListeners(String env, MQConsumerProperties consumerProperties) { + // 客户初始化监听器注册 register(consumerProperties, ConsomerGroupConstants.OPEN_DATA_ORG_CHANGE_EVENT_LISTENER_GROUP, MessageModel.CLUSTERING, TopicConstants.ORG, "*", - new OpenDataOrgChangeEventListener()); + new OpenDataOrgChangeEventListener(distributedLock)); register(consumerProperties, ConsomerGroupConstants.OPEN_DATA_STAFF_CHANGE_EVENT_LISTENER_GROUP, MessageModel.CLUSTERING, TopicConstants.STAFF, "*", - new OpenDataStaffChangeEventListener()); + new OpenDataStaffChangeEventListener(distributedLock)); register(consumerProperties, ConsomerGroupConstants.OPEN_DATA_PATROL_CHANGE_EVENT_LISTENER_GROUP, MessageModel.CLUSTERING, TopicConstants.PATROL, "*", - new OpenDataPatrolChangeEventListener()); + new OpenDataPatrolChangeEventListener(distributedLock)); register(consumerProperties, ConsomerGroupConstants.OPEN_DATA_PROJECT_CHANGE_EVENT_LISTENER_GROUP, MessageModel.CLUSTERING, TopicConstants.PROJECT, "*", - new OpenDataProjectChangeEventListener()); + new OpenDataProjectChangeEventListener(distributedLock)); // ...其他监听器类似 } diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataOrgChangeEventListener.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataOrgChangeEventListener.java index eb24a72949..5549c4c892 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataOrgChangeEventListener.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataOrgChangeEventListener.java @@ -35,6 +35,13 @@ public class OpenDataOrgChangeEventListener implements MessageListenerConcurrent private RedisUtils redisUtils; + private DistributedLock distributedLock; + + public OpenDataOrgChangeEventListener(DistributedLock distributedLock) { + this.distributedLock = distributedLock; + } + + @Override public ConsumeConcurrentlyStatus consumeMessage(List msgs, ConsumeConcurrentlyContext context) { @@ -62,10 +69,8 @@ public class OpenDataOrgChangeEventListener implements MessageListenerConcurrent logger.info("【开放数据事件监听器】-组织信息变更-收到消息内容:{},操作:{}", msg, tags); OrgOrStaffMQMsg obj = JSON.parseObject(msg, OrgOrStaffMQMsg.class); - DistributedLock distributedLock = null; RLock lock = null; try { - distributedLock = SpringContextUtils.getBean(DistributedLock.class); lock = distributedLock.getLock(String.format("lock:open_data_org:%s", obj.getOrgId()), 30L, 30L, TimeUnit.SECONDS); diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataPatrolChangeEventListener.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataPatrolChangeEventListener.java index 6207c6fa74..45acb46283 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataPatrolChangeEventListener.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataPatrolChangeEventListener.java @@ -37,6 +37,12 @@ public class OpenDataPatrolChangeEventListener implements MessageListenerConcurr private RedisUtils redisUtils; + private DistributedLock distributedLock; + + public OpenDataPatrolChangeEventListener(DistributedLock distributedLock) { + this.distributedLock = distributedLock; + } + @Override public ConsumeConcurrentlyStatus consumeMessage(List msgs, ConsumeConcurrentlyContext context) { @@ -67,10 +73,8 @@ public class OpenDataPatrolChangeEventListener implements MessageListenerConcurr log.warn("consumeMessage msg body is blank"); return; } - DistributedLock distributedLock = null; RLock lock = null; try { - distributedLock = SpringContextUtils.getBean(DistributedLock.class); lock = distributedLock.getLock(String.format("lock:open_data_patrol:%s", msgObj.getPatrolId()), 30L, 30L, TimeUnit.SECONDS); UpsertPatrolRecordForm patrolRecordForm = new UpsertPatrolRecordForm(); diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataProjectChangeEventListener.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataProjectChangeEventListener.java index c2af1cffe7..6c5f127cb9 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataProjectChangeEventListener.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataProjectChangeEventListener.java @@ -38,6 +38,12 @@ public class OpenDataProjectChangeEventListener implements MessageListenerConcur private RedisUtils redisUtils; + private DistributedLock distributedLock; + + public OpenDataProjectChangeEventListener(DistributedLock distributedLock) { + this.distributedLock = distributedLock; + } + @Override public ConsumeConcurrentlyStatus consumeMessage(List msgs, ConsumeConcurrentlyContext context) { @@ -68,10 +74,8 @@ public class OpenDataProjectChangeEventListener implements MessageListenerConcur DisputeProcessMQMsg obj = JSON.parseObject(msg, DisputeProcessMQMsg.class); EventInfoFormDTO formDTO = ConvertUtils.sourceToTarget(obj, EventInfoFormDTO.class); - DistributedLock distributedLock = null; RLock lock = null; try { - distributedLock = SpringContextUtils.getBean(DistributedLock.class); lock = distributedLock.getLock(String.format("lock:open_data_project:%s", obj.getProjectId()), 30L, 30L, TimeUnit.SECONDS); SpringContextUtils.getBean(BaseDisputeProcessService.class).getEventinfo(formDTO); diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataStaffChangeEventListener.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataStaffChangeEventListener.java index 76eadec951..09db1147bd 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataStaffChangeEventListener.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataStaffChangeEventListener.java @@ -38,6 +38,12 @@ public class OpenDataStaffChangeEventListener implements MessageListenerConcurre private RedisUtils redisUtils; + private DistributedLock distributedLock; + + public OpenDataStaffChangeEventListener(DistributedLock distributedLock) { + this.distributedLock = distributedLock; + } + @Override public ConsumeConcurrentlyStatus consumeMessage(List msgs, ConsumeConcurrentlyContext context) { @@ -67,10 +73,8 @@ public class OpenDataStaffChangeEventListener implements MessageListenerConcurre logger.info("【开放数据事件监听器】-工作人员信息变更-收到消息内容:{}, 操作:{}, blockedMsgLabel:{}", msg, tags, pendingMsgLabel); OrgOrStaffMQMsg obj = JSON.parseObject(msg, OrgOrStaffMQMsg.class); - DistributedLock distributedLock = null; RLock lock = null; try { - distributedLock = SpringContextUtils.getBean(DistributedLock.class); lock = distributedLock.getLock(String.format("lock:open_data_staff:%s", obj.getOrgId()), 30L, 30L, TimeUnit.SECONDS); diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/ExDeptService.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/ExDeptService.java index 9a2c815fbd..2fa094af92 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/ExDeptService.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/ExDeptService.java @@ -46,4 +46,4 @@ public interface ExDeptService extends BaseService { **/ void getGridBaseInfo(ExDeptFormDTO formDTO); -} \ No newline at end of file +} diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/ExUserService.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/ExUserService.java index bb990943f3..cdbe5cbaad 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/ExUserService.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/ExUserService.java @@ -31,7 +31,7 @@ import java.util.Map; */ public interface ExUserService extends BaseService { - Map getUserMap(); + Map getUserMap(String customerId); /** * @Author sun diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/BaseDisputeProcessServiceImpl.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/BaseDisputeProcessServiceImpl.java index 75fe8a588f..63211e253f 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/BaseDisputeProcessServiceImpl.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/BaseDisputeProcessServiceImpl.java @@ -32,6 +32,7 @@ import com.epmet.opendata.service.BaseDisputeProcessService; import com.epmet.opendata.service.ExDeptService; import com.epmet.opendata.service.ExUserService; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -74,7 +75,7 @@ public class BaseDisputeProcessServiceImpl extends BaseServiceImpl deptMap = exDeptService.getDeptMap(); - Map userMap = exUserService.getUserMap(); + Map userMap = exUserService.getUserMap(formDTO.getCustomerId()); List list = result.getData(); saveEvent(formDTO, deptMap, userMap, list); //分批次循环 @@ -100,13 +101,23 @@ public class BaseDisputeProcessServiceImpl extends BaseServiceImpl NumConstant.ONE_THOUSAND){ + eventDescription = eventDescription.substring(NumConstant.ZERO,NumConstant.ONE_THOUSAND); + } + entity.setEventDescription(eventDescription); entity.setLng(null == item.getLng()?null:item.getLng().toPlainString()); entity.setLat(null == item.getLat()?null:item.getLat().toPlainString()); entity.setCreateBy(null == userMap.get(item.getReporterId())?null:String.valueOf(userMap.get(item.getReporterId()))); entity.setCreateDate(item.getReportTime()); entity.setUpdateDate(new Date()); entity.setStatus(item.getStatus()); + //业务不确定 + if (("03").equals(item.getStatus())) { + entity.setSuccessfulOrNot("Y"); + } + entity.setEventNo(("py_").concat(item.getId())); entity.setFirstEventCategory(item.getParentEventCategory()); entity.setSource("01"); entity.setSecondEventCategory(item.getEventCategory()); @@ -119,4 +130,4 @@ public class BaseDisputeProcessServiceImpl extends BaseServiceImpl @Override public Map getDeptMap() { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.isNotNull(ExDeptEntity::getGridCode); List entityList = baseDao.selectList(wrapper); if (CollectionUtils.isEmpty(entityList)) { return Collections.emptyMap(); @@ -136,4 +135,4 @@ public class ExDeptServiceImpl extends BaseServiceImpl } -} \ No newline at end of file +} diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/ExUserServiceImpl.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/ExUserServiceImpl.java index 9d5f78e86e..a9eca96dac 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/ExUserServiceImpl.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/ExUserServiceImpl.java @@ -51,8 +51,9 @@ public class ExUserServiceImpl extends BaseServiceImpl private DataStatisticalOpenFeignClient dataStatisticalOpenFeignClient; @Override - public Map getUserMap() { + public Map getUserMap(String customerId) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ExUserEntity::getQxCustomerId, customerId); List list = baseDao.selectList(wrapper); if (CollectionUtils.isEmpty(list)) { return Collections.emptyMap(); @@ -82,6 +83,7 @@ public class ExUserServiceImpl extends BaseServiceImpl entity.setQxUserName(r.getNickName()); entity.setQxMobile(r.getPhonenumber()); entity.setQxCustomerId(formDTO.getCustomerId()); + entityList.add(entity); }); //3.更新数据,不能新增,市平台信息表中必填的 diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/bootstrap.yml b/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/bootstrap.yml index 49db95eb6d..b158975c86 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/bootstrap.yml +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/bootstrap.yml @@ -112,6 +112,11 @@ hystrix: isolation: thread: timeoutInMilliseconds: 60000 #缺省为1000 + threadpool: + default: + coreSize: 10 + maxQueueSize: 500 + queueSizeRejectionThreshold: 500 ribbon: ReadTimeout: 300000 diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/init_db.sql b/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/db/migration/init_db.sql similarity index 100% rename from epmet-module/open-data-worker/open-data-worker-server/src/main/resources/init_db.sql rename to epmet-module/open-data-worker/open-data-worker-server/src/main/resources/db/migration/init_db.sql diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/ExUserDao.xml b/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/ExUserDao.xml index fedbbf35a7..3d904577fd 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/ExUserDao.xml +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/ExUserDao.xml @@ -33,9 +33,9 @@ WHERE 1=1 - + (qx_user_id = #{item.qxUserId} ) - \ No newline at end of file + diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberServiceImpl.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberServiceImpl.java index 447055431a..1cc431a9b3 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberServiceImpl.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberServiceImpl.java @@ -10,7 +10,6 @@ import com.epmet.resi.mine.dto.from.PartyMemberSubmitFromDTO; import com.epmet.resi.mine.dto.from.VerificationCodeFromDTO; import com.epmet.resi.mine.dto.result.PartyMemberInitResultDTO; import com.epmet.resi.partymember.dto.partymember.PartymemberInfoDTO; -import org.apache.poi.ss.formula.constant.ErrorConstant; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java index 502a520dc3..ae67b95ebf 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java @@ -580,6 +580,8 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService userResiInfoDTO.setDistrict(partyMemberInfoDTO.getEstate()); userResiInfoDTO.setBuildingAddress(partyMemberInfoDTO.getBuilding()); userResiInfoDTO.setCustomerId(partyMemberInfoDTO.getCustomerId()); + //注册居民需要录入身份证号 + userResiInfoDTO.setIdNum(partyMemberInfoDTO.getIdCard()); Result result = epmetUserFeignClient.saveResiInfo(userResiInfoDTO); log.info("isResiRegister epmetUserFeignClient.saveResiInfo result:{}",JSON.toJSONString(result)); if (!result.success()){ @@ -608,7 +610,7 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService /** - * 保存或者更新热心居民申请行为记录表 + * 保存或者更新党员认证行为记录表 * * @param visitId 主键 * @param fromDTO 参数 diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/UserResiInfoDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/UserResiInfoDTO.java index 3d81025a02..d8b5c10495 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/UserResiInfoDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/UserResiInfoDTO.java @@ -66,6 +66,11 @@ public class UserResiInfoDTO implements Serializable { */ private String name; + /** + * 身份证号,1206新增 + */ + private String idNum; + /** * 街道 */ diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/EditInfoFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/EditInfoFormDTO.java index 81bd8e9082..a4565ffc6d 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/EditInfoFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/EditInfoFormDTO.java @@ -36,6 +36,12 @@ public class EditInfoFormDTO implements Serializable { */ @NotBlank(message = "名不能为空") private String name; + + //@NotBlank(message = "身份证号不能为空") + //@Length(max=18,message = "身份证号不能超过18位") + //别的小程序不统一升级,没办法限制必填。 + private String idNum; + /** * 路牌号 */ diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/InfoSubmitFromDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/InfoSubmitFromDTO.java index 75453a1d22..d64368a7b4 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/InfoSubmitFromDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/InfoSubmitFromDTO.java @@ -22,7 +22,6 @@ import org.hibernate.validator.constraints.Length; import javax.validation.constraints.NotBlank; import java.io.Serializable; -import java.util.Date; /** @@ -57,6 +56,11 @@ public class InfoSubmitFromDTO implements Serializable { @Length(max=20,message = "名称不能超过20个字") private String name; + //@NotBlank(message = "身份证号不能为空") + //@Length(max=18,message = "身份证号不能超过18位") + //别的小程序不统一升级,没办法限制必填。 + private String idNum; + /** * 街道 */ diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/PersonDataFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/PersonDataFormDTO.java index 52d96870a2..e2355d145a 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/PersonDataFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/PersonDataFormDTO.java @@ -19,4 +19,8 @@ public class PersonDataFormDTO implements Serializable { @NotBlank(message = "userId不能为空",groups = PersonDataForm.class) private String userId; + + + @NotBlank(message = "tokenDto获取customerId不能为空",groups = PersonDataForm.class) + private String customerId; } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ResiUserFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ResiUserFormDTO.java new file mode 100644 index 0000000000..c6341dd565 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ResiUserFormDTO.java @@ -0,0 +1,36 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 根据身份证号找人,也可根据epmetUserId查询,或者icResiUserId + */ +@Data +public class ResiUserFormDTO implements Serializable { + public interface AddUserInternalGroup { + } + + /** + * 身份证号 + */ + private String idNum; + + /** + * epemt_user.user.id + */ + private String epmetUserId; + + /** + * ic_resi_user.id + */ + private String icResiUserId; + + @NotBlank(message = "客户id不能为空", groups = AddUserInternalGroup.class) + private String customerId; + + //@NotBlank(message = "findType不能为空;根据身份证号:byIdNum;根据ic居民:byIc;根据小程序里的居民:byEpmetUser", groups = AddUserInternalGroup.class) + //private String findType; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MyResiUserInfoResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MyResiUserInfoResultDTO.java index 5b26ee9150..a81e542024 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MyResiUserInfoResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MyResiUserInfoResultDTO.java @@ -22,6 +22,10 @@ public class MyResiUserInfoResultDTO implements Serializable { * 是否已注册居民,true ,false * */ private Boolean registerFlag; + /** + * 是否录入身份证号,true ,false + * */ + private Boolean completeIdNum; /** * 微信昵称,可为空“” * */ diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MyselfMsgResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MyselfMsgResultDTO.java index b46c665dfc..cb15d9440b 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MyselfMsgResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MyselfMsgResultDTO.java @@ -38,4 +38,8 @@ public class MyselfMsgResultDTO implements Serializable { * */ private String gridId; + /** + * 身份证号 + * */ + private String idNum; } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonDataResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonDataResultDTO.java index 6a89bb2037..3d1334d249 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonDataResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PersonDataResultDTO.java @@ -7,7 +7,6 @@ import lombok.Data; import java.io.Serializable; import java.util.ArrayList; import java.util.List; -import java.util.Map; /** * @Author zxc @@ -19,6 +18,16 @@ public class PersonDataResultDTO implements Serializable { private static final long serialVersionUID = 5210308218052783909L; + /** + * epemt_user.user.id + */ + private String epmetUserId; + + /** + * ic_resi_user.id + */ + private String icResiUserId; + /** * 工作单位 */ diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/ResiUserResDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/ResiUserResDTO.java new file mode 100644 index 0000000000..3d0679b9d4 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/ResiUserResDTO.java @@ -0,0 +1,15 @@ +package com.epmet.dto.result; + +import com.epmet.dto.form.ResiUserFormDTO; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +@Data +public class ResiUserResDTO implements Serializable { + private String idNum; + private String customerId; + private String epmetUserId; + private String icResiUserId; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java index 54dc76299e..4c525e9a52 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java @@ -660,4 +660,13 @@ public interface EpmetUserOpenFeignClient { **/ @PostMapping(value = "epmetuser/customerstaff/getbyrealnames") Result> getByRealNames(@RequestBody GetByRealNamesFormDTO formDTO); + + /** + * 根据身份证号找人,也可根据epmetUserId查询,或者icResiUserId + * + * @param formDTO + * @return + */ + @PostMapping(value = "/epmetuser/user/finduser") + Result findUser(@RequestBody ResiUserFormDTO formDTO); } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java index 68424b651f..6469d44576 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java @@ -479,4 +479,15 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien public Result> getByRealNames(GetByRealNamesFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getByRealNames", formDTO); } + + /** + * 根据身份证号找人 + * + * @param formDTO + * @return + */ + @Override + public Result findUser(ResiUserFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "findUser", formDTO); + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java index f5720acd39..d6df9f57e0 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java @@ -426,7 +426,9 @@ public class IcResiUserController { * @date 2021/11/3 9:21 上午 */ @PostMapping("persondata") - public Result personData(@RequestBody PersonDataFormDTO formDTO) { + public Result personData(@LoginUser TokenDto tokenDto,@RequestBody PersonDataFormDTO formDTO) { + formDTO.setCustomerId(tokenDto.getCustomerId()); + ValidatorUtils.validateEntity(formDTO,PersonDataFormDTO.PersonDataForm.class); return new Result().ok(icResiUserService.personData(formDTO)); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserController.java index f1cbcb114a..5d0f66d698 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserController.java @@ -185,4 +185,17 @@ public class UserController { } return new Result().ok(userService.queryUserClient(userId)); } + + /** + * 根据身份证号找人,也可根据epmetUserId查询,或者icResiUserId + * + * + * @param formDTO + * @return + */ + @PostMapping("finduser") + public Result findUser(@RequestBody ResiUserFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO,ResiUserFormDTO.AddUserInternalGroup.class); + return new Result().ok(userService.findUser(formDTO)); + } } 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 dfc0cdae15..ea5ca5b741 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 @@ -162,4 +162,8 @@ public interface IcResiUserDao extends BaseDao { List selectDemandUsers(@Param("agencyId") String agencyId, @Param("gridId")String gridId, @Param("name")String name); + + IcResiUserDTO selectIdByIdCard(@Param("customerId") String customerId, + @Param("idNum")String idNum, + @Param("icResiUserId")String icResiUserId); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserBaseInfoDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserBaseInfoDao.java index 6fdd2f931f..c44ea90420 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserBaseInfoDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserBaseInfoDao.java @@ -18,6 +18,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.UserBaseInfoDTO; import com.epmet.dto.result.ResiUserBaseInfoResultDTO; import com.epmet.dto.result.UserBaseInfoResultDTO; import com.epmet.dto.result.UserWechatResultDTO; @@ -80,4 +81,8 @@ public interface UserBaseInfoDao extends BaseDao { * @date 2020.07.30 19:16 **/ String selectIdByUserId(@Param("userId") String userId); + + UserBaseInfoDTO selectUserId(@Param("customerId") String customerId, + @Param("idNum")String idNum, + @Param("userId")String userId); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserResiInfoDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserResiInfoDao.java index 59d42dfc6e..31f4625abf 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserResiInfoDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserResiInfoDao.java @@ -96,4 +96,15 @@ public interface UserResiInfoDao extends BaseDao { * @return void */ void updateByUserId(UserResiInfoEntity entity); + + /** + * 身份证 + * @param idNum + * @return + */ + Integer selectCountByIdNum(@Param("idNum") String idNum,@Param("customerId") String customerId); + + UserResiInfoDTO selectByIdNum(@Param("customerId") String customerId, + @Param("idNum")String idNum, + @Param("userId")String userId); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/UserResiInfoEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/UserResiInfoEntity.java index 7c4266e3c7..7df10f75a6 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/UserResiInfoEntity.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/UserResiInfoEntity.java @@ -20,13 +20,10 @@ package com.epmet.entity; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; - import com.epmet.commons.mybatis.entity.BaseEpmetEntity; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Date; - /** * 用户居民端注册信息表 用户在居民端完善的个人信息 * @@ -60,6 +57,11 @@ public class UserResiInfoEntity extends BaseEpmetEntity { */ private String name; + /** + * 身份证号,1206新增 + */ + private String idNum; + /** * 街道 */ diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java index 2b88399eab..9a0fcbed95 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java @@ -20,6 +20,7 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.dto.IcResiUserDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.entity.IcResiUserEntity; @@ -141,4 +142,13 @@ public interface IcResiUserService extends BaseService { List listFormItems(String customerId, String formCode); List queryDemandUsers(DemandUserFormDTO formDTO); + + /** + * 返回ic_resi_user.id + * + * @param customerId + * @param idNum + * @return + */ + IcResiUserDTO getByIdCard(String customerId, String idNum,String icResiUserId); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBaseInfoService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBaseInfoService.java index 531213863d..164a222894 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBaseInfoService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBaseInfoService.java @@ -189,4 +189,6 @@ public interface UserBaseInfoService extends BaseService { * @date 2020.08.21 17:16 **/ ExtUserInfoResultDTO extUserInfo(CommonUserIdFormDTO param); + + UserBaseInfoDTO getUserIdByIdNum(String customerId, String idNum,String userId); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserService.java index 33e7b1c7ad..2157dd6db0 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserService.java @@ -104,4 +104,13 @@ public interface UserService extends BaseService { * @date 2021/9/10 8:50 上午 */ UserDTO queryUserClient(String userId); + + /** + * 根据身份证号找人 + * + * + * @param formDTO + * @return + */ + ResiUserResDTO findUser(ResiUserFormDTO formDTO); } 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 841f01ce34..a78ec9c296 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 @@ -21,7 +21,6 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; -import com.epmet.commons.rocketmq.messages.IcResiUserAddMQMsg; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.ServiceConstant; @@ -47,7 +46,6 @@ import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.IcPlatformConstant; import com.epmet.constant.IcResiUserConstant; -import com.epmet.constant.SystemMessageType; import com.epmet.constant.UserConstant; import com.epmet.dao.IcResiUserDao; import com.epmet.dto.*; @@ -61,6 +59,7 @@ import com.epmet.feign.EpmetMessageOpenFeignClient; import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.feign.OperCustomizeOpenFeignClient; import com.epmet.service.IcResiUserService; +import com.epmet.service.UserService; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -101,6 +100,8 @@ public class IcResiUserServiceImpl extends BaseServiceImpl getWrapper(Map params){ String id = (String)params.get(FieldConstant.ID_HUMP); @@ -530,6 +531,14 @@ public class IcResiUserServiceImpl extends BaseServiceImpl> listResult = govOrgOpenFeignClient.selectHouseInfoByIdCard(personData.getIdCard()); if (!listResult.success()){ @@ -852,4 +861,19 @@ public class IcResiUserServiceImpl extends BaseServiceImpl queryDemandUsers(DemandUserFormDTO formDTO) { return baseDao.selectDemandUsers(formDTO.getAgencyId(),formDTO.getGridId(),formDTO.getName()); } + + /** + * 返回ic_resi_user.id + * + * @param customerId + * @param idNum + * @return + */ + @Override + public IcResiUserDTO getByIdCard(String customerId, String idNum,String icResiUserId) { + if(StringUtils.isBlank(idNum)&&StringUtils.isBlank(icResiUserId)){ + return null; + } + return baseDao.selectIdByIdCard(customerId,idNum,icResiUserId); + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java index 0f4d76d821..61d1cf14a0 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java @@ -442,4 +442,12 @@ public class UserBaseInfoServiceImpl extends BaseServiceImpl NumConstant.ZERO) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "user_resi_info已存在该身份证号", "身份证号已被使用"); + } + } userResiRegisterVisitService.updateResiRegisterVisit(true, userResiInfoDTO); //4:居民注册关系表新增数据 首次注册数加一 注册数加一 参与数加一 registerRelationService.saveRegisterRelation(userResiInfoDTO); @@ -296,24 +303,25 @@ public class UserResiInfoServiceImpl extends BaseServiceImpl 0) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "user_resi_info已存在该身份证号", "身份证号已被使用"); + } + //居民注册关系表新增数据 首次注册数加一 注册数加一 参与数加一 + registerRelationService.saveRegisterRelation(userResiInfoDTO); + //数据存入居民注册表 + saveUserResiInfo(userResiInfoDTO); /* //将用户于居民角色关联 saveUserResiInfo已包含 UserRoleDTO userRole = new UserRoleDTO(); userRole.setUserId(userResiInfoDTO.getUserId()); userRole.setRoleKey(UserConstant.ROLE_RESI); userRole.setApp(userResiInfoDTO.getApp()); userRoleService.saveUserRole(userRole);*/ - //更新该用户在该客户下的注册状态 - userCustomerDao.updateRegistered(userResiInfoDTO.getCustomerId(), userResiInfoDTO.getUserId()); - }else{ - log.warn("手机号客户内不可用,没有更新用户信息,param:{}", JSON.toJSONString(userResiInfoDTO)); - throw new RenException(EpmetErrorCode.THE_MOBILE_HAS_BEEN_USED.getCode(),EpmetErrorCode.THE_MOBILE_HAS_BEEN_USED.getMsg()); - } - + //更新该用户在该客户下的注册状态 + userCustomerDao.updateRegistered(userResiInfoDTO.getCustomerId(), userResiInfoDTO.getUserId()); return result; } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java index 6c56b705a8..68ed3433a3 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java @@ -2,16 +2,19 @@ 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.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.CpUserDetailRedis; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.UserConstant; -import com.epmet.dao.*; -import com.epmet.dto.CustomerGridDTO; -import com.epmet.dto.UserDTO; -import com.epmet.dto.UserResiInfoDTO; -import com.epmet.dto.UserWechatDTO; +import com.epmet.dao.UserDao; +import com.epmet.dao.UserResiInfoDao; +import com.epmet.dao.UserRoleDao; +import com.epmet.dao.UserWechatDao; +import com.epmet.dto.*; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.entity.UserBaseInfoEntity; @@ -19,6 +22,7 @@ import com.epmet.entity.UserEntity; import com.epmet.entity.UserWechatEntity; import com.epmet.feign.EpmetPointOpenFeignClient; import com.epmet.feign.GovOrgFeignClient; +import com.epmet.service.IcResiUserService; import com.epmet.service.UserBaseInfoService; import com.epmet.service.UserService; import com.epmet.util.ModuleConstant; @@ -53,7 +57,8 @@ public class UserServiceImpl extends BaseServiceImpl implem private EpmetPointOpenFeignClient epmetPointOpenFeignClient; @Autowired private UserResiInfoDao userResiInfoDao; - + @Autowired + private IcResiUserService icResiUserService; private static final Logger log = LoggerFactory.getLogger(UserServiceImpl.class); @@ -183,6 +188,8 @@ public class UserServiceImpl extends BaseServiceImpl implem MyResiUserInfoResultDTO result = ConvertUtils.sourceToTarget(myselfMsg,MyResiUserInfoResultDTO.class); //registerFlag 是否已注册居民,true ,false result.setRegisterFlag(StringUtils.isNotBlank(myselfMsg.getResiId())); + // 已录入身份证号:true;未完善:false. + result.setCompleteIdNum(StringUtils.isNotBlank(myselfMsg.getIdNum())); result.setRegisterGridName(ModuleConstant.EMPTY_STR); if(StringUtils.isNotBlank(myselfMsg.getGridId())){ //registerGridName 当前在哪个网格,显示哪个网格的名称 @@ -342,4 +349,40 @@ public class UserServiceImpl extends BaseServiceImpl implem return baseDao.selectByUserId(userId); } + /** + * 根据身份证号找人,也可根据epmetUserId查询,或者icResiUserId + * + * @param formDTO + * @return + */ + @Override + public ResiUserResDTO findUser(ResiUserFormDTO formDTO) { + if (StringUtils.isBlank(formDTO.getIdNum()) && StringUtils.isBlank(formDTO.getEpmetUserId()) && StringUtils.isBlank(formDTO.getIcResiUserId())) { + throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(),"身份证号、epmetuserId、icResiUserId至少输入一个","至少选择一种查询方式"); + } + ResiUserResDTO resiUserResDTO = ConvertUtils.sourceToTarget(formDTO, ResiUserResDTO.class); + //可以根据身份证号查询,也可以根据ic_resi_user.id查询 + if (StringUtils.isBlank(formDTO.getIcResiUserId())) { + IcResiUserDTO icResiUser = icResiUserService.getByIdCard(formDTO.getCustomerId(), formDTO.getIdNum(), formDTO.getIcResiUserId()); + resiUserResDTO.setIcResiUserId(null != icResiUser ? icResiUser.getId() : StrConstant.EPMETY_STR); + resiUserResDTO.setIdNum(null != icResiUser ? icResiUser.getIdCard() : StrConstant.EPMETY_STR); + } + //可以根据身份证号查询,也可以根据epmet_user.user.id查询 + if (StringUtils.isBlank(formDTO.getEpmetUserId())) { + UserBaseInfoDTO userBaseInfoDTO = userBaseInfoService.getUserIdByIdNum(formDTO.getCustomerId(), + formDTO.getIdNum(), + formDTO.getEpmetUserId()); + if (null == userBaseInfoDTO || StringUtils.isBlank(userBaseInfoDTO.getUserId())) { + log.info("user_base_info没有找到,去查下user_resi_info表吧"); + UserResiInfoDTO userResiInfoDTO = userResiInfoDao.selectByIdNum(formDTO.getCustomerId(), + formDTO.getIdNum(), + formDTO.getEpmetUserId()); + resiUserResDTO.setEpmetUserId(null != userResiInfoDTO ? userResiInfoDTO.getId() : StrConstant.EPMETY_STR); + } else { + resiUserResDTO.setEpmetUserId(userBaseInfoDTO.getUserId()); + } + } + return resiUserResDTO; + } + } diff --git a/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.19__user_resi_infoaddidnum.sql b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.19__user_resi_infoaddidnum.sql new file mode 100644 index 0000000000..535da1b138 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.19__user_resi_infoaddidnum.sql @@ -0,0 +1 @@ +alter table user_resi_info add COLUMN ID_NUM VARCHAR(32) COMMENT '身份证号,1206新增' AFTER NAME; 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 2278cf515a..e7c9de9224 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 @@ -308,4 +308,20 @@ ORDER BY CONVERT ( ir.NAME USING gbk ) ASC + + diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/UserBaseInfoDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/UserBaseInfoDao.xml index 8c664e678e..521bba1169 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/UserBaseInfoDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/UserBaseInfoDao.xml @@ -120,4 +120,18 @@ WHERE DEL_FLAG = '0' AND USER_ID = #{userId} + + diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/UserDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/UserDao.xml index bbdaf024ba..6d82e4c200 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/UserDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/UserDao.xml @@ -34,7 +34,8 @@ IFNULL(wechat.NICKNAME,"") AS nickName, IFNULL(resi.ID,"") AS resiId, IFNULL(CONCAT(resi.SURNAME,resi.NAME),"") AS userRealName, - IFNULL(relation.GRID_ID,"") AS gridId + IFNULL(relation.GRID_ID,"") AS gridId, + IFNULL(resi.id_num,'')AS idNum FROM USER user LEFT JOIN diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/UserResiInfoDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/UserResiInfoDao.xml index fb360d3a39..c0bc153d95 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/UserResiInfoDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/UserResiInfoDao.xml @@ -175,4 +175,31 @@ uri.DEL_FLAG = '0' AND uri.USER_ID = #{userId} + + + +