陈昶聿
2 天以前 f2cc333b963cb0de81aebc5ae3a8c247e99243d8
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) {
@@ -115,6 +119,7 @@
            //同步住院病人信息
            List<Map<String, Object>> syncTemp = syncList.stream().filter(row -> row.get("syncName").equals("pat_med_inhosp")).collect(Collectors.toList());
            if (syncTemp.size() > 0) {
                log.info("startTime:" + syncTemp.get(0).get("startTime") + ", endTime: ", endTime);
                count += syncMedInhosp(syncTemp.get(0).get("startTime") + "", endTime);
                utilsMapper.updateSql("update sys_sync_time set startTime='" + endTime + "' where syncName='pat_med_inhosp' ");
            }
@@ -126,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表中没有需要同步的任务");
@@ -310,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);