已修改11个文件
120 ■■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceSubtask.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SysDeptMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
@@ -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;
    }
}
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java
@@ -39,7 +39,7 @@
     */
    public SysDept selectDeptById(Long deptId);
    public SysDept selectDeptByCode(@Param("orgid") String orgid, @Param("deptCode") String deptCode);
    public SysDept selectDeptByCode(@Param("deptType") String deptType, @Param("orgid") String orgid, @Param("deptCode") String deptCode);
    /**
     * 根据ID查询所有子部门
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -564,7 +564,7 @@
//        }
        if (!CollectionUtils.isEmpty(user.getDeptCodes())) {
            for (String deptCode : user.getDeptCodes()) {
                SysDept sysDept = sysDeptMapper.selectDeptByCode(user.getOrgid(), deptCode);
                SysDept sysDept = sysDeptMapper.selectDeptByCode("1", user.getOrgid(), deptCode);
                if (ObjectUtils.isEmpty(sysDept)) {
                    continue;
                }
@@ -590,7 +590,7 @@
        }
        if (!CollectionUtils.isEmpty(user.getWardCodes())) {
            for (String wardCode : user.getWardCodes()) {
                SysDept sysDept = sysDeptMapper.selectDeptByCode(user.getOrgid(), wardCode);
                SysDept sysDept = sysDeptMapper.selectDeptByCode("2", user.getOrgid(), wardCode);
                if (ObjectUtils.isEmpty(sysDept)) {
                    continue;
                }
@@ -673,7 +673,7 @@
//        }
        if (!CollectionUtils.isEmpty(user.getDeptCodes())) {
            for (String deptCode : user.getDeptCodes()) {
                SysDept sysDept = sysDeptMapper.selectDeptByCode(user.getOrgid(), deptCode);
                SysDept sysDept = sysDeptMapper.selectDeptByCode("1", user.getOrgid(), deptCode);
                if (ObjectUtils.isEmpty(sysDept)) {
                    continue;
                }
@@ -699,7 +699,7 @@
        }
        if (!CollectionUtils.isEmpty(user.getWardCodes())) {
            for (String wardCode : user.getWardCodes()) {
                SysDept sysDept = sysDeptMapper.selectDeptByCode(user.getOrgid(), wardCode);
                SysDept sysDept = sysDeptMapper.selectDeptByCode("2", user.getOrgid(), wardCode);
                if (ObjectUtils.isEmpty(sysDept)) {
                    continue;
                }
ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
@@ -144,6 +144,9 @@
        <if test="orgid != null and orgid != ''">
            and d.orgid = #{orgid}
        </if>
        <if test="deptType != null and deptType != ''">
            and d.dept_type = #{deptType}
        </if>
        limit 1
    </select>
smartor/src/main/java/com/smartor/domain/ServiceSubtask.java
@@ -526,7 +526,7 @@
    /**
     * 长期任务,给患者发送的时间
     * 长期任务,给患者发送的时间 弃用
     */
    @Excel(name = " 长期任务,给患者发送的时间")
    @ApiModelProperty(value = "长期任务,给患者发送的时间")
smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
@@ -166,4 +166,14 @@
     */
    public Map<String, Object> countByCondition(ServiceSubtaskEntity serviceSubtaskVO);
    /**
     * 统计任务各种状态的数量(优化版)
     * @param serviceSubtaskVO 查询条件
     * @return Map<String, Object> 包含各状态统计数据
     *         pendingVisitCount: 当前登录人截止今日待随访总量
     *         failedVisitCount: 当前登录人随访任务失败总量
     *         abnormalVisitVount: 当前登录人随访任务异常总量
     *         allVisitCount: 当前登录人随访任务总量
     */
    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/ServiceExternalServiceImpl.java
@@ -189,7 +189,6 @@
    @Override
    public Boolean addUserDeptInfo(Map dataMap) {
        //todo
        log.info("ServiceExternalServiceImpl---addUserDeptInfo的新增的值为:{}", dataMap);
        Map yeWuXX = (Map) dataMap.get("YeWuXX");
        Map<String, Object> keShiYH = (Map<String, Object>) yeWuXX.get("KeShiYH");
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
@@ -318,10 +318,10 @@
            AND date_format(endtime,'%y%m%d') &lt;= date_format(#{endOutHospTime},'%y%m%d')
        </if>
        <if test="startSendDateTime != null">
            AND date_format(long_send_time,'%y%m%d') &gt;= date_format(#{startSendDateTime},'%y%m%d')
            AND date_format(visit_time,'%y%m%d') &gt;= date_format(#{startSendDateTime},'%y%m%d')
        </if>
        <if test="endSendDateTime != null">
            AND date_format(long_send_time,'%y%m%d') &lt;= date_format(#{endSendDateTime},'%y%m%d')
            AND date_format(visit_time,'%y%m%d') &lt;= date_format(#{endSendDateTime},'%y%m%d')
        </if>
        <if test="longSendTime != null">
@@ -2205,10 +2205,10 @@
            AND DATE_FORMAT(endtime,'%y%m%d') &lt;= DATE_FORMAT(#{endOutHospTime},'%y%m%d')
        </if>
        <if test="startSendDateTime != null">
            AND DATE_FORMAT(long_send_time,'%y%m%d') &gt;= DATE_FORMAT(#{startSendDateTime},'%y%m%d')
            AND DATE_FORMAT(visit_time,'%y%m%d') &gt;= DATE_FORMAT(#{startSendDateTime},'%y%m%d')
        </if>
        <if test="endSendDateTime != null">
            AND DATE_FORMAT(long_send_time,'%y%m%d') &lt;= DATE_FORMAT(#{endSendDateTime},'%y%m%d')
            AND DATE_FORMAT(visit_time,'%y%m%d') &lt;= DATE_FORMAT(#{endSendDateTime},'%y%m%d')
        </if>
        <if test="longSendTime != null">
            AND DATE_FORMAT(long_send_time,'%y%m%d') &lt;= DATE_FORMAT(#{longSendTime},'%y%m%d')
@@ -2257,4 +2257,35 @@
        </if>
    </select>
    <select id="getCurrentUserServiceSubtaskCount" parameterType="com.smartor.domain.entity.ServiceSubtaskEntity" resultType="map">
        SELECT
        COUNT(CASE WHEN sendstate IN (1, 2) AND date_format(visit_time,'%y%m%d') &lt;= date_format(CURDATE(),'%y%m%d') THEN 1 END) AS pendingVisitCount,
        COUNT(CASE WHEN sendstate = 5 THEN 1 END) AS failedVisitCount,
        SUM(CASE WHEN excep IS NOT NULL AND excep = '1' THEN 1 ELSE 0 END) AS abnormalVisitCount,
        SUM(CASE WHEN excep IS NOT NULL AND excep = '2' THEN 1 ELSE 0 END) AS warnningVisitCount,
        COUNT(*) AS allVisitCount
        FROM service_subtask
        WHERE del_flag = '0'
        AND service_type = '2'
        AND visit_count = 1
        <if test="orgid != null and orgid != ''">
            AND orgid = #{orgid}
        </if>
        <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>
smartor/src/main/resources/mapper/smartor/SysDeptMapper.xml
@@ -84,6 +84,9 @@
        <if test="hisParentId != null and hisParentId != ''">
            AND his_parent_id = #{hisParentId}
        </if>
        <if test="orgid != null and orgid != ''">
            AND orgid = #{orgid}
        </if>
        <if test="campusid != null and campusid != ''">
            AND campusid = #{campusid}
        </if>