commit db3e7ceb7f4396e33abf3e528b2c5abe03faa767
Author: wyb <1977763549@qq.com>
Date: Tue Aug 13 17:58:30 2024 +0800
int: 湛江附属首页编目视图查询队列生成
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..6a8a1e4
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,35 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+docus-services/docus-services-system1/
+
+### IntelliJ IDEA ###
+*.log
+.idea
+*.iws
+*.iml
+*.ipr
+mvnw*
+*.cmd
+*.mvn
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+logs*
\ No newline at end of file
diff --git a/assembly.xml b/assembly.xml
new file mode 100644
index 0000000..b6fb827
--- /dev/null
+++ b/assembly.xml
@@ -0,0 +1,73 @@
+
+
+ exe
+
+ dir
+
+ false
+
+
+
+
+ /lib
+ ${basedir}/target/lib
+
+
+
+ /config
+ ${basedir}/target/resources
+ 0755
+
+ *.xml
+ *.yml
+ *.properties
+
+
+
+
+ /dataConfig
+ ${basedir}/target/dataConfig
+ 0755
+
+ *.json
+
+
+
+
+ /
+ ${basedir}/target/resources/bin
+ 0755
+
+ *.bat
+
+
+
+
+ /
+ ${basedir}/target/resources/bin
+ 0755
+
+ *.xml
+
+
+
+
+ /
+ ${basedir}
+ 0755
+
+ *.exe
+
+
+
+
+ ${basedir}/target
+ /
+ 0755
+
+ ${project.build.finalName}.jar
+
+
+
+
\ No newline at end of file
diff --git a/data-config/jobconfig/ZjFsCatalogCollectTask b/data-config/jobconfig/ZjFsCatalogCollectTask
new file mode 100644
index 0000000..3a1df60
--- /dev/null
+++ b/data-config/jobconfig/ZjFsCatalogCollectTask
@@ -0,0 +1,5 @@
+{
+ "lastDate": "2024-08-13 00:00:00",
+ "jobIntervalSeconds": 300,
+ "sysCodes":"catalog"
+}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..41d0666
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,330 @@
+
+
+
+ com.docus
+ docus-bom
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ docus-collect-taskcontrol
+
+
+
+ com.docus
+ docus-knife4j-starter
+
+
+
+ org.apache.cxf
+ cxf-spring-boot-starter-jaxws
+ 3.3.4
+
+
+
+ org.dom4j
+ dom4j
+ 2.1.1
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ com.baomidou
+ mybatis-plus-boot-starter
+ 3.4.0
+
+
+ com.baomidou
+ dynamic-datasource-spring-boot-starter
+ 3.4.0
+
+
+
+ mysql
+ mysql-connector-java
+ 8.0.28
+
+
+ org.projectlombok
+ lombok
+ 1.18.16
+ compile
+
+
+ org.projectlombok
+ lombok
+ 1.18.16
+ compile
+
+
+ org.bgee.log4jdbc-log4j2
+ log4jdbc-log4j2-jdbc4.1
+
+
+ com.alibaba
+ druid
+ 1.2.4
+ compile
+
+
+ com.baomidou
+ mybatis-plus-generator
+ 3.4.1
+ compile
+
+
+ org.apache.velocity
+ velocity-engine-core
+ 2.0
+
+
+ com.xuxueli
+ xxl-job-core
+
+
+ com.docus
+ docus-base-starter
+
+
+ knife4j-spring-boot-autoconfigure
+ com.github.xiaoymin
+
+
+
+
+
+ com.docus
+ docus-tool-starter
+
+
+
+ com.docus
+ docus-shiro-starter
+
+
+
+ com.docus
+ docus-base-starter
+
+
+ springfox-core
+ io.springfox
+
+
+ springfox-schema
+ io.springfox
+
+
+ springfox-spi
+ io.springfox
+
+
+ knife4j-spring-boot-autoconfigure
+ com.github.xiaoymin
+
+
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-netflix-hystrix
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-openfeign
+
+
+ junit
+ junit
+ test
+
+
+
+
+ com.microsoft.sqlserver
+ sqljdbc4
+ 4.0
+
+
+
+ commons-net
+ commons-net
+ 3.10.0
+
+
+
+
+
+ src/main/resources
+ true
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ 2.4.4
+
+ ZIP
+
+
+ non-exists
+ non-exists
+
+
+
+
+
+
+ repackage
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+
+
+ copy-dependencies
+ package
+
+ copy-dependencies
+
+
+
+ target/lib
+ false
+ false
+ runtime
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-resources-plugin
+ 3.2.0
+
+
+ copy-resources
+ package
+
+ copy-resources
+
+
+
+
+ src/main/resources
+
+ **/*.*
+
+
+
+ ${project.build.directory}/resources
+
+
+
+ copy-bin
+ package
+
+ copy-resources
+
+
+
+
+ src/main/resources
+ true
+
+ bin/*.xml
+ *.yml
+ bin/*.bat
+
+
+
+ ${project.build.directory}/resources
+
+
+
+ copy-data-config
+ package
+
+ copy-resources
+
+
+
+
+ ../../dataConfig
+ true
+
+
+ ${project.build.directory}/dataConfig
+
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ 3.2.0
+
+
+ **/*.yml
+
+
+
+
+
+ maven-assembly-plugin
+
+
+
+ ${project.artifactId}
+ false
+
+ assembly.xml
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+
+
+
+
+
+ dev
+
+ prod
+
+
+ true
+
+
+
+
+
+
+
+
diff --git a/src/main/java/com/docus/server/AppRunBootstrap.java b/src/main/java/com/docus/server/AppRunBootstrap.java
new file mode 100644
index 0000000..4775ba7
--- /dev/null
+++ b/src/main/java/com/docus/server/AppRunBootstrap.java
@@ -0,0 +1,24 @@
+package com.docus.server;
+
+
+import lombok.extern.slf4j.Slf4j;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+import java.util.Properties;
+
+
+@Slf4j
+@SpringBootApplication(scanBasePackages ={"com.docus"})
+@MapperScan("com.docus.server.**.mapper")
+public class AppRunBootstrap {
+ public static void main(String[] args) {
+ Properties props = System.getProperties();
+ props.setProperty("org.apache.cxf.stax.allowInsecureParser", "1");
+ props.setProperty("UseSunHttpHandler", "true");
+ System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");
+ SpringApplication.run(AppRunBootstrap.class, args);
+
+ }
+}
diff --git a/src/main/java/com/docus/server/archivesqlserver/entity/ArchiveMaster.java b/src/main/java/com/docus/server/archivesqlserver/entity/ArchiveMaster.java
new file mode 100644
index 0000000..239e645
--- /dev/null
+++ b/src/main/java/com/docus/server/archivesqlserver/entity/ArchiveMaster.java
@@ -0,0 +1,21 @@
+package com.docus.server.archivesqlserver.entity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 归档患者主表
+ * @author YongBin Wen
+ * @date 2024/8/13 16:33
+ */
+@ApiModel("归档患者主表")
+@Data
+public class ArchiveMaster {
+ @ApiModelProperty("患者主键")
+ private String id;
+ @ApiModelProperty("住院号")
+ private String inpNo;
+ @ApiModelProperty("住院次数")
+ private String visitId;
+}
diff --git a/src/main/java/com/docus/server/archivesqlserver/mapper/ArchiveMasterMapper.java b/src/main/java/com/docus/server/archivesqlserver/mapper/ArchiveMasterMapper.java
new file mode 100644
index 0000000..c46986b
--- /dev/null
+++ b/src/main/java/com/docus/server/archivesqlserver/mapper/ArchiveMasterMapper.java
@@ -0,0 +1,22 @@
+package com.docus.server.archivesqlserver.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.docus.server.archivesqlserver.entity.ArchiveMaster;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @author YongBin Wen
+ * @date 2024/8/13 16:38
+ */
+@DS("archivesqlserver")
+public interface ArchiveMasterMapper {
+ /**
+ * 根据条件查询患者基础数据
+ *
+ * @param condition 查询条件
+ * @return 患者基础数据集合
+ */
+ List listByCondition(@Param("condition") ArchiveMaster condition);
+}
diff --git a/src/main/java/com/docus/server/jobadmin/config/JobAdminConfig.java b/src/main/java/com/docus/server/jobadmin/config/JobAdminConfig.java
new file mode 100644
index 0000000..48a9f35
--- /dev/null
+++ b/src/main/java/com/docus/server/jobadmin/config/JobAdminConfig.java
@@ -0,0 +1,67 @@
+package com.docus.server.jobadmin.config;
+
+import com.docus.server.archivesqlserver.mapper.ArchiveMasterMapper;
+import com.docus.server.jobadmin.scheduler.JobScheduler;
+import com.docus.server.rpc.V2ViewTaskCollectService;
+import com.docus.server.zjfsjhemr.mapper.ZjFsPatIndexViewMapper;
+import org.springframework.beans.factory.DisposableBean;
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+/**
+ * job执行需要的一些必须得service,dao,mapper和配置等管理,从这里获取,保证依赖都有注入
+ *
+ * @author YongBin Wen
+ * @date 2024/1/23 14:13
+ */
+@Component
+public class JobAdminConfig implements InitializingBean, DisposableBean {
+
+ private static JobAdminConfig jobAdminConfig = null;
+
+ public static JobAdminConfig getJobAdminConfig() {
+ return jobAdminConfig;
+ }
+
+ // ---------------------- JobScheduler ----------------------
+
+ private JobScheduler xxlJobScheduler;
+
+ @Override
+ public void afterPropertiesSet() throws Exception {
+ jobAdminConfig = this;
+
+ xxlJobScheduler = new JobScheduler();
+ xxlJobScheduler.init();
+ }
+
+ @Override
+ public void destroy() throws Exception {
+ xxlJobScheduler.destroy();
+ }
+
+ // dao service
+
+ @Resource
+ private ZjFsPatIndexViewMapper zjFsPatIndexViewMapper;
+
+ @Resource
+ private ArchiveMasterMapper archiveMasterMapper;
+
+ @Resource
+ private V2ViewTaskCollectService v2ViewTaskCollectService;
+
+ public ZjFsPatIndexViewMapper getZjFsPatIndexViewMapper() {
+ return zjFsPatIndexViewMapper;
+ }
+
+ public ArchiveMasterMapper getArchiveMasterMapper() {
+ return archiveMasterMapper;
+ }
+
+ public V2ViewTaskCollectService getV2ViewTaskCollectService() {
+ return v2ViewTaskCollectService;
+ }
+}
diff --git a/src/main/java/com/docus/server/jobadmin/scheduler/JobScheduler.java b/src/main/java/com/docus/server/jobadmin/scheduler/JobScheduler.java
new file mode 100644
index 0000000..ece489a
--- /dev/null
+++ b/src/main/java/com/docus/server/jobadmin/scheduler/JobScheduler.java
@@ -0,0 +1,26 @@
+package com.docus.server.jobadmin.scheduler;
+
+import com.docus.server.jobadmin.thread.ZjFsCatalogCollectTaskHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author YongBin Wen
+ * @date 2024/1/23 14:04
+ */
+
+public class JobScheduler {
+
+ private static final Logger logger = LoggerFactory.getLogger(JobScheduler.class);
+
+ public void init() throws Exception {
+ ZjFsCatalogCollectTaskHelper.getInstance().start();
+
+ logger.info(">>>>>>>>> init job admin success.");
+ }
+
+
+ public void destroy() {
+ ZjFsCatalogCollectTaskHelper.getInstance().toStop();
+ }
+}
diff --git a/src/main/java/com/docus/server/jobadmin/thread/ZjFsCatalogCollectTaskHelper.java b/src/main/java/com/docus/server/jobadmin/thread/ZjFsCatalogCollectTaskHelper.java
new file mode 100644
index 0000000..db30161
--- /dev/null
+++ b/src/main/java/com/docus/server/jobadmin/thread/ZjFsCatalogCollectTaskHelper.java
@@ -0,0 +1,116 @@
+package com.docus.server.jobadmin.thread;
+
+import com.alibaba.fastjson.JSONObject;
+import com.docus.core.util.Func;
+import com.docus.infrastructure.core.utils.TableJsonRead;
+import com.docus.infrastructure.web.api.CommonResult;
+import com.docus.server.archivesqlserver.entity.ArchiveMaster;
+import com.docus.server.archivesqlserver.mapper.ArchiveMasterMapper;
+import com.docus.server.jobadmin.config.JobAdminConfig;
+import com.docus.server.rpc.V2ViewTaskCollectService;
+import com.docus.server.rpc.dto.TaskMakeupDto;
+import com.docus.server.zjfsjhemr.entity.ZjFsPatIndexView;
+import com.docus.server.zjfsjhemr.mapper.ZjFsPatIndexViewMapper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Date;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+
+/**
+ * 湛江附属医院编目采集任务job
+ *
+ * @author YongBin Wen
+ * @date 2024/1/23 10:59
+ */
+
+public class ZjFsCatalogCollectTaskHelper {
+ private static final Logger logger = LoggerFactory.getLogger(ZjFsCatalogCollectTaskHelper.class);
+ private static final ZjFsCatalogCollectTaskHelper instance = new ZjFsCatalogCollectTaskHelper();
+
+ public static ZjFsCatalogCollectTaskHelper getInstance() {
+ return instance;
+ }
+
+ private Thread zjFsCatalogCollectTaskThread;
+ private volatile boolean toStop = false;
+
+ public void start() {
+ zjFsCatalogCollectTaskThread = new Thread(() -> {
+ TableJsonRead tableJsonRead = new TableJsonRead();
+ ZjFsPatIndexViewMapper zjFsPatIndexViewMapper = JobAdminConfig.getJobAdminConfig().getZjFsPatIndexViewMapper();
+ ArchiveMasterMapper archiveMasterMapper = JobAdminConfig.getJobAdminConfig().getArchiveMasterMapper();
+ V2ViewTaskCollectService v2ViewTaskCollectService = JobAdminConfig.getJobAdminConfig().getV2ViewTaskCollectService();
+ String configPath = "data-config\\jobconfig";
+ String configFileName = "ZjFsCatalogCollectTask";
+ while (!toStop) {
+ try {
+ JSONObject jobConfig = tableJsonRead.Read(configPath, configFileName, JSONObject.class);
+ int jobIntervalSeconds = jobConfig.getIntValue("jobIntervalSeconds");
+ String lastDate = jobConfig.getString("lastDate");
+ String sysCodes = jobConfig.getString("sysCodes");
+ Date maxCatalogDate = zjFsPatIndexViewMapper.maxCatalogDate();
+ String maxCatalogDateStr = Func.formatDateTime(maxCatalogDate);
+ // 查询视图数据,视图数据查询患者信息id,进行任务生成
+ List zjFsPatIndexViews = zjFsPatIndexViewMapper.listByCatalogDateRange(lastDate, maxCatalogDateStr);
+ if (Func.isNotEmpty(zjFsPatIndexViews)) {
+ logger.info("首页编目数据查询,根据最后编目时间查询(不包含截止时间),开始时间:{},截止时间:{},视图数据:{} 条,数据为:{}", lastDate, maxCatalogDate, zjFsPatIndexViews.size(), Func.toJson(zjFsPatIndexViews));
+ for (ZjFsPatIndexView view : zjFsPatIndexViews) {
+ String inpNo = view.getInpNo();
+ Integer visitId = view.getVisitId();
+ ArchiveMaster condition = new ArchiveMaster();
+ condition.setInpNo(inpNo);
+ condition.setVisitId(visitId.toString());
+ List archiveMasters = archiveMasterMapper.listByCondition(condition);
+ if (Func.isEmpty(archiveMasters)) {
+ logger.warn("首页编目数据查询,住院号:{},住院次数:{} 未找到患者主表数据!", inpNo, visitId);
+ continue;
+ }
+ // 生成采集任务
+ List masterIds = archiveMasters.stream().map(ArchiveMaster::getId).collect(Collectors.toList());
+ TaskMakeupDto makeupDto = new TaskMakeupDto();
+ makeupDto.setPatientIds(masterIds);
+ makeupDto.setSysCodes(sysCodes);
+ logger.info("首页编目生成队列参数:{}", Func.toJson(makeupDto));
+ CommonResult result = v2ViewTaskCollectService.generateTaskByPatientIdAndSysCodes(makeupDto);
+ logger.info("首页编目生成队列返回结果:{}", Func.toJson(result));
+ }
+ // 刷新配置
+ jobConfig.put("lastDate", maxCatalogDateStr);
+ tableJsonRead.Save(configPath, configFileName, jobConfig.toJSONString());
+ }
+
+ TimeUnit.SECONDS.sleep(jobIntervalSeconds);
+ } catch (Exception ex) {
+ if (!toStop) {
+ logger.error(">>>>>>>>>>> zjFs Catalog CollectTask Thread error:" + ex.getMessage(), ex);
+ }
+ }
+
+ }
+ logger.info(">>>>>>>>>>> zjFs Catalog CollectTask Thread stop");
+ });
+ zjFsCatalogCollectTaskThread.setDaemon(true);
+ zjFsCatalogCollectTaskThread.setName("ZjFsCatalogCollectTaskHelper");
+ zjFsCatalogCollectTaskThread.start();
+ }
+
+ public void toStop() {
+ toStop = false;
+ zjFsCatalogCollectTaskThread.interrupt();
+ try {
+ zjFsCatalogCollectTaskThread.join();
+ } catch (Exception e) {
+ logger.error(e.getMessage(), e);
+ }
+ }
+
+
+ public static void main(String[] args) {
+ TableJsonRead tableJsonRead = new TableJsonRead();
+ JSONObject config = tableJsonRead.Read("data-config\\jobconfig", "ZjFsCatalogCollectTask", JSONObject.class);
+ System.out.println(config);
+ }
+}
diff --git a/src/main/java/com/docus/server/rpc/V2ViewTaskCollectService.java b/src/main/java/com/docus/server/rpc/V2ViewTaskCollectService.java
new file mode 100644
index 0000000..b6a002e
--- /dev/null
+++ b/src/main/java/com/docus/server/rpc/V2ViewTaskCollectService.java
@@ -0,0 +1,12 @@
+package com.docus.server.rpc;
+
+import com.docus.infrastructure.web.api.CommonResult;
+import com.docus.server.rpc.dto.TaskMakeupDto;
+
+/**
+ * @author YongBin Wen
+ * @date 2024/8/13 17:40
+ */
+public interface V2ViewTaskCollectService {
+ CommonResult generateTaskByPatientIdAndSysCodes(TaskMakeupDto makeupDto);
+}
diff --git a/src/main/java/com/docus/server/rpc/dto/TaskMakeupDto.java b/src/main/java/com/docus/server/rpc/dto/TaskMakeupDto.java
new file mode 100644
index 0000000..a41cf62
--- /dev/null
+++ b/src/main/java/com/docus/server/rpc/dto/TaskMakeupDto.java
@@ -0,0 +1,20 @@
+package com.docus.server.rpc.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 任务补偿参数
+ * @author wyb
+ */
+@Data
+@ApiModel("任务补偿参数")
+public class TaskMakeupDto {
+ @ApiModelProperty("采集器id,多个使用英文逗号 , 分割")
+ private String sysCodes;
+ @ApiModelProperty("病案主键集合")
+ private List patientIds;
+}
diff --git a/src/main/java/com/docus/server/rpc/impl/V2ViewTaskCollectServiceImpl.java b/src/main/java/com/docus/server/rpc/impl/V2ViewTaskCollectServiceImpl.java
new file mode 100644
index 0000000..f46c55a
--- /dev/null
+++ b/src/main/java/com/docus/server/rpc/impl/V2ViewTaskCollectServiceImpl.java
@@ -0,0 +1,20 @@
+package com.docus.server.rpc.impl;
+
+import com.docus.infrastructure.web.api.CommonResult;
+import com.docus.server.rpc.V2ViewTaskCollectService;
+import com.docus.server.rpc.dto.TaskMakeupDto;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author YongBin Wen
+ * @date 2024/8/13 17:41
+ */
+@Service
+public class V2ViewTaskCollectServiceImpl implements V2ViewTaskCollectService {
+
+ @Override
+ public CommonResult generateTaskByPatientIdAndSysCodes(TaskMakeupDto makeupDto) {
+ // todo(wyb): 调用任务生成
+ return null;
+ }
+}
diff --git a/src/main/java/com/docus/server/zjfsjhemr/entity/ZjFsPatIndexView.java b/src/main/java/com/docus/server/zjfsjhemr/entity/ZjFsPatIndexView.java
new file mode 100644
index 0000000..1f5df41
--- /dev/null
+++ b/src/main/java/com/docus/server/zjfsjhemr/entity/ZjFsPatIndexView.java
@@ -0,0 +1,34 @@
+package com.docus.server.zjfsjhemr.entity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 湛江附属医院 首页编目数据
+ *
+ * @author YongBin Wen
+ * @date 2024/8/13 16:07
+ */
+@ApiModel("湛江附属医院 首页编目数据")
+@Data
+public class ZjFsPatIndexView {
+
+ @ApiModelProperty("患者ID")
+ private String patientId;
+ @ApiModelProperty("住院号")
+ private String inpNo;
+ @ApiModelProperty("住院次数")
+ private Integer visitId;
+ @ApiModelProperty("入院日期")
+ private Date admissionDateTime;
+ @ApiModelProperty("出院日期")
+ private Date dischargeDateTime;
+ @ApiModelProperty("编目最后完成日期")
+ private Date catalogDate;
+ @ApiModelProperty("编目人员工号")
+ private String catalogerId;
+
+}
diff --git a/src/main/java/com/docus/server/zjfsjhemr/mapper/ZjFsPatIndexViewMapper.java b/src/main/java/com/docus/server/zjfsjhemr/mapper/ZjFsPatIndexViewMapper.java
new file mode 100644
index 0000000..8d7e711
--- /dev/null
+++ b/src/main/java/com/docus/server/zjfsjhemr/mapper/ZjFsPatIndexViewMapper.java
@@ -0,0 +1,31 @@
+package com.docus.server.zjfsjhemr.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.docus.server.zjfsjhemr.entity.ZjFsPatIndexView;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author YongBin Wen
+ * @date 2024/8/13 16:13
+ */
+@DS("zjfsjhemr")
+public interface ZjFsPatIndexViewMapper {
+ /**
+ * 最大的编目最后完成日期
+ *
+ * @return java.util.Date
+ */
+ Date maxCatalogDate();
+
+ /**
+ * 根据编目最后完成日期,查询首页编目数据,startDate <= catalog_date < endDate
+ *
+ * @param startDate 开始时间 yyyy-MM-dd HH:mm:ss
+ * @param endDate 结束时间 yyyy-MM-dd HH:mm:ss
+ * @return 首页编目数据集合
+ */
+ List listByCatalogDateRange(@Param("startDate") String startDate, @Param("endDate") String endDate);
+}
diff --git a/src/main/resources/bin/install.bat b/src/main/resources/bin/install.bat
new file mode 100644
index 0000000..7a651bc
--- /dev/null
+++ b/src/main/resources/bin/install.bat
@@ -0,0 +1,33 @@
+@echo off
+
+for /f "delims=" %%t in ('winsw.exe status') do set str=%%t
+echo %str%
+
+
+
+if %str%==Started (
+echo "restart....."
+winsw stop
+PING 127.0.0.1 -n 10 -w 30000 >NUL
+winsw start
+)
+
+
+
+if %str%==Stopped (
+echo "start....."
+winsw start
+)
+
+
+if %str%==NonExistent (
+echo "deploy and start....."
+winsw install
+winsw start
+echo c
+)
+
+
+
+
+
diff --git a/src/main/resources/bin/start.bat b/src/main/resources/bin/start.bat
new file mode 100644
index 0000000..58c25cb
--- /dev/null
+++ b/src/main/resources/bin/start.bat
@@ -0,0 +1,21 @@
+set java_opts=-Xms512m -Xmx512m
+set key="java_opts"
+
+
+rem 文件不存在,就跳过
+if not exist java-ops.ini goto end
+
+for /f "tokens=1,2 delims==" %%i in (java-ops.ini) do (
+ if "%%i"==%key% set java_opts=%%j)
+echo java_opts is : %java_opts%
+
+:end
+
+rem 启动java
+
+java %java_opts% -Dfile.encoding=utf-8 -jar -Dspring.profiles.active=@profile.name@ -Dloader.path=config,lib @project.build.finalName@.jar
+
+
+
+
+
diff --git a/src/main/resources/bin/stop.bat b/src/main/resources/bin/stop.bat
new file mode 100644
index 0000000..98468a0
--- /dev/null
+++ b/src/main/resources/bin/stop.bat
@@ -0,0 +1,13 @@
+@echo off
+
+for /f "delims=" %%t in ('winsw.exe status') do set str=%%t
+echo %str%
+
+
+
+if %str%==Started (
+winsw stop
+@echo wait program stop .....
+PING 127.0.0.1 -n 30 -w 10000 >NUL
+)
+
diff --git a/src/main/resources/bin/update.bat b/src/main/resources/bin/update.bat
new file mode 100644
index 0000000..9ace313
--- /dev/null
+++ b/src/main/resources/bin/update.bat
@@ -0,0 +1,19 @@
+@echo off
+
+set deployDir=%1\docus-collect-taskcontrol
+if %deployDir%=="" set deployDir=d:\webroot\docus-collect-taskcontrol
+
+set curr_file=%cd%
+cd /d %deployDir%
+call stop.bat
+cd %curr_file%
+sc query docus-backup-sys |Find "RUNNING" && ping 127.0.0.1 -n 10 >nul
+rd/s/q %deployDir%\lib
+rd/s/q %deployDir%\dataConfig
+rd/s/q %deployDir%\config
+del /s/q %deployDir%\*.jar
+xcopy /Y/E/I * %deployDir%
+
+cd /d %deployDir%
+call install.bat
+
diff --git a/src/main/resources/bin/winsw.xml b/src/main/resources/bin/winsw.xml
new file mode 100644
index 0000000..4a7db04
--- /dev/null
+++ b/src/main/resources/bin/winsw.xml
@@ -0,0 +1,8 @@
+
+ docus-collect-taskcontrol
+ 生产-嘉时-采集任务控制服务
+ 生产-嘉时-采集任务控制服务
+ Automatic
+ %BASE%\start.bat
+
+
\ No newline at end of file
diff --git a/src/main/resources/bootstrap.yml b/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..9342dfc
--- /dev/null
+++ b/src/main/resources/bootstrap.yml
@@ -0,0 +1,103 @@
+server:
+ port: 9314
+
+spring:
+ application:
+ name: @artifactId@
+ profiles:
+ active: test
+ datasource:
+ dynamic:
+ primary: master #设置默认的数据源,默认值为master
+ strict: false #是否用严格模式,如果启用在味匹配到指定数据源时抛出异常
+ datasource:
+ master:
+ url: jdbc:log4jdbc:mysql://db.docus.cn:3306/docus_medicalrecord?autoReconnect=true&allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
+ username: docus
+ password: docus702
+ driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
+ type: com.alibaba.druid.pool.DruidDataSource
+ # 初始化配置
+ initial-size: 3
+ # 最小连接数
+ min-idle: 3
+ # 最大连接数
+ max-active: 15
+ # 获取连接超 时时间
+ max-wait: 5000
+ # 连接有效性检测时间
+ time-between-eviction-runs-millis: 90000
+ # 最大空闲时间
+ min-evictable-idle-time-millis: 1800000
+ test-while-idle: true
+ test-on-borrow: false
+ test-on-return: false
+ validation-query: select 1
+ zjfsjhemr:
+ url: jdbc:oracle:thin:@10.6.0.150:1521:jhemr
+ username: jswzh
+ password: jswzh123
+ driver-class-name: oracle.jdbc.driver.OracleDriver
+ type: com.alibaba.druid.pool.DruidDataSource
+ # 初始化配置
+ initial-size: 3
+ # 最小连接数
+ min-idle: 3
+ # 最大连接数
+ max-active: 10
+ # 获取连接超 时时间
+ max-wait: 5000
+ # 连接有效性检测时间
+ time-between-eviction-runs-millis: 90000
+ # 最大空闲时间
+ min-evictable-idle-time-millis: 1800000
+ test-while-idle: true
+ test-on-borrow: false
+ test-on-return: false
+ validation-query: select 1 from dual
+ blood:
+ url: jdbc:sqlserver://192.168.16.103\DOCUS;DatabaseName=hq_framework
+ username: sa
+ password: docus702
+ driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+ type: com.alibaba.druid.pool.DruidDataSource
+ # 初始化配置
+ initial-size: 3
+ # 最小连接数
+ min-idle: 3
+ # 最大连接数
+ max-active: 15
+ # 获取连接超 时时间
+ max-wait: 5000
+ # 连接有效性检测时间
+ time-between-eviction-runs-millis: 90000
+ # 最大空闲时间
+ min-evictable-idle-time-millis: 1800000
+ test-while-idle: true
+ test-on-borrow: false
+ test-on-return: false
+ validation-query: select 1
+ redis:
+ host: redis.docus.cn
+ password: JSdocus@702
+
+docus:
+ url:
+ # 采集任务补偿地址
+ compensate-task-url: http://localhost:9295/
+ # 下载地址
+ down-url: http://localhost:9291/api/downplatform/report
+ medicalrecord: http://192.168.16.85:9102
+
+
+ dbtype: mysql
+
+mybatis-plus:
+ configuration:
+ map-underscore-to-camel-case: true
+ call-setters-on-nulls: true
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+ global-config:
+ db-config:
+ field-strategy: NOT_EMPTY
+ db-type: MYSQL
diff --git a/src/main/resources/log4jdbc.log4j2.properties b/src/main/resources/log4jdbc.log4j2.properties
new file mode 100644
index 0000000..5cb6f99
--- /dev/null
+++ b/src/main/resources/log4jdbc.log4j2.properties
@@ -0,0 +1,2 @@
+# If you use SLF4J. First, you need to tell log4jdbc-log4j2 that you want to use the SLF4J logger
+log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
\ No newline at end of file
diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml
new file mode 100644
index 0000000..2a7c4c8
--- /dev/null
+++ b/src/main/resources/logback.xml
@@ -0,0 +1,77 @@
+
+
+ docus-server-fistpage
+
+
+
+
+ [%d{yyyy-MM-dd' 'HH:mm:ss.sss}] [%contextName] [%thread] [%X{traceId}] %-5level %logger{36} - %msg%n
+
+
+
+
+
+
+ [%d{yyyy-MM-dd' 'HH:mm:ss.sss}] [%C] [%t] [%X{traceId}] [%L] [%-5p] %m%n
+ utf-8
+
+
+
+
+ ${log.path}%d.%i.log
+
+ 500MB
+
+ 30
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/mapper/ArchiveMasterMapper.xml b/src/main/resources/mapper/ArchiveMasterMapper.xml
new file mode 100644
index 0000000..1cc7893
--- /dev/null
+++ b/src/main/resources/mapper/ArchiveMasterMapper.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
diff --git a/src/main/resources/mapper/ZjFsPatIndexViewMapper.xml b/src/main/resources/mapper/ZjFsPatIndexViewMapper.xml
new file mode 100644
index 0000000..616e6db
--- /dev/null
+++ b/src/main/resources/mapper/ZjFsPatIndexViewMapper.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
diff --git a/winsw.exe b/winsw.exe
new file mode 100644
index 0000000..ba27e3f
Binary files /dev/null and b/winsw.exe differ