陈昶聿
2026-06-15 0131b587714d546feb77633bf9e6eb3bf79ff60b
【丽水】手术随访
已修改4个文件
206 ■■■■ 文件已修改
smartor/src/main/java/com/smartor/domain/PatMedOperationItem.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/PatMedOperationItemMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/PatMedOperationItemMapper.xml 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/PatMedOperationItem.java
@@ -161,5 +161,60 @@
    @ApiModelProperty("长期任务 ,失败原因")
    @Excel(name = "长期任务 ,失败原因")
    private String longTaskReason;
    /**
     * 科室代码
     */
    @ApiModelProperty("科室代码")
    private String deptcode;
    /**
     * 科室名称
     */
    @ApiModelProperty("科室名称")
    private String deptname;
    /**
     * 病区编号
     */
    @ApiModelProperty("病区编号")
    private String hospitaldistrictcode;
    /**
     * 病区名称
     */
    @ApiModelProperty("病区名称")
    private String hospitaldistrictname;
    @ApiModelProperty("患者ID")
    private Long patid;
    /**
     * 主治医生工号
     */
    @ApiModelProperty("主治医生工号")
    @Excel(name = "主治医生工号")
    private String drcode;
    /**
     * 主治医生名称
     */
    @ApiModelProperty("主治医生名称")
    @Excel(name = "主治医生名称")
    private String drname;
    /**
     * 护士ID
     */
    @ApiModelProperty("护士ID")
    @Excel(name = "护士ID")
    private String nurseId;
    /**
     * 护士姓名
     */
    @ApiModelProperty("护士姓名")
    @Excel(name = "护士姓名")
    private String nurseName;
}
smartor/src/main/java/com/smartor/mapper/PatMedOperationItemMapper.java
@@ -75,4 +75,13 @@
     * @return 结果
     */
    public int deleteHardPatMedOperationItemByOpId(String opid);
    /**
     * 查询患者检查检验记录子列表
     *
     * @param patMedOperationItem 患者检查检验记录子
     * @return 患者检查检验记录子集合
     */
    public List<PatMedOperationItem> selectOperationItemList(PatMedOperationItem patMedOperationItem);
}
smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -313,7 +313,6 @@
        addSubTaskByRule(config);
        //根据患者所在病区,获取该病区的长期任务,新华医院可以先不用根据病区和疾病来做
        if (!active.equals("xh")) {
            //todo 手术主表-手术详情表-出院记录表-科室关系? 需要限制科室?
            addOperationSubTask(config);
        }
@@ -783,27 +782,18 @@
        } else {
            serviceTask = serviceTasks.get(0);
        }
        if (Objects.isNull(patMedOperationItem.getOpid())) {
            return;
        }
        if (Objects.isNull(patMedOperationItem.getOplevelcode())) {
            return;
        }
        PatMedOperation patMedOperationVo = new PatMedOperation();
        PatMedOperation patMedOperation = new PatMedOperation();
        patMedOperationVo.setOpid(patMedOperationItem.getOpid());
        List<PatMedOperation> patMedOperationList = patMedOperationMapper.selectPatMedOperationList(patMedOperationVo);
        if (CollectionUtils.isEmpty(patMedOperationList)) {
        if (Objects.isNull(patMedOperationItem.getPatid())) {
            return;
        }else {
            patMedOperation = patMedOperationList.get(0);
        }
        PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOperation.getPatid());
        PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOperationItem.getPatid());
        if (Objects.isNull(patArchive)) {
            return;
        }
        PatMedInhosp patMedInhosp = new PatMedInhosp();
        patMedInhosp.setPatid(patMedOperation.getPatid());
        patMedInhosp.setPatid((patMedOperationItem.getPatid()));
        patMedInhosp.setInhospstate("1");
        patMedInhosp.setFuflag("1");
        List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
