陈昶聿
2 天以前 f2cc333b963cb0de81aebc5ae3a8c247e99243d8
【市一】同步手术视图
已修改7个文件
345 ■■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/CollectHISMapper.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ICollectHISService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/resources/mapper/quartz/CollectHISMapper.xml 225 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/PatMedOperation.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/PatMedOperationItem.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
@@ -829,4 +829,9 @@
    public void syncMedInhospForShiyi(@RequestParam("startTime") String startTime, @RequestParam("endTime") String endTime) {
        collectHISService.syncMedInhosp(startTime, endTime);
    }
    @PostMapping("/syncMedOperForShiyi")
    public void syncMedOperForShiyi(@RequestParam("startTime") String startTime, @RequestParam("endTime") String endTime) {
        collectHISService.syncOper(startTime, endTime);
    }
}
ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/CollectHISMapper.java
@@ -110,6 +110,23 @@
    public List<SysDept> selectDeptList(SysDept dept);
    /**
     * 根据条件分页查询手术信息
     *
     * @param patMedOperation 手术信息
     * @return 手术信息集合信息
     */
    public List<PatMedOperation> selectOperList(PatMedOperation patMedOperation);
    /**
     * 根据条件分页查询手术详情信息
     *
     * @param patMedOperationItem 手术详情信息
     * @return 手术详情信息集合信息
     */
    public List<PatMedOperationItem> selectOperItemList(PatMedOperationItem patMedOperationItem);
    /**
     * 查询返回strign sql
     * @param sql
     * @return
ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ICollectHISService.java
@@ -78,4 +78,9 @@
     * 市一同步
     */
    public Integer syncMedInhosp(String startTime, String endTime);
    /**
     * 市一同步
     */
    public Integer syncOper(String startTime, String endTime);
}
ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java
@@ -74,7 +74,11 @@
    @Value("${spring.profiles.active}")
    private String active;
    @Autowired
    private PatMedOperationMapper patMedOperationMapper;
    @Autowired
    private PatMedOperationItemMapper patMedOperationItemMapper;
    @Override
    public List<PatArchive> selectPatArchiveList(PatArchive patArchive) {
@@ -127,6 +131,12 @@
                utilsMapper.updateSql("update sys_sync_time set startTime='" + endTime + "' where syncName='pat_med_outhosp' ");
            }
            //同步手术信息
            syncTemp = syncList.stream().filter(row -> row.get("syncName").equals("pat_med_operation")).collect(Collectors.toList());
            if (syncTemp.size() > 0) {
                count += syncOper(syncTemp.get(0).get("startTime") + "", endTime);
                utilsMapper.updateSql("update sys_sync_time set startTime='" + endTime + "' where syncName='pat_med_operation' ");
            }
        } else {
            log.info("同步任务时间sys_sync_time表中没有需要同步的任务");
@@ -311,6 +321,77 @@
        return count;
    }
    /**
     * 同步手术信息
     *
     * @param
     * @return
     */
    @Override
    public Integer syncOper(String startTime, String endTime) {
        Integer count = 0;
        PatMedOperation patMedOperation = new PatMedOperation();
        patMedOperation.setLastStartTime(startTime);
        patMedOperation.setLastEndTime(endTime);
        List<PatMedOperation> patMedOperations = chMapper.selectOperList(patMedOperation);
        log.info("同步手术信息数量" + patMedOperations.size());
        for (PatMedOperation operation : patMedOperations) {
            try {
                PatMedOperation oper = new PatMedOperation();
                oper.setOpid(operation.getOpid());
                List<PatMedOperation> patMedOperations1 = patMedOperationMapper.selectPatMedOperationList(oper);
                if (CollectionUtils.isNotEmpty(patMedOperations1)) {
                    operation.setId(patMedOperations1.get(0).getId());
                    operation.setUpdateTime(new Date());
                    count += patMedOperationMapper.updatePatMedOperation(patMedOperations1.get(0));
                    syncOperItem(operation);
                } else {
                    operation.setCreateTime(new Date());
                    count += patMedOperationMapper.insertPatMedOperation(operation);
                    syncOperItem(operation);
                }
            } catch (Exception ex) {
                log.info("同步手术信息:" + ex.getMessage());
            }
        }
        return count;
    }
    /**
     * 同步手术信息
     *
     * @param
     * @return
     */
    private Integer syncOperItem(PatMedOperation operation) {
        Integer count = 0;
        PatMedOperationItem patMedOperationItem = new PatMedOperationItem();
        patMedOperationItem.setOrgid(operation.getOrgid());
        if(StringUtils.isNotEmpty(operation.getOpid())){
            patMedOperationItem.setOpid(Long.valueOf(operation.getOpid()));
            List<PatMedOperationItem> patMedOperationItems = chMapper.selectOperItemList(patMedOperationItem);
            log.info("同步手术详情信息数量" + patMedOperationItems.size());
            for (PatMedOperationItem operationItem : patMedOperationItems) {
                try {
                    PatMedOperationItem operItem = new PatMedOperationItem();
                    operItem.setOpid(operationItem.getOpid());
                    operItem.setOperationid(operationItem.getOperationid());
                    List<PatMedOperationItem> patMedOperationItems1 = patMedOperationItemMapper.selectPatMedOperationItemList(operItem);
                    if (CollectionUtils.isNotEmpty(patMedOperationItems1)) {
                        operationItem.setId(patMedOperationItems1.get(0).getId());
                        operationItem.setUpdateTime(new Date());
                        count += patMedOperationItemMapper.updatePatMedOperationItem(operationItem);
                    } else {
                        operation.setCreateTime(new Date());
                        count += patMedOperationItemMapper.insertPatMedOperationItem(operationItem);
                    }
                } catch (Exception ex) {
                    log.info("同步手术详情信息:" + ex.getMessage());
                }
            }
        }
        return count;
    }
    @Override
    public Integer selectPatMedInhospList(PatMedInhosp patMedInhosp) {
        List<PatMedInhosp> patMedInhospList = chMapper.selectPatMedInhospList(patMedInhosp);
ruoyi-quartz/src/main/resources/mapper/quartz/CollectHISMapper.xml
@@ -336,6 +336,107 @@
        <result property="guid" column="guid"/>
    </resultMap>
    <resultMap type="com.smartor.domain.PatMedOperation" id="PatMedOperationResult">
        <result property="id" column="id"/>
        <result property="patid" column="patid"/>
        <result property="patcode" column="patcode"/>
        <result property="paname" column="paname"/>
        <result property="opreqid" column="opreqid"/>
        <result property="opreqcode" column="opreqcode"/>
        <result property="opsstatus" column="opsstatus"/>
        <result property="optypecode" column="optypecode"/>
        <result property="optypename" column="optypename"/>
        <result property="operatortime" column="operatortime"/>
        <result property="opreqtime" column="opreqtime"/>
        <result property="reqdoccode" column="reqdoccode"/>
        <result property="reqdocname" column="reqdocname"/>
        <result property="reqdeptcode" column="reqdeptcode"/>
        <result property="reqdeptname" column="reqdeptname"/>
        <result property="reqloccode" column="reqloccode"/>
        <result property="reqlocname" column="reqlocname"/>
        <result property="remark" column="remark"/>
        <result property="surgeoncode" column="surgeoncode"/>
        <result property="surgeonname" column="surgeonname"/>
        <result property="firasscode" column="firasscode"/>
        <result property="firassname" column="firassname"/>
        <result property="secasscode" column="secasscode"/>
        <result property="secassname" column="secassname"/>
        <result property="thrasscode" column="thrasscode"/>
        <result property="thrassname" column="thrassname"/>
        <result property="canceltime" column="canceltime"/>
        <result property="cancelreason" column="cancelreason"/>
        <result property="cancelcode" column="cancelcode"/>
        <result property="cancelname" column="cancelname"/>
        <result property="visittype" column="visittype"/>
        <result property="status" column="status"/>
        <result property="schemetime" column="schemetime"/>
        <result property="schemestatus" column="schemestatus"/>
        <result property="delFlag" column="del_flag"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="isupload" column="isupload"/>
        <result property="uploadTime" column="upload_time"/>
        <result property="orgid" column="orgid"/>
        <result property="guid" column="guid"/>
        <result property="pguid" column="pguid"/>
        <result property="pid" column="pid"/>
        <result property="inhospstate" column="inhospstate"/>
        <result property="patno" column="patno"/>
        <result property="patname" column="patname"/>
        <result property="visitid" column="visitid"/>
        <result property="serialnum" column="serialnum"/>
        <result property="inhospno" column="inhospno"/>
        <result property="hospitalname" column="hospitalname"/>
        <result property="hospitalcode" column="hospitalcode"/>
        <result property="deptid" column="deptid"/>
        <result property="deptcode" column="deptcode"/>
        <result property="deptname" column="deptname"/>
        <result property="hospitaldistrictcode" column="hospitaldistrictcode"/>
        <result property="hospitaldistrictname" column="hospitaldistrictname"/>
        <result property="roomno" column="roomno"/>
        <result property="bedNo" column="bed_no"/>
        <result property="drcode" column="drcode"/>
        <result property="drname" column="drname"/>
        <result property="nurseId" column="nurse_id"/>
        <result property="nurseName" column="nurse_name"/>
        <result property="checkFlag" column="check_flag"/>
        <result property="longTaskReason" column="long_task_reason"/>
        <result property="opid" column="opid"/>
        <result property="opcode" column="opcode"/>
        <result property="opdesc" column="opdesc"/>
        <result property="oplevelcode" column="oplevelcode"/>
        <result property="opleveldesc" column="opleveldesc"/>
    </resultMap>
    <resultMap type="com.smartor.domain.PatMedOperationItem" id="PatMedOperationItemResult">
        <result property="id" column="id"/>
        <result property="operationid" column="operationid"/>
        <result property="opid" column="opid"/>
        <result property="opcode" column="opcode"/>
        <result property="opdesc" column="opdesc"/>
        <result property="mainFlag" column="main_flag"/>
        <result property="incitypecode" column="incitypecode"/>
        <result property="incitypedesc" column="incitypedesc"/>
        <result property="oplevelcode" column="oplevelcode"/>
        <result property="opleveldesc" column="opleveldesc"/>
        <result property="opposition" column="opposition"/>
        <result property="delFlag" column="del_flag"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="isupload" column="isupload"/>
        <result property="uploadTime" column="upload_time"/>
        <result property="orgid" column="orgid"/>
        <result property="pguid" column="pguid"/>
        <result property="guid" column="guid"/>
        <result property="pid" column="pid"/>
        <result property="opercheckFlag" column="opercheck_flag"/>
        <result property="longTaskReason" column="long_task_reason"/>
    </resultMap>
    <sql id="selectPatArchiveVo">
        select notrequired_flag,
               notrequiredreason,
@@ -714,4 +815,128 @@
    </select>
    <select id="selectOperList" parameterType="com.smartor.domain.PatMedOperation"
            resultMap="PatMedOperationResult">
        select
        o.patid,
        o.patcode,
        o.paname,
        o.opreqid,
        o.opreqcode,
        o.opsstatus,
        o.optypecode,
        o.optypename,
        o.operatortime,
        o.opreqtime,
        o.reqdoccode,
        o.reqdocname,
        o.reqdeptcode,
        o.reqdeptname,
        o.reqloccode,
        o.reqlocname,
        o.remark,
        o.surgeoncode,
        o.surgeonname,
        o.firasscode ,
        o.firassname,
        o.secasscode,
        o.secassname ,
        o.thrasscode,
        o.thrassname,
        o.endcancelname,
        o.visittype,
        o.status,
        o.schemetime,
        o.schemestatus,
        o.del_flag,
        o.update_by,
        o.update_time,
        o.create_by,
        o.create_time,
        o.isupload,
        o.upload_time,
        o.orgid ,
        o.guid,
        o.pguid,
        o.pid ,
        o.inhospstate,
        o.patno,
        o.patname,
        o.visitid,
        o.serialnum,
        o.inhospno ,
        o.hospitalname,
        o.hospitalcode,
        o.deptid ,
        o.deptcode ,
        o.deptname ,
        o.hospitaldistrictcode,
        o.hospitaldistrictname ,
        o.roomno  ,
        o.bed_no ,
        o.drcode  ,
        o.drname ,
        o.nurse_id,
        o.nurse_name ,
        o.check_flag ,
        o.long_task_reason,
        o.opid ,
        o.vopcode ,
        o.opdesc,
        o.oplevelcode ,
        o.opleveldesc
        from PAT_MED_OPERATION o
        where 1=1
        <if test="orgid != null and orgid != ''">
            AND o.orgid = #{orgid}
        </if>
        <if test="lastStartTime != null and lastStartTime != ''">
            and to_char(o.last_Update_Time, 'YYYY-MM-DD HH24:MI:SS') >= #{lastStartTime}
        </if>
        <if test="lastEndTime != null and lastEndTime != ''">
            and to_char(o.last_Update_Time, 'YYYY-MM-DD HH24:MI:SS') &lt;= #{lastEndTime}
        </if>
    </select>
    <select id="selectOperItemList" parameterType="com.smartor.domain.PatMedOperationItem"
            resultMap="PatMedOperationItemResult">
        select
               oi.operationid,
               oi.opid,
               oi.opcode,
               oi.opdesc,
               oi.main_flag,
               oi.incitypecode,
               oi.incitypedesc,
               oi.oplevelcode,
               oi.opleveldesc,
               oi.opposition,
               oi.del_flag,
               oi.update_by,
               oi.update_time,
               oi.create_by,
               oi.create_time,
               oi.isupload,
               oi.upload_time,
               oi.orgid,
               oi.pguid,
               oi.guid,
               oi.pid,
               oi.opercheck_flag,
               oi.long_task_reason
        from PAT_MED_OPERATION_ITEM oi
        where 1=1
        <if test="orgid != null and orgid != ''">
            AND oi.orgid = #{orgid}
        </if>
        <if test="opid != null and opid != ''">
            AND oi.opid = #{opid}
        </if>
        <if test="lastStartTime != null and lastStartTime != ''">
            and to_char(oi.last_Update_Time, 'YYYY-MM-DD HH24:MI:SS') >= #{lastStartTime}
        </if>
        <if test="lastEndTime != null and lastEndTime != ''">
            and to_char(oi.last_Update_Time, 'YYYY-MM-DD HH24:MI:SS') &lt;= #{lastEndTime}
        </if>
    </select>
</mapper>
smartor/src/main/java/com/smartor/domain/PatMedOperation.java
@@ -498,6 +498,12 @@
    @ApiModelProperty(value = "结束手术时间")
    private Date endTime;
    @ApiModelProperty(value = "最后开始时间")
    private String lastStartTime;
    @ApiModelProperty(value = "最后结束时间")
    private String lastEndTime;
    /**
     * pageNum
     */
smartor/src/main/java/com/smartor/domain/PatMedOperationItem.java
@@ -146,6 +146,12 @@
    @Excel(name = "父ID")
    private Long pid;
    @ApiModelProperty(value = "最后开始时间")
    private String lastStartTime;
    @ApiModelProperty(value = "最后结束时间")
    private String lastEndTime;
    /**
     * 手术长期任务,是否处理:0未处理   1处理
     */