diff --git a/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/smile/conflict/dao/ConflictMediateDao.java b/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/smile/conflict/dao/ConflictMediateDao.java index 25147e1..18f1e2a 100644 --- a/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/smile/conflict/dao/ConflictMediateDao.java +++ b/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/smile/conflict/dao/ConflictMediateDao.java @@ -18,9 +18,10 @@ package com.elink.esua.epdc.modules.smile.conflict.dao; import com.elink.esua.epdc.commons.mybatis.dao.BaseDao; +import com.elink.esua.epdc.modules.smile.conflict.entity.ConflictMediateEntity; +import com.elink.esua.epdc.smile.dto.conflict.ConflictMediateDTO; import com.elink.esua.epdc.smile.dto.conflict.form.ConflictMediateHistoryFormDTO; import com.elink.esua.epdc.smile.dto.conflict.result.ConflictMediateHistoryResultDTO; -import com.elink.esua.epdc.modules.smile.conflict.entity.ConflictMediateEntity; import org.apache.ibatis.annotations.Mapper; import java.util.List; @@ -55,4 +56,14 @@ public interface ConflictMediateDao extends BaseDao { */ List listConflictMediate(ConflictMediateHistoryFormDTO dto); + /** + * 查询需要修改组织机构信息事件 + * + * @return java.util.List + * @params [deptId] + * @author liuchuang + * @since 2020/3/7 2:08 + */ + List selectListOfOrganizationInfo(String deptId); + } \ No newline at end of file diff --git a/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/smile/conflict/service/ConflictMediateService.java b/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/smile/conflict/service/ConflictMediateService.java index c43845c..3e6a549 100644 --- a/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/smile/conflict/service/ConflictMediateService.java +++ b/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/smile/conflict/service/ConflictMediateService.java @@ -19,6 +19,7 @@ package com.elink.esua.epdc.modules.smile.conflict.service; import com.elink.esua.epdc.commons.mybatis.service.BaseService; import com.elink.esua.epdc.commons.tools.page.PageData; +import com.elink.esua.epdc.modules.smile.rocketmq.dto.OrganizationModifyDTO; import com.elink.esua.epdc.smile.dto.conflict.ConflictMediateDTO; import com.elink.esua.epdc.smile.dto.conflict.form.ConflictMediateFormDTO; import com.elink.esua.epdc.smile.dto.conflict.form.ConflictMediateHistoryFormDTO; @@ -126,4 +127,14 @@ public interface ConflictMediateService extends BaseService conflictMediateDTOS = baseDao.selectListOfOrganizationInfo(dto.getDeptId().toString()); + if (null != conflictMediateDTOS && conflictMediateDTOS.size() > 0) { + // 组织机构信息处理 + List entities = handleOrganizationInfo(dto, conflictMediateDTOS); + // 更新事件组织机构信息 + updateBatchById(entities); + } + } + /** * 根据网格ID获取冗余的组织机构信息 * @@ -160,4 +176,44 @@ public class ConflictMediateServiceImpl extends BaseServiceImpl + * @author zhy + * @date 2020/7/23 14:46 + */ + private List handleOrganizationInfo(OrganizationModifyDTO dto, List conflictList) { + List entities = new ArrayList<>(); + for (ConflictMediateDTO conflictMediateDTO : conflictList) { + ConflictMediateEntity entity = new ConflictMediateEntity(); + if (StringUtils.isNotEmpty(conflictMediateDTO.getParentDeptIds()) && StringUtils.isNotEmpty(conflictMediateDTO.getParentDeptNames())) { + List parentDeptIds = Arrays.asList(conflictMediateDTO.getParentDeptIds().split(",")); + List parentDeptNames = Arrays.asList(conflictMediateDTO.getParentDeptNames().split("-")); + int index = parentDeptIds.indexOf(dto.getDeptId().toString()); + if (index >= 0 && parentDeptNames.size() > index) { + parentDeptNames.set(index, dto.getNewDeptName()); + entity.setId(conflictMediateDTO.getId()); + entity.setParentDeptNames(StringUtils.join(parentDeptNames, "-")); + } + } + + if (StringUtils.isNotEmpty(conflictMediateDTO.getAllDeptIds()) && StringUtils.isNotEmpty(conflictMediateDTO.getAllDeptNames())) { + List allDeptIds = Arrays.asList(conflictMediateDTO.getAllDeptIds().split(",")); + List allDeptNames = Arrays.asList(conflictMediateDTO.getAllDeptNames().split("-")); + int index = allDeptIds.indexOf(dto.getDeptId().toString()); + if (index >= 0 && allDeptNames.size() > index) { + allDeptNames.set(index, dto.getNewDeptName()); + entity.setId(conflictMediateDTO.getId()); + entity.setAllDeptNames(StringUtils.join(allDeptNames, "-")); + } + } + + entities.add(entity); + } + + return entities; + } } \ No newline at end of file diff --git a/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/smile/rocketmq/consumer/OrganizationModifyConsumer.java b/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/smile/rocketmq/consumer/OrganizationModifyConsumer.java index fe4663f..6529014 100644 --- a/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/smile/rocketmq/consumer/OrganizationModifyConsumer.java +++ b/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/smile/rocketmq/consumer/OrganizationModifyConsumer.java @@ -2,6 +2,7 @@ package com.elink.esua.epdc.modules.smile.rocketmq.consumer; import com.alibaba.fastjson.JSONObject; import com.elink.esua.epdc.commons.tools.constant.RocketMqConstant; +import com.elink.esua.epdc.modules.smile.conflict.service.ConflictMediateService; import com.elink.esua.epdc.modules.smile.group.service.GroupService; import com.elink.esua.epdc.modules.smile.police.service.PoliceService; import com.elink.esua.epdc.modules.smile.project.service.PropertyProjectService; @@ -38,6 +39,9 @@ public class OrganizationModifyConsumer implements RocketMQListener @Autowired private PoliceService policeService; + @Autowired + private ConflictMediateService conflictMediateService; + @Override public void onMessage(MessageExt messageExt) { log.info("EPDC-GROUP-SERVER消费消息START:{topic:{}, msgId:{}}", RocketMqConstant.MQ_TOPIC_ORGANIZATION, messageExt.getMsgId()); @@ -53,6 +57,8 @@ public class OrganizationModifyConsumer implements RocketMQListener propertyProjectService.modifyOrganizationInfo(dto); // 民警修改组织机构信息 policeService.modifyOrganizationInfo(dto); + // 矛盾纠纷修改组织机构信息 + conflictMediateService.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()); diff --git a/epdc-cloud-property/src/main/resources/mapper/smile/conflict/ConflictMediateDao.xml b/epdc-cloud-property/src/main/resources/mapper/smile/conflict/ConflictMediateDao.xml index 01bedeb..8c75758 100644 --- a/epdc-cloud-property/src/main/resources/mapper/smile/conflict/ConflictMediateDao.xml +++ b/epdc-cloud-property/src/main/resources/mapper/smile/conflict/ConflictMediateDao.xml @@ -40,4 +40,16 @@ CREATED_TIME DESC LIMIT #{pageIndex}, #{pageSize}; + \ No newline at end of file