Browse Source

归档定时任务接口、院区接口(还需处理)

chenbin 4 months ago
parent
commit
82a1992d22

+ 1 - 0
src/main/java/com/diagbot/config/ResourceServerConfigurer.java

@@ -168,6 +168,7 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/qc/data/sendDeptInfos").permitAll()
                 .antMatchers("/qc/data/sendRecordTypes").permitAll()
                 .antMatchers("/qc/data/updateDeptInfos").permitAll()
+                .antMatchers("/qc/data/updatePatientInfos").permitAll()
                 .antMatchers("/qc/data/sendMrRecordIng").permitAll()
                 .antMatchers("/qc/data/sendMrContent").permitAll()
                 .antMatchers("/qc/data/sendMrRecord").permitAll()

+ 1 - 0
src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -228,6 +228,7 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/qc/data/sendDoctorInfos", request)
                 || matchers("/qc/data/sendDeptInfos", request)
                 || matchers("/qc/data/updateDeptInfos", request)
+                || matchers("/qc/data/updatePatientInfos", request)
                 || matchers("/qc/data/sendRecordTypes", request)
                 || matchers("/qc/data/sendMrRecordIng", request)
                 || matchers("/qc/data/sendMrContent", request)

+ 11 - 27
src/main/java/com/diagbot/entity/BasDeptInfo.java

