Browse Source

修改组织机构时,同步修改,所属机构,群名称。

hotfix/yujt_opt
zhangyuan 6 years ago
parent
commit
27223edb93
  1. 32
      epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/police/dao/PoliceDao.java
  2. 11
      epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/police/service/PoliceService.java
  3. 115
      epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/police/service/impl/PoliceServiceImpl.java
  4. 40
      epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/project/dao/PropertyProjectDao.java
  5. 11
      epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/project/service/PropertyProjectService.java
  6. 110
      epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/project/service/impl/PropertyProjectServiceImpl.java
  7. 62
      epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/rocketmq/consumer/OrganizationModifyConsumer.java
  8. 28
      epdc-cloud-property/src/main/resources/mapper/police/PoliceDao.xml
  9. 28
      epdc-cloud-property/src/main/resources/mapper/project/PropertyProjectDao.xml

32
epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/police/dao/PoliceDao.java

@ -18,6 +18,8 @@
package com.elink.esua.epdc.modules.police.dao; package com.elink.esua.epdc.modules.police.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao; import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.dto.group.GroupDTO;
import com.elink.esua.epdc.dto.police.PoliceDTO;
import com.elink.esua.epdc.dto.police.form.PoliceFormDTO; import com.elink.esua.epdc.dto.police.form.PoliceFormDTO;
import com.elink.esua.epdc.dto.police.result.PoliceResultDTO; import com.elink.esua.epdc.dto.police.result.PoliceResultDTO;
import com.elink.esua.epdc.modules.police.entity.PoliceEntity; import com.elink.esua.epdc.modules.police.entity.PoliceEntity;
@ -54,4 +56,34 @@ public interface PoliceDao extends BaseDao<PoliceEntity> {
* @since 2020/5/21 14:54 * @since 2020/5/21 14:54
*/ */
PoliceResultDTO selectPoliceGroupInfo(PoliceFormDTO dto); PoliceResultDTO selectPoliceGroupInfo(PoliceFormDTO dto);
/**
* 查询需要修改组织机构信息事件
*
* @return java.util.List<com.elink.esua.epdc.dto.project.PropertyProjectDTO>
* @params [deptId]
* @author liuchuang
* @since 2020/3/7 2:08
*/
List<PoliceDTO> selectListOfOrganizationInfo(String deptId);
/**
* 更新网格名称
*
* @return void
* @params [newDeptName, deptId]
* @author liuchuang
* @since 2020/3/7 1:20
*/
void updateGridByDeptId(String newDeptName, Long deptId);
/**
* 查询需要修改名称的党员群
*
* @return java.util.List<com.elink.esua.epdc.dto.project.PropertyProjectDTO>
* @params [deptId]
* @author liuchuang
* @since 2020/3/7 2:08
*/
List<GroupDTO> selectListOfPartyGroups(String deptId);
} }

11
epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/police/service/PoliceService.java

@ -24,6 +24,7 @@ import com.elink.esua.epdc.dto.police.PoliceDTO;
import com.elink.esua.epdc.dto.police.form.PoliceFormDTO; import com.elink.esua.epdc.dto.police.form.PoliceFormDTO;
import com.elink.esua.epdc.dto.police.result.PoliceResultDTO; import com.elink.esua.epdc.dto.police.result.PoliceResultDTO;
import com.elink.esua.epdc.modules.police.entity.PoliceEntity; import com.elink.esua.epdc.modules.police.entity.PoliceEntity;
import com.elink.esua.epdc.modules.rocketmq.dto.OrganizationModifyDTO;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -115,4 +116,14 @@ public interface PoliceService extends BaseService<PoliceEntity> {
* @date 2020-05-21 * @date 2020-05-21
*/ */
PoliceResultDTO getPoliceAndGroup(PoliceFormDTO dto); PoliceResultDTO getPoliceAndGroup(PoliceFormDTO dto);
/**
* 民警信息修改组织机构信息
*
* @return void
* @params [dto]
* @author liuchuang
* @since 2020/3/7 1:23
*/
void modifyOrganizationInfo(OrganizationModifyDTO dto);
} }

115
epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/police/service/impl/PoliceServiceImpl.java

