已修改10个文件
已添加1个文件
183 ■■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskscheduleController.java 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/Icd10.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/ServiceTaskScheduleDetailMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/ServiceTaskScheduleMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceTaskScheduleServiceImpl.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/Icd10Mapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/ServiceTaskScheduleDetailMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/ServiceTaskScheduleMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskscheduleController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,109 @@
package com.ruoyi.web.controller.smartor;
import com.ruoyi.common.annotation.AddOrgId;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.system.service.ISysDeptService;
import com.smartor.domain.Icd10;
import com.smartor.domain.ServiceTaskSchedule;
import com.smartor.domain.ServiceTaskdiag;
import com.smartor.service.IIcd10Service;
import com.smartor.service.IServiceTaskScheduleService;
import com.smartor.service.IServiceTaskdiagService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import static com.alibaba.fastjson2.JSONValidator.Type.Array;
/**
 * éšè®¿ä»»åŠ¡ç»„å…³è”Controller
 *
 * @author é™ˆæ˜¶è¿
 * @date 2026-08-06
 */
@Api("随访任务组关联")
@RestController
@RequestMapping("/smartor/taskSchedule")
public class ServiceTaskscheduleController extends BaseController {
    @Autowired
    private IServiceTaskScheduleService serviceTaskScheduleService;
    @Autowired
    private IIcd10Service icd10Service;
    @Autowired
    private ISysDeptService sysDeptService;
    /**
     * æŸ¥è¯¢éšè®¿ä»»åŠ¡ç»„ç§‘å®¤å…³è”åˆ—è¡¨
     */
    @ApiOperation("查询随访任务组科室关联列表")
    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
    @PostMapping("getTaskScheduleDeptList")
    public Map<String, Object> getTaskScheduleDeptList(@RequestBody ServiceTaskSchedule serviceTaskSchedule) {
        List<SysDept> list = new ArrayList<>();
        //任务组信息
        if(ObjectUtils.isNotEmpty(serviceTaskSchedule.getTaskid())){
            ServiceTaskSchedule schedule = serviceTaskScheduleService.selectByTaskid(serviceTaskSchedule.getTaskid());
            if(ObjectUtils.isNotEmpty(schedule) && StringUtils.isNotEmpty(schedule.getDeptCodes())){
                String[] split = schedule.getDeptCodes().split(",");
                SysDept sysDept = new SysDept();
                sysDept.setOrgid(schedule.getOrgid());
                sysDept.setDeptType("1");
                sysDept.setDeptCodes(new ArrayList<>(Arrays.asList(split)));
                list = sysDeptService.selectDeptList(sysDept);
            }
            if(ObjectUtils.isNotEmpty(schedule) && StringUtils.isNotEmpty(schedule.getWardCodes())){
                String[] split = schedule.getWardCodes().split(",");
                SysDept sysDept = new SysDept();
                sysDept.setOrgid(schedule.getOrgid());
                sysDept.setDeptType("2");
                sysDept.setDeptCodes(new ArrayList<>(Arrays.asList(split)));
                list = sysDeptService.selectDeptList(sysDept);
            }
        }
        return getDataTable3(CollectionUtils.isEmpty(list) ? 0 : list.size(), list);
    }
    /**
     * æŸ¥è¯¢éšè®¿ä»»åŠ¡ç»„ç–¾ç—…å…³è”åˆ—è¡¨
     */
    @ApiOperation("查询随访任务组疾病关联列表")
    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
    @PostMapping("getTaskScheduleDiagList")
    public Map<String, Object> getTaskScheduleDiagList(@RequestBody ServiceTaskSchedule serviceTaskSchedule) {
        List<Icd10> list = new ArrayList<>();
        //任务组信息
        if(ObjectUtils.isNotEmpty(serviceTaskSchedule.getTaskid())){
            ServiceTaskSchedule schedule = serviceTaskScheduleService.selectByTaskid(serviceTaskSchedule.getTaskid());
            if(ObjectUtils.isNotEmpty(schedule) && StringUtils.isNotEmpty(schedule.getIcd10Codes())){
                Icd10 icd10 = new Icd10();
                String[] split = schedule.getIcd10Codes().split(",");
                icd10.setIcdcodes(new ArrayList<>(Arrays.asList(split)));
                icd10.setOrgid(schedule.getOrgid());
                list = icd10Service.selectIcd10List(icd10);
            }
        }
        return getDataTable3(CollectionUtils.isEmpty(list) ? 0 : list.size(), list);
    }
}
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java
@@ -132,4 +132,9 @@
    @Excel(name = " é™¢åŒº ")
    private String campusid;
    /**
     * ç»‘定科室代码(逗号分隔),任务组自动纳入匹配用
     */
    @ApiModelProperty("绑定科室代码(逗号分隔),自动纳入用")
    private List<String> deptCodes;
}
ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
@@ -85,6 +85,14 @@
        <if test="orgid != null and orgid != ''">
            AND orgid = #{orgid}
        </if>
        <if test="deptCodes != null and deptCodes.size() > 0">
            AND dept_code IN
            <foreach collection="deptCodes" item="deptCodeItem" open="("
                     separator=","
                     close=")">
                #{deptCodeItem}
            </foreach>
        </if>
        <!-- æ•°æ®èŒƒå›´è¿‡æ»¤ -->
        ${params.dataScope}
        order by d.dept_type asc, d.parent_id, d.order_num