@@ -813,12 +803,17 @@
        }
        //封装serviceSubtask
        ServiceSubtask serviceSubtask = boxedServiceSubtaskForOp(serviceTask, patMedInhospList.get(0), patMedOperation, patMedOperationItem, patArchive, config);
        ServiceSubtask serviceSubtask = boxedServiceSubtaskForOp(serviceTask, patMedInhospList.get(0), patMedOperationItem, patArchive, config);
        if (ObjectUtils.isEmpty(serviceSubtask)) {
            return;
        }
        serviceSubtask.setVisitDeptCode(patMedOperation.getReqdeptcode());
        serviceSubtask.setVisitDeptName(patMedOperation.getReqdeptname());
        if(StringUtils.isNotEmpty(patMedOperationItem.getDeptcode())){
            serviceSubtask.setVisitDeptCode(patMedOperationItem.getDeptcode());
            serviceSubtask.setVisitDeptName(patMedOperationItem.getDeptname());
        }else {
            serviceSubtask.setVisitDeptCode(patMedOperationItem.getHospitaldistrictcode());
            serviceSubtask.setVisitDeptName(patMedOperationItem.getHospitaldistrictname());
        }
        //记录insertServiceSubtask语句返回状态
        Integer i = 0;
        try {
@@ -1050,18 +1045,18 @@
    }
    //封装serviceSubtask
    private ServiceSubtask boxedServiceSubtaskForOp(ServiceTask serviceTask, PatMedInhosp patMedInhosp1, PatMedOperation patMedOperation, PatMedOperationItem patMedOperationItem, PatArchive patArchive, String config) {
    private ServiceSubtask boxedServiceSubtaskForOp(ServiceTask serviceTask, PatMedInhosp patMedInhosp1, PatMedOperationItem patMedOperationItem, PatArchive patArchive, String config) {
        ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTask, ServiceSubtask.class);
        serviceSubtask.setTaskid(serviceTask.getTaskid());
        if (StringUtils.isNotEmpty(serviceTask.getLibtemplateid()))
            serviceSubtask.setLibtemplateid(Long.valueOf(serviceTask.getLibtemplateid()));
        serviceSubtask.setNurseId(patMedOperation.getNurseId());
        serviceSubtask.setNurseName(patMedOperation.getNurseName());
        serviceSubtask.setNurseId(patMedOperationItem.getNurseId());
        serviceSubtask.setNurseName(patMedOperationItem.getNurseName());
//        serviceSubtask.setInhospid(patMedInhosp.getInhospid());
        serviceSubtask.setDrcode(patMedOperation.getDrcode());
        serviceSubtask.setDrname(patMedOperation.getDrname());
        serviceSubtask.setDeptcode(patMedOperation.getDeptcode());
        serviceSubtask.setDeptname(patMedOperation.getDeptname());
        serviceSubtask.setDrcode(patMedOperationItem.getDrcode());
        serviceSubtask.setDrname(patMedOperationItem.getDrname());
        serviceSubtask.setDeptcode(patMedOperationItem.getDeptcode());
        serviceSubtask.setDeptname(patMedOperationItem.getDeptname());
        serviceSubtask.setTemplateid(serviceTask.getTemplateid());
        serviceSubtask.setTemplatename(serviceTask.getTemplatename());
@@ -1073,8 +1068,8 @@
        serviceSubtask.setSex(patArchive.getSex());
        serviceSubtask.setAge(patArchive.getAge());
        serviceSubtask.setSendstate(2L);
        serviceSubtask.setManagementDoctor(patMedOperation.getDrname());
        serviceSubtask.setManagementDoctorCode(patMedOperation.getDrcode());
        serviceSubtask.setManagementDoctor(patMedOperationItem.getDrname());
        serviceSubtask.setManagementDoctorCode(patMedOperationItem.getDrcode());
//        serviceSubtask.setStarttime(patMedInhosp.getStarttime());
//        serviceSubtask.setEndtime(patMedInhosp.getEndtime());
@@ -1083,14 +1078,13 @@
        serviceSubtask.setHospType("2");
        serviceSubtask.setCreateTime(new Date());
        serviceSubtask.setUpdateTime(new Date());
        serviceSubtask.setCreateBy(patMedOperation.getNurseName());
        serviceSubtask.setCreateBy(patMedOperationItem.getNurseName());
//        serviceSubtask.setLeavehospitaldistrictcode(patArchive.getLeavehospitaldistrictcode());
//        serviceSubtask.setLeavehospitaldistrictname(patArchive.getLeavehospitaldistrictname());
        serviceSubtask.setOperationItemId(patMedOperationItem.getId());
        serviceSubtask.setUpdateBy(serviceTask.getUpdateBy());
        serviceSubtask.setUpdateTime(new Date());
        //todo
        //设置发送时间
        if (serviceTask.getSendDay() == null) serviceTask.setSendDay(1L);
        Date newDate = null;
@@ -1189,7 +1183,7 @@
        pmoi.setOpercheckFlag("0");
        pmoi.setMainFlag("1");
        List<PatMedOperationItem> patMedOperationItems = patMedOperationItemMapper.selectPatMedOperationItemList(pmoi);
        List<PatMedOperationItem> patMedOperationItems = patMedOperationItemMapper.selectOperationItemList(pmoi);
        log.info("dealOutHospInfo需要处理的出院手术患者信息:{}", CollectionUtils.isNotEmpty(patMedOperationItems) ? patMedOperationItems.size() : null);
        for (PatMedOperationItem opItem : patMedOperationItems) {
@@ -1204,6 +1198,10 @@
                serviceTaskoper.setOrgid(opItem.getOrgid());
                serviceTaskoper.setOplevelcode(opItem.getOplevelcode());
                //根据科室、病区过滤
                serviceTaskoper.setDeptCode(opItem.getDeptcode());
                serviceTaskoper.setWardCode(opItem.getHospitaldistrictcode());
                List<ServiceTaskoper> serviceTaskopers = serviceTaskoperMapper.selectServiceTaskoperList(serviceTaskoper);
                //如果部门模板为空(将deptIsNull设置为true)
                if (CollectionUtils.isEmpty(serviceTaskopers) || serviceTaskopers.size() == 0) {
smartor/src/main/resources/mapper/smartor/PatMedOperationItemMapper.xml
@@ -29,6 +29,16 @@
            <result property="pid" column="pid"/>
            <result property="opercheckFlag" column="opercheck_flag"/>
            <result property="longTaskReason" column="long_task_reason"/>
            <result property="deptcode" column="deptcode"/>
            <result property="deptname" column="deptname"/>
            <result property="hospitaldistrictcode" column="hospitaldistrictcode"/>
            <result property="hospitaldistrictname" column="hospitaldistrictname"/>
            <result property="patid" column="patid"/>
            <result property="drcode" column="drcode"/>
            <result property="drname" column="drname"/>
            <result property="nurseId" column="nurse_id"/>
            <result property="nurseName" column="nurse_name"/>
    </resultMap>
    <sql id="selectPatMedOperationItemVo">
@@ -399,5 +409,83 @@
               where opid = #{opid}
    </delete>
    <select id="selectOperationItemList" parameterType="com.smartor.domain.PatMedOperationItem"
            resultMap="PatMedOperationItemResult">
        select pmoi.id, pmoi.operationid, pmoi.opid, pmoi.opcode, pmoi.opdesc, pmoi.main_flag, pmoi.incitypecode,
        pmoi.incitypedesc, pmoi.oplevelcode, pmoi.opleveldesc, pmoi.opposition, pmoi.del_flag, pmoi.update_by,
        pmoi.update_time, pmoi.create_by, pmoi.create_time, pmoi.isupload, pmoi.upload_time, pmoi.orgid,
        pmoi.pguid, pmoi.guid, pmoi.pid, pmoi.opercheck_flag, pmoi.long_task_reason,
        pmo.deptcode, pmo.deptname, pmo.hospitaldistrictcode, pmo.hospitaldistrictname, pmo.patid,
        pmo.drcode, pmo.drname, pmo.nurse_id, pmo.nurse_name
        from pat_med_operation pmo
        join pat_med_operation_item pmoi
        on pmoi.opcode = pmo.opcode
        where
        pmo.del_flag = '0'
        and pmoi.del_flag = '0'
        <if test="operationid != null ">
            and pmoi.operationid = #{operationid}
        </if>
        <if test="opid != null ">
            and pmoi.opid = #{opid}
        </if>
        <if test="opcode != null  and opcode != ''">
            and pmoi.opcode = #{opcode}
        </if>
        <if test="opdesc != null  and opdesc != ''">
            and pmoi.opdesc = #{opdesc}
        </if>
        <if test="mainFlag != null  and mainFlag != ''">
            and pmoi.main_flag = #{mainFlag}
        </if>
        <if test="incitypecode != null  and incitypecode != ''">
            and pmoi.incitypecode = #{incitypecode}
        </if>
        <if test="incitypedesc != null  and incitypedesc != ''">
            and pmoi.incitypedesc = #{incitypedesc}
        </if>
        <if test="oplevelcode != null  and oplevelcode != ''">
            and pmoi.oplevelcode = #{oplevelcode}
        </if>
        <if test="opleveldesc != null  and opleveldesc != ''">
            and pmoi.opleveldesc = #{opleveldesc}
        </if>
        <if test="opposition != null  and opposition != ''">
            and pmoi.opposition = #{opposition}
        </if>
        <if test="isupload != null ">
            and pmoi.isupload = #{isupload}
        </if>
        <if test="uploadTime != null ">
            and pmoi.upload_time = #{uploadTime}
        </if>
        <if test="orgid != null  and orgid != ''">
            and pmoi.orgid = #{orgid}
        </if>
        <if test="pguid != null  and pguid != ''">
            and pmoi.pguid = #{pguid}
        </if>
        <if test="guid != null  and guid != ''">
            and pmoi.guid = #{guid}
        </if>
        <if test="pid != null ">
            and pmoi.pid = #{pid}
        </if>
        <if test="deptcode != null and deptcode != ''">
            and pmo.deptcode = #{deptcode}
        </if>
        <if test="deptname != null and deptname != ''">
            and pmo.deptname = #{deptname}
        </if>
        <if test="hospitaldistrictcode != null and hospitaldistrictcode != ''">
            and pmo.hospitaldistrictcode = #{hospitaldistrictcode}
        </if>
        <if test="hospitaldistrictname != null and hospitaldistrictname != ''">
            and pmo.hospitaldistrictname = #{hospitaldistrictname}
        </if>
        <if test="patid != null">
            and pmo.patid = #{patid}
        </if>
    </select>
</mapper>