@ -33,26 +33,29 @@ import com.elink.esua.epdc.dto.DeptLevelAndLeaderDTO;
import com.elink.esua.epdc.dto.ParentAndAllDeptDTO; import com.elink.esua.epdc.dto.ParentAndAllDeptDTO;
import com.elink.esua.epdc.dto.constant.GroupConstant; import com.elink.esua.epdc.dto.constant.GroupConstant;
import com.elink.esua.epdc.dto.enums.GroupStateEnum; import com.elink.esua.epdc.dto.enums.GroupStateEnum;
import com.elink.esua.epdc.dto.events.form.GroupFormDTO;
import com.elink.esua.epdc.dto.group.GroupDTO;
import com.elink.esua.epdc.dto.police.PoliceDTO; import com.elink.esua.epdc.dto.police.PoliceDTO;
import com.elink.esua.epdc.dto.police.form.PoliceFormDTO; import com.elink.esua.epdc.dto.police.form.PoliceFormDTO;
import com.elink.esua.epdc.dto.police.result.PoliceResultDTO; import com.elink.esua.epdc.dto.police.result.PoliceResultDTO;
import com.elink.esua.epdc.modules.feign.AdminFeignClient; import com.elink.esua.epdc.modules.feign.AdminFeignClient;
import com.elink.esua.epdc.modules.feign.EventFeignClient;
import com.elink.esua.epdc.modules.group.dao.GroupDao; import com.elink.esua.epdc.modules.group.dao.GroupDao;
import com.elink.esua.epdc.modules.group.entity.GroupEntity; import com.elink.esua.epdc.modules.group.entity.GroupEntity;
import com.elink.esua.epdc.modules.group.service.GroupService;
import com.elink.esua.epdc.modules.police.dao.PoliceDao; import com.elink.esua.epdc.modules.police.dao.PoliceDao;
import com.elink.esua.epdc.modules.police.entity.PoliceEntity; import com.elink.esua.epdc.modules.police.entity.PoliceEntity;
import com.elink.esua.epdc.modules.police.redis.PoliceRedis; import com.elink.esua.epdc.modules.police.redis.PoliceRedis;
import com.elink.esua.epdc.modules.police.service.PoliceService; import com.elink.esua.epdc.modules.police.service.PoliceService;
import com.elink.esua.epdc.modules.rocketmq.dto.OrganizationModifyDTO;
import com.elink.esua.epdc.modules.topic.service.TopicService;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Arrays; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import static java.util.stream.Collectors.toList; import static java.util.stream.Collectors.toList;
@ -71,6 +74,15 @@ public class PoliceServiceImpl extends BaseServiceImpl<PoliceDao, PoliceEntity>
@Autowired @Autowired
private PoliceRedis policeRedis; private PoliceRedis policeRedis;
@Autowired
private TopicService topicService;
@Autowired
private EventFeignClient eventFeignClient;
@Autowired
private GroupService groupService;
@Resource @Resource
private GroupDao groupDao; private GroupDao groupDao;
@ -276,4 +288,99 @@ public class PoliceServiceImpl extends BaseServiceImpl<PoliceDao, PoliceEntity>
} }
return parentAndAllDeptDTO; return parentAndAllDeptDTO;
} }
@Override
@Transactional(rollbackFor = Exception.class)
public void modifyOrganizationInfo(OrganizationModifyDTO dto) {
// 查询需要修改组织机构信息邻里党群
List<PoliceDTO> groupList = baseDao.selectListOfOrganizationInfo(dto.getDeptId().toString());
if (null != groupList && groupList.size() > 0) {
// 组织机构信息处理
List<PoliceEntity> entities = handleOrganizationInfo(dto, groupList);
// 更新民警组织机构信息
updateBatchById(entities);
}
ParentAndAllDeptDTO parentAndAllDeptDTO = getParentAndAllDeptDTO(String.valueOf(dto.getDeptId()));
// 更新网格名称
baseDao.updateGridByDeptId(parentAndAllDeptDTO.getGrid(), dto.getDeptId());
// 修改网格党员群名称
if (OrganizationTypeConstant.ORG_TYPE_COMMUNITY_PARTY.equals(dto.getTypeKey())
|| OrganizationTypeConstant.ORG_TYPE_GRID_PARTY.equals(dto.getTypeKey())) {
// 查询需要修改名称的党员群
List<GroupDTO> partyGroups = baseDao.selectListOfPartyGroups(dto.getDeptId().toString());
if (null != partyGroups && partyGroups.size() > 0) {
List<GroupEntity> partyEntities = createPartyGroupName(partyGroups);
// 更新党员群名称
groupService.updateBatchById(partyEntities);
// 更新话题表党员群名称
topicService.modifyPartyGroupNameByGroupId(ConvertUtils.sourceToTarget(partyEntities, GroupDTO.class));
// 更新事件表、议题表、项目表党员群名称
eventFeignClient.modifyPartyGroupName(ConvertUtils.sourceToTarget(partyEntities, GroupFormDTO.class));
}
}
}
/**
* 组织机构信息处理
*
* @return java.util.List<com.elink.esua.epdc.modules.topic.entity.TopicEntity>
* @params [dto, topicList]
* @author liuchuang
* @since 2020/3/7 2:14
*/
private List<PoliceEntity> handleOrganizationInfo(OrganizationModifyDTO dto, List<PoliceDTO> topicList) {
List<PoliceEntity> entities = new ArrayList<>();
for (PoliceDTO topic : topicList) {
PoliceEntity entity = new PoliceEntity();
if (StringUtils.isNotEmpty(topic.getParentDeptIds()) && StringUtils.isNotEmpty(topic.getParentDeptNames())) {
List<String> parentDeptIds = Arrays.asList(topic.getParentDeptIds().split(","));
List<String> parentDeptNames = Arrays.asList(topic.getParentDeptNames().split("-"));
int index = parentDeptIds.indexOf(dto.getDeptId().toString());
if (index >= 0 && parentDeptNames.size() > index) {
parentDeptNames.set(index, dto.getNewDeptName());
entity.setId(topic.getId());
entity.setParentDeptNames(StringUtils.join(parentDeptNames, "-"));
}
}
if (StringUtils.isNotEmpty(topic.getAllDeptIds()) && StringUtils.isNotEmpty(topic.getAllDeptNames())) {
List<String> allDeptIds = Arrays.asList(topic.getAllDeptIds().split(","));
List<String> allDeptNames = Arrays.asList(topic.getAllDeptNames().split("-"));
int index = allDeptIds.indexOf(dto.getDeptId().toString());
if (index >= 0 && allDeptNames.size() > index) {
allDeptNames.set(index, dto.getNewDeptName());
entity.setId(topic.getId());
entity.setAllDeptNames(StringUtils.join(allDeptNames, "-"));
}
}
entities.add(entity);
}
return entities;
}
/**
* 生成新的群名称
*
* @return java.util.List<com.elink.esua.epdc.modules.group.entity.GroupEntity>
* @params [partyGroups]
* @author liuchuang
* @since 2020/3/7 12:08
*/
private List<GroupEntity> createPartyGroupName(List<GroupDTO> partyGroups) {
List<GroupEntity> groupEntities = new ArrayList<>();
for (GroupDTO group : partyGroups) {
String[] allDeptNames = group.getAllDeptNames().split("-");
int len = allDeptNames.length;
if (len == 4) {
GroupEntity entity = new GroupEntity();
entity.setId(group.getId());
entity.setGroupName(allDeptNames[len - 1] + "警民群");
groupEntities.add(entity);
}
}
return groupEntities;
}
} }

