diff --git a/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/OrgOrStaffMQMsg.java b/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/OrgOrStaffMQMsg.java index fdd9e5d860..f579fbb1fc 100644 --- a/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/OrgOrStaffMQMsg.java +++ b/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/OrgOrStaffMQMsg.java @@ -22,6 +22,11 @@ public class OrgOrStaffMQMsg implements Serializable { //删除网格:grid_delete;删除组织:agency_delete private String type; + /** + * org原有的Code + */ + private String oldCode; + //工作人员Id集合 private List staffIdList; diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java index 221d7d3f69..8b819bcfb8 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java @@ -143,4 +143,9 @@ public interface ServiceConstant { * 聚合查询服务 */ String DATA_AGGREGATOR_SERVER = "data-aggregator-server"; + + /** + * 插件pli-power服务 + */ + String PLI_POWER_SERVER = "pli-power-base-server"; } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java index a13d6cf1db..163dee5e2f 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java @@ -259,6 +259,7 @@ public enum EpmetErrorCode { NOT_REGEIST_RESI(8927,"未注册居民"), UNIT_EXIST_HOUSES_ERROR(8928,"单元下存在房屋,不可修改单元数"), IC_VACCINE(8929,"已存在相同记录,请去修改原有记录"), + NOT_MATCH_IC_USER_ERROR(8930,"请联系社区工作人员"), MISMATCH(10086,"人员与房屋信息不匹配,请与工作人员联系。"), diff --git a/epmet-gateway/src/main/resources/bootstrap.yml b/epmet-gateway/src/main/resources/bootstrap.yml index a1d2a74c11..b0b2492d33 100644 --- a/epmet-gateway/src/main/resources/bootstrap.yml +++ b/epmet-gateway/src/main/resources/bootstrap.yml @@ -502,6 +502,7 @@ epmet: # 内部认证url白名单(在白名单中的,就不会再校验登录了) internalAuthUrlsWhiteList: - /epmetuser/customerstaff/customerlist + - /epmetuser/icresiuser/icUserMatchGrid - /auth/wechat/** - /**/druid/** - /gov/project/project/platformcallback diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java index 697456d206..b84b11d14f 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java @@ -1194,12 +1194,8 @@ public class GovOrgServiceImpl implements GovOrgService { dto.setOrgId(grid.getId()); dto.setOrgType(OrgConstant.GRID); dto.setOrgName(grid.getGridName()); - if (projectMap.containsKey(grid.getId())) { - dto.setProjectCount(projectMap.get(grid.getId())); - } - if (closedMap.containsKey(grid.getId())) { - dto.setClosedCount(closedMap.get(grid.getId())); - } + dto.setProjectCount(projectMap.getOrDefault(grid.getId(), NumConstant.ZERO)); + dto.setClosedCount(closedMap.getOrDefault(grid.getId(), NumConstant.ZERO)); if (memberMap.containsKey(grid.getId())) { dto.setMemberCount(Math.toIntExact(memberMap.get(grid.getId()))); if (NumConstant.ZERO != dto.getMemberCount()) { @@ -1302,12 +1298,9 @@ public class GovOrgServiceImpl implements GovOrgService { //统计关闭项目数 Map closedMap = govProjectService.getMemberClosedProjectMap(formDTO); result.getList().forEach(item -> { - if (projectMap.containsKey(item.getStaffId())) { - item.setProjectCount(projectMap.get(item.getStaffId())); - } - if (projectMap.containsKey(item.getStaffId())) { - item.setClosedCount(closedMap.get(item.getStaffId())); - } + item.setProjectCount(projectMap.getOrDefault(item.getStaffId(), NumConstant.ZERO)); + item.setClosedCount(closedMap.getOrDefault(item.getStaffId(), NumConstant.ZERO)); + if (OrgConstant.AGENCY.contains(formDTO.getOrgType())) { AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(item.getOrgId()); if (null != agencyInfo) { diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java index 82b58c2500..caa0bf8e87 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java @@ -716,7 +716,7 @@ public class GovProjectServiceImpl implements GovProjectService { */ @Override public Map getMemberClosedProjectMap(OrgStatisticsFormDTO formDTO) { - List list = projectDao.getMemberProjectCount(formDTO); + List list = projectDao.getMemberClosedProjectCount(formDTO); if (CollectionUtils.isEmpty(list)) { return Collections.emptyMap(); } diff --git a/epmet-module/epmet-job/epmet-job-server/pom.xml b/epmet-module/epmet-job/epmet-job-server/pom.xml index 1e0d00c9ba..0aaf92db4a 100644 --- a/epmet-module/epmet-job/epmet-job-server/pom.xml +++ b/epmet-module/epmet-job/epmet-job-server/pom.xml @@ -43,6 +43,11 @@ epmet-message-client 2.0.0 + + com.epmet + pli-power-base-client + 2.0.0 + org.springframework.boot spring-boot-starter-web diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/PliPowerService.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/PliPowerService.java new file mode 100644 index 0000000000..4fb990d033 --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/PliPowerService.java @@ -0,0 +1,17 @@ +package com.epmet.service; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.plugin.power.dto.visit.form.VisitorLogoutFormDTO; + +public interface PliPowerService { + + /** + * 访客登出 + * + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + * @author zhy + * @date 2022/5/30 10:25 + */ + Result visitorLogout(VisitorLogoutFormDTO formDTO); +} diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/PliPowerServiceImpl.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/PliPowerServiceImpl.java new file mode 100644 index 0000000000..ed54b7e6d9 --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/PliPowerServiceImpl.java @@ -0,0 +1,31 @@ +package com.epmet.service.impl; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.plugin.power.dto.visit.form.VisitorLogoutFormDTO; +import com.epmet.plugin.power.feign.PliPowerFeignClient; +import com.epmet.service.PliPowerService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + + +/** + * @Description + * @ClassName StatsUserServiceImpl + * @Auth wangc + * @Date 2020-06-29 09:41 + */ +@Service +public class PliPowerServiceImpl implements PliPowerService { + + private Logger logger = LoggerFactory.getLogger(getClass()); + + @Autowired + private PliPowerFeignClient pliPowerFeignClient; + + @Override + public Result visitorLogout(VisitorLogoutFormDTO formDTO) { + return pliPowerFeignClient.visitorLogout(formDTO); + } +} diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PliVisitorLogoutTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PliVisitorLogoutTask.java new file mode 100644 index 0000000000..41ffa19ecc --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PliVisitorLogoutTask.java @@ -0,0 +1,41 @@ +package com.epmet.task; + +import com.alibaba.fastjson.JSON; +import com.epmet.commons.tools.utils.Result; +import com.epmet.plugin.power.dto.visit.form.VisitorLogoutFormDTO; +import com.epmet.service.PliPowerService; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * 访客登出 + * + * @author zhy + * @date 2022/5/30 10:23 + */ +@Component("pliVisitorLogoutTask") +public class PliVisitorLogoutTask implements ITask { + + private Logger logger = LoggerFactory.getLogger(getClass()); + + @Autowired + private PliPowerService pliPowerService; + + @Override + public void run(String params) { + logger.info("VisitorLogoutTask定时任务正在执行,参数为:{}", params); + VisitorLogoutFormDTO formDTO = new VisitorLogoutFormDTO(); + if (StringUtils.isNotBlank(params)) { + formDTO = JSON.parseObject(params, VisitorLogoutFormDTO.class); + } + Result result = pliPowerService.visitorLogout(formDTO); + if (result.success()) { + logger.info("VisitorLogoutTask定时任务执行成功"); + } else { + logger.error("VisitorLogoutTask定时任务执行失败:" + result.getMsg()); + } + } +} diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerGridDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerGridDTO.java index 0acd914fa6..9184969e62 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerGridDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerGridDTO.java @@ -155,4 +155,9 @@ public class CustomerGridDTO implements Serializable { * 弃用:1;正常使用:0 */ private Integer abandonFlag; + + /** + * 网格排序 + */ + private Integer sort; } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EditGridFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EditGridFormDTO.java index 8774da4f99..0159e3d4b0 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EditGridFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EditGridFormDTO.java @@ -25,6 +25,7 @@ public class EditGridFormDTO implements Serializable { /** * gridId 网格id */ + @NotBlank(message = "网格ID不能为空") private String gridId; /** @@ -77,4 +78,9 @@ public class EditGridFormDTO implements Serializable { * 中心点位位置 */ private String centerAddress; + + /** + * 网格排序 + */ + private Integer sort; } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcBulidingAddFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcBulidingAddFormDTO.java index 91b93b2569..cafecc1f1b 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcBulidingAddFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcBulidingAddFormDTO.java @@ -86,7 +86,7 @@ public class IcBulidingAddFormDTO implements Serializable { /** * 排序 */ - @NotNull(message = "排序不能为空", groups = {AddShowGroup.class, UpdateShowGroup.class}) + // @NotNull(message = "排序不能为空", groups = {AddShowGroup.class, UpdateShowGroup.class}) private BigDecimal sort = NumConstant.ZERO_DECIMAL; /** diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/GridDetailResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/GridDetailResultDTO.java index cae98d8bc4..22d4951210 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/GridDetailResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/GridDetailResultDTO.java @@ -91,4 +91,9 @@ public class GridDetailResultDTO implements Serializable { */ private String mobile = ""; + /** + * 网格排序 + */ + private Integer gridSort = 0; + } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/StaffListResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/StaffListResultDTO.java index 2bf18307ce..c5e0fafb4e 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/StaffListResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/StaffListResultDTO.java @@ -41,4 +41,6 @@ public class StaffListResultDTO implements Serializable { */ private String mobile=""; + private Boolean staffEnabledStatus = false; + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java index 893bc95cda..eb42e5a043 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java @@ -177,16 +177,7 @@ public class AgencyController { formDTO.setCustomerId(tokenDTO.getCustomerId()); ValidatorUtils.validateEntity(formDTO, EditAgencyFormDTO.DefaultUserShowGroup.class, EditAgencyFormDTO.AddUserInternalGroup.class); Result result = agencyService.editAgency(formDTO); - - //2021-10-18 推送mq,数据同步到中介库 start【中介库只放了组织的名称、级别,所以涉及批量修改pname的操作不涉及同步中间库】 - OrgOrStaffMQMsg mq = new OrgOrStaffMQMsg(); - mq.setCustomerId(tokenDTO.getCustomerId()); - mq.setOrgId(formDTO.getAgencyId()); - mq.setOrgType("agency"); - mq.setType("agency_change"); - SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq); - //2021-10-18 end - + //发送mq 消息迁移至service return result; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java index c7d3f5ecb6..878200dc01 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java @@ -15,6 +15,7 @@ import com.epmet.feign.EpmetMessageOpenFeignClient; import com.epmet.send.SendMqMsgUtil; import com.epmet.service.CustomerGridService; import com.epmet.service.CustomerStaffAgencyService; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -26,6 +27,7 @@ import java.util.List; */ @RestController @RequestMapping("grid") +@Slf4j public class GridController { @Autowired @@ -79,16 +81,7 @@ public class GridController { editGridFormDTO.setCustomerId(tokenDto.getCustomerId()); Result result = customerGridService.editGrid(tokenDto,editGridFormDTO); - //2021-10-18 推送mq,数据同步到中介库 start - if (result.success()) { - OrgOrStaffMQMsg mq = new OrgOrStaffMQMsg(); - mq.setCustomerId(tokenDto.getCustomerId()); - mq.setOrgId(editGridFormDTO.getGridId()); - mq.setOrgType("grid"); - mq.setType("grid_change"); - SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq); - } - //2021-10-18 end + //发送mq 消息 移至service return result; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java index 61059fb01c..10499f4b52 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java @@ -20,6 +20,7 @@ package com.epmet.service.impl; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.epmet.commons.rocketmq.messages.OrgOrStaffMQMsg; import com.epmet.commons.tools.constant.Constant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; @@ -52,13 +53,14 @@ import com.epmet.entity.CustomerAgencyEntity; import com.epmet.entity.CustomerDepartmentEntity; import com.epmet.entity.CustomerGridEntity; import com.epmet.feign.EpmetCommonServiceOpenFeignClient; +import com.epmet.feign.EpmetMessageOpenFeignClient; import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.feign.OperCrmFeignClient; import com.epmet.redis.CustomerAgencyRedis; +import com.epmet.send.SendMqMsgUtil; import com.epmet.service.AgencyService; import com.epmet.service.CustomerAgencyService; import com.epmet.service.CustomerOrgParameterService; -import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.base.Joiner; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -71,7 +73,6 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.*; -import java.util.function.Function; import java.util.stream.Collectors; /** @@ -107,6 +108,8 @@ public class AgencyServiceImpl implements AgencyService { private IcBuildingDao icBuildingDao; @Autowired private CustomerDepartmentDao customerDepartmentDao; + @Autowired + private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient; /** * @param formDTO @@ -240,6 +243,16 @@ public class AgencyServiceImpl implements AgencyService { //5.redis缓存 customerAgencyRedis.delete(formDTO.getAgencyId()); + + //2021-10-18 推送mq,数据同步到中介库 start【中介库只放了组织的名称、级别,所以涉及批量修改pname的操作不涉及同步中间库】 + OrgOrStaffMQMsg mq = new OrgOrStaffMQMsg(); + mq.setCustomerId(originalEntity.getCustomerId()); + mq.setOrgId(formDTO.getAgencyId()); + mq.setOrgType("agency"); + mq.setType("agency_change"); + mq.setOldCode(originalEntity.getCode()); + SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq); + //2021-10-18 end //6.一些下拉组织树的缓存要清除掉 String orgTreeCachePrexKey = RedisKeys.getOrgTreeCachePrexKey(formDTO.getCustomerId()); customerAgencyRedis.deleteByPrex(orgTreeCachePrexKey); diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java index 77fb6a3d53..86e54b4356 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java @@ -202,7 +202,7 @@ public class BuildingServiceImpl implements BuildingService { // agencyIdList.add(customerAgency.getId()); LambdaQueryWrapper gridWrapper = new LambdaQueryWrapper<>(); gridWrapper.in(CustomerGridEntity::getPid, agencyIdList); - gridWrapper.last("ORDER BY CAST(GRID_NAME AS SIGNED),CONVERT(GRID_NAME using gbk)"); + gridWrapper.last("ORDER BY sort,CAST(GRID_NAME AS SIGNED),CONVERT(GRID_NAME using gbk)"); List customerGridList = customerGridDao.selectList(gridWrapper); if (CollectionUtils.isEmpty(customerGridList)) { 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 4354be6b51..f2c0392dc7 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 @@ -325,6 +325,7 @@ public class CustomerAgencyServiceImpl extends BaseServiceImpl> collect = agencyStaffList.stream().collect(Collectors.groupingBy(StaffListResultDTO::getStaffEnabledStatus)); + resultDTO.setAgencyStaffList(CollectionUtils.isNotEmpty(collect.get(true)) ? collect.get(true) : new ArrayList<>()); resultDTO.setDepartmentList(departmentList); resultDTO.setGridList(gridList); return resultDTO; diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java index 162aed146b..df84bed116 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java @@ -55,7 +55,6 @@ import com.epmet.entity.CustomerGridEntity; import com.epmet.entity.CustomerStaffGridEntity; import com.epmet.entity.StaffOrgRelationEntity; import com.epmet.feign.*; -import com.epmet.resi.partymember.feign.ResiPartyMemberOpenFeignClient; import com.epmet.send.SendMqMsgUtil; import com.epmet.service.CustomerAgencyService; import com.epmet.service.CustomerGridService; @@ -111,10 +110,6 @@ public class CustomerGridServiceImpl extends BaseServiceImpl wrapper = new LambdaQueryWrapper<>(); wrapper.eq(CustomerGridEntity::getPid, agencyId); - wrapper.last("ORDER BY CONVERT ( GRID_NAME USING gbk ) ASC"); + wrapper.last("ORDER BY sort,CONVERT ( GRID_NAME USING gbk ) desc"); List list = baseDao.selectList(wrapper); if (CollectionUtils.isEmpty(list)) { return Collections.emptyList(); diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/DepartmentServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/DepartmentServiceImpl.java index e5cd12fdf8..5aad1c9b59 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/DepartmentServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/DepartmentServiceImpl.java @@ -51,7 +51,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; -import org.springframework.web.bind.annotation.RequestBody; import java.util.ArrayList; import java.util.Date; @@ -107,10 +106,11 @@ public class DepartmentServiceImpl implements DepartmentService { Result result = new Result(); AddDepartmentResultDTO addDepartmentResultDTO = new AddDepartmentResultDTO(); CustomerDepartmentEntity entity = ConvertUtils.sourceToTarget(formDTO, CustomerDepartmentEntity.class); - if (formDTO.getTotalUser() > NumConstant.ZERO) { + if (null != formDTO.getTotalUser() && formDTO.getTotalUser() > NumConstant.ZERO) { entity.setTotalUser(formDTO.getTotalUser()); + }else{ + entity.setTotalUser(NumConstant.ZERO); } - entity.setTotalUser(NumConstant.ZERO); //1:查询当前组织机构信息,获取客户Id CustomerAgencyEntity parentEntity = customerAgencyDao.selectById(formDTO.getAgencyId()); entity.setCustomerId(parentEntity.getCustomerId()); diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.40__add_column.sql b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.40__add_column.sql new file mode 100644 index 0000000000..c7700c344b --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.40__add_column.sql @@ -0,0 +1,2 @@ +ALTER TABLE `epmet_gov_org`.`customer_grid` +ADD COLUMN `sort` int(11) NULL COMMENT '网格排序' AFTER `MOBILE`; diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml index d0e2d2e34c..28f1953c93 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml @@ -371,6 +371,7 @@ WHERE cg.DEL_FLAG = '0' AND cg.PID =#{agencyId} + order by cg.sort @@ -474,8 +482,10 @@ AND grid.customer_id = #{customerId} ORDER BY - grid.customer_id, - CONVERT ( gridName USING gbk ) ASC + grid.sort, + CONVERT ( gridName USING gbk ) ASC, + grid.customer_id + LIMIT #{pageNo}, #{pageSize} @@ -488,7 +498,9 @@ SELECT a.id AS grid_id, a.customer_id, - concat( agency.fullname, '-', a.grid_name ) AS gridName + concat( agency.fullname, '-', a.grid_name ) AS gridName, + a.sort as sort, + agency.fullname as fullName FROM CUSTOMER_GRID a LEFT JOIN ( @@ -512,7 +524,7 @@ and a.ABANDON_FLAG='0' AND a.customer_id = #{customerId} ) AS c - ORDER BY CONVERT ( gridName USING gbk ) ASC + ORDER BY fullName,c.sort,CONVERT ( gridName USING gbk ) ASC LIMIT #{pageNo}, #{pageSize} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/OrgProjectListFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/OrgProjectListFormDTO.java new file mode 100644 index 0000000000..c2607974ee --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/OrgProjectListFormDTO.java @@ -0,0 +1,73 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.List; + +@Data +public class OrgProjectListFormDTO extends PageFormDTO implements Serializable { + private static final long serialVersionUID = -3317804468566708838L; + + /** + * 组织/网格Id + */ + private String orgId; + /** + * 组织agency 网格grid + */ + private String orgType; + /** + * 上报渠道 【来源:议题issue 项目立项:agency 事件:ic_event 工作人员上报:work_event】 + */ + private String origin; + /** + * 上报人姓名 + */ + private String staffName; + /** + * 手机号 + */ + private String mobile; + //手机号对应工作人员Id集合 + private List staffIds; + /** + * 事件内容 + */ + private String backGround; + /** + * 事件类型 一类、二类Id集合 + */ + private List firstIdList; + private List secondIdList; + /** + * 事件状态 处理中 pending,已结案 closed + */ + private String status; + /** + * 起始上报时间 精确到秒 + */ + private String startTime; + /** + * 终止上报时间 精确到秒 + */ + private String endTime; + /** + * 处置选项 筛选自己参与的项目 有值就按staffId查 + */ + private String staffId; + + /** + * 分页参数 + */ + private Integer pageNo = 1; + private Integer pageSize = 20; + private Boolean isPage = true; + + //token中信息 + private String userId; + private String customerId; + +} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/IcEventProcessListResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/IcEventProcessListResultDTO.java index 65d28e6501..7b4b805e7e 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/IcEventProcessListResultDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/IcEventProcessListResultDTO.java @@ -4,7 +4,6 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serializable; -import java.util.ArrayList; import java.util.List; /** @@ -16,6 +15,10 @@ public class IcEventProcessListResultDTO implements Serializable { private static final long serialVersionUID = 5762152044573235897L; + /** + * 项目ID + */ + private String projectId; /** * 进展Id */ @@ -39,6 +42,26 @@ public class IcEventProcessListResultDTO implements Serializable { * 公开答复 */ private String publicReply; + /** + * 是否发送到外部系统 0否 1是 + */ + private Integer isSend; + /** + * 内部备注 + */ + private String internalRemark; + /** + * 子节点 + */ + private List subProcess; + /** + * 公开答复附件 + */ + private List publicFile; + /** + * 内部备注附件 + */ + private List internalFile; /** * 协办单位类型,1社区自组织,2联建单位 */ @@ -69,4 +92,5 @@ public class IcEventProcessListResultDTO implements Serializable { */ private String actualServiceTime; + } diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/OrgProjectListResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/OrgProjectListResultDTO.java new file mode 100644 index 0000000000..f734a13de8 --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/OrgProjectListResultDTO.java @@ -0,0 +1,106 @@ +package com.epmet.dto.result; + +import com.epmet.dto.form.FileDTO; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +@Data +public class OrgProjectListResultDTO implements Serializable { + + private static final long serialVersionUID = 2374701362057175388L; + + /** + * 项目ID + */ + private String projectId; + /** + * 所属组织ID + */ + private String agencyId; + /** + * 上报渠道 agency:网格上报 ic_event:居民上报 work_event:巡查上报 issue:议题上报 + */ + private String origin; + /** + * 一级分类 + */ + private String firstName; + private String firstId; + + /** + * 二级分类 + */ + private String secondName; + private String secondId; + + /** + * 事件标题 + */ + private String title; + + /** + * 所属网格 + */ + private String gridName; + private String gridId; + + /** + * 地址 + */ + private String address; + /** + * 报事人 + */ + private String staffName; + private String staffId; + /** + * 上报人电话 + */ + private String mobile; + /** + * 上报时间 + */ + private String createdTime; + /** + * 事件内容 + */ + private String backGround; + /** + * 结案说明 + */ + private String publicReply; + /** + * 办结时间 + */ + private String endTime; + /** + * 办结部门 + */ + private String departmentName; + + /** + * 处理建议[创建节点的公开答复] + */ + private String createPublicReply; + + /** + * 图片url集合 + */ + private List urlList; + private String imageUrl; + + /** + * 状态 处理中 pending,已结案 closed + */ + private String status; + private String statusValue; + /** + * 是否需要自己处理 true:需要 false:不需要 + */ + private Boolean processable = false; + +} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java index fb8bcad8fd..02f813b232 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java @@ -17,11 +17,21 @@ package com.epmet.controller; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter; import com.epmet.commons.tools.validator.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.group.AddGroup; @@ -30,15 +40,20 @@ import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.ProjectDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; +import com.epmet.excel.OrgProjectListExcel; import com.epmet.excel.ProjectExcel; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; import com.epmet.service.ProjectService; +import lombok.extern.slf4j.Slf4j; +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.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.io.PrintWriter; +import java.util.Date; import java.util.List; import java.util.Map; @@ -51,6 +66,7 @@ import java.util.Map; */ @RestController @RequestMapping("project") +@Slf4j public class ProjectController { @Autowired @@ -387,4 +403,52 @@ public class ProjectController { public Result> staffPendingProject(@RequestBody ProjectListFromDTO fromDTO){ return new Result>().ok(projectService.staffPendingProject(fromDTO)); } + + /** + * Desc: 数字平台-项目管理列表 + */ + @PostMapping("orgprojectlist") + public Result> orgProjectList(@LoginUser TokenDto tokenDto, @RequestBody OrgProjectListFormDTO formDTO) { + formDTO.setUserId(tokenDto.getUserId()); + formDTO.setCustomerId(tokenDto.getCustomerId()); + return new Result>().ok(projectService.orgProjectList(formDTO)); + } + + @PostMapping("orgprojectexport") + public void orgProjectExport(@LoginUser TokenDto tokenDto, @RequestBody OrgProjectListFormDTO formDTO, HttpServletResponse response) throws IOException { + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setUserId(tokenDto.getUserId()); + formDTO.setIsPage(false); + ExcelWriter excelWriter = null; + formDTO.setPageNo(NumConstant.ONE); + formDTO.setPageSize(NumConstant.ONE_THOUSAND); + try { + String fileName = "项目管理导出表" + DateUtils.format(new Date()) + ".xlsx"; + excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), OrgProjectListExcel.class).build(); + WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); + PageData data = null; + List list = null; + do { + data = projectService.orgProjectList(formDTO); + list = ConvertUtils.sourceToTarget(data.getList(), OrgProjectListExcel.class); + formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE); + excelWriter.write(list, writeSheet); + } while (CollectionUtils.isNotEmpty(list) && list.size() == formDTO.getPageSize()); + } catch (EpmetException e) { + response.reset(); + response.setCharacterEncoding("UTF-8"); + response.setHeader("content-type", "application/json; charset=UTF-8"); + PrintWriter printWriter = response.getWriter(); + Result result = new Result<>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), e.getMsg()); + printWriter.write(JSON.toJSONString(result)); + printWriter.close(); + } catch (Exception e) { + log.error("export exception", e); + } finally { + if (excelWriter != null) { + excelWriter.finish(); + } + } + } + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java index 6c5e253e06..316fbc8de6 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java @@ -299,4 +299,5 @@ public interface ProjectDao extends BaseDao { List getProjectManageList(ProjectManageListFormDTO formDTO); + List orgProjectList(OrgProjectListFormDTO formDTO); } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectProcessEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectProcessEntity.java index 78599eb5bf..82a89bf6fa 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectProcessEntity.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectProcessEntity.java @@ -56,7 +56,7 @@ public class ProjectProcessEntity extends BaseEpmetEntity { * 负负责人ID */ private String staffId; - + private String staffName; /** * 处理:结案close,退回return,部门流转transfer,创建项目created */ diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/OrgProjectListExcel.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/OrgProjectListExcel.java new file mode 100644 index 0000000000..0af3ccc4c9 --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/OrgProjectListExcel.java @@ -0,0 +1,126 @@ +package com.epmet.excel; + +import cn.afterturn.easypoi.excel.annotation.ExcelCollection; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.Data; + +import java.util.List; + +/** + * 事件管理表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-05-17 + */ +@Data +public class OrgProjectListExcel { + + private static final long serialVersionUID = 2374701362057175388L; + + /** + * 上报渠道 agency:网格上报 resi_event:居民上报 work_event:巡查上报 issue:议题上报 + */ + @ExcelProperty(value = "上报渠道") + @ColumnWidth(25) + private String origin; + /** + * 一级分类名称 + */ + @ExcelProperty(value = "一级分类") + @ColumnWidth(20) + private String firstName; + + /** + * 二级分类名称 + */ + @ExcelProperty(value = "二级分类") + @ColumnWidth(20) + private String secondName; + + /** + * 事件标题 + */ + @ExcelProperty(value = "事件标题") + @ColumnWidth(30) + private String title; + + /** + * 所属网格 + */ + @ExcelProperty(value = "所属网格") + @ColumnWidth(30) + private String gridName; + + /** + * 地址 + */ + @ExcelProperty(value = "地址") + @ColumnWidth(30) + private String address; + /** + * 报事人 + */ + @ExcelProperty(value = "报事人") + @ColumnWidth(20) + private String staffName; + /** + * 上报人电话 + */ + @ExcelProperty(value = "上报人电话") + @ColumnWidth(20) + private String mobile; + /** + * 上报时间 + */ + @ExcelProperty(value = "上报时间") + @ColumnWidth(25) + private String createdTime; + /** + * 事件内容 + */ + @ExcelProperty(value = "事件内容") + @ColumnWidth(40) + private String backGround; + /** + * 结案说明 + */ + @ExcelProperty(value = "结案说明") + @ColumnWidth(30) + private String publicReply; + /** + * 办结时间 + */ + @ExcelProperty(value = "办结时间") + @ColumnWidth(25) + private String endTime; + /** + * 办结部门 + */ + @ExcelProperty(value = "办结部门") + @ColumnWidth(30) + private String departmentName; + + /** + * 处理建议[创建节点的公开答复] + */ + @ExcelProperty(value = "处理建议") + @ColumnWidth(25) + private String createPublicReply; + + /** + * 图片url集合 + */ + @ExcelProperty(value = "图片") + @ColumnWidth(30) + private String imageUrl; + + /** + * 状态 处理中 pending,已结案 closed + */ + @ExcelProperty(value = "状态") + @ColumnWidth(20) + private String status; + + +} \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java index 2e5fd4fd76..c57ac318a6 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java @@ -396,4 +396,5 @@ public interface ProjectService extends BaseService { void projectListExport(HttpServletResponse response,ProjectManageListFormDTO formDTO) throws IOException; List staffPendingProject(ProjectListFromDTO fromDTO); + PageData orgProjectList(OrgProjectListFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java index 2b51ec32ce..b8b01aa5b9 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java @@ -25,10 +25,13 @@ import com.epmet.commons.rocketmq.messages.ProjectChangedMQMsg; import com.epmet.commons.tools.constant.AppClientConstant; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.scan.param.TextScanParamDTO; import com.epmet.commons.tools.scan.param.TextTaskDTO; import com.epmet.commons.tools.scan.result.SyncScanResult; @@ -250,6 +253,10 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl staffList = formDTO.getStaffList(); @@ -636,6 +644,10 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl NumConstant.ZERO) 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 7d26d3f9a0..0267a6f59b 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 @@ -41,17 +41,13 @@ import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.user.LoginUserUtil; import com.epmet.commons.tools.utils.*; import com.epmet.constant.*; -import com.epmet.dao.ProjectDao; -import com.epmet.dao.ProjectOrgRelationDao; -import com.epmet.dao.ProjectSatisfactionDetailDao; -import com.epmet.dao.ProjectSatisfactionStatisticsDao; +import com.epmet.dao.*; import com.epmet.dto.*; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.entity.*; import com.epmet.excel.ProjectListExportExcel; import com.epmet.feign.*; -import com.epmet.redis.ProjectRedis; import com.epmet.resi.group.constant.TopicConstant; import com.epmet.resi.group.dto.topic.ResiTopicDTO; import com.epmet.resi.group.dto.topic.form.TopicAttachmentFormDTO; @@ -158,6 +154,8 @@ public class ProjectServiceImpl extends BaseServiceImpl { if (issueDTO.getOrgId().equals(agency.getId())) { processEntity.setDepartmentName(agency.getOrganizationName()); @@ -1403,6 +1408,7 @@ public class ProjectServiceImpl extends BaseServiceImpl orgProjectList(OrgProjectListFormDTO formDTO) { + //1.整理查询条件 + if(StringUtils.isEmpty(formDTO.getOrgType())){ + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId()); + if (null == staffInfo) { + throw new EpmetException("获取工作人员信息失败"); + } + formDTO.setOrgId(staffInfo.getAgencyId()); + formDTO.setOrgType("agency"); + } + if (StringUtils.isNoneBlank(formDTO.getMobile())) { + //有手机号筛选条件的选按手机号查找工作人员,在按staffId查项目 + GetByRealNamesFormDTO dto = new GetByRealNamesFormDTO(); + dto.setCustomerId(formDTO.getCustomerId()); + dto.setMobile(formDTO.getMobile()); + Result> staffResult = epmetUserOpenFeignClient.getByRealNames(dto); + if (!staffResult.success()) { + throw new RenException("获取工作人员基础信息失败......"); + } + if (null != staffResult.getData() && staffResult.getData().size() > NumConstant.ZERO) { + List staffIds = staffResult.getData().stream().map(CustomerStaffDTO::getUserId).collect(Collectors.toList()); + formDTO.setStaffIds(staffIds); + } + } + //2.按条件筛选数据 列表/导出查询 + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()); + List list = baseDao.orgProjectList(formDTO); + PageInfo pageInfo = new PageInfo<>(list); + if (list.size() < NumConstant.ONE) { + return new PageData<>(list, pageInfo.getTotal()); + } + //3.封装数据 + //3-1.查询分类信息 + IssueProjectCategoryDictListFormDTO dictFormDto = new IssueProjectCategoryDictListFormDTO(); + dictFormDto.setCustomerId(formDTO.getCustomerId()); + Result> categoryRes = govIssueOpenFeignClient.getCategoryList(dictFormDto); + if (!categoryRes.success() || org.springframework.util.CollectionUtils.isEmpty(categoryRes.getData())) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取项目分类名称异常"); + } + Map categoryMap = categoryRes.getData().stream().collect(Collectors.toMap(IssueProjectCategoryDictDTO::getId, IssueProjectCategoryDictDTO::getCategoryName)); + //3-2.封装数据 + for (OrgProjectListResultDTO dto : list) { + //分类名称 + dto.setFirstName(categoryMap.get(dto.getFirstId())); + dto.setSecondName(categoryMap.get(dto.getSecondId())); + try { + //工作人员基础信息 + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), dto.getStaffId()); + if (null != staffInfo) { + dto.setStaffName(staffInfo.getRealName()); + dto.setMobile(staffInfo.getMobile()); + } + //拼接网格名 + if (StringUtils.isNoneBlank(dto.getGridId())) { + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(dto.getGridId()); + if (null != gridInfo) { + dto.setGridName((StringUtils.isEmpty(gridInfo.getAllParentName()) ? "" : gridInfo.getAllParentName() + "-") + gridInfo.getGridNamePath()); + } + } else { + AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(dto.getAgencyId()); + if (null != agencyInfo) { + dto.setGridName((StringUtils.isEmpty(agencyInfo.getAllParentName()) ? "" : agencyInfo.getAllParentName() + "-") + agencyInfo.getOrganizationName()); + } + } + } catch (Exception e) { + log.warn("获取组织/网格缓存失败"); + } + //图片url拼接 + if (!org.springframework.util.CollectionUtils.isEmpty(dto.getUrlList())) { + String imageUrl = StringUtils.join(dto.getUrlList().stream().map(FileDTO::getUrl).collect(Collectors.toList()),"
"); + dto.setImageUrl(imageUrl); + } + //判断未结案项目是否涉及需要当前工作人员处理[列表查询需要,导出的不需要这段逻辑] + if (formDTO.getIsPage() && "pending".equals(dto.getStatusValue())) { + //查询当前工作人员是否存在当前项目的未处理节点 + ProjectStaffDTO projectStaff = projectStaffDao.selectLatestByProjectIdAndStaffId(dto.getProjectId(), formDTO.getUserId()); + if (null != projectStaff) { + dto.setProcessable(true); + } + } + + } + return new PageData<>(list, pageInfo.getTotal()); + } + + } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java index 3007780212..edb4bc0f89 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java @@ -427,6 +427,10 @@ public class ProjectTraceServiceImpl implements ProjectTraceS projectService.insert(projectEntity); //3-2.项目进展表新增第一个节点数据 + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId()); + if (null == staffInfo) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取用户信息失败", "获取用户信息失败"); + } ProjectProcessEntity processEntity = new ProjectProcessEntity(); processEntity.setProjectId(projectEntity.getId()); processEntity.setCustomerId(formDTO.getCustomerId()); @@ -437,6 +441,7 @@ public class ProjectTraceServiceImpl implements ProjectTraceS processEntity.setInternalRemark(formDTO.getInternalRemark()); processEntity.setAssistanceUnitType(formDTO.getAssistanceUnitType()); processEntity.setAssistanceUnitId(formDTO.getAssistanceUnitId()); + processEntity.setStaffName(staffInfo.getRealName()); agencyDeptGrid.getAgencyList().forEach(agency -> { if (loginUser.getAgencyId().equals(agency.getId())) { processEntity.setDepartmentName(agency.getOrganizationName()); @@ -760,6 +765,10 @@ public class ProjectTraceServiceImpl implements ProjectTraceS projectService.insert(projectEntity); //3-2.项目进展表新增第一个节点数据 + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId()); + if (null == staffInfo) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取用户信息失败", "获取用户信息失败"); + } ProjectProcessEntity processEntity = new ProjectProcessEntity(); processEntity.setProjectId(projectEntity.getId()); processEntity.setCustomerId(formDTO.getCustomerId()); @@ -770,6 +779,7 @@ public class ProjectTraceServiceImpl implements ProjectTraceS processEntity.setInternalRemark(formDTO.getInternalRemark()); processEntity.setAssistanceUnitId(formDTO.getAssistanceUnitId()); processEntity.setAssistanceUnitType(formDTO.getAssistanceUnitType()); + processEntity.setStaffName(staffInfo.getRealName()); agencyDeptGrid.getAgencyList().forEach(agency -> { if (loginUser.getAgencyId().equals(agency.getId())) { processEntity.setDepartmentName(agency.getOrganizationName()); @@ -1281,6 +1291,10 @@ public class ProjectTraceServiceImpl implements ProjectTraceS projectService.insert(projectEntity); //3-2.项目进展表新增第一个节点数据 + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId()); + if (null == staffInfo) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取用户信息失败", "获取用户信息失败"); + } ProjectProcessEntity processEntity = new ProjectProcessEntity(); processEntity.setProjectId(projectEntity.getId()); processEntity.setCustomerId(formDTO.getCustomerId()); @@ -1291,6 +1305,7 @@ public class ProjectTraceServiceImpl implements ProjectTraceS processEntity.setInternalRemark(formDTO.getInternalRemark()); processEntity.setAssistanceUnitId(formDTO.getAssistanceUnitId()); processEntity.setAssistanceUnitType(formDTO.getAssistanceUnitType()); + processEntity.setStaffName(staffInfo.getRealName()); agencyDeptGrid.getAgencyList().forEach(agency -> { if (loginUser.getAgencyId().equals(agency.getId())) { processEntity.setDepartmentName(agency.getOrganizationName()); diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/db/migration/V0.0.26__alter_project_process.sql b/epmet-module/gov-project/gov-project-server/src/main/resources/db/migration/V0.0.26__alter_project_process.sql new file mode 100644 index 0000000000..2c2d53913c --- /dev/null +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/db/migration/V0.0.26__alter_project_process.sql @@ -0,0 +1,2 @@ +ALTER TABLE `epmet_gov_project`.`project_process` + ADD COLUMN `STAFF_NAME` varchar(64) NULL COMMENT '负责人姓名' AFTER `STAFF_ID`; \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml index 493f8bbf72..527e4bd62a 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml @@ -620,4 +620,121 @@ GROUP BY t.PROJECT_ID ORDER BY p.CREATED_TIME DESC + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectProcessDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectProcessDao.xml index 8a774f3c21..6255a9b138 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectProcessDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectProcessDao.xml @@ -92,7 +92,11 @@ ID AS processId, OPERATION_NAME AS processName, UNIX_TIMESTAMP(created_time) AS processTime, - DEPARTMENT_NAME, + CASE + WHEN STAFF_NAME IS NULL THEN + DEPARTMENT_NAME + ELSE CONCAT( DEPARTMENT_NAME, '(', STAFF_NAME, ')' ) + END AS "departmentName", PUBLIC_REPLY, INTERNAL_REMARK, IS_SEND, diff --git a/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/ExractGridInfoPingYinFormDTO.java b/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/ExractGridInfoPingYinFormDTO.java index 970f98e1ab..66903400f5 100644 --- a/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/ExractGridInfoPingYinFormDTO.java +++ b/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/ExractGridInfoPingYinFormDTO.java @@ -36,5 +36,10 @@ public class ExractGridInfoPingYinFormDTO implements Serializable { */ @NotBlank(message = "操作类型【新增:add 修改删除:edit 初始化所有数据:all】不能为空", groups = {GridInfo.class}) private String type; + + /** + * org 编辑之前的Code 如果有修改 则直接更新其他涉及到的表 + */ + private String oldCode; } 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 deb7384c61..d1b1bf0912 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 @@ -37,12 +37,12 @@ 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) { @@ -51,7 +51,7 @@ public class OpenDataOrgChangeEventListener implements MessageListenerConcurrent } try { - msgs.forEach(msg -> consumeMessage(msg)); + msgs.forEach(this::consumeMessage); } catch (Exception e) { logger.error(ExceptionUtils.getErrorStackTrace(e)); return ConsumeConcurrentlyStatus.RECONSUME_LATER; @@ -94,6 +94,7 @@ public class OpenDataOrgChangeEventListener implements MessageListenerConcurrent ExractGridInfoPingYinFormDTO extractFormDto = new ExractGridInfoPingYinFormDTO(); extractFormDto.setCustomerId(obj.getCustomerId()); extractFormDto.setType(obj.getType()); + extractFormDto.setOldCode(obj.getOldCode()); List orgIdList = new ArrayList<>(); if(StringUtils.isNotBlank(obj.getOrgId())){ orgIdList.add(obj.getOrgId()); diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridInfoPingyinServiceImpl.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridInfoPingyinServiceImpl.java index c2d915155f..9958530251 100755 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridInfoPingyinServiceImpl.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridInfoPingyinServiceImpl.java @@ -1,5 +1,6 @@ package com.epmet.opendata.service.impl; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.Constant; import com.epmet.commons.tools.constant.NumConstant; @@ -7,14 +8,22 @@ import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.IndexCalConstant; +import com.epmet.dto.org.form.GridBaseInfoFormDTO; import com.epmet.dto.org.result.CustomerAgencyDTO; import com.epmet.dto.org.result.CustomerGridDTO; import com.epmet.feign.DataStatisticalOpenFeignClient; +import com.epmet.opendata.dao.EventreportPingyinDao; import com.epmet.opendata.dao.GridInfoPingyinDao; +import com.epmet.opendata.dao.GridstaffInfoPingyinDao; +import com.epmet.opendata.dao.GridstaffWorkInfoPingyinDao; import com.epmet.opendata.dto.constant.DataWorkerConstant; import com.epmet.opendata.dto.form.ExractGridInfoPingYinFormDTO; +import com.epmet.opendata.entity.EventreportPingyinEntity; import com.epmet.opendata.entity.GridInfoPingyinEntity; +import com.epmet.opendata.entity.GridstaffInfoPingyinEntity; +import com.epmet.opendata.entity.GridstaffWorkInfoPingyinEntity; import com.epmet.opendata.service.GridInfoPingyinService; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.ListUtils; import org.apache.commons.lang3.StringUtils; @@ -33,11 +42,18 @@ import java.util.List; * @author generator generator@elink-cn.com * @since v1.0.0 2022-07-22 */ +@Slf4j @Service public class GridInfoPingyinServiceImpl extends BaseServiceImpl implements GridInfoPingyinService { @Autowired private DataStatisticalOpenFeignClient dataStatisticalOpenFeignClient; + @Autowired + private GridstaffInfoPingyinDao gridstaffInfoPingyinDao; + @Autowired + private GridstaffWorkInfoPingyinDao gridstaffWorkInfoPingyinDao; + @Autowired + private EventreportPingyinDao eventreportPingyinDao; /** * 抽取customer_agency到grid_info_pingyin表 @@ -99,9 +115,13 @@ public class GridInfoPingyinServiceImpl extends BaseServiceImpl orginList = baseDao.selectByGridCode(entity.getGridCode()); if (CollectionUtils.isNotEmpty(orginList)) { @@ -138,7 +158,7 @@ public class GridInfoPingyinServiceImpl extends BaseServiceImpl> result = dataStatisticalOpenFeignClient.getGridBaseInfo(formDTO1); if (!result.success()) { + log.warn("根据网格Id 没有找到网格 等待再次调用"); throw new RenException(result.getInternalMsg()); } if (null == result.getData() || result.getData().size() < NumConstant.ONE) { @@ -195,7 +216,9 @@ public class GridInfoPingyinServiceImpl extends BaseServiceImpl orginList = baseDao.selectByGridCode(entity.getGridCode()); if (CollectionUtils.isNotEmpty(orginList)) { @@ -224,5 +247,51 @@ public class GridInfoPingyinServiceImpl extends BaseServiceImpl updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(GridInfoPingyinEntity::getGridCode,formDTO.getOldCode()); + int update = baseDao.update(gridInfoEntity, updateWrapper); + log.info("code changed gridinfo effect row:{}",update); + //更新完 网格code 去更新其他的业务【工作人员、例行工作、事件】数据对应的code + + GridstaffInfoPingyinEntity staffInfo = new GridstaffInfoPingyinEntity(); + staffInfo.setGridCode(entity.getGridCode()); + staffInfo.setUpdateTime(new Date()); + + LambdaUpdateWrapper staffInfoWrapper = new LambdaUpdateWrapper<>(); + staffInfoWrapper.eq(GridstaffInfoPingyinEntity::getGridCode,formDTO.getOldCode()); + update = gridstaffInfoPingyinDao.update(staffInfo, staffInfoWrapper); + log.info("code changed gridStaffInfo effect row:{}",update); + + GridstaffWorkInfoPingyinEntity workInfo = new GridstaffWorkInfoPingyinEntity(); + workInfo.setGridCode(entity.getGridCode()); + workInfo.setUpdateTime(new Date()); + + LambdaUpdateWrapper workInfoWrapper = new LambdaUpdateWrapper<>(); + workInfoWrapper.eq(GridstaffWorkInfoPingyinEntity::getGridCode,formDTO.getOldCode()); + update = gridstaffWorkInfoPingyinDao.update(workInfo, workInfoWrapper); + log.info("code changed staffWorkInfo effect row:{}",update); + + EventreportPingyinEntity eventEntity = new EventreportPingyinEntity(); + eventEntity.setGridCode(entity.getGridCode()); + eventEntity.setUpdateTime(new Date()); + + LambdaUpdateWrapper eventWrapper = new LambdaUpdateWrapper<>(); + eventWrapper.eq(EventreportPingyinEntity::getGridCode,formDTO.getOldCode()); + update = eventreportPingyinDao.update(eventEntity, eventWrapper); + log.info("code changed eventreport effect row:{}",update); + + } + } + } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/PaCustomerDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/PaCustomerDTO.java new file mode 100644 index 0000000000..66abf30d75 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/PaCustomerDTO.java @@ -0,0 +1,71 @@ +package com.epmet.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Author zxc + * @DateTime 2022/8/5 15:03 + * @DESC + */ +@Data +public class PaCustomerDTO implements Serializable { + + /** + * 客户id,本主键和oper_crm.customer.id一致 + */ + private String id; + + /** + * 客户名称,默认是根组织名称 + */ + private String customerName; + + /** + * 是否已经完成客户信息初始化 0:未初始化,1:已初始化 + */ + private Integer isInitialize; + + /** + * 客户类型 mini 微信小程序客户 app 第三方app客户 + */ + private String type; + + /** + * 数据来源(dev:开发 test:体验 prod:生产) + */ + private String source; + + /** + * 删除标识:0.未删除 1.已删除 + */ + private Integer delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/GetByRealNamesFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/GetByRealNamesFormDTO.java index 80719e6737..ec555aaa14 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/GetByRealNamesFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/GetByRealNamesFormDTO.java @@ -23,4 +23,8 @@ public class GetByRealNamesFormDTO implements Serializable { * 工作人员姓名集合 */ private Set realNames; + /** + * 手机号模糊查询 + */ + private String mobile; } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcUserMatchGridFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcUserMatchGridFormDTO.java new file mode 100644 index 0000000000..1aa4d2db1e --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcUserMatchGridFormDTO.java @@ -0,0 +1,25 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/8/5 11:11 + * @DESC + */ +@Data +public class IcUserMatchGridFormDTO implements Serializable { + + private static final long serialVersionUID = -5252136149475817567L; + + public interface IcUserMatchGridForm{} + + @NotBlank(message = "idCard不能为空",groups = IcUserMatchGridForm.class) + private String idCard; + + @NotBlank(message = "appId不能为空",groups = IcUserMatchGridForm.class) + private String appId; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcUserMatchGridResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcUserMatchGridResultDTO.java new file mode 100644 index 0000000000..d3fd271987 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcUserMatchGridResultDTO.java @@ -0,0 +1,22 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/8/5 11:14 + * @DESC + */ +@Data +public class IcUserMatchGridResultDTO implements Serializable { + + private static final long serialVersionUID = -3215965796907113918L; + + private String gridId; + + private String customerId; + + private String gridName; +} 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 834ac2326c..f958d975d3 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 @@ -1293,5 +1293,17 @@ public class IcResiUserController implements ResultDataResolver { return new Result>>().ok(icResiUserService.listResiZhzl(pageFormDTO)); } + /** + * Desc: 居民首次进入小程序,可以根据输入身份证信息查询在数字社区居民信息中的网格,匹配不成功提示 + * @param tokenDto + * @param formDTO + * @author zxc + * @date 2022/8/5 11:17 + */ + @PostMapping("icUserMatchGrid") + public Result icUserMatchGrid(@RequestBody IcUserMatchGridFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO, IcUserMatchGridFormDTO.IcUserMatchGridForm.class); + return new Result().ok(icResiUserService.icUserMatchGrid(formDTO)); + } } 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 f68830d81c..37cf258e14 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 @@ -496,4 +496,13 @@ public interface IcResiUserService extends BaseService { * @return */ PageData> listResiZhzl(IcResiUserPageFormDTO pageFormDTO); + + /** + * Desc: 居民首次进入小程序,可以根据输入身份证信息查询在数字社区居民信息中的网格,匹配不成功提示 + * @param formDTO + * @author zxc + * @date 2022/8/5 11:17 + */ + IcUserMatchGridResultDTO icUserMatchGrid(IcUserMatchGridFormDTO 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 b329bee2b8..f0fcfceefc 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 @@ -20,6 +20,7 @@ package com.epmet.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; @@ -3244,4 +3245,55 @@ public class IcResiUserServiceImpl extends BaseServiceImpl(pageInfo.getList(), pageInfo.getTotal()); } + + /** + * Desc: 居民首次进入小程序,可以根据输入身份证信息查询在数字社区居民信息中的网格,匹配不成功提示 + * @param formDTO + * @author zxc + * @date 2022/8/5 11:17 + */ + @Override + public IcUserMatchGridResultDTO icUserMatchGrid(IcUserMatchGridFormDTO formDTO) { + PaCustomerDTO customerInfo = getCustomerInfo(formDTO.getAppId()); + if (null == customerInfo){ + throw new EpmetException("根据APPID查询客户信息失败:"+formDTO.getAppId()); + } + LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); + qw.eq(IcResiUserEntity::getCustomerId,customerInfo.getId()) + .eq(IcResiUserEntity::getIdCard,formDTO.getIdCard()); + IcResiUserEntity icResiUserEntity = baseDao.selectOne(qw); + if (null == icResiUserEntity){ + throw new EpmetException(EpmetErrorCode.NOT_MATCH_IC_USER_ERROR.getCode()); + } + IcUserMatchGridResultDTO result = new IcUserMatchGridResultDTO(); + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(icResiUserEntity.getGridId()); + if (null == gridInfo){ + throw new EpmetException("查询网格信息失败:"+icResiUserEntity.getGridId()); + } + result.setCustomerId(customerInfo.getId()); + result.setGridId(icResiUserEntity.getGridId()); + result.setGridName(gridInfo.getGridNamePath()); + return result; + } + + public PaCustomerDTO getCustomerInfo(String appId) { + JSONObject jsonObject = new JSONObject(); + String data = HttpClientManager.getInstance().sendPostByJSON("https://epmet-cloud.elinkservice.cn/api/third/customermp/getcustomermsg/" + appId, JSON.toJSONString(jsonObject)).getData(); + logger.info("ThirdLoginServiceImpl.getCustomerInfo:httpclient->url:https://epmet-cloud.elinkservice.cn/api/third/customermp/getcustomermsg/ ,结果->" + data); + JSONObject toResult = JSON.parseObject(data); + Result mapToResult = ConvertUtils.mapToEntity(toResult, Result.class); + if (null != toResult.get("code")) { + mapToResult.setCode(((Integer) toResult.get("code")).intValue()); + } + if (!mapToResult.success()) { + logger.error(String.format("根据appId查询客户Id失败,对应appId->" + appId)); + throw new RenException(mapToResult.getMsg()); + } + Object PublicCustomerResultDTO = mapToResult.getData(); + JSONObject json = JSON.parseObject(PublicCustomerResultDTO.toString()); + Map map = (Map) json.get("customer"); + PaCustomerDTO customer = ConvertUtils.mapToEntity(map, PaCustomerDTO.class); + logger.info("小程序登陆third服务获取客户用户信息PaCustomerDTO->" + customer); + return customer; + } } diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/CustomerStaffDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/CustomerStaffDao.xml index c8eba6538b..5250d48a0a 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/CustomerStaffDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/CustomerStaffDao.xml @@ -450,9 +450,14 @@ WHERE del_flag = '0' AND customer_id = #{customerId} - - #{name} - + + + #{name} + + + + AND mobile LIKE concat('%', #{mobile}, '%') + 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 8ba307f70c..da04d1a58c 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 @@ -213,7 +213,7 @@ ORDER BY - IC_RESI_USER.GRID_ID ASC, + IC_RESI_USER.GRID_ID desc, IC_RESI_USER.VILLAGE_ID ASC, IC_RESI_USER.BUILD_ID ASC, IC_RESI_USER.UNIT_ID ASC,