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