40
epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/project/dao/PropertyProjectDao.java

@ -18,6 +18,8 @@
package com.elink.esua.epdc.modules.project.dao; package com.elink.esua.epdc.modules.project.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao; import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.dto.group.GroupDTO;
import com.elink.esua.epdc.dto.project.PropertyProjectDTO;
import com.elink.esua.epdc.dto.project.form.ProjectDetailFormDTO; import com.elink.esua.epdc.dto.project.form.ProjectDetailFormDTO;
import com.elink.esua.epdc.dto.project.form.ProjectListFormDTO; import com.elink.esua.epdc.dto.project.form.ProjectListFormDTO;
import com.elink.esua.epdc.dto.project.result.ProjectDetailResultDTO; import com.elink.esua.epdc.dto.project.result.ProjectDetailResultDTO;
@ -39,7 +41,7 @@ public interface PropertyProjectDao extends BaseDao<PropertyProjectEntity> {
/** /**
* 项目列表 * 项目列表
* *
* @return java.util.List<com.elink.esua.epdc.dto.group.GroupDTO> * @return java.util.List<com.elink.esua.epdc.dto.project.PropertyProjectDTO>
* @params [params] * @params [params]
* @author zhangyuan * @author zhangyuan
* @since 2019/10/11 14:54 * @since 2019/10/11 14:54
@ -49,7 +51,7 @@ public interface PropertyProjectDao extends BaseDao<PropertyProjectEntity> {
/** /**
* 项目列表 * 项目列表
* *
* @return java.util.List<com.elink.esua.epdc.dto.group.GroupDTO> * @return java.util.List<com.elink.esua.epdc.dto.project.PropertyProjectDTO>
* @params [params] * @params [params]
* @author zhangyuan * @author zhangyuan
* @since 2019/10/11 14:54 * @since 2019/10/11 14:54
@ -59,7 +61,7 @@ public interface PropertyProjectDao extends BaseDao<PropertyProjectEntity> {
/** /**
* 项目详情 * 项目详情
* *
* @return java.util.List<com.elink.esua.epdc.dto.group.GroupDTO> * @return java.util.List<com.elink.esua.epdc.dto.project.PropertyProjectDTO>
* @params [params] * @params [params]
* @author zhangyuan * @author zhangyuan
* @since 2019/10/11 14:54 * @since 2019/10/11 14:54
@ -69,10 +71,40 @@ public interface PropertyProjectDao extends BaseDao<PropertyProjectEntity> {
/** /**
* 项目详情V2 * 项目详情V2
* *
* @return java.util.List<com.elink.esua.epdc.dto.group.GroupDTO> * @return java.util.List<com.elink.esua.epdc.dto.project.PropertyProjectDTO>
* @params [params] * @params [params]
* @author zhangyuan * @author zhangyuan
* @since 2019/10/11 14:54 * @since 2019/10/11 14:54
*/ */
ProjectDetailResultDTO selectDetailByIdV2(ProjectDetailFormDTO dto); ProjectDetailResultDTO selectDetailByIdV2(ProjectDetailFormDTO dto);
/**
* 查询需要修改组织机构信息事件
*
* @return java.util.List<com.elink.esua.epdc.dto.project.PropertyProjectDTO>
* @params [deptId]
* @author liuchuang
* @since 2020/3/7 2:08
*/
List<PropertyProjectDTO> selectListOfOrganizationInfo(String deptId);
/**
* 更新网格名称
*
* @return void
* @params [newDeptName, deptId]
* @author liuchuang
* @since 2020/3/7 1:20
*/
void updateGridByDeptId(String newDeptName, Long deptId);
/**
* 查询需要修改名称的党员群
*
* @return java.util.List<com.elink.esua.epdc.dto.project.PropertyProjectDTO>
* @params [deptId]
* @author liuchuang
* @since 2020/3/7 2:08
*/
List<GroupDTO> selectListOfPartyGroups(String deptId);
} }

