陈昶聿
2 天以前 9819e228f5ee6ace0ad0ec56661f6da953f5148f
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
@@ -10,6 +10,7 @@
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.entity.SysUserDept;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.redis.RedisCache;
@@ -24,6 +25,7 @@
import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.system.domain.SysConfig;
import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.system.service.ISysUserDeptService;
import com.smartor.domain.*;
import com.smartor.domain.VO.ServiceSubtaskVO;
import com.smartor.domain.entity.ServiceSubtaskEntity;
@@ -32,6 +34,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;
@@ -71,6 +74,9 @@
    @Autowired
    private IServiceTaskService serviceTaskService;
    @Autowired
    private ISysUserDeptService sysUserDeptService;
    @Autowired
    private IServiceSubtaskRecordService serviceSubtaskRecordService;
@@ -126,8 +132,8 @@
        List<Map<String, Object>> list = new ArrayList<>();
        list.add(map);
        serviceSubtaskVO.setPageNum(null);
        serviceSubtaskVO.setPageSize(null);
        serviceSubtaskEntity.setPageNum(null);
        serviceSubtaskEntity.setPageSize(null);
        List<ServiceSubtaskRes> serviceSubtasks = serviceSubtaskService.patItem(serviceSubtaskEntity);
        return getDataTable3(CollectionUtils.isNotEmpty(serviceSubtasks) ? serviceSubtasks.size() : 0L, list);
@@ -651,4 +657,45 @@
        return map;
    }
    /**
     * 统计任务各种状态的数量(优化版)
     * @return Map<String, Object> 包含各状态统计数据
     *         pendingVisitCount: 当前登录人截止今日待随访总量
     *         failedVisitCount: 当前登录人随访任务失败总量
     *         abnormalVisitVount: 当前登录人随访任务异常总量
     *         allVisitCount: 当前登录人随访任务总量
     */
    @ApiOperation("获取当前用户随访数量统计")
    @PostMapping("/getCurrentUserServiceSubtaskCount")
    public Map<String, Object> getCurrentUserServiceSubtaskCount() {
        Map<String, Object> map = new HashMap<>();
        LoginUser loginUser = getLoginUser();
        SysUser sysUser = loginUser.getUser();
        SysUserDept sysUserDept = new SysUserDept();
        sysUserDept.setUserId(sysUser.getUserId());
        sysUserDept.setOrgid(sysUser.getOrgid());
        sysUserDept.setDeptType("1");
        List<SysUserDept> sysUserDepts = sysUserDeptService.selectSysUserDeptList(sysUserDept);
        SysUserDept sysUserWard = new SysUserDept();
        sysUserWard.setUserId(sysUser.getUserId());
        sysUserWard.setOrgid(sysUser.getOrgid());
        sysUserWard.setDeptType("2");
        List<SysUserDept> sysUserWards = sysUserDeptService.selectSysUserDeptList(sysUserWard);
        List<String> deptCodes = sysUserDepts.stream().map(SysUserDept::getDeptCode).collect(Collectors.toList());
        List<String> wardCodes = sysUserWards.stream().map(SysUserDept::getDeptCode).collect(Collectors.toList());
        ServiceSubtaskEntity entity = new ServiceSubtaskEntity();
        entity.setOrgid(sysUser.getOrgid());
        entity.setLeaveldeptcodes(deptCodes);
        entity.setLeavehospitaldistrictcodes(wardCodes);
        if(ObjectUtils.isNotEmpty(sysUser)){
            if(!("admin").equals(sysUser.getUserName())){
                if(ObjectUtils.isNotEmpty(sysUserWards) && ObjectUtils.isNotEmpty(sysUserDepts)){
                    map = serviceSubtaskService.getCurrentUserServiceSubtaskCount(entity);
                }
            }else {
                map = serviceSubtaskService.getCurrentUserServiceSubtaskCount(entity);
            }
        }
        return map;
    }
}