diff --git a/epdc-cloud-property/doc/update.sql b/epdc-cloud-property/doc/update.sql new file mode 100644 index 0000000..b8d74a6 --- /dev/null +++ b/epdc-cloud-property/doc/update.sql @@ -0,0 +1,47 @@ +-- 微笑榆山二期相关表结构修改 + +DROP TABLE IF EXISTS `epdc_property`; +CREATE TABLE `epdc_property` ( + `ID` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键', + `PROPERTY_NAME` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '物业名称', + `PROPERTY_CODE` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '物业编码', + `EFFECTIVE_FLAG` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '是否有效(0-否,1-是)', + `REVISION` int(11) NOT NULL DEFAULT 0 COMMENT '乐观锁', + `DEL_FLAG` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '删除标记(0-否,1-是)', + `CREATED_BY` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime(0) NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime(0) NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '物业表' ROW_FORMAT = Compact; + +DROP TABLE IF EXISTS `epdc_property_project_score`; +CREATE TABLE `epdc_property_project_score` ( + `ID` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键', + `PROJECT_ID` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '物业项目ID', + `PROPERTY_ID` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '物业ID', + `USER_ID` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户ID', + `SCORE` decimal(4, 1) NOT NULL DEFAULT 0.0 COMMENT '得分', + `REVISION` int(11) NOT NULL DEFAULT 0 COMMENT '乐观锁', + `DEL_FLAG` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '删除标记(0-否,1-是)', + `CREATED_BY` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime(0) NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime(0) NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '物业项目得分表' ROW_FORMAT = Compact; + +ALTER TABLE epdc_property_project ADD COLUMN `PROPERTY_ID` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '物业ID'; +-- 话题表新增群类别字段 +ALTER TABLE epdc_topic ADD COLUMN `GROUP_CATEGORY` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '群类别 2:物业群;3警民群'; +-- 已有话题类别全部为物业群 +UPDATE epdc_topic SET GROUP_CATEGORY = '2'; + + + + +-- —————————————————————————————————————————————————————————————————————————————————————————————————— +-- 新闻模块 +ALTER TABLE epdc_news_category ADD COLUMN `INDEPENDENT_FLAG` VARCHAR ( 1 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '是否有独立的模块功能 0:否;1:是'; +-- +UPDATE epdc_news_category SET `INDEPENDENT_FLAG` = '0'; \ No newline at end of file diff --git a/epdc-cloud-property/pom.xml b/epdc-cloud-property/pom.xml index 3b86ae6..aff6b30 100644 --- a/epdc-cloud-property/pom.xml +++ b/epdc-cloud-property/pom.xml @@ -230,9 +230,9 @@ epdc!redis@master1405 - + - epdc + epdcyushan elink833066 true diff --git a/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/police/entity/PoliceEntity.java b/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/police/entity/PoliceEntity.java index b7a5c1e..8e9fc50 100644 --- a/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/police/entity/PoliceEntity.java +++ b/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/police/entity/PoliceEntity.java @@ -70,24 +70,4 @@ public class PoliceEntity extends DeptScope { */ private String displayFlag; - /** - * 所有部门ID - */ - private String allDeptIds; - - /** - * 所有部门名称 - */ - private String allDeptNames; - - /** - * 父所有部门 - */ - private String parentDeptIds; - - /** - * 父所有部门 - */ - private String parentDeptNames; - } \ No newline at end of file diff --git a/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/police/service/impl/PoliceServiceImpl.java b/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/police/service/impl/PoliceServiceImpl.java index 7a990de..14c98e9 100644 --- a/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/police/service/impl/PoliceServiceImpl.java +++ b/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/police/service/impl/PoliceServiceImpl.java @@ -17,11 +17,13 @@ package com.elink.esua.epdc.modules.police.service.impl; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; 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.tools.constant.FieldConstant; +import com.elink.esua.epdc.commons.tools.constant.NumConstant; 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.page.PageData; @@ -102,49 +104,98 @@ public class PoliceServiceImpl extends BaseServiceImpl return ConvertUtils.sourceToTarget(entity, PoliceDTO.class); } + + private List getChildDeptList(String tyepKey, Long deptId) { + Result> adminResult = adminFeignClient.listChildDeptLevelById(tyepKey, deptId); + if (!adminResult.success()) { + throw new RenException(adminResult.getMsg()); + } + return adminResult.getData(); + } + + /** + * 社区是否已有民警 + * + * @param deptId 社区id + * @return boolean + * @author work@yujt.net.cn + * @date 2020/5/22 16:56 + */ + private boolean hasPolice(Long deptId) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("DEPT_ID", deptId); + return baseDao.selectCount(wrapper) > NumConstant.ZERO; + } + + /** + * 查询社区下未创建警民群的网格 + * + * @param deptList 社区下所有的网格 + * @param communityId 社区id + * @return java.util.List + * @author work@yujt.net.cn + * @date 2020/5/22 16:55 + */ + private List getDeptListWithoutGroup(List deptList, Long communityId) { + // 查询社区下已创建群组的网格 + List hasGroupList = groupDao.selectListOfGroupByDeptId(String.valueOf(communityId)); + if (CollUtil.isNotEmpty(hasGroupList)) { + for (int i = deptList.size() - 1; i >= 0; i--) { + for (DeptLevelAndLeaderDTO dto : hasGroupList) { + if (deptList.get(i).getDeptId().equals(dto.getDeptId())) { + deptList.remove(i); + break; + } + } + } + } + return deptList; + } + @Override @Transactional(rollbackFor = Exception.class) public Result save(PoliceDTO dto) { + Long communityId = dto.getDeptId(); + if (hasPolice(communityId)) { + return new Result().error("该社区已有民警,无法重复添加"); + } + // 社区第一次添加民警,直接保存 PoliceEntity entity = ConvertUtils.sourceToTarget(dto, PoliceEntity.class); - // 先查询该社区下有没有网格群,没有就同时创建民警和群,有就表示已经创建过。 - List gridList = adminFeignClient.listChildDeptLevelById(OrganizationTypeConstant.ORG_TYPE_GRID_PARTY, entity.getDeptId()).getData(); - // 社区下没有网格 - if (gridList.size() == 0 || dto.getDeptId() == null) { - return new Result().error("新增失败"); + ParentAndAllDeptDTO parentAndAllDeptDTO = getParentAndAllDeptDTO(String.valueOf(communityId)); + DeptEntityUtils.loadDeptInfo( + ConvertUtils.sourceToTarget(parentAndAllDeptDTO, DeptEntityUtils.DeptDto.class), + entity + ); + entity.setDeptName(parentAndAllDeptDTO.getGrid()); + insert(entity); + + // 先查询该社区下所有网格 + List deptList = getChildDeptList(OrganizationTypeConstant.ORG_TYPE_GRID_PARTY, entity.getDeptId()); + if (CollUtil.isEmpty(deptList)) { + return new Result(); } - List groupList = groupDao.selectListOfGroupByDeptId(entity.getDeptId() + ""); - if (groupList.size() == 0) { - ParentAndAllDeptDTO parentAndAllDeptDTO = getParentAndAllDeptDTO(dto.getDeptId() + ""); - - // 保存机构,及其他冗余字段。 - DeptEntityUtils.loadDeptInfo( - ConvertUtils.sourceToTarget(parentAndAllDeptDTO, DeptEntityUtils.DeptDto.class), - entity + // 未创建社区的网格 + List withoutGroupDeptList = getDeptListWithoutGroup(deptList, communityId); + if (CollUtil.isNotEmpty(withoutGroupDeptList)) { + withoutGroupDeptList.forEach( + deptForGroup -> { + GroupEntity groupEntity = new GroupEntity(); + DeptEntityUtils.loadDeptInfo( + ConvertUtils.sourceToTarget(deptForGroup, DeptEntityUtils.DeptDto.class), + groupEntity + ); + groupEntity.setReferenceBusinessId(entity.getId()); + groupEntity.setState(GroupStateEnum.GROUP_STATE_EXAMINATION_PASSED.getValue()); + groupEntity.setGroupAvatar(GroupConstant.PROPERTY_GROUP_AVATAR); + groupEntity.setGroupName(deptForGroup.getDeptName() + "警民群"); + groupEntity.setGroupCategory(GroupConstant.POLICE_GROUP_CATEGORY); + groupEntity.setGrid(deptForGroup.getDeptName()); + groupEntity.setGridId(deptForGroup.getDeptId()); + groupDao.insert(groupEntity); + } ); - entity.setDeptName(parentAndAllDeptDTO.getGrid()); - insert(entity); - - // 创民警的同时创建群 - gridList.forEach(dept -> { - ParentAndAllDeptDTO parentAndAllDeptDTOChild = getParentAndAllDeptDTO(dept.getDeptId() + ""); - GroupEntity groupEntity = new GroupEntity(); - DeptEntityUtils.loadDeptInfo( - ConvertUtils.sourceToTarget(parentAndAllDeptDTOChild, DeptEntityUtils.DeptDto.class), - groupEntity - ); - groupEntity.setReferenceBusinessId(entity.getId()); - groupEntity.setState(GroupStateEnum.GROUP_STATE_EXAMINATION_PASSED.getValue()); - groupEntity.setGroupAvatar(GroupConstant.PROPERTY_GROUP_AVATAR); - groupEntity.setGroupName(dept.getDeptName() + "警民群"); - groupEntity.setGroupCategory(GroupConstant.POLICE_GROUP_CATEGORY); - groupEntity.setGrid(dept.getDeptName()); - groupEntity.setGridId(dept.getDeptId()); - groupDao.insert(groupEntity); - }); - return new Result(); - } else { - return new Result().error("新增失败,社区内已有民警"); } + return new Result(); } @Override