diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java index 62d9fef763..7d2ad8ec03 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java @@ -110,4 +110,6 @@ public interface StrConstant { String YES = "是"; String NO = "否"; + + String ELLIPSIS="......"; } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/OrgConstant.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/OrgConstant.java index 5119475926..28bc8e794c 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/OrgConstant.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/constant/OrgConstant.java @@ -14,4 +14,7 @@ public interface OrgConstant { String GRID_ID="GRID_ID"; String GENDER="GENDER"; String HOUSE_TYPE_KEY="HOUSE_TYPE"; + + String AGENCY_ID="agencyId"; + String AGENC_PATH="agencyPath"; } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageAnalisisDataListFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageAnalisisDataListFormDTO.java index 179dc80aba..2b3b0127df 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageAnalisisDataListFormDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageAnalisisDataListFormDTO.java @@ -9,7 +9,16 @@ import java.util.List; */ @Data public class CoverageAnalisisDataListFormDTO { + /** + * 目前都是组织id + */ + private String orgId; + /** + * agency + * grid + */ + private String orgType; /** * 图层类型列表 */ diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageAnalisisDataListLeftFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageAnalisisDataListLeftFormDTO.java new file mode 100644 index 0000000000..ca369fd4db --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/form/CoverageAnalisisDataListLeftFormDTO.java @@ -0,0 +1,44 @@ +package com.epmet.dataaggre.dto.govorg.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.util.List; + +/** + * @Description + * @Author yzm + * @Date 2022/7/28 11:09 + */ +@Data +public class CoverageAnalisisDataListLeftFormDTO { + public interface ShowGroup extends CustomerClientShowGroup { + } + /** + * 目前都是组织id + */ + @NotBlank(message = "组织不能为空", groups = ShowGroup.class) + private String orgId; + + /** + * agency + * grid + */ + @NotBlank(message = "组织类型不能为空", groups = ShowGroup.class) + private String orgType; + /** + * 图层类型列表 + */ + private List coverageTypes; + + /** + * 分类key + */ + private List categoryKeys; + + private String customerId; + private String staffId; + +} + diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageAnalisisDataListResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageAnalisisDataListResultDTO.java index fd566cb191..1af67eb36a 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageAnalisisDataListResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageAnalisisDataListResultDTO.java @@ -1,8 +1,10 @@ package com.epmet.dataaggre.dto.govorg.result; +import com.epmet.commons.tools.constant.StrConstant; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import org.apache.commons.lang3.StringUtils; @Data @NoArgsConstructor @@ -40,4 +42,21 @@ public class CoverageAnalisisDataListResultDTO { */ private String longitude; + /** + * 经度,纬度:120.38862649282282,36.07138835989835 + */ + private String longLat; + + public CoverageAnalisisDataListResultDTO(String id, String categoryKey, String categoryName, String placeType, String content, String latitude, String longitude) { + this.id=id; + this.categoryKey=categoryKey; + this.categoryName=categoryName; + this.placeType=placeType; + this.content=content; + this.latitude=latitude; + this.longitude=longitude; + if(StringUtils.isNotBlank(latitude)&&StringUtils.isNotBlank(longitude)){ + this.longLat=longitude.concat(StrConstant.COMMA).concat(latitude); + } + } } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageAnalisisDataListResultDTOV2.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageAnalisisDataListResultDTOV2.java new file mode 100644 index 0000000000..dcc46ae471 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageAnalisisDataListResultDTOV2.java @@ -0,0 +1,26 @@ +package com.epmet.dataaggre.dto.govorg.result; + +import lombok.Data; + +import java.util.List; + +/** + * @Description + * @Author yzm + * @Date 2022/7/28 11:13 + */ +@Data +public class CoverageAnalisisDataListResultDTOV2 { + /** + * 维度 + */ + private String latitude; + + /** + * 经度 + */ + private String longitude; + + private List dataList; +} + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/CoverageController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/CoverageController.java index 67a4b52d04..f300875b13 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/CoverageController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/CoverageController.java @@ -5,12 +5,15 @@ import com.epmet.commons.tools.dto.result.ZhzlCategorySelectDTO; import com.epmet.commons.tools.enums.ZhzlResiCategoryEnum; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.EpmetRequestHolder; import com.epmet.commons.tools.utils.Result; import com.epmet.dataaggre.dto.coverage.AnalysisGovernedTargetsResult; import com.epmet.dataaggre.dto.coverage.AnalysisResourceCategoriesResult; import com.epmet.dataaggre.dto.govorg.form.CoverageAnalisisDataListFormDTO; +import com.epmet.dataaggre.dto.govorg.form.CoverageAnalisisDataListLeftFormDTO; import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; import com.epmet.dataaggre.dto.govorg.result.CoverageAnalisisDataListResultDTO; +import com.epmet.dataaggre.dto.govorg.result.CoverageAnalisisDataListResultDTOV2; import com.epmet.dataaggre.dto.govorg.result.CoverageHomeSearchResultDTO; import com.epmet.dataaggre.service.CoverageService; import org.apache.commons.collections4.CollectionUtils; @@ -40,13 +43,16 @@ public class CoverageController { */ @RequestMapping("dataList") public Result> dataList(@RequestBody CoverageAnalisisDataListFormDTO input) { + // 获取跟组织的坐标 + String customerId = EpmetRequestHolder.getLoginUserCustomerId(); + String staffId = EpmetRequestHolder.getLoginUserId(); List coverageTypes = input.getCoverageTypes(); List categoryKeys = input.getCategoryKeys(); if (CollectionUtils.isEmpty(coverageTypes)) { return new Result().ok(new PageData<>(new ArrayList<>(), 0)); } - PageData page = coverageService.analysisDataList(coverageTypes, categoryKeys, + PageData page = coverageService.analysisDataList(customerId,staffId,input.getOrgId(),input.getOrgType(),coverageTypes, categoryKeys, input.getSearch(), input.getPageNo(), input.getPageSize(), input.getIsPage()); return new Result>().ok(page); } @@ -94,4 +100,22 @@ public class CoverageController { return new Result>().ok(r); } + /** + * 五大图层,左侧菜单,点击事件,查询人.事的分布 + * + * @param formDTO + * @return + */ + @RequestMapping("dataList-left") + public Result> dataListLeft(@LoginUser TokenDto tokenDto, @RequestBody CoverageAnalisisDataListLeftFormDTO formDTO) { + List coverageTypes = formDTO.getCoverageTypes(); + List categoryKeys = formDTO.getCategoryKeys(); + if (CollectionUtils.isEmpty(coverageTypes)||CollectionUtils.isEmpty(categoryKeys)) { + return new Result().ok(new PageData<>(new ArrayList<>(), 0)); + } + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setStaffId(tokenDto.getUserId()); + PageData page = coverageService.dataListLeft(formDTO); + return new Result>().ok(page); + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcEnterprisePatrolRecordDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcEnterprisePatrolRecordDao.java index d6f5c83879..1019bb6f69 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcEnterprisePatrolRecordDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/IcEnterprisePatrolRecordDao.java @@ -26,7 +26,7 @@ public interface IcEnterprisePatrolRecordDao extends BaseDao listEnterprisePatrol(@Param("customerId") String customerId, @Param("agencyId") String agencyId, @Param("staffOrgIds") String staffOrgIds, @Param("search") String search, - @Param("categoryKey") String categoryKey); + @Param("categoryKey") String categoryKey, @Param("latestResult") String latestResult); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/CoverageService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/CoverageService.java index 651655f2e3..5c39087be8 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/CoverageService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/CoverageService.java @@ -3,8 +3,10 @@ package com.epmet.dataaggre.service; import com.epmet.commons.tools.page.PageData; import com.epmet.dataaggre.dto.coverage.AnalysisGovernedTargetsResult; import com.epmet.dataaggre.dto.coverage.AnalysisResourceCategoriesResult; +import com.epmet.dataaggre.dto.govorg.form.CoverageAnalisisDataListLeftFormDTO; import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; import com.epmet.dataaggre.dto.govorg.result.CoverageAnalisisDataListResultDTO; +import com.epmet.dataaggre.dto.govorg.result.CoverageAnalisisDataListResultDTOV2; import com.epmet.dataaggre.dto.govorg.result.CoverageHomeSearchResultDTO; import java.util.List; @@ -22,7 +24,8 @@ public interface CoverageService { * @param pageSize 页面大小 * @return */ - PageData analysisDataList(List coverageTypes, List categoryKeys, + PageData analysisDataList(String customerId,String staffId,String orgId,String orgType, + List coverageTypes, List categoryKeys, String search, Integer pageNo, Integer pageSize, Boolean isPage); /** @@ -40,4 +43,11 @@ public interface CoverageService { List listAnalysisResourceCategories(); List listGovernedTargetCategories(); + + /** + * 五大图层,左侧菜单,点击事件,查询人.事的分布 + * @param formDTO + * @return + */ + PageData dataListLeft(CoverageAnalisisDataListLeftFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgCoverageService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgCoverageService.java index 7b1779be57..10b94f81d9 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgCoverageService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgCoverageService.java @@ -1,16 +1,13 @@ package com.epmet.dataaggre.service.govorg; -import com.epmet.commons.mybatis.service.BaseService; import com.epmet.dataaggre.dto.govorg.result.IcEnterisePatrolResultDTO; import com.epmet.dataaggre.entity.govorg.*; -import com.epmet.dataaggre.entity.heart.IcCommunitySelfOrganizationEntity; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.util.List; import java.util.Map; -import java.util.Set; /** * org库的图层service @@ -115,11 +112,11 @@ public interface GovOrgCoverageService { Integer countSuporiorResourceEntities(String customerId, String staffOrgIds, String search, String categoryKey); - Integer countEnterprisePatrol(String customerId, String agencyId, String staffOrgIds, String search, String categoryKey); + Integer countEnterprisePatrol(String customerId, String agencyId, String staffOrgIds, String search, String categoryKey,String latestResult); List listEnterprisePatrol(String customerId, String agencyId, String staffOrgIds, String search, String categoryKey, Boolean isPage, Integer pageNo, - Integer pageSize); + Integer pageSize, String latestResult); /** * 通过居民数量等条件查询房屋数量 diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgCoverageServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgCoverageServiceImpl.java index bc64607a7f..e2987a1233 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgCoverageServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgCoverageServiceImpl.java @@ -1,7 +1,6 @@ package com.epmet.dataaggre.service.govorg.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.tools.enums.CoverageEnums; import com.epmet.commons.tools.utils.EpmetRequestHolder; @@ -15,7 +14,10 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * org 图层service @@ -291,18 +293,18 @@ public class GovOrgCoverageServiceImpl implements GovOrgCoverageService { } @Override - public Integer countEnterprisePatrol(String customerId, String agencyId, String staffOrgIds, String search, String categoryKey) { - return enterprisePatrolRecordDao.countEnterprisePatrol(customerId, agencyId, staffOrgIds, search, categoryKey); + public Integer countEnterprisePatrol(String customerId, String agencyId, String staffOrgIds, String search, String categoryKey,String latestResult) { + return enterprisePatrolRecordDao.countEnterprisePatrol(customerId, agencyId, staffOrgIds, search, categoryKey,latestResult); } @Override public List listEnterprisePatrol(String customerId, String agencyId, String staffOrgIds, String search, String categoryKey, Boolean isPage, - Integer pageNo, Integer pageSize) { + Integer pageNo, Integer pageSize, String latestResult) { if (isPage) { PageHelper.startPage(pageNo, pageSize); } - return enterprisePatrolRecordDao.listEnterprisePatrol(customerId, agencyId, staffOrgIds, search, categoryKey); + return enterprisePatrolRecordDao.listEnterprisePatrol(customerId, agencyId, staffOrgIds, search, categoryKey, latestResult); } @Override diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/CoverageServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/CoverageServiceImpl.java index 1bb44635a4..0a34e94edc 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/CoverageServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/CoverageServiceImpl.java @@ -1,19 +1,26 @@ package com.epmet.dataaggre.service.impl; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.enums.CoverageEnums; import com.epmet.commons.tools.enums.CoveragePlaceTypeEnum; 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.redis.common.CustomerOrgRedis; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; +import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; import com.epmet.commons.tools.redis.common.bean.BuildingInfoCache; import com.epmet.commons.tools.utils.EpmetRequestHolder; +import com.epmet.dataaggre.constant.OrgConstant; import com.epmet.dataaggre.dto.coverage.AnalysisGovernedTargetsResult; import com.epmet.dataaggre.dto.coverage.AnalysisResourceCategoriesResult; import com.epmet.dataaggre.dto.epmetuser.result.IcResiInfoResultDTO; +import com.epmet.dataaggre.dto.govorg.form.CoverageAnalisisDataListLeftFormDTO; import com.epmet.dataaggre.dto.govorg.form.CoverageHomeSearchFormDTO; import com.epmet.dataaggre.dto.govorg.result.CoverageAnalisisDataListResultDTO; +import com.epmet.dataaggre.dto.govorg.result.CoverageAnalisisDataListResultDTOV2; import com.epmet.dataaggre.dto.govorg.result.CoverageHomeSearchResultDTO; import com.epmet.dataaggre.dto.govorg.result.IcEnterisePatrolResultDTO; import com.epmet.dataaggre.entity.epmetuser.IcResiUserEntity; @@ -29,17 +36,14 @@ import com.epmet.dataaggre.service.govorg.GovOrgService; import com.epmet.dataaggre.service.govproject.GovProjectService; import com.epmet.dataaggre.service.heart.HeartService; import com.epmet.dataaggre.service.opercustomize.IcResiCategoryWarnService; -import jodd.util.StringUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; @@ -96,12 +100,11 @@ public class CoverageServiceImpl implements CoverageService { * @return */ @Override - public PageData analysisDataList(List coverageTypes, List categoryKeys, + public PageData analysisDataList(String customerId,String staffId,String orgId,String orgType, + List coverageTypes, List categoryKeys, String search, Integer pageNo, Integer pageSize, Boolean isPage) { // 获取跟组织的坐标 - String customerId = EpmetRequestHolder.getLoginUserCustomerId(); - String staffId = EpmetRequestHolder.getLoginUserId(); CustomerAgencyEntity rootAgency = govOrgService.getRootAgencyByCustomerId(customerId); // 1.根据categoryKeys分类key列表,查询他们和图层时间的关系,映射为一个map @@ -121,15 +124,9 @@ public class CoverageServiceImpl implements CoverageService { } // 2.循环coverageTypes,使用key到map中查询(为了顺序),得到categoryKeys列表之后,根据实际情况做相应的查询 - CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(customerId, staffId); - - if (staffInfo == null) { - String msg = "未找到当前登录人信息。staffId:" + EpmetRequestHolder.getLoginUserId(); - throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), msg, msg); - } - - String staffPids = getStaffPidsFromStaffInfo(staffInfo); - String agencyId = staffInfo.getAgencyId(); + Map agencyMap=getStaffPidsFromStaffInfo(customerId,staffId,orgId,orgType); + String agencyPath = agencyMap.get(OrgConstant.AGENC_PATH); + String agencyId = agencyMap.get(OrgConstant.AGENCY_ID); // 分页不太好分,先查出所有的数据,然后partation()吧 int start = (pageNo - 1) * pageSize; @@ -157,7 +154,7 @@ public class CoverageServiceImpl implements CoverageService { } for (GovOrgCoverageService.CategoryCoverageMapping e : ccm) { - Integer tempCount = doDataListCount(EpmetRequestHolder.getLoginUserCustomerId(), agencyId, staffPids, e.getPlaceType(), + Integer tempCount = doDataListCount(EpmetRequestHolder.getLoginUserCustomerId(), agencyId, agencyPath, e.getPlaceType(), e.getCategoryKey(), search); lastTotalCount = totalCount; totalCount += tempCount; @@ -166,7 +163,7 @@ public class CoverageServiceImpl implements CoverageService { // 不分页,查询所有 // 检索数据 List dataSegment = doDataListSearch( - EpmetRequestHolder.getLoginUserCustomerId(), agencyId, staffPids, e.getPlaceType(), + EpmetRequestHolder.getLoginUserCustomerId(), agencyId, agencyPath, e.getPlaceType(), e.getCategoryKey(), search, null, null, isPage, rootAgency); rls.addAll(dataSegment); continue; @@ -188,7 +185,7 @@ public class CoverageServiceImpl implements CoverageService { // 检索数据 List dataSegment = doDataListSearch( - EpmetRequestHolder.getLoginUserCustomerId(), agencyId, staffPids, e.getPlaceType(), + EpmetRequestHolder.getLoginUserCustomerId(), agencyId, agencyPath, e.getPlaceType(), e.getCategoryKey(), search, 1, end, isPage, rootAgency); if (firstTimeDataAppear) { @@ -238,6 +235,41 @@ public class CoverageServiceImpl implements CoverageService { } } + private Map getStaffPidsFromStaffInfo(String customerId, String staffId, String orgId, String orgType) { + Map map = new HashMap<>(); + String agencyPath = StrConstant.EPMETY_STR; + String agencyId = StrConstant.EPMETY_STR; + if (StringUtils.isBlank(orgId)) { + // 默认查询的是当前登录用户所属组织及下级 + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(customerId, staffId); + if (staffInfo == null) { + String msg = "未找到当前登录人信息。staffId:" + EpmetRequestHolder.getLoginUserId(); + throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), msg, msg); + } + // staffPids + agencyPath = getStaffPidsFromStaffInfo(staffInfo); + agencyId = staffInfo.getAgencyId(); + } else { + // 根据传入的组织id来 + if (OrgConstant.AGENCY.equals(orgType)) { + AgencyInfoCache agencyInfoCache = CustomerOrgRedis.getAgencyInfo(orgId); + if (agencyInfoCache == null) { + String msg = "查询组织缓存信息异常。orgId:" + orgId; + throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), msg, msg); + } + agencyId = orgId; + if (StringUtils.isNotBlank(agencyInfoCache.getPids()) && !"0".equals(agencyInfoCache.getPids()) && !"0".equals(agencyInfoCache)) { + agencyPath = agencyInfoCache.getPids().concat(":").concat(agencyId); + } else { + agencyPath = orgId; + } + } + } + map.put(OrgConstant.AGENCY_ID, agencyId); + map.put(OrgConstant.AGENC_PATH, agencyPath); + return map; + } + /** * 计算数据条数 * @param customerId @@ -278,7 +310,7 @@ public class CoverageServiceImpl implements CoverageService { return orgCoverageService.countDangerousChemicalEntities(customerId, staffOrgIds, search, categoryKey); } else if (CoveragePlaceTypeEnum.ENTERPRISE_PATROL.getCode().equals(placeType)) { // 企事业单位巡查 - return orgCoverageService.countEnterprisePatrol(customerId, agencyId, staffOrgIds, search, categoryKey); + return orgCoverageService.countEnterprisePatrol(customerId, agencyId, staffOrgIds, search, categoryKey,null); } else if (CoveragePlaceTypeEnum.GROUP_RENT.getCode().equals(placeType)) { // 群租房。出租的房屋,住的人口超过5人属于群租房(是个规定 return orgCoverageService.countByResiNumber(customerId, staffOrgIds, search, 5, HOUSE_RENT_FLAG_RENT); @@ -288,6 +320,10 @@ public class CoverageServiceImpl implements CoverageService { } else if (CoveragePlaceTypeEnum.SUPERIOR_RESOURCE.getCode().equals(placeType)) { // 优势资源 return orgCoverageService.countSuporiorResourceEntities(customerId, staffOrgIds, search, categoryKey); + } else if(CoveragePlaceTypeEnum.ENTERPRISE_PATROL_UNQUALIFIED.getCode().equals(placeType)){ + // 企事业单位巡查 + // 最新巡查结果【0:合格 1:不合格】 + return orgCoverageService.countEnterprisePatrol(customerId, agencyId, staffOrgIds, search, categoryKey,NumConstant.ONE_STR ); } return 0; @@ -345,7 +381,8 @@ public class CoverageServiceImpl implements CoverageService { return icEventEntities.stream() .map(e -> new CoverageAnalisisDataListResultDTO( - e.getId(), categoryKey, isPage ? categoryDict.getCategoryName() : null, placeType, isPage ? e.getName() : null, + e.getId(), categoryKey, isPage ? categoryDict.getCategoryName() : null, placeType, + e.getEventContent().length() < 21 ? e.getEventContent() : e.getEventContent().substring(NumConstant.ZERO, 20).concat(StrConstant.ELLIPSIS), e.getLatitude(), e.getLongitude())) .collect(Collectors.toList()); @@ -396,7 +433,7 @@ public class CoverageServiceImpl implements CoverageService { } else if (CoveragePlaceTypeEnum.ENTERPRISE_PATROL.getCode().equals(placeType)) { // 企事业单位巡查 List list = orgCoverageService.listEnterprisePatrol( - customerId, agencyId, staffOrgIds, search, categoryKey, isPage, pageNo, pageSize); + customerId, agencyId, staffOrgIds, search, categoryKey, isPage, pageNo, pageSize,null); return list.stream() .map(dc -> new CoverageAnalisisDataListResultDTO(dc.getEnterpriseId(), categoryKey, @@ -437,6 +474,17 @@ public class CoverageServiceImpl implements CoverageService { .map(dc -> new CoverageAnalisisDataListResultDTO(dc.getId(), categoryKey, isPage ? categoryDict.getCategoryName() : null, placeType, isPage ? dc.getName() : null, dc.getLatitude(), dc.getLongitude())) .collect(Collectors.toList()); + } else if(CoveragePlaceTypeEnum.ENTERPRISE_PATROL_UNQUALIFIED.getCode().equals(placeType)){ + //最新巡查结果【0:合格 1:不合格】 + List list = orgCoverageService.listEnterprisePatrol( + customerId, agencyId, staffOrgIds, search, categoryKey, isPage, pageNo, pageSize,NumConstant.ONE_STR); + + return list.stream() + .map(dc -> new CoverageAnalisisDataListResultDTO(dc.getEnterpriseId(), categoryKey, + isPage ? categoryDict.getCategoryName() : null, placeType, dc.getPlaceOrgName() , + StringUtils.isNotBlank(dc.getLatitude()) ? dc.getLatitude() : rootAgency.getLatitude(), + StringUtils.isNotBlank(dc.getLongitude()) ? dc.getLongitude() : rootAgency.getLongitude())) + .collect(Collectors.toList()); } return new ArrayList<>(); } @@ -591,4 +639,41 @@ public class CoverageServiceImpl implements CoverageService { results.add(ggfwRq); return results; } + + /** + * 五大图层,左侧菜单,点击事件,查询人.事的分布 + * + * @param formDTO + * @return + */ + @Override + public PageData dataListLeft(CoverageAnalisisDataListLeftFormDTO formDTO) { + PageData page = analysisDataList(formDTO.getCustomerId(), formDTO.getStaffId(), formDTO.getOrgId(), formDTO.getOrgType(), + formDTO.getCoverageTypes(), formDTO.getCategoryKeys(), + StrConstant.EPMETY_STR,// 搜索关键词 默认空字符串 + NumConstant.ONE, + NumConstant.TWENTY, + false // 不分页 + ); + List list = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(page.getList())) { + Map> group = page.getList().stream().collect(Collectors.groupingBy(x->Optional.ofNullable(x.getLongLat()).orElse("O"))); + + if (MapUtils.isNotEmpty(group)) { + for (Map.Entry> entry : group.entrySet()) { + if (CollectionUtils.isEmpty(entry.getValue())) { + continue; + } + CoverageAnalisisDataListResultDTOV2 res = new CoverageAnalisisDataListResultDTOV2(); + res.setLatitude(entry.getValue().get(NumConstant.ZERO).getLatitude()); + res.setLongitude(entry.getValue().get(NumConstant.ZERO).getLongitude()); + res.setDataList(entry.getValue()); + list.add(res); + } + } + } + // int totalCount = CollectionUtils.isNotEmpty(list) ? list.size() : NumConstant.ZERO;//这个是实际返回的几个坐标点 + // page.getTotal()是多少条业务数据 + return new PageData<>(list, page.getTotal()); + } } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcEnterprisePatrolRecordDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcEnterprisePatrolRecordDao.xml index 6aa433eb09..c682c31548 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcEnterprisePatrolRecordDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/IcEnterprisePatrolRecordDao.xml @@ -10,8 +10,13 @@ where e.CUSTOMER_ID = #{customerId} and e.PLACE_ORG_NAME like CONCAT('%',#{search},'%') and (e.AGENCY_ID = #{agencyId} or e.AGENCY_PIDS like CONCAT(#{staffOrgIds}, '%')) - and e.PLACE_TYPE = #{categoryKey} + + and e.PLACE_TYPE = #{categoryKey} + and e.DEL_FLAG = '0' + + and e.LATEST_RESULT = #{latestResult} + @@ -32,7 +37,12 @@ where e.CUSTOMER_ID = #{customerId} and e.PLACE_ORG_NAME like CONCAT('%',#{search},'%') and (e.AGENCY_ID = #{agencyId} or e.AGENCY_PIDS like CONCAT(#{staffOrgIds}, '%')) - and e.PLACE_TYPE = #{categoryKey} + + and e.PLACE_TYPE = #{categoryKey} + and e.DEL_FLAG = '0' + + and e.LATEST_RESULT = #{latestResult} + \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcCommunitySelfOrganizationDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcCommunitySelfOrganizationDTO.java index 6364dc08e2..a8cad6d0f6 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcCommunitySelfOrganizationDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcCommunitySelfOrganizationDTO.java @@ -104,6 +104,21 @@ public class IcCommunitySelfOrganizationDTO implements Serializable { */ private String latitude; + /** + * 同步状态【已同步:sync 未同步:not_sync】 + */ + private String syncType; + + /** + * 部门ID customer_department.id + */ + private String deptId; + + /** + * 部门下工作人员Id + */ + private String deptStaffId; + /** * */ diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyUnitDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyUnitDTO.java index 2258b94762..5935d564de 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyUnitDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyUnitDTO.java @@ -134,6 +134,21 @@ public class IcPartyUnitDTO implements Serializable { */ private String remark; + /** + * 同步状态【已同步:sync 未同步:not_sync】 + */ + private String syncType; + + /** + * 部门ID customer_department.id + */ + private String deptId; + + /** + * 部门下工作人员Id + */ + private String deptStaffId; + /** * 删除标识 0未删除、1已删除 */ diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java index 9939b88455..e3b04df7bb 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java @@ -16,6 +16,7 @@ import com.epmet.dto.form.demand.UserDemandNameQueryFormDTO; import com.epmet.dto.form.resi.ResiVolunteerAuthenticateFormDTO; import com.epmet.dto.form.resi.ResisByPolicyRulesFormDTO; import com.epmet.dto.form.resi.VolunteerCommonFormDTO; +import com.epmet.dto.result.CheckStaffInfoResultDTO; import com.epmet.dto.result.PartyUnitListResultDTO; import com.epmet.dto.result.demand.IcResiDemandDictDTO; import com.epmet.dto.result.resi.PageVolunteerInfoResultDTO; @@ -166,4 +167,8 @@ public interface EpmetHeartOpenFeignClient { */ @PostMapping("/heart/policy/rules4ResiListAndExport/{ruleId}") Result listPolicyRules4QueryAndExport(@PathVariable("ruleId") String ruleId); + + @PostMapping("/heart/icpartyunit/editpartyorcommunity") + Result editPartyOrCommunity(@RequestBody CheckStaffInfoResultDTO formDTO); + } diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallback.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallback.java index 815bfab92c..558cd43f2b 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallback.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallback.java @@ -18,6 +18,7 @@ import com.epmet.dto.form.demand.UserDemandNameQueryFormDTO; import com.epmet.dto.form.resi.ResiVolunteerAuthenticateFormDTO; import com.epmet.dto.form.resi.ResisByPolicyRulesFormDTO; import com.epmet.dto.form.resi.VolunteerCommonFormDTO; +import com.epmet.dto.result.CheckStaffInfoResultDTO; import com.epmet.dto.result.PartyUnitListResultDTO; import com.epmet.dto.result.demand.IcResiDemandDictDTO; import com.epmet.dto.result.demand.OptionDTO; @@ -166,4 +167,9 @@ public class EpmetHeartOpenFeignClientFallback implements EpmetHeartOpenFeignCli public Result listPolicyRules4QueryAndExport(String ruleId) { return ModuleUtils.feignConError(ServiceConstant.EPMET_HEART_SERVER, "listPolicyRules4QueryAndExport", ruleId); } + + @Override + public Result editPartyOrCommunity(CheckStaffInfoResultDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_HEART_SERVER, "editPartyOrCommunity", formDTO); + } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java index 236e0d3b99..95093177cb 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPartyUnitController.java @@ -22,11 +22,7 @@ import com.epmet.dto.form.PartyUnitFormDTO; import com.epmet.dto.form.PartyUnitListFormDTO; import com.epmet.dto.form.*; import com.epmet.dto.form.demand.ServiceQueryFormDTO; -import com.epmet.dto.result.ImportTaskCommonResultDTO; -import com.epmet.dto.result.PartyTypepercentResultDTO; -import com.epmet.dto.result.PartyUnitDistributionResultDTO; -import com.epmet.dto.result.PartyUnitListResultDTO; -import com.epmet.dto.result.PartyUnitListbrieResultDTO; +import com.epmet.dto.result.*; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.excel.IcPartyUnitExcel; import com.epmet.feign.EpmetCommonServiceOpenFeignClient; @@ -312,4 +308,14 @@ public class IcPartyUnitController { return new Result>().ok(icPartyUnitService.getAssistanceUnitList(tokenDto)); } + /** + * Desc: 联建单位、社会自组织同步/取消同步到通讯录部门后相应的修改业务数据 + * @author sun + */ + @PostMapping("editpartyorcommunity") + public Result editPartyOrCommunity(@RequestBody CheckStaffInfoResultDTO formDTO){ + icPartyUnitService.editPartyOrCommunity(formDTO); + return new Result(); + } + } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcCommunitySelfOrganizationEntity.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcCommunitySelfOrganizationEntity.java index 7098ce83e9..3f35e32184 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcCommunitySelfOrganizationEntity.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcCommunitySelfOrganizationEntity.java @@ -117,4 +117,19 @@ public class IcCommunitySelfOrganizationEntity extends BaseEpmetEntity { */ private String remark; + /** + * 同步状态【已同步:sync 未同步:not_sync】 + */ + private String syncType; + + /** + * 部门ID customer_department.id + */ + private String deptId; + + /** + * 部门下工作人员Id + */ + private String deptStaffId; + } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPartyUnitEntity.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPartyUnitEntity.java index 65c11a447f..47210a837a 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPartyUnitEntity.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPartyUnitEntity.java @@ -105,4 +105,19 @@ public class IcPartyUnitEntity extends BaseEpmetEntity { */ private String remark; + /** + * 同步状态【已同步:sync 未同步:not_sync】 + */ + private String syncType; + + /** + * 部门ID customer_department.id + */ + private String deptId; + + /** + * 部门下工作人员Id + */ + private String deptStaffId; + } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java index 53ddf81e19..8cc2d342a7 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPartyUnitService.java @@ -12,10 +12,7 @@ import com.epmet.dto.form.PartyUnitFormDTO; import com.epmet.dto.form.PartyUnitListFormDTO; import com.epmet.dto.form.PartyUnitListbriefFormDTO; import com.epmet.dto.form.demand.ServiceQueryFormDTO; -import com.epmet.dto.result.PartyTypepercentResultDTO; -import com.epmet.dto.result.PartyUnitDistributionResultDTO; -import com.epmet.dto.result.PartyUnitListResultDTO; -import com.epmet.dto.result.PartyUnitListbrieResultDTO; +import com.epmet.dto.result.*; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.entity.IcPartyUnitEntity; import org.springframework.web.multipart.MultipartFile; @@ -182,4 +179,6 @@ public interface IcPartyUnitService extends BaseService { * @param form */ List getTypepercent(PartyTypepercentFormDTO form); + + void editPartyOrCommunity(CheckStaffInfoResultDTO formDTO); } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java index 1824e1feb3..68a295422a 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java @@ -25,6 +25,7 @@ import com.epmet.dto.form.demand.*; import com.epmet.dto.result.PointRecordResultDTO; import com.epmet.dto.result.demand.*; import com.epmet.entity.IcUserDemandRecEntity; +import com.epmet.entity.ServerInfoDTO; import java.util.List; import java.util.Map; @@ -262,4 +263,6 @@ public interface IcUserDemandRecService extends BaseService page(Map params) { @@ -374,8 +379,29 @@ public class IcCommunitySelfOrganizationServiceImpl extends BaseServiceImpl NumConstant.ZERO) { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "存在未完成的服务", "存在未完成的服务,不能删除"); } - baseDao.deleteById(formDTO.getOrgId()); - personnelService.deleteByOrgId(formDTO.getOrgId()); + //校验是否有同步到通讯录,是否存在工作人员下有未处理项目数据【社会自组织被同步到通讯录部门的,如果部门下人员存在未办结项目则不允许删除】 + boolean bl = true; + IcCommunitySelfOrganizationEntity entity = baseDao.selectById(formDTO.getOrgId()); + if (null != entity && "sync".equals(entity.getSyncType())) { + CheckStaffInfoFormDTO dto = new CheckStaffInfoFormDTO(); + dto.setId(formDTO.getOrgId()); + dto.setDeptId(entity.getDeptId()); + dto.setDeptType("community_org"); + dto.setDeptStaffId(entity.getDeptStaffId()); + Result result = govOrgOpenFeignClient.notSyncDept(dto); + if (!result.success()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "社会自组织删除,取消同步到通讯录数据失败", "社会自组织删除,取消同步到通讯录数据失败"); + } + if (!result.getData().getType()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), result.getData().getMsg(), result.getData().getMsg()); + } + bl = result.getData().getType(); + } + if (bl) { + baseDao.deleteById(formDTO.getOrgId()); + personnelService.deleteByOrgId(formDTO.getOrgId()); + } + } /** diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java index 91dc0baa57..7c6ca5c81c 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java @@ -55,13 +55,12 @@ import com.epmet.dto.form.demand.ServiceQueryFormDTO; import com.epmet.dto.result.*; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.dto.result.demand.ServiceStatDTO; +import com.epmet.entity.IcCommunitySelfOrganizationEntity; import com.epmet.entity.IcPartyUnitEntity; import com.epmet.excel.IcPartyUnitImportExcel; import com.epmet.excel.IcPartyUnitImportFailedExcel; -import com.epmet.feign.EpmetAdminOpenFeignClient; -import com.epmet.feign.EpmetCommonServiceOpenFeignClient; -import com.epmet.feign.EpmetHeartOpenFeignClient; -import com.epmet.feign.OssFeignClient; +import com.epmet.feign.*; +import com.epmet.service.IcCommunitySelfOrganizationService; import com.epmet.service.IcPartyUnitService; import com.epmet.service.IcServiceItemDictService; import com.epmet.service.IcUserDemandRecService; @@ -78,6 +77,7 @@ import org.apache.http.entity.ContentType; import org.apache.poi.ss.usermodel.Workbook; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.commons.CommonsMultipartFile; @@ -111,6 +111,10 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl search(PartyUnitFormDTO formDTO) { @@ -257,8 +261,28 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl NumConstant.ZERO) { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "存在未完成的服务", "存在未完成的服务,不能删除"); } - // 逻辑删除(@TableLogic 注解) - baseDao.deleteById(id); + //校验是否有同步到通讯录,是否存在工作人员下有未处理项目数据【联建单位被同步到通讯录部门的,如果部门下人员存在未办结项目则不允许删除】 + boolean bl = true; + IcPartyUnitEntity entity = baseDao.selectById(id); + if (null != entity && "sync".equals(entity.getSyncType())) { + CheckStaffInfoFormDTO dto = new CheckStaffInfoFormDTO(); + dto.setId(id); + dto.setDeptId(entity.getDeptId()); + dto.setDeptType("party_unit"); + dto.setDeptStaffId(entity.getDeptStaffId()); + Result result = govOrgOpenFeignClient.notSyncDept(dto); + if (!result.success()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "联建单位删除,取消同步到通讯录数据失败", "联建单位删除,取消同步到通讯录数据失败"); + } + if (!result.getData().getType()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), result.getData().getMsg(), result.getData().getMsg()); + } + } + if (bl) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteById(id); + } + } /** @@ -711,4 +735,30 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl page(Map params) { @@ -156,7 +153,35 @@ public class IcServiceRecordV2ServiceImpl extends BaseServiceImpl smsList = new ArrayList<>(); + SendSmsFormDTO sms = new SendSmsFormDTO(); + sms.setCustomerId(customerId); + sms.setMobile(serverInfoDTO.getMobile()); + sms.setAliyunTemplateCode(SmsTemplateConstant.COMMON_SMS_TEM); + Map paramMap = new HashMap<>(); + paramMap.put("content", String.format("%s发起一个【%s】服务,请服务完成后尽快反馈,谢谢合作。", staffInfoCacheResult.getAgencyName(), serviceName)); + sms.setParamMap(paramMap); + smsList.add(sms); + messageOpenFeignClient.sendMsg(smsList); } @Override diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java index b85121ff68..355ca9f008 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java @@ -441,6 +441,9 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl paramsContent=new ArrayList<>(); - paramsContent.add(String.format("%s给您指派了一个新的需求,请查看",staffInfoCacheResult.getAgencyName())); - sms.setParamsContent(paramsContent); + sms.setAliyunTemplateCode(SmsTemplateConstant.COMMON_SMS_TEM); + Map paramMap = new HashMap<>(); + paramMap.put("content", String.format("%s给您指派了一个新的需求,请查看", staffInfoCacheResult.getAgencyName())); + sms.setParamMap(paramMap); smsList.add(sms); messageOpenFeignClient.sendMsg(smsList); - } /** @@ -465,7 +467,7 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl paramsContent; - + // private List paramsContent; + private Map paramMap; private String customerId; } diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SysSmsServiceImpl.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SysSmsServiceImpl.java index ee4c3be657..b001fd7978 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SysSmsServiceImpl.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SysSmsServiceImpl.java @@ -13,7 +13,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.Constant; -import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.ErrorCode; import com.epmet.commons.tools.exception.RenException; @@ -333,16 +332,15 @@ public class SysSmsServiceImpl extends BaseServiceImpl public void sendMsg(List formDTOList) { try { for(SendSmsFormDTO formDTO:formDTOList){ + if (StringUtils.isBlank(formDTO.getAliyunTemplateCode())) { + continue; + } SysSmsDTO sysSmsDTO = new SysSmsDTO(); sysSmsDTO.setMobile(formDTO.getMobile()); sysSmsDTO.setAliyunTemplateCode(formDTO.getAliyunTemplateCode()); sysSmsDTO.setCustomerId(formDTO.getCustomerId()); - HashMap map = new HashMap<>(); try{ - if(SmsTemplateConstant.PROJECT_TRANSFER.equals(formDTO.getAliyunTemplateCode())){ - map.put("params1", formDTO.getParamsContent().get(NumConstant.ZERO)); - } - String paramJson = new ObjectMapper().writeValueAsString(map); + String paramJson = new ObjectMapper().writeValueAsString(formDTO.getParamMap()); sysSmsDTO.setParams(paramJson); } catch (JsonProcessingException e) { log.warn("sendMsg JsonProcessingException", e); diff --git a/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/GovRoleDTO.java b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/GovRoleDTO.java index f4b7ce74e9..0915ba9348 100644 --- a/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/GovRoleDTO.java +++ b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/GovRoleDTO.java @@ -60,6 +60,11 @@ public class GovRoleDTO implements Serializable { */ private Long deptId; + /** + * 是否默认角色【0:否 1:是】 + */ + private String defaultRole; + /** * 删除标识:0.未删除 1.已删除 */ diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/entity/GovRoleEntity.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/entity/GovRoleEntity.java index 654bee9ce6..7db443d5db 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/entity/GovRoleEntity.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/entity/GovRoleEntity.java @@ -46,4 +46,9 @@ public class GovRoleEntity extends BaseEpmetEntity { */ private String customerId; + /** + * 是否默认角色【0:否 1:是】 + */ + private String defaultRole; + } diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/GovRoleServiceImpl.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/GovRoleServiceImpl.java index c171d081d9..be20a94427 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/GovRoleServiceImpl.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/GovRoleServiceImpl.java @@ -22,6 +22,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; 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.exception.RenException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.user.LoginUserUtil; @@ -116,6 +118,11 @@ public class GovRoleServiceImpl extends BaseServiceImpl newRoles; + /** + * 部门类型 + * 联建单位: party_unit + * 社会自组织: community_org + */ + private String deptType; } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/CheckStaffInfoResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/CheckStaffInfoResultDTO.java index 0f500a0cab..01619b955a 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/CheckStaffInfoResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/CheckStaffInfoResultDTO.java @@ -17,8 +17,10 @@ package com.epmet.dto.result; +import com.epmet.dto.form.CheckStaffInfoFormDTO; import lombok.Data; +import javax.validation.constraints.NotBlank; import java.io.Serializable; @@ -41,10 +43,41 @@ public class CheckStaffInfoResultDTO implements Serializable { * 数据库中工作人员姓名【返参姓名有值的则需要更新工作人员信息】 */ private String personName; + /** + * 联建单位、社会自组织Id + */ + private String id; + /** + * 部门Id + */ + private String deptId; + /** + * 联建单位: party_unit + * 社会自组织: community_org + */ + private String deptType; + /** + * 部门下工作人员Id + */ + private String deptStaffId; + /** + * 已同步:sync 未同步:not_sync + */ + private String syncType; + + + //token中信息 + private String customerId; + private String userId; /** - * 类型,后端使用 + * 后端使用 */ - private Boolean key = true; + //工作人员添加入口Id(agencyId;deptId;gridId) + private String orgId = ""; + //工作人员添加入口类型(组织:agency;部门:dept;网格:gridId) + private String orgType = ""; + //工作人员Id,后端使用 + private String staffId = ""; } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java index 7e2bcae37e..3abfbc588e 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java @@ -705,4 +705,7 @@ public interface GovOrgOpenFeignClient { */ @PostMapping("/gov/org/ichouse/getOwnerHouseList") Result> getOwnerHouseList(@RequestBody IcHouseDTO formDTO); + + @PostMapping("/gov/org/department/notsyncdept") + Result notSyncDept(@RequestBody CheckStaffInfoFormDTO formDTO); } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java index f9046d5979..8d020c4538 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java @@ -459,4 +459,9 @@ public class GovOrgOpenFeignClientFallback implements GovOrgOpenFeignClient { return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getOwnerHouseList", formDTO); } + @Override + public Result notSyncDept(CheckStaffInfoFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "notSyncDept", formDTO); + } + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/DepartmentController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/DepartmentController.java index fac881ed3e..da70a814b7 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/DepartmentController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/DepartmentController.java @@ -162,16 +162,42 @@ public class DepartmentController { return new Result>().ok(deptList); } - /** * @Author sun * @Description 根据手机号姓名查询人员信息,联建单位、社会自组织新增使用 */ @PostMapping("checkstaffinfo") public Result checkStaffInfo(@LoginUser TokenDto tokenDTO, @RequestBody CheckStaffInfoFormDTO formDTO) { - ValidatorUtils.validateEntity(formDTO, CheckStaffInfoFormDTO.Check.class); + ValidatorUtils.validateEntity(formDTO, CheckStaffInfoFormDTO.CheckAdd.class); formDTO.setCustomerId(tokenDTO.getCustomerId()); - formDTO.setStaffId(tokenDTO.getUserId()); + formDTO.setUserId(tokenDTO.getUserId()); return new Result().ok(departmentService.checkStaffInfo(formDTO)); } + + /** + * @Author sun + * @Description 联建单位、社会自组织同步到通讯录操作 + */ + @PostMapping("syncdept") + public Result syncDept(@LoginUser TokenDto tokenDTO, @RequestBody CheckStaffInfoFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, CheckStaffInfoFormDTO.CheckAdd.class); + formDTO.setCustomerId(tokenDTO.getCustomerId()); + formDTO.setUserId(tokenDTO.getUserId()); + return new Result().ok(departmentService.syncDept(formDTO)); + } + + /** + * @Author sun + * @Description 联建单位、社会自组织取消同步 + */ + @PostMapping("notsyncdept") + public Result notSyncDept(@LoginUser TokenDto tokenDTO, @RequestBody CheckStaffInfoFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, CheckStaffInfoFormDTO.CheckEdit.class); + formDTO.setCustomerId(tokenDTO.getCustomerId()); + formDTO.setUserId(tokenDTO.getUserId()); + return new Result().ok(departmentService.notSyncDept(formDTO)); + } + + + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/DepartmentService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/DepartmentService.java index d1f589b26e..adcf468e9d 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/DepartmentService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/DepartmentService.java @@ -103,4 +103,8 @@ public interface DepartmentService { List listDepartmentListByStaffId(String staffId); CheckStaffInfoResultDTO checkStaffInfo(CheckStaffInfoFormDTO formDTO); + + CheckStaffInfoResultDTO syncDept(CheckStaffInfoFormDTO formDTO); + + CheckStaffInfoResultDTO notSyncDept(CheckStaffInfoFormDTO formDTO); } 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 aa8d6c1db8..22fcda5a1e 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 @@ -17,6 +17,7 @@ package com.epmet.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; @@ -33,20 +34,15 @@ import com.epmet.dao.CustomerAgencyDao; import com.epmet.dao.CustomerDepartmentDao; import com.epmet.dao.CustomerStaffDepartmentDao; import com.epmet.dao.StaffOrgRelationDao; -import com.epmet.dto.CustomerDepartmentDTO; -import com.epmet.dto.CustomerIdDTO; -import com.epmet.dto.CustomerStaffDTO; -import com.epmet.dto.CustomerStaffDepartmentDTO; +import com.epmet.dto.*; import com.epmet.dto.form.*; import com.epmet.dto.result.*; -import com.epmet.entity.CustomerAgencyEntity; -import com.epmet.entity.CustomerDepartmentEntity; -import com.epmet.entity.CustomerStaffDepartmentEntity; +import com.epmet.entity.*; +import com.epmet.feign.EpmetHeartOpenFeignClient; import com.epmet.feign.EpmetUserFeignClient; import com.epmet.feign.EpmetUserOpenFeignClient; -import com.epmet.service.CustomerDepartmentService; -import com.epmet.service.CustomerStaffDepartmentService; -import com.epmet.service.DepartmentService; +import com.epmet.feign.GovProjectOpenFeignClient; +import com.epmet.service.*; import com.epmet.util.ModuleConstant; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -55,8 +51,10 @@ 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; import java.util.List; /** @@ -86,6 +84,17 @@ public class DepartmentServiceImpl implements DepartmentService { private EpmetUserOpenFeignClient epmetUserOpenFeignClient; @Autowired private StaffOrgRelationDao staffOrgRelationDao; + @Autowired + private CustomerStaffAgencyService customerStaffAgencyService; + @Autowired + private CustomerAgencyService customerAgencyService; + @Autowired + private StaffOrgRelationService staffOrgRelationService; + @Autowired + private EpmetHeartOpenFeignClient epmetHeartOpenFeignClient; + @Autowired + private GovProjectOpenFeignClient govProjectOpenFeignClient; + /** * @param formDTO * @return @@ -294,6 +303,13 @@ public class DepartmentServiceImpl implements DepartmentService { @Override public CheckStaffInfoResultDTO checkStaffInfo(CheckStaffInfoFormDTO formDTO) { CheckStaffInfoResultDTO resultDTO = new CheckStaffInfoResultDTO(); + resultDTO.setCustomerId(formDTO.getCustomerId()); + resultDTO.setUserId(formDTO.getUserId()); + //座机号的直接返回 + if(formDTO.getMobile().startsWith("0")){ + resultDTO.setMsg("座机账号无法创建账号,建议使用填写手机号,否则将无法获取通知信息"); + return resultDTO; + } //1.根据手机号查询客户下工作人员信息 CustomerStaffFormDTO user = new CustomerStaffFormDTO(); user.setCustomerId(formDTO.getCustomerId()); @@ -314,29 +330,29 @@ public class DepartmentServiceImpl implements DepartmentService { if (CollectionUtils.isEmpty(list)) { return resultDTO; } + resultDTO.setOrgId(list.get(0).getOrgId()); + resultDTO.setOrgType(list.get(0).getOrgType()); + resultDTO.setStaffId(list.get(0).getStaffId()); //3.校验工作人员的注册关系【从哪里新增进来的工作人员】 //获取当前操作人员缓存信息 - CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getStaffId()); + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId()); if (null == staffInfo) { - throw new EpmetException(String.format("查询工作人员%s缓存信息失败...", formDTO.getStaffId())); + throw new EpmetException(String.format("查询工作人员%s缓存信息失败...", formDTO.getUserId())); } //所属组织信息不同的给提示【所属组织不同时则不新增部门、不新增工作人员】 if (!list.get(0).getAgencyId().equals(staffInfo.getAgencyId())) { resultDTO.setMsg("联系电话已存在其他组织工作账号中,请使用其他手机号,否则将无法获取通知信息"); - resultDTO.setKey(false); return resultDTO; } //从网格下添加的人给提示【网格下加的人时则不新增部门、不新增工作人员】 - if ("gridId".equals(list.get(0).getOrgType())) { + if (!"agency".equals(list.get(0).getOrgType())) { resultDTO.setMsg("联系电话已存在其他部门工作账号中,请先将该工作人员调动至本组织下,再次添加"); - resultDTO.setKey(false); return resultDTO; } //账号被禁用的给提示【人员被禁用的则不新增部门、不新增工作人员】 if ("disabled".equals(userResult.getData().getEnableFlag())) { resultDTO.setMsg("该工作人员账号已被禁用,请使用其他联系电话,否则将无法获取通知信息"); - resultDTO.setKey(false); return resultDTO; } //姓名不一样的给反馈 @@ -348,5 +364,173 @@ public class DepartmentServiceImpl implements DepartmentService { return resultDTO; } + @Override + @Transactional(rollbackFor = Exception.class) + public CheckStaffInfoResultDTO syncDept(CheckStaffInfoFormDTO formDTO) { + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId()); + if (null == staffInfo) { + throw new EpmetException(String.format("查询工作人员%s缓存信息失败...", formDTO.getUserId())); + } + //1.校验当前数据是否允许操作 + CheckStaffInfoResultDTO resultDTO = checkStaffInfo(formDTO); + if(!resultDTO.getType()){ + return resultDTO; + } + //2.根据校验结果操作数据 + //2-1.没查到人的直接新增部门、人员 + if(StringUtils.isBlank(resultDTO.getOrgType())){ + //一、新增工作人员 + StaffSubmitFromDTO submitDTO = ConvertUtils.sourceToTarget(formDTO, StaffSubmitFromDTO.class); + submitDTO.setName(formDTO.getPersonName()); + submitDTO.setAgencyId(staffInfo.getAgencyId()); + submitDTO.setGender(0); + submitDTO.setWorkType("fulltime"); + Result staffResult = epmetUserOpenFeignClient.deptToAddStaff(submitDTO); + if (!staffResult.success()) { + throw new RenException("人员添加失败" + staffResult.getMsg()); + } + //二、新增部门 + AddDepartmentFormDTO deptDTO = new AddDepartmentFormDTO(); + deptDTO.setAgencyId(staffInfo.getAgencyId()); + deptDTO.setDepartmentDuty(""); + deptDTO.setDepartmentName(formDTO.getDeptName()); + deptDTO.setTotalUser(1); + Result deptResult = addDepartment(deptDTO); + //三、新增组织人员关系数据 + //人员机关关系表 + CustomerStaffAgencyEntity customerStaffAgencyEntity = new CustomerStaffAgencyEntity(); + customerStaffAgencyEntity.setCustomerId(formDTO.getCustomerId()); + customerStaffAgencyEntity.setUserId(staffResult.getData().getUserId()); + customerStaffAgencyEntity.setAgencyId(staffInfo.getAgencyId()); + customerStaffAgencyService.insert(customerStaffAgencyEntity); + //机关总人数加一 + OrgResultDTO orgDTO = customerAgencyDao.selectAgencyDetail(staffInfo.getAgencyId(), "agency"); + CustomerAgencyEntity agencyEntity = new CustomerAgencyEntity(); + agencyEntity.setId(staffInfo.getAgencyId()); + agencyEntity.setTotalUser(orgDTO.getTotalUser() + 1); + customerAgencyService.updateById(agencyEntity); + //工作人员注册组织关系表新增数据 + StaffOrgRelationEntity staffOrgRelationEntity = new StaffOrgRelationEntity(); + staffOrgRelationEntity.setCustomerId(formDTO.getCustomerId()); + staffOrgRelationEntity.setPids(("".equals(orgDTO.getPids()) ? "" : orgDTO.getPids())); + staffOrgRelationEntity.setStaffId(staffResult.getData().getUserId()); + staffOrgRelationEntity.setOrgId(staffInfo.getAgencyId()); + staffOrgRelationEntity.setOrgType("agency"); + staffOrgRelationService.insert(staffOrgRelationEntity); + + //四、部门下新增人员关系数据 + CustomerStaffDepartmentEntity dept = new CustomerStaffDepartmentEntity(); + dept.setCustomerId(formDTO.getCustomerId()); + dept.setUserId(staffResult.getData().getUserId()); + dept.setDepartmentId(deptResult.getData().getDepartmentId()); + customerStaffDepartmentService.insert(dept); + //修改联建单位/社会自组织业务数据 + resultDTO.setId(formDTO.getId()); + resultDTO.setDeptId(deptResult.getData().getDepartmentId()); + resultDTO.setDeptType(formDTO.getDeptType()); + resultDTO.setDeptStaffId(staffResult.getData().getUserId()); + resultDTO.setSyncType("sync"); + Result heartResult = epmetHeartOpenFeignClient.editPartyOrCommunity(resultDTO); + if (!heartResult.success()) { + throw new RenException("修改联建单位/社会自组织业务数据失败" + heartResult.getMsg()); + } + + } + //2-2.查到是组织下的人,新增部门,绑定部门人员关系 + if(("agency".equals(resultDTO.getOrgType()))){ + //一、更新人员基础数据[姓名 手机号信息] + CustomerStaffDTO staffDTO = new CustomerStaffDTO(); + staffDTO.setCustomerId(formDTO.getCustomerId()); + staffDTO.setUserId(resultDTO.getStaffId()); + staffDTO.setRealName(formDTO.getPersonName()); + staffDTO.setMobile(formDTO.getMobile()); + staffDTO.setUpdatedTime(new Date()); + staffDTO.setUpdatedBy(resultDTO.getUserId()); + Result result = epmetUserOpenFeignClient.editToStaff(staffDTO); + if (!result.success()) { + throw new RenException("更新工作人员基础信息失败" + result.getMsg()); + } + //二、新增部门数据 + AddDepartmentFormDTO deptDTO = new AddDepartmentFormDTO(); + deptDTO.setAgencyId(staffInfo.getAgencyId()); + deptDTO.setDepartmentDuty(""); + deptDTO.setDepartmentName(formDTO.getDeptName()); + deptDTO.setTotalUser(1); + Result deptResult = addDepartment(deptDTO); + //三、部门下新增人员关系数据 + CustomerStaffDepartmentEntity dept = new CustomerStaffDepartmentEntity(); + dept.setCustomerId(formDTO.getCustomerId()); + dept.setUserId(resultDTO.getStaffId()); + dept.setDepartmentId(deptResult.getData().getDepartmentId()); + customerStaffDepartmentService.insert(dept); + //修改联建单位/社会自组织业务数据 + resultDTO.setId(formDTO.getId()); + resultDTO.setDeptId(deptResult.getData().getDepartmentId()); + resultDTO.setDeptType(formDTO.getDeptType()); + resultDTO.setDeptStaffId(resultDTO.getStaffId()); + resultDTO.setSyncType("sync"); + Result heartResult = epmetHeartOpenFeignClient.editPartyOrCommunity(resultDTO); + if (!heartResult.success()) { + throw new RenException("修改联建单位/社会自组织业务数据失败" + heartResult.getMsg()); + } + } + + return resultDTO; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public CheckStaffInfoResultDTO notSyncDept(CheckStaffInfoFormDTO formDTO) { + CheckStaffInfoResultDTO resultDTO = new CheckStaffInfoResultDTO(); + //1.校验当前部门下工作人员是否有代办项目 + ProjectListFromDTO project = new ProjectListFromDTO(); + project.setUserId(formDTO.getDeptStaffId()); + Result> projectResult = govProjectOpenFeignClient.staffPendingProject(project); + if (!projectResult.success()) { + throw new RenException("获取工作人员代办项目数据失败" + projectResult.getMsg()); + } + if(projectResult.getData().size()>NumConstant.ZERO){ + String msg = String.format("当前%s下负责人存在未办结的项目,请先将待处理项目办结后再操作",("party_unit".equals(formDTO.getDeptType())?"联建单位":"社会自组织")); + resultDTO.setMsg(msg); + } + //2.无代办项目的则删除部门、工作人员信息、修改联建单位/社会自组织业务数据 + //2-1.删除部门 + customerDepartmentDao.deleteById(formDTO.getId()); + //2-2.删除部门人员关系数据 + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(CustomerStaffDepartmentEntity::getDepartmentId, formDTO.getDeptId()); + query.eq(CustomerStaffDepartmentEntity::getUserId, formDTO.getDeptStaffId()); + customerStaffDepartmentDao.delete(query); + //2-3.删除人员注册关系数据 + LambdaQueryWrapper StaffOrgRelation = new LambdaQueryWrapper<>(); + StaffOrgRelation.eq(StaffOrgRelationEntity::getOrgId, formDTO.getDeptId()); + StaffOrgRelation.eq(StaffOrgRelationEntity::getStaffId, formDTO.getDeptStaffId()); + staffOrgRelationDao.delete(StaffOrgRelation); + //2-4.删除工作人员数据 + CustomerStaffDTO staffDTO = new CustomerStaffDTO(); + staffDTO.setCustomerId(formDTO.getCustomerId()); + staffDTO.setUserId(formDTO.getDeptStaffId()); + staffDTO.setDelFlag(1); + staffDTO.setUpdatedTime(new Date()); + staffDTO.setUpdatedBy(formDTO.getUserId()); + Result result = epmetUserOpenFeignClient.editToStaff(staffDTO); + if (!result.success()) { + throw new RenException("更新工作人员基础信息失败" + result.getMsg()); + } + //2-5.修改联建单位/社会自组织业务数据 + resultDTO.setId(formDTO.getId()); + resultDTO.setDeptId(formDTO.getDeptId()); + resultDTO.setDeptType(formDTO.getDeptType()); + resultDTO.setDeptStaffId(formDTO.getDeptStaffId()); + resultDTO.setSyncType("not_sync"); + Result heartResult = epmetHeartOpenFeignClient.editPartyOrCommunity(resultDTO); + if (!heartResult.success()) { + throw new RenException("修改联建单位/社会自组织业务数据失败" + heartResult.getMsg()); + } + + resultDTO.setType(true); + return resultDTO; + } + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java index 1242d3064b..7907ac7ec5 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java @@ -175,5 +175,7 @@ public interface GovProjectOpenFeignClient { @PostMapping("gov/project/icEvent/closeprojectordemand") Result closeProjectOrDemand(@RequestBody ColseProjectOrDemandFormDTO formDTO); + @PostMapping("gov/project/project/staffpendingproject") + Result> staffPendingProject(@RequestBody ProjectListFromDTO formDTO); } diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java index 49a969f91e..51f7922ba5 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java @@ -169,4 +169,9 @@ public class GovProjectOpenFeignClientFallback implements GovProjectOpenFeignCli public Result closeProjectOrDemand(ColseProjectOrDemandFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "closeProjectOrDemand",formDTO); } + + @Override + public Result> staffPendingProject(ProjectListFromDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "staffPendingProject",formDTO); + } } 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 03bb218bd1..fb8bcad8fd 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 @@ -379,4 +379,12 @@ public class ProjectController { ValidatorUtils.validateEntity(formDTO, SatisfactionEvaluationListFormDTO.SatisfactionEvaluationListForm.class); return new Result().ok(projectService.satisfactionEvaluationList(formDTO)); } + + /** + * Desc: 查询客户下工作人员是否有代办项目 + */ + @PostMapping("staffpendingproject") + public Result> staffPendingProject(@RequestBody ProjectListFromDTO fromDTO){ + return new Result>().ok(projectService.staffPendingProject(fromDTO)); + } } \ 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 82a88d3a5b..2e5fd4fd76 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 @@ -395,4 +395,5 @@ public interface ProjectService extends BaseService { */ void projectListExport(HttpServletResponse response,ProjectManageListFormDTO formDTO) throws IOException; + List staffPendingProject(ProjectListFromDTO fromDTO); } \ No newline at end of file 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 a9f4ca0093..7d26d3f9a0 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 @@ -3445,4 +3445,13 @@ public class ProjectServiceImpl extends BaseServiceImpl staffPendingProject(ProjectListFromDTO fromDTO) { + fromDTO.setPageNo(0); + fromDTO.setPageSize(1); + List projectList = baseDao.selectPendList(fromDTO); + return projectList; + } + } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java index 5cd018c37c..d6f6215b11 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java @@ -859,4 +859,10 @@ public interface EpmetUserOpenFeignClient { @PostMapping("/epmetuser/customerstaff/staffdetailinfo") Result staffDetailInfo(@RequestBody CustomerStaffFormDTO formDTO); + @PostMapping("/epmetuser/customerstaff/depttoaddstaff") + Result deptToAddStaff(@RequestBody StaffSubmitFromDTO fromDTO); + + @PostMapping("/epmetuser/customerstaff/edittostaff") + Result editToStaff(@RequestBody CustomerStaffDTO formDTO); + } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java index 6491dc477d..b6133865ad 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java @@ -651,4 +651,14 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "staffDetailInfo", formDTO); } + @Override + public Result deptToAddStaff(StaffSubmitFromDTO fromDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "deptToAddStaff", fromDTO); + } + + @Override + public Result editToStaff(CustomerStaffDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "editToStaff", formDTO); + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/CustomerStaffController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/CustomerStaffController.java index f3a5d6bd99..cebe012041 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/CustomerStaffController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/CustomerStaffController.java @@ -498,5 +498,17 @@ public class CustomerStaffController { return new Result().ok(customerStaffService.staffDetailInfo(formDTO)); } + @PostMapping("depttoaddstaff") + public Result dedittostaffeptToAddStaff(@RequestBody StaffSubmitFromDTO fromDTO){ + Result result = customerStaffService.deptToAddStaff(fromDTO); + return result; + } + + @PostMapping(value = "edittostaff") + public Result editToStaff(@RequestBody CustomerStaffDTO formDTO) { + customerStaffService.editToStaff(formDTO); + return new Result(); + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/CustomerStaffDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/CustomerStaffDao.java index 725a456b46..3cce3ff4b6 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/CustomerStaffDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/CustomerStaffDao.java @@ -229,4 +229,6 @@ public interface CustomerStaffDao extends BaseDao { * @Description 工作人员基本信息 **/ List gridStaffMobileList(List staffIdList); + + void edit(CustomerStaffDTO formDTO); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/CustomerStaffService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/CustomerStaffService.java index 16d6e83189..6e6000b6db 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/CustomerStaffService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/CustomerStaffService.java @@ -349,4 +349,8 @@ public interface CustomerStaffService extends BaseService { List gridMobileList(String gridId, String userId); CustomerStaffDTO staffDetailInfo(CustomerStaffFormDTO formDTO); + + Result deptToAddStaff(StaffSubmitFromDTO fromDTO); + + void editToStaff(CustomerStaffDTO formDTO); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java index 1caf9abf5a..b25d014fc5 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java @@ -60,12 +60,14 @@ import com.epmet.service.UserService; import com.epmet.util.ModuleConstant; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.apache.ibatis.annotations.Param; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; 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.*; import java.util.stream.Collectors; @@ -874,4 +876,32 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl deptToAddStaff(StaffSubmitFromDTO fromDTO) { + //1.查询客户小程序端'工作人员'角色 + GovStaffRoleDTO govRole = govStaffRoleDao.getRoleByCustomerIdAndRoleKey(fromDTO.getCustomerId(), "staff"); + List roles = new ArrayList<>(); + roles.add(govRole.getId()); + fromDTO.setRoles(roles); + + //2.查询客户管理平台对应角色【联建单位负责人、社区自组织负责人】 + GovRoleListDTO roleDTO = new GovRoleListDTO(); + roleDTO.setName("party_unit".equals(fromDTO.getDeptType())?"联建单位负责人":"社区自组织负责人"); + Result resultRole = govAccessFeignClient.getGovRole(roleDTO); + if (!resultRole.success()) { + throw new RenException("人员添加失败" + resultRole.getMsg()); + } + List newRoles = new ArrayList<>(); + newRoles.add(resultRole.getData().getId()); + + //3.新增工作人员 + Result result = addStaff(fromDTO); + return result; + } + + @Override + public void editToStaff(CustomerStaffDTO formDTO) { + baseDao.edit(formDTO); + } + } 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 10965b93ce..62a9312c6d 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 @@ -456,4 +456,19 @@ + + UPDATE customer_staff + + real_name = #{realName}, + mobile = #{mobile}, + updated_by = #{updatedBy}, + updated_time = #{updatedTime}, + del_flag = #{delFlag} + + WHERE + del_flag = '0' + AND customer_id = #{customerId} + AND user_id = #{userId} + +