From 929189c56f841b37443fbb67adf88fc36b88a4bb Mon Sep 17 00:00:00 2001 From: wxz Date: Mon, 15 May 2023 20:33:54 +0800 Subject: [PATCH] =?UTF-8?q?=E7=81=B5=E5=B1=B1=E5=A4=A7=E5=B1=8F=E4=B8=AD?= =?UTF-8?q?=E5=A4=AE=E4=B8=80=E6=B3=A2=E4=BB=A3=E7=A0=81=E3=80=82=E8=BF=98?= =?UTF-8?q?=E5=A4=A7=E5=B1=8F=E4=B8=8A=E4=BB=A3=E5=8A=9E=E5=91=98=E7=9A=84?= =?UTF-8?q?=E4=BB=A3=E5=8A=9E=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3=E6=B2=A1?= =?UTF-8?q?=E5=86=99=EF=BC=8C=E6=98=8E=E5=A4=A9=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../result/LingShanScreenAgentRstDTO.java | 21 +++ .../result/LingshanServiceAgentAgentList.java | 4 + .../feign/DataAggregatorOpenFeignClient.java | 49 +++++ ...DataAggregatorOpenFeignClientFallback.java | 16 ++ .../LingShanServiceAgentController.java | 32 ++++ .../dao/epmetuser/CustomerStaffDao.java | 10 + .../service/LingShanServiceAgentService.java | 6 + .../service/epmetuser/EpmetUserService.java | 2 + .../epmetuser/impl/EpmetUserServiceImpl.java | 20 +- .../service/govorg/GovOrgService.java | 3 + .../govorg/impl/GovOrgServiceImpl.java | 18 ++ .../impl/LingShanServiceAgentServiceImpl.java | 137 ++++++++++++-- .../mapper/epmetuser/CustomerStaffDao.xml | 19 ++ .../mapper/govorg/CustomerStaffGridDao.xml | 1 + .../LingShanScreenAgentRstDTO.java | 21 +++ .../LingShanScreenServiceRstDTO.java | 20 ++ .../ScreenCatalogueQtyStatsRstDTO.java | 22 +++ .../LingShanAgentServiceController.java | 56 +++++- .../dao/LingshanAgentServiceRecordDao.java | 15 +- .../service/LingShanAgentServiceService.java | 11 +- .../impl/LingShanAgentServiceServiceImpl.java | 178 +++++++++++++++++- .../mapper/LingshanAgentServiceRecordDao.xml | 22 +++ 22 files changed, 648 insertions(+), 35 deletions(-) create mode 100644 epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/LingShanScreenAgentRstDTO.java create mode 100644 epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/agentservice/LingShanScreenAgentRstDTO.java create mode 100644 epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/agentservice/LingShanScreenServiceRstDTO.java create mode 100644 epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/agentservice/ScreenCatalogueQtyStatsRstDTO.java diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/LingShanScreenAgentRstDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/LingShanScreenAgentRstDTO.java new file mode 100644 index 0000000000..a4eefe5aa1 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/LingShanScreenAgentRstDTO.java @@ -0,0 +1,21 @@ +package com.epmet.dataaggre.dto.epmetuser.result; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Description 灵山代办员信息 + * @Author wangxianzhang + * @Time 2023/5/15 2:57 PM + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class LingShanScreenAgentRstDTO { + + private String agentName; + private String longitude; + private String latitude; + private String mobile; +} \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/LingshanServiceAgentAgentList.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/LingshanServiceAgentAgentList.java index 49fa8d30d9..49776b5240 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/LingshanServiceAgentAgentList.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/LingshanServiceAgentAgentList.java @@ -22,4 +22,8 @@ public class LingshanServiceAgentAgentList { private String mobile; private String idCard; + private String longitude; + + private String latitude; + } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/feign/DataAggregatorOpenFeignClient.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/feign/DataAggregatorOpenFeignClient.java index 8d2624af35..db47eb69ca 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/feign/DataAggregatorOpenFeignClient.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/feign/DataAggregatorOpenFeignClient.java @@ -5,13 +5,16 @@ import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.Result; import com.epmet.dataaggre.dto.epmetuser.form.ResisByPolicyRulesFormDTO; +import com.epmet.dataaggre.dto.epmetuser.result.LingshanServiceAgentAgentList; import com.epmet.dataaggre.dto.epmetuser.result.ResiByPolicyInfoResultDTO; import com.epmet.dataaggre.dto.govorg.form.GridLivelyFormDTO; import com.epmet.dataaggre.dto.govorg.result.GridLivelyResultDTO; import com.epmet.dataaggre.feign.impl.DataAggregatorOpenFeignClientFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @@ -40,4 +43,50 @@ public interface DataAggregatorOpenFeignClient { */ @PostMapping(value = "data/aggregator/org/gridlively") Result> grdiLively(@RequestBody GridLivelyFormDTO form); + + /** + * @description: 工作端pc,代办员列表 + * @param pageNo: + * @param pageSize: + * @param orgId: + * @param orgType: + * @param agentName: + * @param mobile: + * @param idCard: + * @return + * @author: WangXianZhang + * @date: 2023/5/9 4:30 PM + */ + @GetMapping("data/aggregator/lingshan/serviceAgent/workpc/agentList") + Result> workPcAgentList(@RequestParam("pageNo") Integer pageNo, + @RequestParam("pageSize") Integer pageSize, + @RequestParam(value = "orgId", required = false) String orgId, + @RequestParam(value = "orgType", required = false) String orgType, + @RequestParam(value = "agentName",required = false) String agentName, + @RequestParam(value = "mobile", required = false) Integer mobile, + @RequestParam(value = "idCard", required = false) Integer idCard); + + /** + * @Description: 大屏-代办员数量 + * @param orgId: + * @param orgType: + * @Return com.epmet.commons.tools.utils.Result + * @Author: wangxianzhang + * @Date: 2023/5/15 10:29 AM + */ + @GetMapping("data/aggregator/lingshan/serviceAgent/screen/agentQty") + Result lingshanScreenAgentQty(@RequestParam(value = "orgId", required = false) String orgId, + @RequestParam(value = "orgType", required = false) String orgType); + + /** + * @Description: 大屏:代办员列表 + * @param orgId: + * @param orgType: + * @Return com.epmet.commons.tools.utils.Result> + * @Author: wangxianzhang + * @Date: 2023/5/15 4:57 PM + */ + @GetMapping("data/aggregator/lingshan/serviceAgent/screen/agentList") + Result> screenAgentList(@RequestParam(value = "orgId", required = false) String orgId, + @RequestParam(value = "orgType", required = false) String orgType); } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/feign/impl/DataAggregatorOpenFeignClientFallback.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/feign/impl/DataAggregatorOpenFeignClientFallback.java index c180033e19..b74bbee020 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/feign/impl/DataAggregatorOpenFeignClientFallback.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/feign/impl/DataAggregatorOpenFeignClientFallback.java @@ -5,6 +5,7 @@ import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.dataaggre.dto.epmetuser.form.ResisByPolicyRulesFormDTO; +import com.epmet.dataaggre.dto.epmetuser.result.LingshanServiceAgentAgentList; import com.epmet.dataaggre.dto.epmetuser.result.ResiByPolicyInfoResultDTO; import com.epmet.dataaggre.dto.govorg.form.GridLivelyFormDTO; import com.epmet.dataaggre.dto.govorg.result.GridLivelyResultDTO; @@ -32,4 +33,19 @@ public class DataAggregatorOpenFeignClientFallback implements DataAggregatorOpen public Result> grdiLively(GridLivelyFormDTO form) { return ModuleUtils.feignConError(ServiceConstant.DATA_AGGREGATOR_SERVER, "grdiLively",form); } + + @Override + public Result lingshanScreenAgentQty(String orgId, String orgType) { + return ModuleUtils.feignConError(ServiceConstant.DATA_AGGREGATOR_SERVER, "lingshanScreenAgentQty",orgId, orgType); + } + + @Override + public Result> workPcAgentList(Integer pageNo, Integer pageSize, String orgId, String orgType, String agentName, Integer mobile, Integer idCard) { + return ModuleUtils.feignConError(ServiceConstant.DATA_AGGREGATOR_SERVER, "workPcAgentList",pageNo, pageSize, orgId, orgType, agentName, mobile, idCard); + } + + @Override + public Result> screenAgentList(String orgId, String orgType) { + return ModuleUtils.feignConError(ServiceConstant.DATA_AGGREGATOR_SERVER, "screenAgentList", orgId, orgType); + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/LingShanServiceAgentController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/LingShanServiceAgentController.java index 0a84670f82..1614fd5453 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/LingShanServiceAgentController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/LingShanServiceAgentController.java @@ -10,6 +10,8 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + @RestController @RequestMapping("lingshan/serviceAgent") public class LingShanServiceAgentController { @@ -43,4 +45,34 @@ public class LingShanServiceAgentController { return new Result>().ok(pd); } + /** + * @Description: 大屏-代办员数量 + * @param orgId: + * @param orgType: + * @Return com.epmet.commons.tools.utils.Result + * @Author: wangxianzhang + * @Date: 2023/5/15 10:29 AM + */ + @GetMapping("screen/agentQty") + public Result lingshanScreenAgentQty(@RequestParam(value = "orgId", required = false) String orgId, + @RequestParam(value = "orgType", required = false) String orgType) { + + return new Result().ok(lingShanServiceAgentService.lingshanScreenAgentQty(orgId, orgType)); + } + + /** + * @Description: 大屏:代办员列表 + * @param orgId: + * @param orgType: + * @Return com.epmet.commons.tools.utils.Result> + * @Author: wangxianzhang + * @Date: 2023/5/15 4:57 PM + */ + @GetMapping("screen/agentList") + public Result> screenAgentList(@RequestParam(value = "orgId", required = false) String orgId, + @RequestParam(value = "orgType", required = false) String orgType) { + + List rl = lingShanServiceAgentService.screenAgentList(orgId, orgType); + return new Result>().ok(rl); + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerStaffDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerStaffDao.java index cd6059ed50..617c216415 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerStaffDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/CustomerStaffDao.java @@ -101,4 +101,14 @@ public interface CustomerStaffDao extends BaseDao { @Param("mobile") Integer mobile, @Param("realname") String realname, @Param("idCard") Integer idCard); + + /** + * @Description: 查询网格下具有某角色的工作人员数量 + * @param staffIds: + * @param roleId: + * @Return java.lang.Integer + * @Author: wangxianzhang + * @Date: 2023/5/15 11:21 AM + */ + Integer countStaffQtyByStaffIdsAndRole(@Param("staffIds") Set staffIds, @Param("roleId") String roleId); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/LingShanServiceAgentService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/LingShanServiceAgentService.java index 779d4c26b7..6cb2f1c5ec 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/LingShanServiceAgentService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/LingShanServiceAgentService.java @@ -3,6 +3,12 @@ package com.epmet.dataaggre.service; import com.epmet.commons.tools.page.PageData; import com.epmet.dataaggre.dto.epmetuser.result.LingshanServiceAgentAgentList; +import java.util.List; + public interface LingShanServiceAgentService { PageData workPcAgentList(String orgId, String orgType, String agentName, Integer mobile, Integer idCard, Integer pageNo, Integer pageSize); + + Integer lingshanScreenAgentQty(String orgId, String orgType); + + List screenAgentList(String orgId, String orgType); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java index 53fb0f2880..ec87a71781 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java @@ -267,4 +267,6 @@ public interface EpmetUserService { PageData staffListInGridsOfRole(String roleKey, Set staffIds, String agentName, Integer mobile, Integer idCard, Integer pageNo, Integer pageSize); + + Integer staffQtyInGridsOfRole(String roleKeyAgent, Set staffIds); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java index e6bfd22670..9e04d840db 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java @@ -1155,8 +1155,13 @@ public class EpmetUserServiceImpl implements EpmetUserService, ResultDataResolve public PageData staffListInGridsOfRole(String roleKey, Set staffIds, String agentName, Integer mobile, Integer idCard, Integer pageNo, Integer pageSize) { + String customerId; + if (StringUtils.isBlank(customerId = EpmetRequestHolder.getLoginUserCustomerId())) { + throw new EpmetException(EpmetErrorCode.ERR10005.getCode()); + } + LambdaQueryWrapper rq = new LambdaQueryWrapper<>(); - rq.eq(GovStaffRoleEntity::getCustomerId, EpmetRequestHolder.getLoginUserCustomerId()); + rq.eq(GovStaffRoleEntity::getCustomerId, customerId); rq.eq(GovStaffRoleEntity::getRoleKey, roleKey); GovStaffRoleEntity role = govStaffRoleDao.selectOne(rq); if (role == null) { @@ -1169,4 +1174,17 @@ public class EpmetUserServiceImpl implements EpmetUserService, ResultDataResolve return new PageData<>(ss, new PageInfo<>(ss).getTotal()); } + + @Override + public Integer staffQtyInGridsOfRole(String roleKey, Set staffIds) { + LambdaQueryWrapper rq = new LambdaQueryWrapper<>(); + rq.eq(GovStaffRoleEntity::getCustomerId, EpmetRequestHolder.getLoginUserCustomerId()); + rq.eq(GovStaffRoleEntity::getRoleKey, roleKey); + GovStaffRoleEntity role = govStaffRoleDao.selectOne(rq); + if (role == null) { + return 0; + } + + return customerStaffDao.countStaffQtyByStaffIdsAndRole(staffIds, role.getId()); + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java index 1828e4c713..d8ffe1e59b 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java @@ -14,6 +14,7 @@ import com.epmet.dataaggre.dto.govorg.form.*; import com.epmet.dataaggre.dto.govorg.result.*; import com.epmet.dataaggre.dto.resigroup.result.OrgInfoCommonDTO; import com.epmet.dataaggre.entity.govorg.CustomerAgencyEntity; +import com.epmet.dataaggre.entity.govorg.CustomerGridEntity; import com.epmet.dto.IcNeighborHoodDTO; import javax.servlet.http.HttpServletResponse; @@ -306,4 +307,6 @@ public interface GovOrgService { List getStaffAndItsBelongsGridByAgencyIdPath(String agencyIdPath); Set getStaffIdsInGrid(String gridId); + + List listBelongGridsByStaffId(String staffId); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java index 36755471d7..68a8b8dac3 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java @@ -1554,4 +1554,22 @@ public class GovOrgServiceImpl implements GovOrgService { List es = customerStaffGridDao.selectList(q); return es.stream().map(CustomerStaffGridEntity::getUserId).collect(Collectors.toSet()); } + + /** + * @Description: 一个人多个网格:根据工作人员id查询所属网格id + * @param staffId: + * @Return java.util.List + * @Author: wangxianzhang + * @Date: 2023/5/15 4:39 PM + */ + @Override + public List listBelongGridsByStaffId(String staffId) { + LambdaQueryWrapper q = new LambdaQueryWrapper<>(); + q.eq(CustomerStaffGridEntity::getUserId, staffId); + List staffAndGrids = customerStaffGridDao.selectList(q); + + LambdaQueryWrapper q2 = new LambdaQueryWrapper<>(); + q2.in(CustomerGridEntity::getId, staffAndGrids.stream().map(CustomerStaffGridEntity::getGridId).collect(Collectors.toList())); + return customerGridDao.selectList(q2); + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/LingShanServiceAgentServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/LingShanServiceAgentServiceImpl.java index 803baf5578..cf39b5b964 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/LingShanServiceAgentServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/LingShanServiceAgentServiceImpl.java @@ -1,5 +1,6 @@ package com.epmet.dataaggre.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.enums.DictTypeEnum; import com.epmet.commons.tools.enums.GenderEnum; @@ -14,7 +15,11 @@ import com.epmet.constant.OrgInfoConstant; import com.epmet.constant.RoleKeyConstants; import com.epmet.dataaggre.beans.LingShanAgentServiceStaffAndGrid; import com.epmet.dataaggre.beans.StaffInfoInGridOfRole; +import com.epmet.dataaggre.dao.govorg.CustomerGridDao; +import com.epmet.dataaggre.dao.govorg.CustomerStaffGridDao; import com.epmet.dataaggre.dto.epmetuser.result.LingshanServiceAgentAgentList; +import com.epmet.dataaggre.entity.govorg.CustomerGridEntity; +import com.epmet.dataaggre.entity.govorg.CustomerStaffGridEntity; import com.epmet.dataaggre.service.LingShanServiceAgentService; import com.epmet.dataaggre.service.epmetuser.EpmetUserService; import com.epmet.dataaggre.service.govorg.GovOrgService; @@ -24,12 +29,13 @@ import com.epmet.feign.EpmetAdminOpenFeignClient; import com.epmet.remote.EpmetUserRemoteService; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.sql.Array; import java.util.*; import java.util.stream.Collectors; +import java.util.stream.Stream; @Service public class LingShanServiceAgentServiceImpl implements LingShanServiceAgentService, ResultDataResolver { @@ -46,22 +52,17 @@ public class LingShanServiceAgentServiceImpl implements LingShanServiceAgentServ @Autowired private EpmetUserRemoteService epmetUserRemoteService; - @Override - public PageData workPcAgentList(String orgId, String orgType, String agentName, Integer mobile, Integer idCard, - Integer pageNo, Integer pageSize) { - - // 1个人可能属于多个wangge - Map> staffIdAndGridIds = new HashMap<>(); - Set staffIds = new HashSet<>(); - - if (StringUtils.isAnyBlank(orgId, orgType)) { - // 如果前端没选择,那就取当前工作人员所属组织 - LoginUserDetailsResultDTO loginUserDetails = epmetUserRemoteService.getLoginUserDetails(); - orgId = loginUserDetails.getAgencyId(); - orgType = OrgInfoConstant.AGENCY; - } - - // 得到staffIds和staffIdAndGridIds + /** + * @Description: 填充 + * @param orgId: + * @param orgType: + * @param staffIdAndGridIds: + * @param staffIds: + * @Return void + * @Author: wangxianzhang + * @Date: 2023/5/15 10:33 AM + */ + private void fillDatas4AgentQuery(String orgId, String orgType, Map> staffIdAndGridIds, Set staffIds) { if (OrgInfoConstant.AGENCY.equals(orgType)) { // agency AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(orgId); @@ -84,6 +85,27 @@ public class LingShanServiceAgentServiceImpl implements LingShanServiceAgentServ staffIdAndGridIds.put(staffId, Arrays.asList(orgId)); } } + } + + @Override + public PageData workPcAgentList(String orgId, String orgType, String agentName, Integer mobile, Integer idCard, + Integer pageNo, Integer pageSize) { + + // 1个人可能属于多个网格,这里用来给页面显示多个网格,逗号分割 + Map> staffIdAndGridIds = new HashMap<>(); + + // 用来进一步查询工作人员 + Set staffIds = new HashSet<>(); + + if (StringUtils.isAnyBlank(orgId, orgType)) { + // 如果前端没选择,那就取当前工作人员所属组织 + LoginUserDetailsResultDTO loginUserDetails = epmetUserRemoteService.getLoginUserDetails(); + orgId = loginUserDetails.getAgencyId(); + orgType = OrgInfoConstant.AGENCY; + } + + // 得到staffIds和staffIdAndGridIds + fillDatas4AgentQuery(orgId, orgType, staffIdAndGridIds, staffIds); // 开始查询staff列表 PageData pd = epmetUserService.staffListInGridsOfRole(RoleKeyConstants.ROLE_KEY_AGENT, staffIds, agentName, mobile, idCard, pageNo, pageSize); @@ -137,5 +159,86 @@ public class LingShanServiceAgentServiceImpl implements LingShanServiceAgentServ return String.join(",", orgNames); } + @Override + public Integer lingshanScreenAgentQty(String orgId, String orgType) { + + // 1个人可能属于多个wangge + Map> staffIdAndGridIds = new HashMap<>(); + Set staffIds = new HashSet<>(); + if (StringUtils.isAnyBlank(orgId, orgType)) { + // 如果前端没选择,那就取当前工作人员所属组织 + LoginUserDetailsResultDTO loginUserDetails = epmetUserRemoteService.getLoginUserDetails(); + orgId = loginUserDetails.getAgencyId(); + orgType = OrgInfoConstant.AGENCY; + } + + // 得到staffIds和staffIdAndGridIds + fillDatas4AgentQuery(orgId, orgType, staffIdAndGridIds, staffIds); + + // 开始查询staff列表 + return epmetUserService.staffQtyInGridsOfRole(RoleKeyConstants.ROLE_KEY_AGENT, staffIds); + } + + @Override + public List screenAgentList(String orgId, String orgType) { + // 1个人可能属于多个wangge + Map> staffIdAndGridIds = new HashMap<>(); + Set staffIds = new HashSet<>(); + + if (StringUtils.isAnyBlank(orgId, orgType)) { + // 如果前端没选择,那就取当前工作人员所属组织 + LoginUserDetailsResultDTO loginUserDetails = epmetUserRemoteService.getLoginUserDetails(); + orgId = loginUserDetails.getAgencyId(); + orgType = OrgInfoConstant.AGENCY; + } + + fillDatas4AgentQuery(orgId, orgType, staffIdAndGridIds, staffIds); + + // 开始查询staff列表 + PageData staffPage = epmetUserService.staffListInGridsOfRole(RoleKeyConstants.ROLE_KEY_AGENT, staffIds, + null, null, null, 1, Integer.MAX_VALUE); + + if (staffPage == null) { + return new ArrayList(); + } + + // 性别&教育字典 + List edus = getResultDataOrReturnNull(adminOpenFeignClient.dictDataList(DictTypeEnum.EDUCATION.getCode()), ServiceConstant.EPMET_ADMIN_SERVER); + Map eduMap = edus.stream().collect(Collectors.toMap(SysDictDataDTO::getDictValue, SysDictDataDTO::getDictLabel)); + + // 转换为dto + List rl = staffPage.getList().stream().map(e -> { + LingshanServiceAgentAgentList d = new LingshanServiceAgentAgentList(); + d.setAgentName(e.getStaffName()); + d.setAgentId(e.getStaffId()); + d.setGender(e.getGender()); + d.setGenderDisplay(GenderEnum.getName(e.getGender().toString())); + d.setAge(e.getAge()); + d.setCulture(e.getCulture()); + if (e.getCulture() != null) { + d.setCultureDisplay(eduMap.get(e.getCulture().toString())); + } + d.setMobile(e.getMobile()); + d.setIdCard(e.getIdCard()); + // 组织名称 + return d; + }).collect(Collectors.toList()); + + // 展开工作人员与网格的对应关系,开始赋值坐标,坐标使用所属网格的坐标,但是一个工作人员可能属于多个网格,有几个网格就复制出来几条工作人员信息,内容重复即可。 + List finalAgentList = rl.stream().flatMap(agent -> { + List gridIdsOfAgent = staffIdAndGridIds.get(agent.getAgentId()); + return gridIdsOfAgent.stream().map(gridId -> { + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(gridId); + LingshanServiceAgentAgentList newOne = ConvertUtils.sourceToTarget(agent, LingshanServiceAgentAgentList.class); + newOne.setLatitude(gridInfo.getLatitude()); + newOne.setLongitude(gridInfo.getLongitude()); + newOne.setGridId(gridId); + newOne.setOrgNamePath(gridInfo.getGridNamePath()); + return newOne; + }); + }).collect(Collectors.toList()); + + return finalAgentList; + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/CustomerStaffDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/CustomerStaffDao.xml index 78ec048218..69a89c0cfc 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/CustomerStaffDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/CustomerStaffDao.xml @@ -164,6 +164,7 @@ + + + + \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerStaffGridDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerStaffGridDao.xml index af5b07332c..099345e615 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerStaffGridDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerStaffGridDao.xml @@ -69,6 +69,7 @@ + + select r.AGENT_ID + , r.GRID_ID + , count(r.PROCESS_STATUS = 1 or null) as unClosedServiceQty + , count(r.PROCESS_STATUS = 3 or null) as closedServiceQty + from lingshan_agent_service_record r + + + r.AGENT_ID in + + #{agentId} + + + and r.DEL_FLAG = 0 + and r.AGENT_ID is not null + and r.AGENT_ID != '' + + group by r.AGENT_ID, r.GRID_ID + + \ No newline at end of file