Browse Source

增加办结率数值返回

master
wxz 2 years ago
parent
commit
1d90fde163
  1. 8
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/agentservice/AgentServiceTrendAnalysisRstDTO.java
  2. 13
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/LingshanAgentServiceRecordDao.java
  3. 21
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/LingShanAgentServiceServiceImpl.java
  4. 11
      epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/LingshanAgentServiceRecordDao.xml

8
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<DataObj> data; private List<DataObj> data;
public static class DataObj { public static class DataObj<T> {
private String name; private String name;
private Integer value; private T value;
public DataObj() { public DataObj() {
} }
public DataObj(String name, Integer value) { public DataObj(String name, T value) {
this.name = name; this.name = name;
this.value = value; this.value = value;
} }
@ -50,7 +50,7 @@ public class AgentServiceTrendAnalysisRstDTO {
return name; return name;
} }
public Integer getValue() { public T getValue() {
return value; return value;
} }
} }

13
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.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
@ -26,4 +27,16 @@ public interface LingshanAgentServiceRecordDao extends BaseDao<LingshanAgentServ
* @Date: 2023/5/15 3:22 PM * @Date: 2023/5/15 3:22 PM
*/ */
List<LingShanScreenAgentRstDTO> screenAgentListAndServiceQty(@Param("agentIds") Set<String> agentIds); List<LingShanScreenAgentRstDTO> screenAgentListAndServiceQty(@Param("agentIds") Set<String> 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);
} }

21
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 @Override
public List<AgentServiceTrendAnalysisRstDTO> serviceTrendAnalysis(String orgType, String orgId) { public List<AgentServiceTrendAnalysisRstDTO> 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<String, Date[]> dateCatelogue = generateTimeCatelogue(); Map<String, Date[]> dateCatelogue = generateTimeCatelogue();
@ -582,18 +592,21 @@ public class LingShanAgentServiceServiceImpl implements LingShanAgentServiceServ
// 1.受理数 // 1.受理数
// 受理数,使用processTime计算,processTime可用于表示受理时间和驳回时间。要查询受理数,要查询状态为已受理和已结案两种状态,使用processTime+processStatus结合查询 // 受理数,使用processTime计算,processTime可用于表示受理时间和驳回时间。要查询受理数,要查询状态为已受理和已结案两种状态,使用processTime+processStatus结合查询
LambdaQueryWrapper<LingshanAgentServiceRecordEntity> rq = new LambdaQueryWrapper<>(); LambdaQueryWrapper<LingshanAgentServiceRecordEntity> rq = new LambdaQueryWrapper<>();
rq.likeRight(LingshanAgentServiceRecordEntity::getOrgIdPath, orgIdPath);
rq.ge(LingshanAgentServiceRecordEntity::getProcessTime, timeStart); rq.ge(LingshanAgentServiceRecordEntity::getProcessTime, timeStart);
rq.le(LingshanAgentServiceRecordEntity::getProcessTime, timeEnd); rq.le(LingshanAgentServiceRecordEntity::getProcessTime, timeEnd);
rq.in(LingshanAgentServiceRecordEntity::getProcessStatus, rq.in(LingshanAgentServiceRecordEntity::getProcessStatus,
LingShanAgentServiceProcessStatusEnum.ACCEPTED.getStatusCode(), LingShanAgentServiceProcessStatusEnum.CLOSED.getStatusCode()); LingShanAgentServiceProcessStatusEnum.ACCEPTED.getStatusCode(), LingShanAgentServiceProcessStatusEnum.CLOSED.getStatusCode());
Integer acceptCount = agentServiceRecordDao.selectCount(rq); Integer acceptCount = agentServiceRecordDao.selectCount(rq);
// 2.办结率 todo // 2.办结率
// 本月办结的服务/本月提交的服务
Double closedRatio = agentServiceRecordDao.calculateClosedRatio(timeStart, timeEnd, orgIdPath);
// 3.组合数据 // 3.组合数据
ArrayList<AgentServiceTrendAnalysisRstDTO.DataObj> dataList = new ArrayList<>(); ArrayList<AgentServiceTrendAnalysisRstDTO.DataObj> dataList = new ArrayList<>();
dataList.add(new AgentServiceTrendAnalysisRstDTO.DataObj("受理数", acceptCount)); dataList.add(new AgentServiceTrendAnalysisRstDTO.DataObj<>("受理数", acceptCount));
dataList.add(new AgentServiceTrendAnalysisRstDTO.DataObj("办结率", 0)); dataList.add(new AgentServiceTrendAnalysisRstDTO.DataObj<>("办结率", closedRatio));
AgentServiceTrendAnalysisRstDTO rd = new AgentServiceTrendAnalysisRstDTO(monthName, dataList); AgentServiceTrendAnalysisRstDTO rd = new AgentServiceTrendAnalysisRstDTO(monthName, dataList);
return rd; return rd;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
@ -607,7 +620,7 @@ public class LingShanAgentServiceServiceImpl implements LingShanAgentServiceServ
* @Date: 2023/5/16 1:53 PM * @Date: 2023/5/16 1:53 PM
*/ */
public Map<String, Date[]> generateTimeCatelogue() { public Map<String, Date[]> generateTimeCatelogue() {
Date startDate = DateUtils.addDateMonths(new Date(), -11); Date startDate = DateUtils.addDateMonths(new Date(), -12);
HashMap<String, Date[]> rm = new LinkedHashMap<>(); HashMap<String, Date[]> rm = new LinkedHashMap<>();
for (int c = 1; c <= 12; c++) { for (int c = 1; c <= 12; c++) {

11
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 group by r.AGENT_ID, r.GRID_ID
</select> </select>
<!--办结率-->
<select id="calculateClosedRatio"
resultType="java.lang.Double">
select ifnull(count(PROCESS_STATUS = 3 or null) / count(PROCESS_STATUS != -1 or null), 0) closed_ratio
from lingshan_agent_service_record
where CREATED_TIME >= #{timeStart}
and CREATED_TIME &lt;= #{timeEnd}
and DEL_FLAG = 0
and ORG_ID_PATH like CONCAT(#{orgIdPath}, '%')
</select>
</mapper> </mapper>
Loading…
Cancel
Save