瀏覽代碼

添加拉取昨日入院登记定时任务

lipc 3 年之前
父節點
當前提交
51c4609f2f

+ 32 - 32
src/main/java/com/diagbot/facade/str/AStrAdmissionNoteFacade.java

@@ -123,34 +123,35 @@ public class AStrAdmissionNoteFacade extends StrAdmissionNoteServiceImpl {
 
     /**
      * 把得到的list变成一个对象
+     *
      * @param
      */
-    public  void getOneList(List<FJStrAdmissionNoteVo> strAdmissionNoteVos,String modeId) {
+    public void getOneList(List<FJStrAdmissionNoteVo> strAdmissionNoteVos, String modeId) {
         try {
-            Map<String,Object> map =new HashMap<>();
-            Map<String,Object> wholeData =new HashMap<>();
+            Map<String, Object> map = new HashMap<>();
+            Map<String, Object> wholeData = new HashMap<>();
             String modelName = ModeIdEnum.getName(Integer.parseInt(modeId));
-            Map<String,String> tableKey=columnFacade.getColumn(CacheKeyEnum.getName(modelName));
+            Map<String, String> tableKey = columnFacade.getColumn(CacheKeyEnum.getName(modelName));
             //循环list根据咱字段的名称来跟得到的数据来做比较
-            for (FJStrAdmissionNoteVo s: strAdmissionNoteVos) {
-                if (s.getKeyEn()!=null) {
+            for (FJStrAdmissionNoteVo s : strAdmissionNoteVos) {
+                if (s.getKeyEn() != null) {
                     tableKey.forEach((k, v) -> {
                         if (s.getKeyEn().equals(v)) {
                             map.put(s.getKeyEn(), s.getDeValue());
                             wholeData.put(k, s.getDeValue());
                         }
                     });
-                }else {
-                    wholeData.put(s.getKeyCN(),s.getDeValue());
+                } else {
+                    wholeData.put(s.getKeyCN(), s.getDeValue());
                 }
             }
 
-            StrAdmissionNote strAdmissionNote =new StrAdmissionNote();
+            StrAdmissionNote strAdmissionNote = new StrAdmissionNote();
             AStrAdmissionNoteVO aStrAdmissionNoteVO = (AStrAdmissionNoteVO) MapUtil.mapToObject(map, AStrAdmissionNoteVO.class);
-            BeanUtils.copyProperties(aStrAdmissionNoteVO,strAdmissionNote);
+            BeanUtils.copyProperties(aStrAdmissionNoteVO, strAdmissionNote);
             strAdmissionNote.setWholeData(JSON.toJSONString(wholeData));
 
-            BeanUtils.copyProperties(strAdmissionNoteVos.get(0),strAdmissionNote);
+            BeanUtils.copyProperties(strAdmissionNoteVos.get(0), strAdmissionNote);
 
             strAdmissionNote.setAuditDate(DateUtil.parseDateTime(aStrAdmissionNoteVO.getAuditDate()));//审核时间
             strAdmissionNote.setRecDate(DateUtil.parseDateTime(aStrAdmissionNoteVO.getRecDate()));//记录时间
@@ -159,11 +160,10 @@ public class AStrAdmissionNoteFacade extends StrAdmissionNoteServiceImpl {
             strAdmissionNote.setRecordDate(DateUtil.parseDateTime(aStrAdmissionNoteVO.getRecordDate()));//病历日期
 
 
-                HisViewVo hisViewVo = new HisViewVo();
-                BeanUtils.copyProperties(strAdmissionNoteVos.get(0),hisViewVo);
-                aMedicalRecordContentFacade.executeByView(hisViewVo);
-                aMedicalRecordFacade.executeByView(hisViewVo,modeId);
-
+            HisViewVo hisViewVo = new HisViewVo();
+            BeanUtils.copyProperties(strAdmissionNoteVos.get(0), hisViewVo);
+            aMedicalRecordContentFacade.executeByView(hisViewVo);
+            aMedicalRecordFacade.executeByView(hisViewVo, modeId);
 
 
             this.dealData(strAdmissionNote);
@@ -217,30 +217,30 @@ public class AStrAdmissionNoteFacade extends StrAdmissionNoteServiceImpl {
         }
     }
 
-    public RespDTO execDealData(List<StrAdmissionNoteVO> list){
-        if(list!=null && list.size()>0){
+    public RespDTO execDealData(List<StrAdmissionNoteVO> list) {
+        if (list != null && list.size() > 0) {
             //循环验证数据有效性
-            for (StrAdmissionNoteVO strAdmissionNoteVO:list) {
-                if("".equals(strAdmissionNoteVO.getRecId())) {
+            for (StrAdmissionNoteVO strAdmissionNoteVO : list) {
+                if ("".equals(strAdmissionNoteVO.getRecId())) {
                     return RespDTO.onError("请输入记录编号!");
-                }else if(strAdmissionNoteVO.getHospitalId()==null){
+                } else if (strAdmissionNoteVO.getHospitalId() == null) {
                     return RespDTO.onError("请输入医院编码!");
-                }else if("".equals(strAdmissionNoteVO.getBehospitalCode())){
+                } else if ("".equals(strAdmissionNoteVO.getBehospitalCode())) {
                     return RespDTO.onError("请输入病人住院编码!");
                 }
             }
             //初始、格式化数据
-            List<StrAdmissionNote> strAdmissionNoteList=Lists.newArrayList();
-            strAdmissionNoteList=BeanUtil.listCopyTo(list,StrAdmissionNote.class);
+            List<StrAdmissionNote> strAdmissionNoteList = Lists.newArrayList();
+            strAdmissionNoteList = BeanUtil.listCopyTo(list, StrAdmissionNote.class);
             execute(strAdmissionNoteList);
 
             return RespDTO.onSuc(strAdmissionNoteList);
-        }else{
+        } else {
             return RespDTO.onError("未接收到数据!");
         }
     }
 
-    public void execute(List<StrAdmissionNote> list){
+    public void execute(List<StrAdmissionNote> list) {
         try {
             List<StrAdmissionNote> addE = Lists.newLinkedList();
             List<StrAdmissionNote> updateE = Lists.newLinkedList();
@@ -249,7 +249,7 @@ public class AStrAdmissionNoteFacade extends StrAdmissionNoteServiceImpl {
                     StrAdmissionNote strAdmissionNote = this.getOne(new QueryWrapper<StrAdmissionNote>()
                             .eq("rec_id", s.getRecId())
                             .eq("hospital_id", s.getHospitalId())
-                            .eq("behospital_code",s.getBehospitalCode()), false);
+                            .eq("behospital_code", s.getBehospitalCode()), false);
                     if (strAdmissionNote != null) {
                         s.setGmtModified(new Date());
                         updateE.add(s);
@@ -259,15 +259,15 @@ public class AStrAdmissionNoteFacade extends StrAdmissionNoteServiceImpl {
                     }
                 });
             }
-            if(addE.size()>0){
+            if (addE.size() > 0) {
                 strAdmissionNoteService.saveBatch(addE);
             }
-            if(updateE.size()>0){
+            if (updateE.size() > 0) {
                 this.baseMapper.updateBatchByKey(updateE);
             }
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-入院记录","", JSON.toJSONString(list),"",e.getMessage());
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+            aMedAbnormalInfoFacade.saveAbnormalInfo("结构化-入院记录", "", JSON.toJSONString(list), "", e.getMessage());
         }
     }
 

+ 93 - 0
src/main/java/com/diagbot/task/PullDataTask.java

@@ -0,0 +1,93 @@
+package com.diagbot.task;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.entity.SysTaskCron;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.facade.OldDataFacade;
+import com.diagbot.facade.SysTaskCronFacade;
+import com.diagbot.facade.data.StructuralOldDataFacade;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.TaskVO;
+import com.diagbot.vo.data.StructuralDataVo;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.Trigger;
+import org.springframework.scheduling.TriggerContext;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.SchedulingConfigurer;
+import org.springframework.scheduling.config.ScheduledTaskRegistrar;
+import org.springframework.scheduling.support.CronTrigger;
+
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
+
+/**
+ * @Description:
+ * 历史数据一致性定时任务 每天判断his数据库文书数量跟我们库里数量一致么 不一致拉取历史数据
+ * @author: gaodm
+ * @time: 2020/4/15 17:45
+ */
+@Configuration      //1.主要用于标记配置类,兼备Component的效果。
+@EnableScheduling   // 2.开启定时任务
+@Slf4j
+public class PullDataTask implements SchedulingConfigurer {
+    @Autowired
+    private SysTaskCronFacade sysTaskCronFacade;
+
+    private SysTaskCron task = new SysTaskCron();
+
+    private String param = "";
+
+    @Autowired
+    private StructuralOldDataFacade structuralOldDataFacade;
+
+    /**
+     * 执行定时任务.
+     */
+    @Override
+    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
+        taskRegistrar.addTriggerTask(new Runnable() {
+            @Override
+            public void run() {
+                //1.添加任务内容(Runnable)
+                if (null != task
+                        && task.getIsDeleted().equals(IsDeleteEnum.N.getKey())
+                        && task.getIsUsed().equals(1)) {
+                    log.info("执行动态定时任务: " + LocalDateTime.now().toLocalTime());
+                    TaskVO taskVO = new TaskVO();
+
+                    StructuralDataVo structuralDataVo = new StructuralDataVo();
+
+                    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+                    Calendar yesterday = new GregorianCalendar();
+                    yesterday.setTime(new Date());
+                    structuralDataVo.setStopDate(sdf.format(yesterday.getTime()));
+                    yesterday.add(yesterday.DATE, -1);
+                    structuralDataVo.setStartDate(sdf.format(yesterday.getTime()));
+
+                    structuralOldDataFacade.sendStructuralDataOld(structuralDataVo);
+
+                }
+            }
+        }, new Trigger() {
+            @Override
+            public Date nextExecutionTime(TriggerContext triggerContext) {
+                //2.1 从数据库获取执行周期
+                task = sysTaskCronFacade.getOne(new QueryWrapper<SysTaskCron>()
+                        .eq("cron_code", "pull_task"), false);
+                String cron = "0 0 23 * * ? ";
+                //2.2 合法性校验.
+                if (null != task && StringUtil.isNotBlank(task.getCron())) {
+                    cron = task.getCron();
+                    param = task.getParam();
+                }
+                CronTrigger trigger = new CronTrigger(cron);
+                return trigger.nextExecutionTime(triggerContext);
+            }
+        });
+    }
+}