@@ -69,8 +69,7 @@ public class BasDeptInfo implements Serializable {
     /**
     * 院区id
     */
-    private Long hospitalCampusId;
-
+    private String hospitalCampusId;
 
     /**
      * 创建人,0表示无创建人值
@@ -152,6 +151,15 @@ public class BasDeptInfo implements Serializable {
     public void setGmtModified(Date gmtModified) {
         this.gmtModified = gmtModified;
     }
+
+    public String getHospitalCampusId() {
+        return hospitalCampusId;
+    }
+
+    public void setHospitalCampusId(String hospitalCampusId) {
+        this.hospitalCampusId = hospitalCampusId;
+    }
+
     public String getCreator() {
         return creator;
     }
@@ -159,6 +167,7 @@ public class BasDeptInfo implements Serializable {
     public void setCreator(String creator) {
         this.creator = creator;
     }
+
     public String getModifier() {
         return modifier;
     }
@@ -166,30 +175,5 @@ public class BasDeptInfo implements Serializable {
     public void setModifier(String modifier) {
         this.modifier = modifier;
     }
-    public Long getHospitalCampusId() {
-        return hospitalCampusId;
-    }
 
-    public void setHospitalCampusId(Long hospitalCampusId) {
-        this.hospitalCampusId = hospitalCampusId;
-    }
-
-    @Override
-    public String toString() {
-        return "BasDeptInfo{" +
-                "deptId='" + deptId + '\'' +
-                ", hospitalId=" + hospitalId +
-                ", parentDeptId='" + parentDeptId + '\'' +
-                ", deptName='" + deptName + '\'' +
-                ", deptType='" + deptType + '\'' +
-                ", spell='" + spell + '\'' +
-                ", station='" + station + '\'' +
-                ", isDeleted='" + isDeleted + '\'' +
-                ", gmtCreate=" + gmtCreate +
-                ", gmtModified=" + gmtModified +
-                ", hospitalCampusId=" + hospitalCampusId +
-                ", creator='" + creator + '\'' +
-                ", modifier='" + modifier + '\'' +
-                '}';
-    }
 }

+ 10 - 325
src/main/java/com/diagbot/entity/BehospitalInfo.java

@@ -3,7 +3,7 @@ package com.diagbot.entity;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
+import lombok.*;
 
 import java.io.Serializable;
 import java.util.Date;
@@ -17,6 +17,10 @@ import java.util.Date;
  * @since 2020-04-13
  */
 @TableName("med_behospital_info")
+@NoArgsConstructor
+@AllArgsConstructor
+@Getter
+@Setter
 @Data
 public class BehospitalInfo implements Serializable {
 
@@ -201,332 +205,13 @@ public class BehospitalInfo implements Serializable {
     /**
      * 取消入院,如果为0则表示未取消入院
      */
-
     private String isCancelBehospital;
 
-    public String getIsCancelBehospital() {
-        return isCancelBehospital;
-    }
-
-    public void setIsCancelBehospital(String isCancelBehospital) {
-        this.isCancelBehospital = isCancelBehospital;
-    }
-
-    public String getIsDaytime() {
-        return isDaytime;
-    }
-
-    public void setIsDaytime(String isDaytime) {
-        this.isDaytime = isDaytime;
-    }
-
-    public String getIsBaby() {
-        return isBaby;
-    }
-
-    public void setIsBaby(String isBaby) {
-        this.isBaby = isBaby;
-    }
-
-    public String getInState() {
-        return inState;
-    }
-
-    public void setInState(String inState) {
-        this.inState = inState;
-    }
-
-
-
-    public String getBehospitalCode() {
-        return behospitalCode;
-    }
-
-    public void setBehospitalCode(String behospitalCode) {
-        this.behospitalCode = behospitalCode;
-    }
-
-    public Long getHospitalId() {
-        return hospitalId;
-    }
-
-    public void setHospitalId(Long hospitalId) {
-        this.hospitalId = hospitalId;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public String getSex() {
-        return sex;
-    }
-
-    public void setSex(String sex) {
-        this.sex = sex;
-    }
-
-    public Date getBirthday() {
-        return birthday;
-    }
-
-    public void setBirthday(Date birthday) {
-        this.birthday = birthday;
-    }
-
-    public String getFileCode() {
-        return fileCode;
-    }
-
-    public void setFileCode(String fileCode) {
-        this.fileCode = fileCode;
-    }
-
-    public Long getQcTypeId() {
-        return qcTypeId;
-    }
-
-    public void setQcTypeId(Long qcTypeId) {
-        this.qcTypeId = qcTypeId;
-    }
-
-    public String getWardCode() {
-        return wardCode;
-    }
-
-    public void setWardCode(String wardCode) {
-        this.wardCode = wardCode;
-    }
-
-    public String getWardName() {
-        return wardName;
-    }
-
-    public void setWardName(String wardName) {
-        this.wardName = wardName;
-    }
-
-    public String getBehDeptId() {
-        return behDeptId;
-    }
-
-    public void setBehDeptId(String behDeptId) {
-        this.behDeptId = behDeptId;
-    }
-
-    public String getBehDeptName() {
-        return behDeptName;
-    }
-
-    public void setBehDeptName(String behDeptName) {
-        this.behDeptName = behDeptName;
-    }
-
-    public String getBedCode() {
-        return bedCode;
-    }
-
-    public void setBedCode(String bedCode) {
-        this.bedCode = bedCode;
-    }
-
-    public String getBedName() {
-        return bedName;
-    }
-
-    public void setBedName(String bedName) {
-        this.bedName = bedName;
-    }
-
-    public String getInsuranceName() {
-        return insuranceName;
-    }
-
-    public void setInsuranceName(String insuranceName) {
-        this.insuranceName = insuranceName;
-    }
-
-    public String getJobType() {
-        return jobType;
-    }
-
-    public void setJobType(String jobType) {
-        this.jobType = jobType;
-    }
-
-    public Date getBehospitalDate() {
-        return behospitalDate;
-    }
-
-    public void setBehospitalDate(Date behospitalDate) {
-        this.behospitalDate = behospitalDate;
-    }
-
-    public Date getLeaveHospitalDate() {
-        return leaveHospitalDate;
-    }
-
-    public void setLeaveHospitalDate(Date leaveHospitalDate) {
-        this.leaveHospitalDate = leaveHospitalDate;
-    }
-
-    public String getDiagnoseIcd() {
-        return diagnoseIcd;
-    }
-
-    public void setDiagnoseIcd(String diagnoseIcd) {
-        this.diagnoseIcd = diagnoseIcd;
-    }
-
-    public String getDiagnose() {
-        return diagnose;
-    }
-
-    public void setDiagnose(String diagnose) {
-        this.diagnose = diagnose;
-    }
-
-    public String getBehDoctorId() {
-        return behDoctorId;
-    }
+    /**
+     * 病区id
+     * @return
+     */
+    private String hospitalCampusId;
 
-    public void setBehDoctorId(String behDoctorId) {
-        this.behDoctorId = behDoctorId;
-    }
 
-    public String getBehDoctorName() {
-        return behDoctorName;
-    }
-
-    public void setBehDoctorName(String behDoctorName) {
-        this.behDoctorName = behDoctorName;
-    }
-
-    public String getDoctorId() {
-        return doctorId;
-    }
-
-    public void setDoctorId(String doctorId) {
-        this.doctorId = doctorId;
-    }
-
-    public String getDoctorName() {
-        return doctorName;
-    }
-
-    public void setDoctorName(String doctorName) {
-        this.doctorName = doctorName;
-    }
-
-    public String getDirectorDoctorId() {
-        return directorDoctorId;
-    }
-
-    public void setDirectorDoctorId(String directorDoctorId) {
-        this.directorDoctorId = directorDoctorId;
-    }
-
-    public String getDirectorDoctorName() {
-        return directorDoctorName;
-    }
-
-    public void setDirectorDoctorName(String directorDoctorName) {
-        this.directorDoctorName = directorDoctorName;
-    }
-
-    public String getIsPlacefile() {
-        return isPlacefile;
-    }
-
-    public void setIsPlacefile(String isPlacefile) {
-        this.isPlacefile = isPlacefile;
-    }
-
-    public Date getPlacefileDate() {
-        return placefileDate;
-    }
-
-    public void setPlacefileDate(Date placefileDate) {
-        this.placefileDate = placefileDate;
-    }
-
-    public String getIsDeleted() {
-        return isDeleted;
-    }
-
-    public void setIsDeleted(String isDeleted) {
-        this.isDeleted = isDeleted;
-    }
-
-    public Date getGmtCreate() {
-        return gmtCreate;
-    }
-
-    public void setGmtCreate(Date gmtCreate) {
-        this.gmtCreate = gmtCreate;
-    }
-
-    public Date getGmtModified() {
-        return gmtModified;
-    }
-
-    public void setGmtModified(Date gmtModified) {
-        this.gmtModified = gmtModified;
-    }
-
-    public String getCreator() {
-        return creator;
-    }
-
-    public void setCreator(String creator) {
-        this.creator = creator;
-    }
-
-    public String getModifier() {
-        return modifier;
-    }
-
-    public void setModifier(String modifier) {
-        this.modifier = modifier;
-    }
-
-    @Override
-    public String toString() {
-        return "MedBehospitalInfo{" +
-                "behospitalCode=" + behospitalCode +
-                ", hospitalId=" + hospitalId +
-                ", name=" + name +
-                ", sex=" + sex +
-                ", birthday=" + birthday +
-                ", fileCode=" + fileCode +
-                ", qcTypeId=" + qcTypeId +
-                ", wardCode=" + wardCode +
-                ", wardName=" + wardName +
-                ", behDeptId=" + behDeptId +
-                ", behDeptName=" + behDeptName +
-                ", bedCode=" + bedCode +
-                ", bedName=" + bedName +
-                ", insuranceName=" + insuranceName +
-                ", jobType=" + jobType +
-                ", behospitalDate=" + behospitalDate +
-                ", leaveHospitalDate=" + leaveHospitalDate +
-                ", diagnoseIcd=" + diagnoseIcd +
-                ", diagnose=" + diagnose +
-                ", behDoctorId=" + behDoctorId +
-                ", behDoctorName=" + behDoctorName +
-                ", doctorId=" + doctorId +
-                ", doctorName=" + doctorName +
-                ", directorDoctorId=" + directorDoctorId +
-                ", directorDoctorName=" + directorDoctorName +
-                ", isDeleted=" + isDeleted +
-                ", gmtCreate=" + gmtCreate +
-                ", gmtModified=" + gmtModified +
-                ", creator=" + creator +
-                ", modifier=" + modifier +
-                "}";
-    }
 }

+ 52 - 1
src/main/java/com/diagbot/facade/data/ABehospitalInfoFacade.java

@@ -5,12 +5,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.ABehospitalInfoDTO;
+import com.diagbot.entity.BasDeptInfo;
 import com.diagbot.entity.BehospitalInfo;
 import com.diagbot.entity.MedicalRecord;
 import com.diagbot.entity.QcType;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.facade.QcAbnormalFacade;
 import com.diagbot.facade.QcTypeFacade;
+import com.diagbot.mapper.BehospitalInfoMapper;
 import com.diagbot.service.impl.BehospitalInfoServiceImpl;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
@@ -20,14 +22,18 @@ import com.diagbot.vo.data.ABehospitalInfoVO;
 import com.diagbot.vo.data.ADeleteFlagVO;
 import com.diagbot.vo.data.APlaceFileVO;
 import com.google.common.collect.Lists;
+import com.sun.xml.bind.v2.TODO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 @Component
 public class ABehospitalInfoFacade extends BehospitalInfoServiceImpl {
@@ -38,6 +44,8 @@ public class ABehospitalInfoFacade extends BehospitalInfoServiceImpl {
     private QcTypeFacade qcTypeFacade;
     @Autowired
     private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+    @Autowired
+    private BehospitalInfoMapper behospitalInfoMapper;
     @Value("${log_switch.enable}")
     private boolean logSwitch;
 
@@ -61,7 +69,15 @@ public class ABehospitalInfoFacade extends BehospitalInfoServiceImpl {
         List<BehospitalInfo> behospitalInfoList = tzDBConn.getBehospitalInfo(sql);
         execute(behospitalInfoList);
     }
-
+    /**
+     * 同步前一天病人的信息,把院区id同步
+     */
+    //TODO 查一下HIS的视图表名,重新写sql
+    public void executePatientCampusId() {
+        String sql="select * from AI_V_SENDPATIENTINFOS";
+        List<BehospitalInfo> behospitalInfo = tzDBConn.getBehospitalInfo(sql);
+        execute(behospitalInfo);
+    }
 
     /**
      * 通过接口更新病人住院记录信息
@@ -273,6 +289,41 @@ public class ABehospitalInfoFacade extends BehospitalInfoServiceImpl {
             return RespDTO.onError(e.getMessage());
         }
     }
+    public RespDTO updatePlacefile(String endDate){
+        try {
+            //验证数据是否存在
+            if(StringUtil.isBlank(endDate)){
+                return RespDTO.onError("请输入截止时间!");
+            }else{
+
+                LocalDateTime endDateTime = LocalDateTime.parse(endDate + "T23:59:59", DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss"));
+                QueryWrapper<BehospitalInfo> queryWrapper = new QueryWrapper();
+                queryWrapper.eq("hospital_id", "5")
+                        .eq("is_deleted", IsDeleteEnum.N)
+                        .lt("leave_hospital_date", endDateTime);
+
+                // 查询符合条件的数据,并提取 behospital_code 字段
+                List<BehospitalInfo> behospitalInfoList = behospitalInfoMapper.selectList(queryWrapper);
+                List<String> isPlaceFileInfoList = behospitalInfoList.stream()
+                        .map(BehospitalInfo::getBehospitalCode) // 提取 behospital_code
+                        .collect(Collectors.toList());
+                if (isPlaceFileInfoList.isEmpty()) {
+                    return RespDTO.onError("未找到病历!");
+                }
+                UpdateWrapper<BehospitalInfo> updateWrapper=new UpdateWrapper<>();
+                updateWrapper.eq("hospital_id", "5")
+                        .eq("is_deleted",IsDeleteEnum.N)
+                        .in("behospital_code", isPlaceFileInfoList)
+                        .set("is_placefile","1")
+                        .set("gmt_modified", DateUtil.now());
+
+                Boolean flag=update(new BehospitalInfo(),updateWrapper);
+                return RespDTO.onSuc(flag);
+            }
+        }catch (Exception e){
+            return RespDTO.onError(e.getMessage());
+        }
+    }
 
     public RespDTO sendDateInfo(String startDate, String endDate, String isLeave){
         try {

+ 71 - 0
src/main/java/com/diagbot/task/PlacefileTask.java

@@ -0,0 +1,71 @@
+package com.diagbot.task;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.entity.BehospitalInfo;
+import com.diagbot.entity.SysTaskCron;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.facade.SysTaskCronFacade;
+import com.diagbot.facade.data.ABehospitalInfoFacade;
+import com.diagbot.util.StringUtil;
+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.ScheduledTask;
+import org.springframework.scheduling.config.ScheduledTaskRegistrar;
+import org.springframework.scheduling.support.CronTrigger;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.Date;
+
+@Configuration      //1.主要用于标记配置类,兼备Component的效果。
+@EnableScheduling   // 2.开启定时任务
+@Slf4j
+public class PlacefileTask implements SchedulingConfigurer {
+    @Autowired
+    private ABehospitalInfoFacade aBehospitalInfoFacade;
+    @Autowired
+    private SysTaskCronFacade sysTaskCronFacade;
+
+    private SysTaskCron task = new SysTaskCron();
+    @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());
+                    //执行归档操作,若归档接口不能用可能会失效
+                    String endDate = LocalDateTime.now()
+                            .minusDays(3)
+                            .format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+
+                    aBehospitalInfoFacade.updatePlacefile(endDate);
+                }
+            }
+        }, new Trigger() {
+            @Override
+            public Date nextExecutionTime(TriggerContext triggerContext) {
+                //2.1 从数据库获取执行周期
+                task = sysTaskCronFacade.getOne(new QueryWrapper<SysTaskCron>()
+                        .eq("cron_code", "PLACEFILETASK"), false);
+                // 下面是默认,当数据库中获取不到动态执行周期时,则使用默认的
+                //每天晚上12点执行,可以在数据库里加上
+                String cron = "0 0 0 * * ?";
+                //2.2 合法性校验.
+                if (null != task && StringUtil.isNotBlank(task.getCron())) {
+                    cron = task.getCron();
+                }
+                CronTrigger trigger = new CronTrigger(cron);
+                return trigger.nextExecutionTime(triggerContext);
+            }
+        });
+    }
+}

+ 3 - 1
src/main/java/com/diagbot/util/TZDBConn.java

@@ -185,7 +185,7 @@ public class TZDBConn {
 				//basDeptInfoVO.setDeptType(rs.getString("ZZKSLB"));//科室类别
 				//basDeptInfo.setSpell(rs.getString("HZSRM1"));//首字母拼音
 				//basDeptInfoVO.setStation(rs.getString("FLKSID"));//区域类别
-				basDeptInfo.setHospitalCampusId(rs.getLong("YUANQUID"));//院区ID
+				basDeptInfo.setHospitalCampusId(rs.getString("YUANQUID"));//院区ID
 				basDeptInfo.setDeptId(rs.getString("DEPTID"));//科室ID
 				basDeptInfo.setParentDeptId(rs.getString("PARENTDEPTID"));//上级科室ID
 				basDeptInfo.setDeptType(rs.getString("DEPTTYPE"));//科室类别
@@ -433,6 +433,7 @@ public class TZDBConn {
 			ResultSet rs =dbconn.Query(sql, null);
 			while(rs.next()){
 				i++;
+				//TODO校对一下字段
 				BehospitalInfo behospitalInfo=new BehospitalInfo();
 				behospitalInfo.setBehospitalCode(rs.getString("BEHOSPITALCODE"));//病人住院ID
 				behospitalInfo.setHospitalId(HOSPITAL_ID);//医院ID
@@ -465,6 +466,7 @@ public class TZDBConn {
 				behospitalInfo.setIsDaytime(rs.getString("ISDAYTIME"));//日间病例标志
 				behospitalInfo.setPlacefileDate(DateUtil.parseDateTime(rs.getString("PLACEFILEDATE")));
 				behospitalInfo.setIsCancelBehospital(rs.getString("QUXIAORYBZ"));
+				behospitalInfo.setHospitalCampusId(rs.getString("YUANQUID"));//院区id
 				behospitalInfoList.add(behospitalInfo);
 			}
 			aMedAbnormalInfoFacade.saveAbnormalInfo("获取病历信息-语句查询对应TZDBConn","查询出的总数"+i, sql,"","");

+ 6 - 0
src/main/java/com/diagbot/web/DataController.java

@@ -82,6 +82,12 @@ public class DataController {
     public void updateDeptInfos(){
         aBasDeptInfoFacade.executeDeptCampusId();
     }
+    @ApiOperation(value = "数据引擎-更新医院所有病人的基本信息(病区id)")
+    @PostMapping("/updatePatientInfos")
+    @SysLogger("updatePatientInfos")
+    public void updatePatientInfos(@RequestBody String startDate, String endDate){
+        aBehospitalInfoFacade.executePatientCampusId();
+    }
 
     @ApiOperation(value = "数据引擎-获取医院所有文书模板基本信息")
     @PostMapping("/sendRecordTypes")