commit 79ee0a2eb3b763592e02fb8808c19bef72d836da
Author: wyb <1977763549@qq.com>
Date: Mon Mar 3 23:40:39 2025 +0800
init:联众检查重采
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/pom.xml b/pom.xml
new file mode 100644
index 0000000..43c130d
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,311 @@
+
+
+
+ com.docus
+ docus-bom
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ docus-lianzhong-check
+
+
+
+ com.docus
+ docus-knife4j-starter
+
+
+
+
+ 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.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
+
+
+
+
+
+
+ junit
+ junit
+ test
+
+
+
+
+ com.microsoft.sqlserver
+ sqljdbc4
+ 4.0
+
+
+
+
+ com.oracle
+ ojdbc6
+ 11.2.0.4.0
+
+
+
+ com.twelvemonkeys.imageio
+ imageio-jpeg
+ 3.8.1
+
+
+
+ com.twelvemonkeys.imageio
+ imageio-tiff
+ 3.8.1
+
+
+
+
+
+
+ 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
+
+
+
+
+
+
+
+
\ No newline at end of file
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..977eb8d
--- /dev/null
+++ b/src/main/java/com/docus/server/AppRunBootstrap.java
@@ -0,0 +1,14 @@
+package com.docus.server;
+
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication(scanBasePackages = {"com.docus"})
+@MapperScan("com.docus.server.**.mapper")
+public class AppRunBootstrap {
+ public static void main(String[] args) {
+ SpringApplication.run(AppRunBootstrap.class, args);
+ }
+}
diff --git a/src/main/java/com/docus/server/archive/controller/LianzhongController.java b/src/main/java/com/docus/server/archive/controller/LianzhongController.java
new file mode 100644
index 0000000..b951475
--- /dev/null
+++ b/src/main/java/com/docus/server/archive/controller/LianzhongController.java
@@ -0,0 +1,33 @@
+package com.docus.server.archive.controller;
+
+import com.docus.infrastructure.web.api.CommonResult;
+import com.docus.server.archive.service.LianzhongCollectCheckService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * @author YongBin Wen
+ * @date 2025/1/16 17:10
+ */
+@RestController
+@Api(tags = "联众检查接口")
+@RequestMapping("/lianzhong")
+@Slf4j
+public class LianzhongController {
+ @Resource
+ private LianzhongCollectCheckService lianzhongCollectCheckService;
+
+
+ @ApiOperation(value = "检查联众同步完成的患者,数量对不上和图片损坏则重采")
+ @GetMapping("/checkLianzhongSourceFile")
+ public CommonResult checkLianzhongSourceFile() {
+ lianzhongCollectCheckService.checkLianzhongSourceFile();
+ return CommonResult.success("检查完成!");
+ }
+}
diff --git a/src/main/java/com/docus/server/archive/entity/ScanAssort.java b/src/main/java/com/docus/server/archive/entity/ScanAssort.java
new file mode 100644
index 0000000..732321c
--- /dev/null
+++ b/src/main/java/com/docus/server/archive/entity/ScanAssort.java
@@ -0,0 +1,55 @@
+package com.docus.server.archive.entity;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+
+@Data
+public class ScanAssort implements Serializable {
+
+
+ @ApiModelProperty(value = "id")
+ private Long id;
+
+
+ @ApiModelProperty(value = "病案id")
+ private String patientId;
+
+
+ @ApiModelProperty(value = "文件标题")
+ private String fileTitle;
+
+
+ @ApiModelProperty(value = "文件目录 单纯文件夹路径,不带文件名,如:F:\\嘉时\\新建文件夹\\")
+ private String imagePath;
+
+
+ @ApiModelProperty(value = "文件名称")
+ private String scanPage;
+
+
+ @ApiModelProperty(value = "文件来源 1:采集器;2:扫描生产软件")
+ private Integer fileSource;
+
+
+ @ApiModelProperty(value = "1:服务器本地;2:ftp服务器;3:共享文件夹")
+ private Integer fileStorageType;
+
+
+ @ApiModelProperty(value = "是否作废 1:是;0:否")
+ private Integer isDel;
+
+
+ private String source;
+
+ @ApiModelProperty(value = "加密类型 0-aes 1-pdfbox 2-itext ...")
+ private Integer encryptedType;
+
+
+ @ApiModelProperty(value = "加密秘钥密文")
+ private String encryptPassword;
+
+
+}
diff --git a/src/main/java/com/docus/server/archive/entity/TBasic.java b/src/main/java/com/docus/server/archive/entity/TBasic.java
new file mode 100644
index 0000000..9bece4f
--- /dev/null
+++ b/src/main/java/com/docus/server/archive/entity/TBasic.java
@@ -0,0 +1,162 @@
+package com.docus.server.archive.entity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ *
+ * 病案基本信息
+ *
+ *
+ * @author jiashi
+ * @since 2021-04-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value = "TBasic对象", description = "病案基本信息")
+public class TBasic implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value = "病案主键")
+ private String patientId;
+
+ @ApiModelProperty(value = "住院次数")
+ private Integer admissTimes;
+
+ @ApiModelProperty(value = "病案号")
+ private String inpatientNo;
+
+ @ApiModelProperty(value = "住院ID号")
+ private String admissId;
+
+ @ApiModelProperty(value = "患者姓名")
+ private String name;
+
+ @ApiModelProperty(value = "盘号")
+ private String ph;
+
+ @ApiModelProperty(value = "性别")
+ private String sex;
+
+ @ApiModelProperty(value = "年龄_岁")
+ private Integer age;
+
+ @ApiModelProperty(value = "年龄_月")
+ private Integer ageMonth;
+
+ @ApiModelProperty(value = "年龄_天")
+ private Integer ageDay;
+
+ @ApiModelProperty(value = "身份证")
+ private String idCard;
+
+ @ApiModelProperty(value = "手机号码")
+ private String telphone;
+
+ @ApiModelProperty(value = "住院日期")
+ private Date admissDate;
+
+ @ApiModelProperty(value = "住院科室")
+ private String admissDept;
+
+ @ApiModelProperty(value = "住院科室名称")
+ private String admissDeptName;
+
+ @ApiModelProperty(value = "出院日期")
+ private Date disDate;
+
+ @ApiModelProperty(value = "出院科室")
+ private String disDept;
+
+ @ApiModelProperty(value = "出院科室名称")
+ private String disDeptName;
+
+ @ApiModelProperty(value = "实际住院天数")
+ private Integer admissDays;
+
+ @ApiModelProperty(value = "主管医生")
+ private String attending;
+
+ @ApiModelProperty(value = "主管医生名称")
+ private String attendingName;
+
+ @ApiModelProperty(value = "主要诊断编码")
+ private String mainDiagCode;
+
+ @ApiModelProperty(value = "主要诊断名称")
+ private String mainDiagName;
+
+ @ApiModelProperty(value = "主要手术编码")
+ private String mainOperateCode;
+
+ @ApiModelProperty(value = "主要手术名称")
+ private String mainOperateName;
+
+ @ApiModelProperty(value = "是否死亡")
+ private Integer isDead;
+
+ @ApiModelProperty(value = "是否作废(0:否,1:是)")
+ private Integer isCancel;
+
+ @ApiModelProperty(value = "创建时间")
+ private Date createTime;
+
+ @ApiModelProperty(value = "修改时间")
+ private Date updateTime;
+
+ @ApiModelProperty(value = "是否归档 1:已归档,0:未归档")
+ private Integer isArchive;
+
+ @ApiModelProperty(value = "归档时间")
+ private Date archiveTime;
+
+ @ApiModelProperty(value = "文件来源 1:af_archive_detail,2:t_scan_assort")
+ private Integer fileSource;
+
+ @ApiModelProperty(value = "完整性描述")
+ private String integrityDesc;
+
+ private String bColumn1;
+
+ private String bColumn2;
+
+ private String bColumn3;
+
+ private String bColumn4;
+
+ private String bColumn5;
+
+ private Integer bColumn6;
+
+ private Integer bColumn7;
+
+ private Integer bColumn8;
+
+ private Integer bColumn9;
+
+ private Integer bColumn10;
+
+ @ApiModelProperty(value = "姓名缩写(内部构成)")
+ private String nameSpell;
+
+ @ApiModelProperty(value = "性别名称")
+ private String sexName;
+
+ @ApiModelProperty(value = "记账号")
+ private String jzh;
+
+ @ApiModelProperty(value = "外部id")
+ private String externalId;
+
+ @ApiModelProperty(value = "档案文件存储类型,1:pdf(默认)2:图片")
+ private Integer archiveFileStorageType;
+
+ @ApiModelProperty(value = "是否标记编码 0否,1是")
+ private Integer isCoder;
+}
diff --git a/src/main/java/com/docus/server/archive/mapper/BasicMapper.java b/src/main/java/com/docus/server/archive/mapper/BasicMapper.java
new file mode 100644
index 0000000..55a73a0
--- /dev/null
+++ b/src/main/java/com/docus/server/archive/mapper/BasicMapper.java
@@ -0,0 +1,21 @@
+package com.docus.server.archive.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.docus.server.archive.entity.TBasic;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 患者基础信息表mapper
+ *
+ * @author wyb
+ */
+@DS("archive-mysql")
+@Mapper
+public interface BasicMapper {
+
+
+ List getByPatientIds(@Param("patientIdList") List patientIdList);
+}
diff --git a/src/main/java/com/docus/server/archive/mapper/ScanAssortMapper.java b/src/main/java/com/docus/server/archive/mapper/ScanAssortMapper.java
new file mode 100644
index 0000000..a4e29aa
--- /dev/null
+++ b/src/main/java/com/docus/server/archive/mapper/ScanAssortMapper.java
@@ -0,0 +1,20 @@
+package com.docus.server.archive.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.docus.server.archive.entity.ScanAssort;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @author YongBin Wen
+ * @date 2025/3/3 22:22
+ */
+@DS("archive-mysql")
+@Mapper
+public interface ScanAssortMapper {
+ List getPatientIdsBySource(@Param("source") String source);
+
+ List getByPatientIdAndSource(@Param("patientId") String patientId,@Param("source") String source);
+}
diff --git a/src/main/java/com/docus/server/archive/service/LianzhongCollectCheckService.java b/src/main/java/com/docus/server/archive/service/LianzhongCollectCheckService.java
new file mode 100644
index 0000000..5120c27
--- /dev/null
+++ b/src/main/java/com/docus/server/archive/service/LianzhongCollectCheckService.java
@@ -0,0 +1,9 @@
+package com.docus.server.archive.service;
+
+/**
+ * @author YongBin Wen
+ * @date 2025/3/3 22:16
+ */
+public interface LianzhongCollectCheckService {
+ void checkLianzhongSourceFile();
+}
diff --git a/src/main/java/com/docus/server/archive/service/impl/LianzhongCollectCheckServiceImpl.java b/src/main/java/com/docus/server/archive/service/impl/LianzhongCollectCheckServiceImpl.java
new file mode 100644
index 0000000..996ce52
--- /dev/null
+++ b/src/main/java/com/docus/server/archive/service/impl/LianzhongCollectCheckServiceImpl.java
@@ -0,0 +1,104 @@
+package com.docus.server.archive.service.impl;
+
+import com.docus.core.util.Func;
+import com.docus.server.archive.entity.ScanAssort;
+import com.docus.server.archive.entity.TBasic;
+import com.docus.server.archive.mapper.BasicMapper;
+import com.docus.server.archive.mapper.ScanAssortMapper;
+import com.docus.server.archive.service.LianzhongCollectCheckService;
+import com.docus.server.lianzhong.entity.CardInfoUpload;
+import com.docus.server.lianzhong.mapper.CardInfoUploadMapper;
+import com.docus.server.lianzhong.mapper.PictureMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.imageio.ImageIO;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.text.SimpleDateFormat;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author YongBin Wen
+ * @date 2025/3/3 22:16
+ */
+@Slf4j
+@Service
+public class LianzhongCollectCheckServiceImpl implements LianzhongCollectCheckService {
+ @Autowired
+ private BasicMapper basicMapper;
+ @Autowired
+ private ScanAssortMapper scanAssortMapper;
+ @Autowired
+ private CardInfoUploadMapper cardInfoUploadMapper;
+ @Autowired
+ private PictureMapper pictureMapper;
+
+ @Override
+ public void checkLianzhongSourceFile() {
+ final String source = "lianzhong";
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ List lianzhongPatientIds = scanAssortMapper.getPatientIdsBySource(source);
+ log.info("联众文件检查,患者主键:{} 个。", lianzhongPatientIds.size());
+ for (String patientId : lianzhongPatientIds) {
+ try {
+ List basics = basicMapper.getByPatientIds(Collections.singletonList(patientId));
+ if (Func.isEmpty(basics)) {
+ continue;
+ }
+ TBasic basic = basics.get(0);
+ List scanAssortList = scanAssortMapper.getByPatientIdAndSource(patientId, source);
+
+ String disDateFmt = sdf.format(basic.getDisDate());
+ String patno = basic.getInpatientNo();
+ List cardInfoUploadList = cardInfoUploadMapper.getSuccessByPatno(patno);
+ for (CardInfoUpload cardInfoUpload : cardInfoUploadList) {
+ if (disDateFmt.equals(sdf.format(cardInfoUpload.getOutdate()))) {
+ String fileid = cardInfoUpload.getId();
+ int lzFileCount = pictureMapper.fileCount(fileid);
+ if (scanAssortList.size() != lzFileCount) {
+ cardInfoUploadMapper.recollect(cardInfoUpload.getId());
+ break;
+ }
+ if (hasDamage(scanAssortList)) {
+ cardInfoUploadMapper.recollect(cardInfoUpload.getId());
+ break;
+ }
+ }
+ }
+ } catch (Exception ex) {
+ log.error("联众检查,出错啦,病案主键:" + patientId, ex);
+ }
+ }
+ }
+
+ private boolean hasDamage(List scanAssortList) {
+ try {
+ for (ScanAssort assort : scanAssortList) {
+ String filePath = assort.getImagePath() + File.separator + assort.getScanPage();
+ BufferedImage image = ImageIO.read(new File(filePath));
+ if (image.getHeight() <= 0 || image.getWidth() <= 0) {
+ return true;
+ }
+ }
+ return false;
+ } catch (Exception ex) {
+ return true;
+ }
+ }
+
+ public static void main(String[] args) {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
+ System.out.println(sdf.format(new Date()));
+ ScanAssort scanAssort = new ScanAssort();
+ scanAssort.setImagePath("C:\\Users\\wyb\\Pictures\\联想截图");
+ scanAssort.setScanPage("yuai2.png");
+ List scanAssortList = Arrays.asList(scanAssort);
+ System.out.println(new LianzhongCollectCheckServiceImpl().hasDamage(scanAssortList));
+ }
+
+}
diff --git a/src/main/java/com/docus/server/lianzhong/entity/CardInfoUpload.java b/src/main/java/com/docus/server/lianzhong/entity/CardInfoUpload.java
new file mode 100644
index 0000000..5cd581c
--- /dev/null
+++ b/src/main/java/com/docus/server/lianzhong/entity/CardInfoUpload.java
@@ -0,0 +1,58 @@
+package com.docus.server.lianzhong.entity;
+
+import lombok.Data;
+
+import java.util.Date;
+
+
+@Data
+public class CardInfoUpload {
+
+
+ private String id;
+
+ private String patno;
+
+ private String patname;
+
+ private Date outdate;
+
+ private Date indate;
+
+ private String outdeptcode;
+
+ private String outdeptname;
+
+ private String patsex;
+
+ private Date patbirthday;
+
+ private Integer state;
+
+ private String describe;
+
+ private String icdecode11;
+
+ private String icdename11;
+
+ private String mjwesticde;
+
+ private String mjwestname;
+
+ private String patciticard;
+
+ private Integer patage;
+
+ private String indeptcode;
+
+ private String indeptname;
+
+ private String outwardname;
+
+ private Integer patnum;
+
+ private String gestno;
+
+}
+
+
diff --git a/src/main/java/com/docus/server/lianzhong/entity/Picture.java b/src/main/java/com/docus/server/lianzhong/entity/Picture.java
new file mode 100644
index 0000000..8f8b375
--- /dev/null
+++ b/src/main/java/com/docus/server/lianzhong/entity/Picture.java
@@ -0,0 +1,20 @@
+package com.docus.server.lianzhong.entity;
+
+import lombok.Data;
+
+
+@Data
+public class Picture {
+ private String picid;
+
+ private String picname;
+
+ private String fileid;
+
+ private Double rotatedegree;
+
+ private String pickind;
+
+ private Integer picno;
+
+}
diff --git a/src/main/java/com/docus/server/lianzhong/mapper/CardInfoUploadMapper.java b/src/main/java/com/docus/server/lianzhong/mapper/CardInfoUploadMapper.java
new file mode 100644
index 0000000..87c0e5b
--- /dev/null
+++ b/src/main/java/com/docus/server/lianzhong/mapper/CardInfoUploadMapper.java
@@ -0,0 +1,20 @@
+package com.docus.server.lianzhong.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.docus.server.lianzhong.entity.CardInfoUpload;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @author YongBin Wen
+ * @date 2025/3/3 22:32
+ */
+@DS("lianzhong-sqlserver")
+@Mapper
+public interface CardInfoUploadMapper {
+ List getSuccessByPatno(@Param("patno") String patno);
+
+ int recollect(@Param("id") String id);
+}
diff --git a/src/main/java/com/docus/server/lianzhong/mapper/PictureMapper.java b/src/main/java/com/docus/server/lianzhong/mapper/PictureMapper.java
new file mode 100644
index 0000000..6aa5c0d
--- /dev/null
+++ b/src/main/java/com/docus/server/lianzhong/mapper/PictureMapper.java
@@ -0,0 +1,15 @@
+package com.docus.server.lianzhong.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @author YongBin Wen
+ * @date 2025/3/3 22:32
+ */
+@DS("lianzhong-sqlserver")
+@Mapper
+public interface PictureMapper {
+ int fileCount(@Param("fileid") String fileid);
+}
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/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..f404ce5
--- /dev/null
+++ b/src/main/resources/bootstrap.yml
@@ -0,0 +1,78 @@
+server:
+ port: 8285
+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
+
+ lianzhong-sqlserver:
+# url: jdbc:sqlserver://192.169.2.170:14330;DatabaseName=u_medrecord
+# username: sa
+# password: 17931@Uni
+ url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=u_medrecord
+ username: sa
+ password: 123456
+ 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
+ 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
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..e5b464d
--- /dev/null
+++ b/src/main/resources/logback.xml
@@ -0,0 +1,76 @@
+
+
+ docus-lianzhong-check
+
+
+
+
+ [%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/BasicMapper.xml b/src/main/resources/mapper/BasicMapper.xml
new file mode 100644
index 0000000..28aae5d
--- /dev/null
+++ b/src/main/resources/mapper/BasicMapper.xml
@@ -0,0 +1,34 @@
+
+
+
+
+ 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/src/main/resources/mapper/CardInfoUploadMapper.xml b/src/main/resources/mapper/CardInfoUploadMapper.xml
new file mode 100644
index 0000000..12000ef
--- /dev/null
+++ b/src/main/resources/mapper/CardInfoUploadMapper.xml
@@ -0,0 +1,18 @@
+
+
+
+
+ update dbo.t_card_info_upload
+ set state = 0
+ where id = #{id}
+
+
+
+
+
diff --git a/src/main/resources/mapper/PictureMapper.xml b/src/main/resources/mapper/PictureMapper.xml
new file mode 100644
index 0000000..80fe9e1
--- /dev/null
+++ b/src/main/resources/mapper/PictureMapper.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
diff --git a/src/main/resources/mapper/ScanAssortMapper.xml b/src/main/resources/mapper/ScanAssortMapper.xml
new file mode 100644
index 0000000..0dfb412
--- /dev/null
+++ b/src/main/resources/mapper/ScanAssortMapper.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
diff --git a/winsw.exe b/winsw.exe
new file mode 100644
index 0000000..ba27e3f
Binary files /dev/null and b/winsw.exe differ