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