11
epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/project/service/PropertyProjectService.java

@ -25,6 +25,7 @@ import com.elink.esua.epdc.dto.project.form.ProjectListFormDTO;
import com.elink.esua.epdc.dto.project.result.ProjectDetailResultDTO; import com.elink.esua.epdc.dto.project.result.ProjectDetailResultDTO;
import com.elink.esua.epdc.dto.project.result.ProjectListResultDTO; import com.elink.esua.epdc.dto.project.result.ProjectListResultDTO;
import com.elink.esua.epdc.modules.project.entity.PropertyProjectEntity; import com.elink.esua.epdc.modules.project.entity.PropertyProjectEntity;
import com.elink.esua.epdc.modules.rocketmq.dto.OrganizationModifyDTO;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -126,4 +127,14 @@ public interface PropertyProjectService extends BaseService<PropertyProjectEntit
* @date 2020-05-09 * @date 2020-05-09
*/ */
ProjectDetailResultDTO getProjectDetailByIdV2(ProjectDetailFormDTO dto); ProjectDetailResultDTO getProjectDetailByIdV2(ProjectDetailFormDTO dto);
/**
* 物业项目修改组织机构信息
*
* @return void
* @params [dto]
* @author liuchuang
* @since 2020/3/7 1:23
*/
void modifyOrganizationInfo(OrganizationModifyDTO dto);
} }

110
epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/project/service/impl/PropertyProjectServiceImpl.java