smartor/src/main/java/com/smartor/domain/Icd10.java
@@ -8,6 +8,8 @@
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import java.util.List;
/**
 * ç–¾ç—…对象 icd10
 *
@@ -111,5 +113,10 @@
    @ApiModelProperty("chimedflag")
    private String chimedflag;
    /**
     * icd10编码
     */
    @ApiModelProperty("icd10编码集合")
    @Excel(name = "icd10编码集合")
    private List<String> icdcodes;
}
smartor/src/main/java/com/smartor/mapper/ServiceTaskScheduleDetailMapper.java
@@ -64,4 +64,9 @@
     * é€»è¾‘删除(按 taskid)
     */
    int deleteByTaskid(@Param("taskid") Long taskid);
    /**
     * ç¡¬åˆ é™¤ï¼ˆæŒ‰ taskid)
     */
    int hardDeleteByTaskid(@Param("taskid") Long taskid);
}
smartor/src/main/java/com/smartor/mapper/ServiceTaskScheduleMapper.java
@@ -51,6 +51,11 @@
    int deleteByTaskid(@Param("taskid") Long taskid);
    /**
     * ç¡¬åˆ é™¤ï¼ˆæŒ‰ taskid):修改任务时清空旧计划
     */
    int hardDeleteByTaskid(@Param("taskid") Long taskid);
    /**
     * ä»»åŠ¡ç»„ï¼ˆappltype=5)滚动调度用:查询所有未达上限的循环计划。
     * æ¡ä»¶ï¼šschedule_style=1 ä¸” (max_loop_count is null or max_loop_count=0 or current_loop_count &lt; max_loop_count)
     * é™åˆ¶è¿”回条数避免长事务。
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -398,6 +398,17 @@
            }
        }
        serviceTaskVO.setPatTaskRelevances(patTaskRelevances);
        if(StringUtils.isNotEmpty(serviceTaskVO.getAppltype()) && serviceTaskVO.getAppltype().equals("5")){
            //任务组信息
            ServiceTaskSchedule schedule = serviceTaskScheduleService.selectByTaskid(serviceTaskVO.getTaskid());
            if (ObjectUtils.isNotEmpty(schedule)) {
                ServiceTaskScheduleVO serviceTaskScheduleVO = DtoConversionUtils.sourceToTarget(schedule, ServiceTaskScheduleVO.class);
                List<ServiceTaskScheduleDetail> scheduleDetailList =
                        serviceTaskScheduleService.selectDetailByScheduleid(schedule.getId());
                serviceTaskScheduleVO.setDetailList(scheduleDetailList);
                serviceTaskVO.setServiceTaskScheduleVO(serviceTaskScheduleVO);
            }
        }
        return serviceTaskVO;
    }
smartor/src/main/java/com/smartor/service/impl/ServiceTaskScheduleServiceImpl.java
@@ -59,9 +59,9 @@
            throw new BaseException("任务计划明细不能为空(至少一条 detail)");
        }
        // 1. æ—§è®¡åˆ’软删
        serviceTaskScheduleMapper.deleteByTaskid(vo.getTaskid());
        serviceTaskScheduleDetailMapper.deleteByTaskid(vo.getTaskid());
        // 1. æ—§è®¡åˆ’删
        serviceTaskScheduleMapper.hardDeleteByTaskid(vo.getTaskid());
        serviceTaskScheduleDetailMapper.hardDeleteByTaskid(vo.getTaskid());
        // 2. ä¸»è®¡åˆ’落库
        Date now = DateUtils.getNowDate();
@@ -78,6 +78,12 @@
        schedule.setNextExecuteTime(vo.getNextExecuteTime());
        schedule.setScheduleBenchmark(vo.getScheduleBenchmark() == null ? 0 : vo.getScheduleBenchmark());
        schedule.setScheduleBenchmarkCustomTime(vo.getScheduleBenchmarkCustomTime());
        schedule.setDeptCodes(vo.getDeptCodes());
        schedule.setWardCodes(vo.getWardCodes());
        schedule.setIcd10Codes(vo.getIcd10Codes());
        schedule.setOplevelCodes(vo.getOplevelCodes());
        schedule.setRemark(vo.getRemark());
        schedule.setDelFlag("0");
        schedule.setCreateBy(vo.getCreateBy());
smartor/src/main/resources/mapper/smartor/Icd10Mapper.xml
@@ -57,6 +57,14 @@
            <if test="pid != null ">and pid = #{pid}</if>
            <if test="guid != null  and guid != ''">and guid = #{guid}</if>
            <if test="hisIcdid != null  and hisIcdid != ''">and his_icdid = #{hisIcdid}</if>
            <if test="icdcodes != null and icdcodes.size() > 0">
                AND icdcode IN
                <foreach collection="icdcodes" item="icdcodeItem" open="("
                         separator=","
                         close=")">
                    #{icdcodeItem}
                </foreach>
            </if>
    </select>
    <select id="selectIcd10ByIcdid" parameterType="Long" resultMap="Icd10Result">
smartor/src/main/resources/mapper/smartor/ServiceTaskScheduleDetailMapper.xml
@@ -183,4 +183,9 @@
          and del_flag = '0'
    </update>
    <delete id="hardDeleteByTaskid" parameterType="Long">
        delete from service_task_schedule_detail
        where taskid = #{taskid}
          and del_flag = '0'
    </delete>
</mapper>
smartor/src/main/resources/mapper/smartor/ServiceTaskScheduleMapper.xml
@@ -186,6 +186,12 @@
          and del_flag = '0'
    </update>
    <delete id="hardDeleteByTaskid" parameterType="Long">
        delete from service_task_schedule
        where del_flag = '0'
        and taskid = #{taskid}
    </delete>
    <select id="selectActiveCycleSchedules" resultMap="ServiceTaskScheduleResult">
        <include refid="selectServiceTaskScheduleVo"/>
        where del_flag = '0'