ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
@@ -32,6 +32,7 @@ import com.smartor.service.IServiceSubtaskRecordService; import com.smartor.service.IServiceSubtaskService; import com.smartor.service.IServiceTaskService; import com.smartor.service.impl.ServiceSubtaskServiceImpl; import com.sun.org.apache.bcel.internal.generic.NEW; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -651,4 +652,27 @@ return map; } /** * 统计任务各种状态的数量(优化版) * @return Map<String, Object> 包含各状态统计数据 * pendingVisitCount: 当前登录人截止今日待随访总量 * failedVisitCount: 当前登录人随访任务失败总量 * abnormalVisitVount: 当前登录人随访任务异常总量 */ @ApiOperation("获取当前用户随访数量统计") @PostMapping("/getCurrentUserServiceSubtaskCount") public Map<String, Object> getCurrentUserServiceSubtaskCount() { Map<String, Object> map = new HashMap<>(); LoginUser loginUser = getLoginUser(); SysUser sysUser = loginUser.getUser(); if (ObjectUtils.isNotEmpty(sysUser)) { List<String> deptCodes = sysUser.getDeptCodes(); List<String> wardCodes = sysUser.getWardCodes(); ServiceSubtaskEntity entity = new ServiceSubtaskEntity(); entity.setLeaveldeptcodes(deptCodes); entity.setLeavehospitaldistrictcodes(wardCodes); map = serviceSubtaskService.getCurrentUserServiceSubtaskCount(entity); } return map; } } smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
@@ -166,4 +166,13 @@ */ public Map<String, Object> countByCondition(ServiceSubtaskEntity serviceSubtaskVO); /** * 统计任务各种状态的数量(优化版) * @param serviceSubtaskVO 查询条件 * @return Map<String, Object> 包含各状态统计数据 * pendingVisitCount: 当前登录人截止今日待随访总量 * failedVisitCount: 当前登录人随访任务失败总量 * abnormalVisitVount: 当前登录人随访任务异常总量 */ public Map<String, Object> getCurrentUserServiceSubtaskCount(ServiceSubtaskEntity serviceSubtaskVO); } smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
@@ -147,4 +147,6 @@ public List<PatArchiveSrmVO> sendMsgTemplate(List<PatArchiveSrmVO> patArchiveSrmVOS); public List<ServiceSubtaskDiagname> convertToDiagnameList(List<ServiceSubtask> subtaskList) ; public Map<String, Object> getCurrentUserServiceSubtaskCount(ServiceSubtaskEntity entity); } smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -3543,4 +3543,7 @@ }).collect(Collectors.toList()); } public Map<String, Object> getCurrentUserServiceSubtaskCount(ServiceSubtaskEntity entity){ return serviceSubtaskMapper.getCurrentUserServiceSubtaskCount(entity); } } smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -2257,4 +2257,28 @@ </if> </select> <select id="getCurrentUserServiceSubtaskCount" parameterType="com.smartor.domain.entity.ServiceSubtaskEntity" resultType="map"> SELECT COUNT(CASE WHEN sendstate IN (1, 2) AND date_format(senddate,'%y%m%d') <= date_format(CURDATE(),'%y%m%d') THEN 1 END) AS pendingVisitCount, COUNT(CASE WHEN sendstate = 5 THEN 1 END) AS failedVisitCount, COUNT(CASE WHEN isabnormal IN (1, 2) THEN 1 END) AS abnormalVisitCount FROM service_subtask WHERE del_flag = '0' <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0"> AND leavehospitaldistrictcode IN <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator="," close=")"> #{leavehospitaldistrictcode} </foreach> </if> <if test=" leaveldeptcodes != null and leaveldeptcodes.size()>0"> AND deptcode IN <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator="," close=")"> #{leaveldeptcode} </foreach> </if> </select> </mapper>