@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl; import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.mybatis.utils.DeptEntityUtils; import com.elink.esua.epdc.commons.mybatis.utils.DeptEntityUtils;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant; import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.constant.OrganizationTypeConstant;
import com.elink.esua.epdc.commons.tools.exception.RenException; import com.elink.esua.epdc.commons.tools.exception.RenException;
import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
@ -29,23 +30,30 @@ import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.ParentAndAllDeptDTO; import com.elink.esua.epdc.dto.ParentAndAllDeptDTO;
import com.elink.esua.epdc.dto.constant.GroupConstant; import com.elink.esua.epdc.dto.constant.GroupConstant;
import com.elink.esua.epdc.dto.enums.GroupStateEnum; import com.elink.esua.epdc.dto.enums.GroupStateEnum;
import com.elink.esua.epdc.dto.events.form.GroupFormDTO;
import com.elink.esua.epdc.dto.group.GroupDTO;
import com.elink.esua.epdc.dto.project.PropertyProjectDTO; import com.elink.esua.epdc.dto.project.PropertyProjectDTO;
import com.elink.esua.epdc.dto.project.form.ProjectDetailFormDTO; import com.elink.esua.epdc.dto.project.form.ProjectDetailFormDTO;
import com.elink.esua.epdc.dto.project.form.ProjectListFormDTO; import com.elink.esua.epdc.dto.project.form.ProjectListFormDTO;
import com.elink.esua.epdc.dto.project.result.ProjectDetailResultDTO; import com.elink.esua.epdc.dto.project.result.ProjectDetailResultDTO;
import com.elink.esua.epdc.dto.project.result.ProjectListResultDTO; import com.elink.esua.epdc.dto.project.result.ProjectListResultDTO;
import com.elink.esua.epdc.modules.feign.AdminFeignClient; import com.elink.esua.epdc.modules.feign.AdminFeignClient;
import com.elink.esua.epdc.modules.feign.EventFeignClient;
import com.elink.esua.epdc.modules.group.dao.GroupDao; import com.elink.esua.epdc.modules.group.dao.GroupDao;
import com.elink.esua.epdc.modules.group.entity.GroupEntity; import com.elink.esua.epdc.modules.group.entity.GroupEntity;
import com.elink.esua.epdc.modules.group.service.GroupService;
import com.elink.esua.epdc.modules.project.dao.PropertyProjectDao; import com.elink.esua.epdc.modules.project.dao.PropertyProjectDao;
import com.elink.esua.epdc.modules.project.entity.PropertyProjectEntity; import com.elink.esua.epdc.modules.project.entity.PropertyProjectEntity;
import com.elink.esua.epdc.modules.project.service.PropertyProjectService; import com.elink.esua.epdc.modules.project.service.PropertyProjectService;
import com.elink.esua.epdc.modules.rocketmq.dto.OrganizationModifyDTO;
import com.elink.esua.epdc.modules.topic.service.TopicService;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -62,6 +70,15 @@ public class PropertyProjectServiceImpl extends BaseServiceImpl<PropertyProjectD
@Autowired @Autowired
private AdminFeignClient adminFeignClient; private AdminFeignClient adminFeignClient;
@Autowired
private TopicService topicService;
@Autowired
private EventFeignClient eventFeignClient;
@Autowired
private GroupService groupService;
@Resource @Resource
private GroupDao groupDao; private GroupDao groupDao;
@ -194,4 +211,97 @@ public class PropertyProjectServiceImpl extends BaseServiceImpl<PropertyProjectD
return baseDao.selectDetailByIdV2(dto); return baseDao.selectDetailByIdV2(dto);
} }
@Override
@Transactional(rollbackFor = Exception.class)
public void modifyOrganizationInfo(OrganizationModifyDTO dto) {
// 查询需要修改组织机构信息邻里党群
List<PropertyProjectDTO> groupList = baseDao.selectListOfOrganizationInfo(dto.getDeptId().toString());
if (null != groupList && groupList.size() > 0) {
// 组织机构信息处理
List<PropertyProjectEntity> entities = handleOrganizationInfo(dto, groupList);
// 更新邻里党群组织机构信息
updateBatchById(entities);
}
// 更新网格名称
baseDao.updateGridByDeptId(dto.getNewDeptName(), dto.getDeptId());
// 修改网格党员群名称
if (OrganizationTypeConstant.ORG_TYPE_COMMUNITY_PARTY.equals(dto.getTypeKey())
|| OrganizationTypeConstant.ORG_TYPE_GRID_PARTY.equals(dto.getTypeKey())) {
// 查询需要修改名称的党员群
List<GroupDTO> partyGroups = baseDao.selectListOfPartyGroups(dto.getDeptId().toString());
if (null != partyGroups && partyGroups.size() > 0) {
List<GroupEntity> partyEntities = createPartyGroupName(partyGroups);
// 更新党员群名称
groupService.updateBatchById(partyEntities);
// 更新话题表党员群名称
topicService.modifyPartyGroupNameByGroupId(ConvertUtils.sourceToTarget(partyEntities, GroupDTO.class));
// 更新事件表、议题表、项目表党员群名称
eventFeignClient.modifyPartyGroupName(ConvertUtils.sourceToTarget(partyEntities, GroupFormDTO.class));
}
}
}
/**
* 组织机构信息处理
*
* @return java.util.List<com.elink.esua.epdc.modules.topic.entity.TopicEntity>
* @params [dto, topicList]
* @author liuchuang
* @since 2020/3/7 2:14
*/
private List<PropertyProjectEntity> handleOrganizationInfo(OrganizationModifyDTO dto, List<PropertyProjectDTO> topicList) {
List<PropertyProjectEntity> entities = new ArrayList<>();
for (PropertyProjectDTO topic : topicList) {
PropertyProjectEntity entity = new PropertyProjectEntity();
if (StringUtils.isNotEmpty(topic.getParentDeptIds()) && StringUtils.isNotEmpty(topic.getParentDeptNames())) {
List<String> parentDeptIds = Arrays.asList(topic.getParentDeptIds().split(","));
List<String> parentDeptNames = Arrays.asList(topic.getParentDeptNames().split("-"));
int index = parentDeptIds.indexOf(dto.getDeptId().toString());
if (index >= 0 && parentDeptNames.size() > index) {
parentDeptNames.set(index, dto.getNewDeptName());
entity.setId(topic.getId());
entity.setParentDeptNames(StringUtils.join(parentDeptNames, "-"));
}
}
if (StringUtils.isNotEmpty(topic.getAllDeptIds()) && StringUtils.isNotEmpty(topic.getAllDeptNames())) {
List<String> allDeptIds = Arrays.asList(topic.getAllDeptIds().split(","));
List<String> allDeptNames = Arrays.asList(topic.getAllDeptNames().split("-"));
int index = allDeptIds.indexOf(dto.getDeptId().toString());
if (index >= 0 && allDeptNames.size() > index) {
allDeptNames.set(index, dto.getNewDeptName());
entity.setId(topic.getId());
entity.setAllDeptNames(StringUtils.join(allDeptNames, "-"));
}
}
entities.add(entity);
}
return entities;
}
/**
* 生成新的群名称
*
* @return java.util.List<com.elink.esua.epdc.modules.group.entity.GroupEntity>
* @params [partyGroups]
* @author liuchuang
* @since 2020/3/7 12:08
*/
private List<GroupEntity> createPartyGroupName(List<GroupDTO> partyGroups) {
List<GroupEntity> groupEntities = new ArrayList<>();
for (GroupDTO group : partyGroups) {
String[] allDeptNames = group.getAllDeptNames().split("-");
int len = allDeptNames.length;
if (len == 4) {
GroupEntity entity = new GroupEntity();
entity.setId(group.getId());
entity.setGroupName(allDeptNames[len - 1] + "群");
groupEntities.add(entity);
}
}
return groupEntities;
}
} }

