tbasics = tBasicMapper.getByDisDate(start, end);
+ log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> LIS视图任务同步开始。出院时间:{} 至 {} 共 {} 条数据!", start, end, tbasics.size());
+ for (TBasic tbasic : tbasics) {
+ lisService.syncViewTask(tbasic);
+ }
+ log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> LIS视图任务结束同步。");
+ } catch (Exception ex) {
+ log.error(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> LIS视图任务同步出错了," + ex.getMessage(), ex);
+ }
+ }
+}
diff --git a/src/main/java/com/docus/server/synclis/mapper/LisViewMapper.java b/src/main/java/com/docus/server/synclis/mapper/LisViewMapper.java
new file mode 100644
index 0000000..8407519
--- /dev/null
+++ b/src/main/java/com/docus/server/synclis/mapper/LisViewMapper.java
@@ -0,0 +1,68 @@
+package com.docus.server.synclis.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.docus.server.synclis.entity.LisView;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * v_LISReport_YDZYView 视图的定义是,其中 限制了查询的数据范围 a.crt_time >= CONVERT(DATETIME,DATEADD(MONTH,-3,GETDATE())) ,
+ * 如果要查询详细的数据,还是要从原始数据入手,getFullZyData()和 getFullMzData() 就是限制了这样的情况
+ *
+ * SELECT a.patient_id,a.lab_num,b.name,a.hst_num,ISNULL(a.req_num,'') AS req_num,
+ * a.req_date,CONVERT(VARCHAR(19),a.audit_time,120) AS audit_time,
+ * dbo.fnGetChkTypeNameByLabNum(a.lab_num) AS CheckName,ISNULL(c.name,'') AS PatSource,
+ * ISNULL(b.id_card,'') as IDCARD
+ * FROM hylisdb..patient_register a WITH(NOLOCK)
+ * JOIN hylisdb..patient_baseinfo b WITH(NOLOCK) ON a.patient_id=b.patient_id
+ * JOIN hylisdb..ill_type c ON a.send_type=c.type_id
+ * WHERE a.crt_time >= CONVERT(DATETIME,DATEADD(MONTH,-3,GETDATE()))
+ * AND a.proc_flag = '8';
+ *
+ * @author YongBin Wen
+ * @date 2025/1/16 11:21
+ */
+@DS("ydzyy-lis-sqlserver")
+public interface LisViewMapper {
+ /**
+ * 查询lis视图患者住院报告,根据住院号和出入院时间(报告申请时间在其范围内)
+ *
+ * @param inpatientNo 住院阿红
+ * @param admissDate 入院日期
+ * @param disDate 出院日期
+ * @return 报告数据
+ */
+ List getZyDataFromView(@Param("inpatientNo") String inpatientNo, @Param("admissDate") String admissDate, @Param("disDate") String disDate);
+
+ /**
+ * 查询lis视图患者门(急)诊报告,根据身份证号码和报告申请时间
+ *
+ * @param idCard 身份证件号码
+ * @param startDate 开始时间
+ * @param endDate 结束时间
+ * @return 报告数据
+ */
+ List getMzDataFromView(@Param("idCard") String idCard, @Param("startDate") String startDate, @Param("endDate") String endDate);
+
+
+ /**
+ * 查询lis患者住院报告,根据住院号和出入院时间(报告申请时间在其范围内)
+ *
+ * @param inpatientNo 住院阿红
+ * @param admissDate 入院日期
+ * @param disDate 出院日期
+ * @return 报告数据
+ */
+ List getFullZyData(@Param("inpatientNo") String inpatientNo, @Param("admissDate") String admissDate, @Param("disDate") String disDate);
+
+ /**
+ * 查询lis患者门(急)诊报告,根据身份证号码和报告申请时间
+ *
+ * @param idCard 身份证件号码
+ * @param startDate 开始时间
+ * @param endDate 结束时间
+ * @return 报告数据
+ */
+ List getFullMzData(@Param("idCard") String idCard, @Param("startDate") String startDate, @Param("endDate") String endDate);
+}
diff --git a/src/main/java/com/docus/server/synclis/service/LisService.java b/src/main/java/com/docus/server/synclis/service/LisService.java
new file mode 100644
index 0000000..8161f01
--- /dev/null
+++ b/src/main/java/com/docus/server/synclis/service/LisService.java
@@ -0,0 +1,29 @@
+package com.docus.server.synclis.service;
+
+import com.docus.server.archive.entity.TBasic;
+
+/**
+ * @author YongBin Wen
+ * @date 2025/1/16 15:06
+ */
+public interface LisService {
+ /**
+ * 同步视图任务
+ *
+ * @param tBasic 患者信息
+ */
+ void syncViewTask(TBasic tBasic);
+
+ /**
+ * 同步完整任务
+ *
+ * @param tBasic 患者信息
+ */
+ void syncFullTask(TBasic tBasic);
+
+ /**
+ * 修订门诊任务,将任务和文件作废
+ * @param tbasic 患者信息
+ */
+ void revisionMzTaskAndFile(TBasic tbasic);
+}
diff --git a/src/main/java/com/docus/server/synclis/service/impl/LisServiceImpl.java b/src/main/java/com/docus/server/synclis/service/impl/LisServiceImpl.java
new file mode 100644
index 0000000..c6e45b9
--- /dev/null
+++ b/src/main/java/com/docus/server/synclis/service/impl/LisServiceImpl.java
@@ -0,0 +1,234 @@
+package com.docus.server.synclis.service.impl;
+
+import com.docus.core.util.Func;
+import com.docus.infrastructure.redis.service.IdService;
+import com.docus.server.archive.entity.AfCollectTask;
+import com.docus.server.archive.entity.TBasic;
+import com.docus.server.archive.enums.SysFlagType;
+import com.docus.server.archive.mapper.AfCollectTaskMapper;
+import com.docus.server.synclis.converter.LisViewConverter;
+import com.docus.server.synclis.entity.LisView;
+import com.docus.server.synclis.mapper.LisViewMapper;
+import com.docus.server.synclis.service.LisService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+import java.util.concurrent.locks.ReentrantLock;
+import java.util.stream.Collectors;
+
+/**
+ * @author YongBin Wen
+ * @date 2025/1/16 15:06
+ */
+@Service
+@Slf4j
+public class LisServiceImpl implements LisService {
+ @Resource
+ private LisViewMapper lisViewMapper;
+ @Resource
+ private AfCollectTaskMapper afCollectTaskMapper;
+ @Resource
+ private IdService idService;
+
+ private final static ReentrantLock SAVE_TASK_LOCK = new ReentrantLock();
+
+ @Override
+ public void syncViewTask(TBasic tBasic) {
+ syncViewZyTask(tBasic);
+ syncViewMzTask(tBasic);
+ }
+
+ @Override
+ public void syncFullTask(TBasic tBasic) {
+ syncFullZyTask(tBasic);
+ syncFullMzTask(tBasic);
+ }
+
+ @Override
+ public void revisionMzTaskAndFile(TBasic tbasic) {
+ String patientId = tbasic.getPatientId();
+ List mzSource= Arrays.asList( "门诊","急诊");
+ Date admissDate = tbasic.getAdmissDate();
+ String admissDateStr = Func.formatDateTime(admissDate);
+ LocalDateTime admissLocalDateTime = Func.parseDateTime(admissDateStr);
+ LocalDateTime startLocalDateTime = admissLocalDateTime.plusDays(-3);
+ String start = startLocalDateTime.toLocalDate().toString() + " 00:00:00";
+ Date startDateTime = Func.parseDate(start,"yyyy-MM-dd HH:mm:ss");
+
+ List collectTasks = afCollectTaskMapper.findByPatientIds(Collections.singletonList(patientId));
+ List mzCollectTasks=collectTasks.stream().filter(tsk->
+ SysFlagType.LIS.getType().equals(tsk.getSysflag()) && mzSource.contains(tsk.getC7())
+ ).collect(Collectors.toList());
+ if(Func.isEmpty(mzCollectTasks)){
+ return;
+ }
+ List cancelTasks=new ArrayList<>();
+
+ for (AfCollectTask mzCollectTask : mzCollectTasks) {
+ Date reqDate = mzCollectTask.getT1();
+ // 如果申请时间不在入院前三天范围内,则作废
+ if(reqDate.after(admissDate) || reqDate.before(startDateTime)){
+ cancelTasks.add(mzCollectTask);
+ }
+
+ }
+ if(Func.isEmpty(cancelTasks)){
+ return;
+ }
+ List cancelTaskIds = cancelTasks.stream().map(AfCollectTask::getId).collect(Collectors.toList());
+ afCollectTaskMapper.cancelTask(cancelTaskIds);
+ afCollectTaskMapper.cancelFile(cancelTaskIds);
+
+ }
+
+ public static void main(String[] args) {
+ TBasic tBasic = new TBasic();
+ tBasic.setAdmissDate(new Date());
+ new LisServiceImpl().revisionMzTaskAndFile(tBasic);
+ }
+
+ /**
+ * 同步视图住院期间报告任务
+ */
+ private void syncViewZyTask(TBasic tBasic) {
+ String inpatientNo = tBasic.getInpatientNo();
+ Date admissDate = tBasic.getAdmissDate();
+ Date disDate = tBasic.getDisDate();
+ if (Func.isBlank(inpatientNo) || Objects.isNull(admissDate) || Objects.isNull(disDate)) {
+ log.warn("LIS同步视图住院任务失败,病案号、入院日期、出院日期 有空数据!患者主键:{}", tBasic.getPatientId());
+ return;
+ }
+ String admissDateStr = Func.formatDateTime(admissDate);
+ String disDateStr = Func.formatDateTime(disDate);
+ List zyDataFromView = lisViewMapper.getZyDataFromView(inpatientNo, admissDateStr, disDateStr);
+ saveTask(zyDataFromView, tBasic);
+ }
+
+
+ /**
+ * 同步视图门急诊报告任务,入院前三天的报告
+ */
+ private void syncViewMzTask(TBasic tBasic) {
+ String idCard = tBasic.getIdCard();
+ Date admissDate = tBasic.getAdmissDate();
+ if (Func.isBlank(idCard) || Objects.isNull(admissDate)) {
+ log.warn("LIS同步视图门(急)诊任务失败,数据身份证号码 或者 入院日期 为空!患者主键:{}", tBasic.getPatientId());
+ return;
+ }
+ String admissDateStr = Func.formatDateTime(admissDate);
+ LocalDateTime startLocalDateTime = Func.parseDateTime(admissDateStr).plusDays(-3);
+ String startLocalDateStr = startLocalDateTime.toLocalDate().toString();
+ List mzDataFromView = lisViewMapper.getMzDataFromView(idCard, startLocalDateStr, admissDateStr);
+ saveTask(mzDataFromView, tBasic);
+ }
+
+
+ private void syncFullZyTask(TBasic tBasic) {
+ String inpatientNo = tBasic.getInpatientNo();
+ Date admissDate = tBasic.getAdmissDate();
+ Date disDate = tBasic.getDisDate();
+ if (Func.isBlank(inpatientNo) || Objects.isNull(admissDate) || Objects.isNull(disDate)) {
+ log.warn("LIS同步完整住院任务失败,病案号、入院日期、出院日期 有空数据!患者主键:{}", tBasic.getPatientId());
+ return;
+ }
+ String admissDateStr = Func.formatDateTime(admissDate);
+ String disDateStr = Func.formatDateTime(disDate);
+ List zyDataFromView = lisViewMapper.getFullZyData(inpatientNo, admissDateStr, disDateStr);
+ saveTask(zyDataFromView, tBasic);
+ }
+
+ private void syncFullMzTask(TBasic tBasic) {
+ String idCard = tBasic.getIdCard();
+ Date admissDate = tBasic.getAdmissDate();
+ if (Func.isBlank(idCard) || Objects.isNull(admissDate)) {
+ log.warn("LIS同步完整门(急)诊任务失败,数据身份证号码 或者 入院日期 为空!患者主键:{}", tBasic.getPatientId());
+ return;
+ }
+ String admissDateStr = Func.formatDateTime(admissDate);
+ LocalDateTime startLocalDateTime = Func.parseDateTime(admissDateStr).plusDays(-3);
+ String startLocalDateStr = startLocalDateTime.toLocalDate().toString();
+ List mzDataFromView = lisViewMapper.getFullMzData(idCard, startLocalDateStr, admissDateStr);
+ saveTask(mzDataFromView, tBasic);
+ }
+
+ private void saveTask(List mzDataFromView, TBasic tBasic) {
+ if (Func.isEmpty(mzDataFromView)) {
+ return;
+ }
+ SAVE_TASK_LOCK.lock();
+ try {
+ List patientIds = Collections.singletonList(tBasic.getPatientId());
+ List existsTasks = afCollectTaskMapper.findByPatientIds(patientIds);
+ List existsLisTasks = existsTasks.stream()
+ .filter(tsk -> SysFlagType.LIS.getType().equals(tsk.getSysflag()))
+ .collect(Collectors.toList());
+
+ List newTaskList = new ArrayList<>();
+ List updateTaskList = new ArrayList<>();
+
+ for (LisView lisView : mzDataFromView) {
+ AfCollectTask convertTask = LisViewConverter.convertTask(lisView, tBasic);
+ AfCollectTask existsTask = findExistsTask(existsLisTasks, convertTask);
+ if (existsTask == null) {
+ convertTask.setId(idService.getDateSeq());
+ convertTask.setCreateTime(new Date());
+ newTaskList.add(convertTask);
+ continue;
+ }
+ // 如果任务还在进行 或者 视图审核时间没有增大,不进行更新
+ if ("0".equals(existsTask.getState()) || !convertTask.getT2().after(existsTask.getT2())) {
+ continue;
+ }
+ // 更新
+ existsTask.setT1(convertTask.getT1());
+ existsTask.setT2(convertTask.getT2());
+ existsTask.setPresult("");
+ existsTask.setSyncTime(new Date());
+ updateTaskList.add(existsTask);
+ }
+
+
+ if (Func.isNotEmpty(newTaskList)) {
+ afCollectTaskMapper.saveBatch(newTaskList);
+ }
+ if (Func.isNotEmpty(updateTaskList)) {
+ afCollectTaskMapper.update(updateTaskList);
+ }
+ } catch (Exception ex) {
+ log.error("保存/修改LIS任务出错了!" + ex.getMessage(), ex);
+ } finally {
+ SAVE_TASK_LOCK.unlock();
+ }
+
+ }
+
+ /**
+ * 从已经存在的任务中,根据条件筛选出匹配的任务
+ *
+ * @param existsLisTasks 存在的任务
+ * @param convertTask 任务条件
+ * @return 已经存在的采集任务
+ */
+ private AfCollectTask findExistsTask(List existsLisTasks, AfCollectTask convertTask) {
+ for (AfCollectTask existsLisTask : existsLisTasks) {
+ if (existsLisTask.getC1().equals(convertTask.getC1()) &&
+ existsLisTask.getC2().equals(convertTask.getC2()) &&
+ existsLisTask.getPatientId().equals(convertTask.getPatientId()) &&
+ existsLisTask.getC3().equals(convertTask.getC3()) &&
+ existsLisTask.getC4().equals(convertTask.getC4())) {
+ return existsLisTask;
+ }
+ }
+ return null;
+ }
+
+
+}
diff --git a/src/main/resources/bin/auto.bat b/src/main/resources/bin/auto.bat
new file mode 100644
index 0000000..4b9678c
--- /dev/null
+++ b/src/main/resources/bin/auto.bat
@@ -0,0 +1,6 @@
+@echo off
+
+
+WinSW.exe status|findstr NonExistent && winsw install
+
+WinSW.exe status|findstr Stopped && winsw start
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/jenkins-update.bat b/src/main/resources/bin/jenkins-update.bat
new file mode 100644
index 0000000..bc87e74
--- /dev/null
+++ b/src/main/resources/bin/jenkins-update.bat
@@ -0,0 +1,23 @@
+@echo off
+
+set parentDir=%1
+echo %parentDir%
+if ""==%parentDir% set parentDir=d:\webroot
+
+set deployDir=%parentDir%\@project.artifactId@
+
+set curr_file=%cd%
+cd /d %deployDir%
+call stop.bat
+sc query @project.artifactId@ |Find "RUNNING" && ping 127.0.0.1 -n 10 >nul
+cd %curr_file%
+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 auto.bat
+cd %curr_file%
+
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..ef249da
--- /dev/null
+++ b/src/main/resources/bin/update.bat
@@ -0,0 +1,19 @@
+@echo off
+
+set deployDir=%1\docus-task-ydzyy
+if %deployDir%=="" set deployDir=d:\webroot\docus-task-ydzyy
+
+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..01f7586
--- /dev/null
+++ b/src/main/resources/bin/winsw.xml
@@ -0,0 +1,8 @@
+
+ docus-task-ydzyy
+ 生产-嘉时病案无纸化-英德中医院视图任务同步
+ 生产-嘉时病案无纸化-英德中医院视图任务同步
+ 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..12169e8
--- /dev/null
+++ b/src/main/resources/bootstrap.yml
@@ -0,0 +1,128 @@
+server:
+ port: 9294
+spring:
+ application:
+ name: @artifactId@
+ datasource:
+ dynamic:
+ primary: archive-mysql
+ #是否用严格模式,如果启用在味匹配到指定数据源时抛出异常
+ strict: false
+ datasource:
+ # 多数据源
+ archive-mysql:
+ url: jdbc:log4jdbc:mysql://db.docus.cn:3306/docus_archivefile?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
+
+ ydzyy-lis-sqlserver:
+ url: jdbc:sqlserver://199.168.91.211:1433;DatabaseName=GCRIS2
+ username: wzh
+ password: Wzh@#2023
+ 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
+
+ ydzyy-hisdb-oracle:
+ url: jdbc:oracle:thin:@//10.10.100.02:1521/HISDB
+ username: WZHPL
+ password: 123456
+ driver-class-name: oracle.jdbc.driver.OracleDriver
+ type: com.alibaba.druid.pool.DruidDataSource
+ # 初始化配置
+ initial-size: 3
+ # 最小连接数
+ min-idle: 3
+ # 最大连接数
+ max-active: 5
+ # 获取连接超 时时间
+ 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
+
+ redis:
+ host: redis.docus.cn
+ password: JSdocus@702
+ cloud:
+ nacos:
+ discovery:
+ server-addr: nacos.docus.cn
+ namespace: 34acdf7a-9fc6-4bbd-8aea-9a47c8007ad5
+ config:
+ server-addr: ${spring.cloud.nacos.discovery.server-addr}
+ namespace: 34acdf7a-9fc6-4bbd-8aea-9a47c8007ad5
+ file-extension: yml
+ shared-configs:
+ - comm.${spring.cloud.nacos.config.file-extension}
+ profiles:
+ active: dev
+
+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
+xxl:
+ job:
+ accessToken:
+ admin:
+ addresses: http://job.docus.cn:8180/xxl-job-admin
+ executor:
+ appname: docus-task-ydzyy
+ address:
+ ip:
+ port: 19999
+ logretentiondays: 30
+ logpath: D:/xxl-job/docus-task-ydzyy
+
+
+docus:
+ dispose:
+ # 采集任务的方式(大写) 视图:VIEW 无视图:NO_VIEW,默认为 视图 VIEW
+ pattern: NO_VIEW
+ url:
+ downloadplatform:
+ makeupdown: http://127.0.0.1:9291/api/down/makeUpDownForDown
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..e421675
--- /dev/null
+++ b/src/main/resources/logback.xml
@@ -0,0 +1,76 @@
+
+
+ docus-task-ydzyy
+
+
+
+
+ [%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/AfCollectTaskMapper.xml b/src/main/resources/mapper/AfCollectTaskMapper.xml
new file mode 100644
index 0000000..bbcc135
--- /dev/null
+++ b/src/main/resources/mapper/AfCollectTaskMapper.xml
@@ -0,0 +1,54 @@
+
+
+
+
+ INSERT INTO docus_archivefile.af_collect_task
+ (id, patient_id, af_archive_detail_id, sysflag,state, sync_time, create_time, remark, pResult, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, T1, T2)
+ VALUES
+
+ (
+ #{task.id}, #{task.patientId},0, #{task.sysflag}, '0', #{task.syncTime}, #{task.createTime}, '', '',
+ #{task.c1}, #{task.c2}, #{task.c3}, #{task.c4}, #{task.c5}, #{task.c6}, #{task.c7}, #{task.c8}, #{task.c9}, #{task.c10}, #{task.t1}, #{task.t2}
+ )
+
+
+
+
+
+
+ UPDATE docus_archivefile.af_collect_task
+ SET state=#{task.state}, sync_time=#{task.syncTime}, pResult=#{task.presult},
+ C1=#{task.c1}, C2=#{task.c2}, C3=#{task.c3}, C4=#{task.c4}, C5=#{task.c5}, C6=#{task.c6}, C7=#{task.c7}, C8=#{task.c8}, C9=#{task.c9}, C10=#{task.c10},
+ T1=#{task.t1}, T2=#{task.t2}
+ WHERE id=#{task.id}
+
+
+
+
+ UPDATE `docus_archivefile`.`af_collect_task` set state='4'
+ WHERE id IN
+
+ #{taskId}
+
+
+
+ UPDATE `docus_archivefile`.`t_scan_assort` SET is_del = '1'
+ WHERE taskid IN
+
+ #{taskId}
+
+
+
+
+
diff --git a/src/main/resources/mapper/LisViewMapper.xml b/src/main/resources/mapper/LisViewMapper.xml
new file mode 100644
index 0000000..31dd22b
--- /dev/null
+++ b/src/main/resources/mapper/LisViewMapper.xml
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/mapper/TBasicMapper.xml b/src/main/resources/mapper/TBasicMapper.xml
new file mode 100644
index 0000000..5ce16b7
--- /dev/null
+++ b/src/main/resources/mapper/TBasicMapper.xml
@@ -0,0 +1,43 @@
+
+
+
+
+ patient_id AS patientId,
+ admiss_times AS admissTimes,
+ inpatient_no AS inpatientNo,
+ admiss_id AS admissId,
+ admiss_date AS admissDate,
+ dis_date AS disDate,
+ admiss_dept_name AS admissDeptName,
+ dis_dept_name AS disDeptName ,
+ jzh,
+ name,
+ id_card AS idCard
+
+
+
+
+
diff --git a/winsw.exe b/winsw.exe
new file mode 100644
index 0000000..ba27e3f
Binary files /dev/null and b/winsw.exe differ