a5fc29e1f53a23512d0b4235a32b31b2ea8c0055..d6d3e4287589f0be15181e8daf5c8eedf2c23d51
2026-06-05 陈昶聿
【丽水】病区Json
d6d3e4 对比 | 目录
2026-06-05 陈昶聿
【丽水】病区Json
9bae7d 对比 | 目录
2026-06-05 陈昶聿
【丽水】随访统计全部
2d3c7b 对比 | 目录
已修改4个文件
72 ■■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceSubtaskStatistic.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
@@ -1,5 +1,6 @@
package com.ruoyi.web.controller.smartor;
import com.alibaba.fastjson.JSON;
import com.github.pagehelper.ISelect;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
@@ -91,6 +92,9 @@
    @Value("${spring.profiles.active}")
    private String active;
    @Value("${isAdmin}")
    private List<Long> isAdmin;
    @Autowired
    private RedisCache redisCache;
@@ -552,25 +556,25 @@
        if(ObjectUtils.isNotEmpty(statisticaltype)){
            SysUser user = getLoginUser().getUser();
            if(statisticaltype==1){
                if(CollectionUtils.isEmpty(serviceSubtaskCountReq.getLeavehospitaldistrictcodes())){
                    //全部病区
                    String deptInfo = user.getDeptInfo();
                    Gson gson = new Gson();
                    // 3. 定义 List 类型(核心)
                    TypeToken<List<String>> typeToken = new TypeToken<List<String>>() {};
                    List<String> leavehospitaldistrictcodes = gson.fromJson(deptInfo, typeToken.getType());
                    serviceSubtaskCountReq.setLeavehospitaldistrictcodes(leavehospitaldistrictcodes);
                }
            }else if(statisticaltype==2){
                if(CollectionUtils.isEmpty(serviceSubtaskCountReq.getDeptcodes())){
                    //全部科室
                    String hospInfo = user.getHospInfo();
                    Gson gson = new Gson();
                    // 3. 定义 List 类型(核心)
                    TypeToken<List<String>> typeToken = new TypeToken<List<String>>() {};
                    List<String> deptCodes = gson.fromJson(hospInfo, typeToken.getType());
                    serviceSubtaskCountReq.setDeptcodes(deptCodes);
            if(!isAdmin.contains(user.getUserId())){
                if(statisticaltype==1){
                    if(CollectionUtils.isEmpty(serviceSubtaskCountReq.getLeavehospitaldistrictcodes())){
                        //全部病区
                        String deptInfo = user.getDeptInfo();
                        List<String> leavehospitaldistrictcodes = JSON.parseArray(deptInfo)
                                .stream()
                                .map(item -> (String) ((List<?>) item).get(0)).collect(Collectors.toList());
                        serviceSubtaskCountReq.setLeavehospitaldistrictcodes(leavehospitaldistrictcodes);
                    }
                }else if(statisticaltype==2){
                    if(CollectionUtils.isEmpty(serviceSubtaskCountReq.getDeptcodes())){
                        //全部科室
                        String hospInfo = user.getHospInfo();
                        List<String> deptCodes = JSON.parseArray(hospInfo)
                                .stream()
                                .map(item -> (String) ((List<?>) item).get(0)).collect(Collectors.toList());
                        serviceSubtaskCountReq.setDeptcodes(deptCodes);
                    }
                }
            }
        }
smartor/src/main/java/com/smartor/domain/ServiceSubtaskStatistic.java
@@ -266,6 +266,16 @@
    @ApiModelProperty(value = "科室病区")
    private Integer statisticaltype;
    @ApiModelProperty(value = "任务ID", required = true)
    private Long taskId;
    @Excel(name = "任务名称")
    @ApiModelProperty(value = "任务名称")
    private String taskName;
    @ApiModelProperty(value = "疾病病种")
    private String diagType;
    @ApiModelProperty(value = "医生编码")
    private String drcode;
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -2557,7 +2557,7 @@
     * @return
     */
    @Override
    @Cacheable(value = "specialSfStatistics", key = "T(org.springframework.util.DigestUtils).md5DigestAsHex(#serviceSubtaskCountReq.toString().getBytes())", unless = "#result == null or #result.isEmpty()")
//    @Cacheable(value = "specialSfStatistics", key = "T(org.springframework.util.DigestUtils).md5DigestAsHex(#serviceSubtaskCountReq.toString().getBytes())", unless = "#result == null or #result.isEmpty()")
    public List<ServiceSubtaskStatistic> getSpecialSfStatistics(ServiceSubtaskCountReq serviceSubtaskCountReq) {
        log.info("getSpecialSfStatistics的入参为:{}", serviceSubtaskCountReq);
        String groupKey = "drcode";
smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -122,6 +122,9 @@
    </resultMap>
    <resultMap type="com.smartor.domain.ServiceSubtaskStatistic" id="ServiceSubtaskStatisticResult">
        <result property="taskName" column="task_name"/>
        <result property="drcode" column="drcode"/>
        <result property="drname" column="drname"/>
        <result property="dischargeCount" column="discharge_count"/>
        <result property="nonFollowUp" column="non_follow_up"/>
        <result property="filterCount" column="filter_count"/>
@@ -1508,7 +1511,13 @@
    <select id="getSpecialSfStatistics" parameterType="com.smartor.domain.ServiceSubtaskCountReq"
            resultMap="ServiceSubtaskStatisticResult">
        select
        a.task_name,
        <if test="groupKey != null and groupKey == 'task_name'">
            a.task_name,
        </if>
        <if test="groupKey != null and groupKey == 'drcode'">
            b.drcode,
            b.drname,
        </if>
        COUNT(1) AS discharge_count,
        SUM(CASE WHEN b.sendstate = 4 THEN 1 ELSE 0 END) AS non_follow_up,
        SUM(CASE WHEN b.sendstate = 4 and b.task_situation = 6 THEN 1 ELSE 0 END) AS filter_count,
@@ -1607,7 +1616,12 @@
        <if test="visitCount != null and visitCount > 1">
            AND b.visit_count > 1
        </if>
        GROUP BY a.task_name
        <if test="groupKey != null and groupKey == 'task_name'">
            GROUP BY a.task_name
        </if>
        <if test="groupKey != null and groupKey == 'drcode'">
            GROUP BY b.drcode, b.drname
        </if>
    </select>
    <select id="getSfStatisticsGroupKey" parameterType="com.smartor.domain.ServiceSubtaskCountReq"