62
epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/rocketmq/consumer/OrganizationModifyConsumer.java

@ -0,0 +1,62 @@
package com.elink.esua.epdc.modules.rocketmq.consumer;
import com.alibaba.fastjson.JSONObject;
import com.elink.esua.epdc.commons.tools.constant.RocketMqConstant;
import com.elink.esua.epdc.modules.group.service.GroupService;
import com.elink.esua.epdc.modules.police.service.PoliceService;
import com.elink.esua.epdc.modules.project.service.PropertyProjectService;
import com.elink.esua.epdc.modules.rocketmq.dto.OrganizationModifyDTO;
import com.elink.esua.epdc.modules.topic.service.TopicService;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.spring.annotation.MessageModel;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 组织机构信息修改-监听MQ消息
*
* @Authorliuchuang
* @Date2020/3/7 1:54
*/
@Slf4j
@Component
@RocketMQMessageListener(topic = RocketMqConstant.MQ_TOPIC_ORGANIZATION, consumerGroup = "${rocketmq.consumer.group}", messageModel = MessageModel.BROADCASTING)
public class OrganizationModifyConsumer implements RocketMQListener<MessageExt> {
@Autowired
private GroupService groupService;
@Autowired
private TopicService topicService;
@Autowired
private PropertyProjectService propertyProjectService;
@Autowired
private PoliceService policeService;
@Override
public void onMessage(MessageExt messageExt) {
log.info("EPDC-GROUP-SERVER消费消息START:{topic:{}, msgId:{}}", RocketMqConstant.MQ_TOPIC_ORGANIZATION, messageExt.getMsgId());
try {
String charset = "UTF-8";
String body = new String(messageExt.getBody(), charset);
OrganizationModifyDTO dto = JSONObject.parseObject(body, OrganizationModifyDTO.class);
// 话题修改组织机构信息
topicService.modifyOrganizationInfo(dto);
// 邻里党群修改组织机构信息
groupService.modifyOrganizationInfo(dto);
// 物业项目修改组织机构信息
propertyProjectService.modifyOrganizationInfo(dto);
// 民警修改组织机构信息
policeService.modifyOrganizationInfo(dto);
log.info("EPDC-GROUP-SERVER消费消息END:{topic:{}, msgId:{}, body:{}}", RocketMqConstant.MQ_TOPIC_ORGANIZATION, messageExt.getMsgId(), body);
} catch (Exception e) {
log.info("EPDC-GROUP-SERVER消费消息失败:msgId:{}", messageExt.getMsgId());
e.printStackTrace();
}
}
}

