diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/agentservice/AgentServiceTrendAnalysisRstDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/agentservice/AgentServiceTrendAnalysisRstDTO.java index effdcdb01f..f4d0b3e96b 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/agentservice/AgentServiceTrendAnalysisRstDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/agentservice/AgentServiceTrendAnalysisRstDTO.java @@ -34,14 +34,14 @@ public class AgentServiceTrendAnalysisRstDTO { // private List data; - public static class DataObj { + public static class DataObj { private String name; - private Integer value; + private T value; public DataObj() { } - public DataObj(String name, Integer value) { + public DataObj(String name, T value) { this.name = name; this.value = value; } @@ -50,7 +50,7 @@ public class AgentServiceTrendAnalysisRstDTO { return name; } - public Integer getValue() { + public T getValue() { return value; } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/LingshanAgentServiceRecordDao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/LingshanAgentServiceRecordDao.java index 9ff7596263..84de811f72 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/LingshanAgentServiceRecordDao.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/LingshanAgentServiceRecordDao.java @@ -6,6 +6,7 @@ import com.epmet.entity.LingshanAgentServiceRecordEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; import java.util.Set; @@ -26,4 +27,16 @@ public interface LingshanAgentServiceRecordDao extends BaseDao screenAgentListAndServiceQty(@Param("agentIds") Set agentIds); + + /** + * @Description: 办结率 + * @param timeStart: + * @param timeEnd: + * @Return java.lang.Double + * @Author: wangxianzhang + * @Date: 2023/5/16 8:17 PM + */ + Double calculateClosedRatio(@Param("timeStart") Date timeStart, + @Param("timeEnd") Date timeEnd, + @Param("orgIdPath") String orgIdPath); } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/LingShanAgentServiceServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/LingShanAgentServiceServiceImpl.java index 95d4b4e254..bb9c85c2d7 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/LingShanAgentServiceServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/LingShanAgentServiceServiceImpl.java @@ -570,6 +570,16 @@ public class LingShanAgentServiceServiceImpl implements LingShanAgentServiceServ @Override public List serviceTrendAnalysis(String orgType, String orgId) { + String orgIdPath; + + if (OrgInfoConstant.AGENCY.equals(orgType)) { + AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(orgId); + orgIdPath = PidUtils.convertPid2OrgIdPath(agencyInfo.getId(), agencyInfo.getPids()); + } else { + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(orgId); + orgIdPath = PidUtils.convertPid2OrgIdPath(gridInfo.getId(), gridInfo.getPids()); + } + // 计算得到时间列表 Map dateCatelogue = generateTimeCatelogue(); @@ -582,18 +592,21 @@ public class LingShanAgentServiceServiceImpl implements LingShanAgentServiceServ // 1.受理数 // 受理数,使用processTime计算,processTime可用于表示受理时间和驳回时间。要查询受理数,要查询状态为已受理和已结案两种状态,使用processTime+processStatus结合查询 LambdaQueryWrapper rq = new LambdaQueryWrapper<>(); + rq.likeRight(LingshanAgentServiceRecordEntity::getOrgIdPath, orgIdPath); rq.ge(LingshanAgentServiceRecordEntity::getProcessTime, timeStart); rq.le(LingshanAgentServiceRecordEntity::getProcessTime, timeEnd); rq.in(LingshanAgentServiceRecordEntity::getProcessStatus, LingShanAgentServiceProcessStatusEnum.ACCEPTED.getStatusCode(), LingShanAgentServiceProcessStatusEnum.CLOSED.getStatusCode()); Integer acceptCount = agentServiceRecordDao.selectCount(rq); - // 2.办结率 todo + // 2.办结率 + // 本月办结的服务/本月提交的服务 + Double closedRatio = agentServiceRecordDao.calculateClosedRatio(timeStart, timeEnd, orgIdPath); // 3.组合数据 ArrayList dataList = new ArrayList<>(); - dataList.add(new AgentServiceTrendAnalysisRstDTO.DataObj("受理数", acceptCount)); - dataList.add(new AgentServiceTrendAnalysisRstDTO.DataObj("办结率", 0)); + dataList.add(new AgentServiceTrendAnalysisRstDTO.DataObj<>("受理数", acceptCount)); + dataList.add(new AgentServiceTrendAnalysisRstDTO.DataObj<>("办结率", closedRatio)); AgentServiceTrendAnalysisRstDTO rd = new AgentServiceTrendAnalysisRstDTO(monthName, dataList); return rd; }).collect(Collectors.toList()); @@ -607,7 +620,7 @@ public class LingShanAgentServiceServiceImpl implements LingShanAgentServiceServ * @Date: 2023/5/16 1:53 PM */ public Map generateTimeCatelogue() { - Date startDate = DateUtils.addDateMonths(new Date(), -11); + Date startDate = DateUtils.addDateMonths(new Date(), -12); HashMap rm = new LinkedHashMap<>(); for (int c = 1; c <= 12; c++) { diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/LingshanAgentServiceRecordDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/LingshanAgentServiceRecordDao.xml index c995f3532d..cea5229e87 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/LingshanAgentServiceRecordDao.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/LingshanAgentServiceRecordDao.xml @@ -58,5 +58,16 @@ group by r.AGENT_ID, r.GRID_ID + + + \ No newline at end of file