28
epdc-cloud-property/src/main/resources/mapper/police/PoliceDao.xml

@ -102,4 +102,32 @@
GROUP BY GROUP BY
ep.ID ep.ID
</select> </select>
<select id="selectListOfOrganizationInfo" resultType="com.elink.esua.epdc.dto.police.PoliceDTO">
SELECT
ID,
PARENT_DEPT_IDS,
PARENT_DEPT_NAMES,
ALL_DEPT_IDS,
ALL_DEPT_NAMES
FROM
epdc_police
WHERE
FIND_IN_SET( #{deptId}, ALL_DEPT_IDS )
</select>
<update id="updateGridByDeptId">
UPDATE epdc_police SET DEPT_NAME = #{newDeptName} WHERE DEPT_ID = #{deptId}
</update>
<select id="selectListOfPartyGroups" resultType="com.elink.esua.epdc.dto.group.GroupDTO">
SELECT
ID,
ALL_DEPT_NAMES
FROM
epdc_group
WHERE
FIND_IN_SET( #{deptId}, ALL_DEPT_IDS )
AND GROUP_CATEGORY = '3'
</select>
</mapper> </mapper>

28
epdc-cloud-property/src/main/resources/mapper/project/PropertyProjectDao.xml

@ -199,4 +199,32 @@
GROUP BY GROUP BY
ep.ID ep.ID
</select> </select>
<select id="selectListOfOrganizationInfo" resultType="com.elink.esua.epdc.dto.project.PropertyProjectDTO">
SELECT
ID,
PARENT_DEPT_IDS,
PARENT_DEPT_NAMES,
ALL_DEPT_IDS,
ALL_DEPT_NAMES
FROM
epdc_property_project
WHERE
FIND_IN_SET( #{deptId}, ALL_DEPT_IDS )
</select>
<update id="updateGridByDeptId">
UPDATE epdc_property_project SET GRID = #{newDeptName} WHERE GRID_ID = #{deptId}
</update>
<select id="selectListOfPartyGroups" resultType="com.elink.esua.epdc.dto.group.GroupDTO">
SELECT
ID,
ALL_DEPT_NAMES
FROM
epdc_group
WHERE
FIND_IN_SET( #{deptId}, ALL_DEPT_IDS )
AND GROUP_CATEGORY = '2'
</select>
</mapper> </mapper>
Loading…
Cancel
Save