diff --git a/pom.xml b/pom.xml index 4fea87c..d7e2d58 100644 --- a/pom.xml +++ b/pom.xml @@ -29,6 +29,14 @@ + + org.apache.pdfbox + pdfbox + 2.0.27 + + + + com.twelvemonkeys.imageio imageio-tiff @@ -36,9 +44,9 @@ - com.microsoft.sqlserver - sqljdbc6 - 6.4.0 + net.sourceforge.jtds + jtds + 1.3.1 diff --git a/src/main/java/com/docus/demo/controller/SyncBasicDataController.java b/src/main/java/com/docus/demo/controller/SyncBasicDataController.java index a52056b..11e075d 100644 --- a/src/main/java/com/docus/demo/controller/SyncBasicDataController.java +++ b/src/main/java/com/docus/demo/controller/SyncBasicDataController.java @@ -6,7 +6,9 @@ import com.docus.demo.dto.SyncFileDto; import com.docus.demo.entity.CommonResult; import com.docus.demo.facade.ISyncBasicDataService; import com.docus.demo.facade.ISyncBasicFileService; +import com.docus.demo.facade.IWebService; import com.docus.demo.utils.ImageUtils; +import com.docus.demo.utils.PDFFileUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -23,6 +25,8 @@ public class SyncBasicDataController { private ISyncBasicDataService syncBasicDataService; @Autowired private ISyncBasicFileService syncBasicFileService; + @Autowired + private IWebService webService; @ApiOperation("省厅-同步基础数据") @PostMapping("/syncBasicData") @@ -30,6 +34,12 @@ public class SyncBasicDataController { return syncBasicDataService.syncBasicData(syncBasicDataDto); } + @ApiOperation("同步检验图片数据") + @PostMapping("/syncInspection") + public CommonResult syncInspection(@RequestBody SyncBasicDataDto syncBasicDataDto){ + return webService.syncInspection(syncBasicDataDto); + } + @ApiOperation("联众-同步基础数据") @PostMapping("/syncLzBasicData") public CommonResult syncLzBasicData(@RequestBody SyncBasicDataDto syncBasicDataDto){ diff --git a/src/main/java/com/docus/demo/dto/SyncBasicDataDto.java b/src/main/java/com/docus/demo/dto/SyncBasicDataDto.java index 83ff964..3f66165 100644 --- a/src/main/java/com/docus/demo/dto/SyncBasicDataDto.java +++ b/src/main/java/com/docus/demo/dto/SyncBasicDataDto.java @@ -2,6 +2,8 @@ package com.docus.demo.dto; import lombok.Data; +import java.util.List; + @Data public class SyncBasicDataDto { @@ -9,5 +11,7 @@ public class SyncBasicDataDto { private String endDate; + private List inpatientNoList; + private int limit; } diff --git a/src/main/java/com/docus/demo/entity/PatientListResult.java b/src/main/java/com/docus/demo/entity/PatientListResult.java new file mode 100644 index 0000000..1393dc1 --- /dev/null +++ b/src/main/java/com/docus/demo/entity/PatientListResult.java @@ -0,0 +1,33 @@ +package com.docus.demo.entity; + +import lombok.Data; + +import java.util.List; + +@Data +public class PatientListResult { + + private String ResultCode; + + private String ResultContent; + + private Result Result; + + + + @Data + public class Result{ + private List PidReportMain; + + @Data + public class ReportInfo{ + private String RepId; + private String PidComName; + private String PidInNo ; + private String PidAddmissTimes; + } + } +} + + + diff --git a/src/main/java/com/docus/demo/entity/PatientReportResult.java b/src/main/java/com/docus/demo/entity/PatientReportResult.java new file mode 100644 index 0000000..152b875 --- /dev/null +++ b/src/main/java/com/docus/demo/entity/PatientReportResult.java @@ -0,0 +1,29 @@ +package com.docus.demo.entity; + +import lombok.Data; + +@Data +public class PatientReportResult { + + private String ResultCode; + + private String ResultContent; + + private Result Result; + + + + @Data + public class Result{ + private Patient Patient; + + @Data + public class Patient{ + private String RepId; + private String PatientReport; + } + } +} + + + diff --git a/src/main/java/com/docus/demo/entity/Tbasic.java b/src/main/java/com/docus/demo/entity/Tbasic.java index 0b85e6a..f9884bd 100644 --- a/src/main/java/com/docus/demo/entity/Tbasic.java +++ b/src/main/java/com/docus/demo/entity/Tbasic.java @@ -141,4 +141,9 @@ public class Tbasic { @ApiModelProperty(value = "档案文件存储类型,1:pdf(默认)2:图片") private Integer archiveFileStorageType; + @ApiModelProperty(value = "扫描上传状态,0:未扫描、1:待质检、2:已退回、3:系统通过、4:人工通过,5:已返工") + private Integer scanUploadState; + + + private Date birthday; } diff --git a/src/main/java/com/docus/demo/entity/TbasicSub.java b/src/main/java/com/docus/demo/entity/TbasicSub.java new file mode 100644 index 0000000..2819aa3 --- /dev/null +++ b/src/main/java/com/docus/demo/entity/TbasicSub.java @@ -0,0 +1,13 @@ +package com.docus.demo.entity; + +import lombok.Data; + +import java.util.Date; + +@Data +public class TbasicSub { + + private String patientId; + + private Date birthday; +} diff --git a/src/main/java/com/docus/demo/entity/sqlserver1/Tpatientvisit.java b/src/main/java/com/docus/demo/entity/sqlserver1/Tpatientvisit.java index 5752241..1ac8235 100644 --- a/src/main/java/com/docus/demo/entity/sqlserver1/Tpatientvisit.java +++ b/src/main/java/com/docus/demo/entity/sqlserver1/Tpatientvisit.java @@ -33,9 +33,11 @@ public class Tpatientvisit implements Serializable { private String fname; @ApiModelProperty(value = "性别") - @TableField("FSEX") private String fsex; + @ApiModelProperty(value = "性别") + private String fsexbh; + @ApiModelProperty(value = "身份证号") @TableField("FIDCARD") private String fidcard; @@ -94,5 +96,8 @@ public class Tpatientvisit implements Serializable { @ApiModelProperty(value = "是否死亡") @TableField("fbody") - private Integer fbody; + private String fbody; + + @ApiModelProperty(value = "出生日期") + private Date Fbirthday; } diff --git a/src/main/java/com/docus/demo/facade/IWebService.java b/src/main/java/com/docus/demo/facade/IWebService.java new file mode 100644 index 0000000..4d2a432 --- /dev/null +++ b/src/main/java/com/docus/demo/facade/IWebService.java @@ -0,0 +1,10 @@ +package com.docus.demo.facade; + +import com.docus.demo.dto.SyncBasicDataDto; +import com.docus.demo.entity.CommonResult; + +public interface IWebService { + + + CommonResult syncInspection(SyncBasicDataDto syncBasicDataDto); +} diff --git a/src/main/java/com/docus/demo/mapper/mysql/BasicMapper.java b/src/main/java/com/docus/demo/mapper/mysql/BasicMapper.java index d773eab..449b16a 100644 --- a/src/main/java/com/docus/demo/mapper/mysql/BasicMapper.java +++ b/src/main/java/com/docus/demo/mapper/mysql/BasicMapper.java @@ -4,6 +4,7 @@ package com.docus.demo.mapper.mysql; import com.docus.demo.dto.BasicSelectDto; import com.docus.demo.dto.SyncBasicDataDto; import com.docus.demo.entity.Tbasic; +import com.docus.demo.entity.TbasicSub; import com.docus.demo.vo.BasicVo; import org.apache.ibatis.annotations.Param; @@ -21,4 +22,10 @@ public interface BasicMapper { void insertOrUpdateByid(List tbasicList); List getOldBasicList(@Param("list") List fprnList, @Param("dto") SyncBasicDataDto syncBasicDataDto); + + void updateScanStatus(@Param("pid")String pid); + + + + void insertOrUpdateTbasicSub(@Param("list") List tbasicSubList); } diff --git a/src/main/java/com/docus/demo/service/SyncBasicDataImpl.java b/src/main/java/com/docus/demo/service/SyncBasicDataImpl.java index c1552a4..68cdcb1 100644 --- a/src/main/java/com/docus/demo/service/SyncBasicDataImpl.java +++ b/src/main/java/com/docus/demo/service/SyncBasicDataImpl.java @@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil; import com.docus.demo.dto.SyncBasicDataDto; import com.docus.demo.entity.CommonResult; import com.docus.demo.entity.Tbasic; +import com.docus.demo.entity.TbasicSub; import com.docus.demo.entity.sqlserver.CardInfo; import com.docus.demo.entity.sqlserver1.Tdiagnose; import com.docus.demo.entity.sqlserver1.Toperation; @@ -19,6 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.text.SimpleDateFormat; +import java.time.LocalDate; import java.util.Date; import java.util.List; import java.util.concurrent.ExecutorService; @@ -37,21 +39,28 @@ public class SyncBasicDataImpl implements ISyncBasicDataService { private TcardMapper tcardMapper; private SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); - private final ExecutorService executor = Executors.newFixedThreadPool(7); +// private final ExecutorService executor = Executors.newFixedThreadPool(7); @Override public CommonResult syncBasicData(SyncBasicDataDto syncBasicDataDto) { - //页码 - int current; + + LocalDate startDate = LocalDate.parse(syncBasicDataDto.getStartDate()); + LocalDate endDate = LocalDate.parse(syncBasicDataDto.getEndDate()); + + //每页1000条数据 - int limit = syncBasicDataDto.getLimit(); + List tpatientvisitList; - for (current = 1; ; current++) { + for (int current = 1; ; current++) { + syncBasicDataDto.setStartDate(startDate+" 00:00:00"); + syncBasicDataDto.setEndDate(startDate.plusDays(1)+" 23:59:59"); + + log.info(syncBasicDataDto.getStartDate()+" --- " +syncBasicDataDto.getEndDate()); //根据出院时间查询省厅数据 - tpatientvisitList = paintVisitMapper.getTpatientVisitList((current - 1) * limit, current*limit, syncBasicDataDto); - if (null == tpatientvisitList || tpatientvisitList.size() == 0) { - break; - } + tpatientvisitList = paintVisitMapper.getTpatientVisitList(0, 0, syncBasicDataDto); + log.info("开始同步"+tpatientvisitList.size()); +// tpatientvisitList = paintVisitMapper.getTpatientVisitList((current - 1) * limit, current*limit, syncBasicDataDto); + List fprnList = tpatientvisitList.stream().map(Tpatientvisit::getFprn).collect(Collectors.toList()); //诊断数据 List tdiagnoses = paintVisitMapper.getTdiagnose(fprnList); @@ -59,12 +68,31 @@ public class SyncBasicDataImpl implements ISyncBasicDataService { //数据map转换 List oldBasicList = basicMapper.getOldBasicList(fprnList, syncBasicDataDto); List tbasicList = this.getTbasicList(oldBasicList, tpatientvisitList, tdiagnoses, toperations); + + List tbasicSubList = this.getTbasicSubList(tbasicList); + //数据入库 basicMapper.insertOrUpdateByid(tbasicList); + basicMapper.insertOrUpdateTbasicSub(tbasicSubList); + log.info("数据库入库"+tbasicList.size() +"子表"+tbasicSubList.size()); + + if (startDate.compareTo(endDate)>0) { + break; + } + startDate = startDate.plusDays(10); } return CommonResult.success("同步成功"); } + private List getTbasicSubList(List tbasicList) { + return tbasicList.stream().map(m->{ + TbasicSub tbasicSub = new TbasicSub(); + tbasicSub.setBirthday(m.getBirthday()); + tbasicSub.setPatientId(m.getPatientId()); + return tbasicSub; + }).collect(Collectors.toList()); + } + private List getTbasicList(List oldBasicList, List tpatientvisitList, List tdiagnoses, List toperations) { @@ -79,6 +107,7 @@ public class SyncBasicDataImpl implements ISyncBasicDataService { .findFirst() .orElse(null); + String fprn = m.getFprn(); Integer ftimes = m.getFtimes(); @@ -107,8 +136,16 @@ public class SyncBasicDataImpl implements ISyncBasicDataService { tbasic.setAdmissTimes(m.getFtimes()); tbasic.setInpatientNo(m.getFprn()); tbasic.setName(m.getFname()); - tbasic.setSex(m.getFsex()); - tbasic.setAge(0); + tbasic.setSex(m.getFsexbh()); + tbasic.setSexName(m.getFsex()); + if (m.getFage().contains("Y")){ + tbasic.setAge(Integer.valueOf(m.getFage().split("Y")[1])); + }else if (m.getFage().contains("M")){ + tbasic.setAgeMonth(Integer.valueOf(m.getFage().split("M")[1])); + }else if (m.getFage().contains("D")){ + tbasic.setAgeDay(Integer.valueOf(m.getFage().split("D")[1])); + } + tbasic.setIdCard(m.getFidcard()); tbasic.setTelphone(""); tbasic.setAdmissDate(m.getFrydate()); @@ -120,6 +157,7 @@ public class SyncBasicDataImpl implements ISyncBasicDataService { tbasic.setAdmissDays(m.getFdays()); tbasic.setAttending(m.getFzzdoctbh()); tbasic.setAttendingName(m.getFzzdoct()); + tbasic.setBirthday(m.getFbirthday()); if (tdiagnose != null) { tbasic.setMainDiagCode(tdiagnose.getFicdm()); tbasic.setMainDiagName(tdiagnose.getFjbname()); @@ -128,10 +166,12 @@ public class SyncBasicDataImpl implements ISyncBasicDataService { tbasic.setMainOperateCode(toperation.getFopcode()); tbasic.setMainOperateName(toperation.getFop()); } - tbasic.setIsDead(m.getFbody()); +// tbasic.setIsDead(m.getFbody()); tbasic.setCreateTime(new Date()); tbasic.setSexName(m.getFsex()); tbasic.setArchiveFileStorageType(2); + tbasic.setScanUploadState(0); + tbasic.setIsArchive(1); return tbasic; }).collect(Collectors.toList()); @@ -141,7 +181,7 @@ public class SyncBasicDataImpl implements ISyncBasicDataService { @Override public CommonResult syncLzBasicData(SyncBasicDataDto syncBasicDataDto) { - executor.execute(()->{ +// executor.execute(()->{ //页码 int current; //每页1000条数据 @@ -172,7 +212,7 @@ public class SyncBasicDataImpl implements ISyncBasicDataService { } } log.info(syncBasicDataDto.getStartDate() + " " + syncBasicDataDto.getEndDate() + "结束同步" ); - }); +// }); return CommonResult.success("同步成功"); diff --git a/src/main/java/com/docus/demo/service/SyncBasicFileImpl.java b/src/main/java/com/docus/demo/service/SyncBasicFileImpl.java index 5880778..85eafd8 100644 --- a/src/main/java/com/docus/demo/service/SyncBasicFileImpl.java +++ b/src/main/java/com/docus/demo/service/SyncBasicFileImpl.java @@ -43,7 +43,7 @@ public class SyncBasicFileImpl implements ISyncBasicFileService { private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - private final ExecutorService executor = Executors.newFixedThreadPool(7); + private final ExecutorService executor = Executors.newFixedThreadPool(5); @Override @@ -63,8 +63,8 @@ public class SyncBasicFileImpl implements ISyncBasicFileService { if (null == basicVoList || basicVoList.size() == 0) { break; } - List updateOrInsertList = new ArrayList<>(5000); for (BasicVo basicVo : basicVoList) { + List updateOrInsertList = new ArrayList<>(1000); log.info("开始同步"+basicVo.getInpatientNo()); List scanAssortList = this.doSyncFile(basicVo); //2.5数据入库 @@ -74,15 +74,19 @@ public class SyncBasicFileImpl implements ISyncBasicFileService { List addScanAssortList = this.handleUpdateOrInsert(oldScanAssort,scanAssortList); updateOrInsertList.addAll(addScanAssortList); } else { - log.info(basicVo.getPatientId() + " canFindImage "); + log.info(basicVo.getInpatientNo() + " canFindImage "); } - log.info("结束同步"+basicVo.getInpatientNo()); + if (ObjectUtil.isNotEmpty(updateOrInsertList)){ + scanAssortMapper.insertOrUpdateBatch(updateOrInsertList); + basicMapper.updateScanStatus(basicVo.getPatientId()); + } + log.info("结束同步"+basicVo.getInpatientNo() +" size " +updateOrInsertList.size()); } - scanAssortMapper.insertOrUpdateBatch(updateOrInsertList); } }catch (Exception e){ log.info(e.getMessage()); } + },executor); return CommonResult.success("同步成功"); @@ -120,11 +124,8 @@ public class SyncBasicFileImpl implements ISyncBasicFileService { inpatientNo.insert(0, "0"); } - String rootDir = "Z:\\" - + cyYear + File.separator - + cyYear + cyMonth + File.separator - + cyYear + cyMonth + cyDay + File.separator - + inpatientNo + cyYear + cyMonth + cyDay + File.separator; + String rootDir = getRootDir(basicVo,cyYear,cyMonth,cyDay); + String outDir = "F:\\lianzhong" + File.separator + cyYear + File.separator + cyMonth + File.separator @@ -149,7 +150,6 @@ public class SyncBasicFileImpl implements ISyncBasicFileService { log.info(basicVo.getInpatientNo()+"文件未找到"+inPutFile); } boolean savePicFlag ; - boolean rotateFlag ; // 2.2jp2转化jpg 图片通过文件流写到挂在的盘符 savePicFlag = ImageUtils.getInstance().savePic(inPutFile, outFile, tpicture.getRotateDegree()); if (!savePicFlag){ @@ -172,7 +172,7 @@ public class SyncBasicFileImpl implements ISyncBasicFileService { scanAssort.setFilePages(1); if (savePicFlag){ - scanAssort.setCreater("auto2"); + scanAssort.setCreater("auto1"); }else { scanAssort.setCreater("auto4"); } diff --git a/src/main/java/com/docus/demo/service/WebServiceImpl.java b/src/main/java/com/docus/demo/service/WebServiceImpl.java new file mode 100644 index 0000000..1e25290 --- /dev/null +++ b/src/main/java/com/docus/demo/service/WebServiceImpl.java @@ -0,0 +1,135 @@ +package com.docus.demo.service; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.XmlUtil; +import cn.hutool.http.HttpUtil; +import cn.hutool.http.webservice.SoapClient; +import com.docus.demo.dto.SyncBasicDataDto; +import com.docus.demo.entity.*; +import com.docus.demo.facade.IWebService; +import com.docus.demo.mapper.mysql.BasicMapper; +import com.docus.demo.mapper.mysql.ScanAssortMapper; +import com.docus.demo.utils.PDFFileUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.*; + +@Slf4j +@Service +public class WebServiceImpl implements IWebService { + + @Autowired + private BasicMapper basicMapper; + @Autowired + private ScanAssortMapper scanAssortMapper; + + @Override + public CommonResult syncInspection(SyncBasicDataDto syncBasicDataDto) { + //查询基础数据 + List tbasicList =basicMapper.getOldBasicList(null,syncBasicDataDto); + + for (Tbasic tbasic : tbasicList){ + String pNo = tbasic.getInpatientNo(); + String times = tbasic.getAdmissTimes().toString(); + String StartDate = tbasic.getAdmissDate().toString(); + String EndDate = tbasic.getDisDate().toString(); + String patientId = tbasic.getPatientId(); + + //获取所有的报告列表 + PatientListResult patientListResult= getCommonResult(pNo, times, StartDate, EndDate); + + if (!patientListResult.getResultCode().equals("0")){ + log.info(pNo+" "+times+"调用失败"); + } + String root = "D:\\Users\\admin\\Desktop"; + + List scanAssortList = new ArrayList<>(); + patientListResult.getResult().getPidReportMain().forEach(item->{ + //时间段内如果查询到住院次数相同的数据 则数据入库 + if (item.getPidAddmissTimes().equals(times)&&item.getPidInNo().equals(pNo)){ + PatientReportResult patientReportResult = this.getReportResult(item.getRepId()); + String base64Result = patientReportResult.getResult().getPatient().getPatientReport(); + List addScanList = PDFFileUtils.base64StringToPDF(base64Result,root,item.getPidComName()); + addScanList.forEach(scanAssort->{ + scanAssort.setPatientId(patientId); + scanAssort.setAssortId(""); + }); + } + }); + //数据写入到3.0 + scanAssortMapper.insertOrUpdateBatch(scanAssortList); + } + + return CommonResult.success("同步检验数据成功"); + } + + private PatientReportResult getReportResult(String repID) { + Map paramMap = new HashMap<>(); + paramMap.put("RepID", repID); + paramMap.put("CustomReportSuffix", ""); + + String paramStr = ""; + //拼接外层入参 + Map params = new HashMap<>(); + + params.put("MethodName", "GetPatientReport"); + params.put("XMLData",paramStr); + Map result = this.request(params); + + //转对象List stream获取报告id + return BeanUtil.fillBeanWithMap(result, new PatientReportResult(), false); + } + + + private PatientListResult getCommonResult(String pNo, String times, String StartDate, String EndDate) { + Map paramMap = new HashMap<>(); + paramMap.put("PidInNo", pNo); + paramMap.put("PidAddmissTimes", times); + paramMap.put("StartDate", StartDate); + paramMap.put("EndDate", EndDate); + String paramStr = ""; + //拼接外层入参 + Map params = new HashMap<>(); + + params.put("MethodName", "GetPatientList"); + params.put("XMLData",paramStr); + Map result = this.request(params); + + //转对象List stream获取报告id + return BeanUtil.fillBeanWithMap(result, new PatientListResult(), false); + } + + + + private Map request(Map params){ + String result = ""; + try{ + String url = "http://192.168.8.157:8095/DCLService.asmx"; + SoapClient client = SoapClient.create(url); + client.header("SOAPAction","http://dcl.org/DCLInterface"); + // 设置要请求的方法,此接口方法前缀为web,传入对应的命名空间 + client.setMethod("dcl:DCLInterface", "http://dcl.org/"); + client.setParams(params,true); + +// log.info("[请求ID:{}]测试方法字符串接口:{},入参:{}",requestId,url,client.getMsgStr(true)); + // 发送请求,参数true表示返回一个格式化后的XML内容 + // 返回内容为XML字符串,可以配合XmlUtil解析这个响应 + result = client.send(false); + log.info(result); +// log.info("[请求ID:{}]测试方法字符串出参:{}",requestId,result); + if(result.contains("")){ + result = result.substring(result.indexOf("")+20,result.indexOf("")); + }else{ + result = result.substring(result.indexOf("Result>")+7,result.indexOf("} base64StringToPDF(String base64Content, String rootPath, String fileTitle) { + BASE64Decoder decoder = new BASE64Decoder(); + List addScanList = new ArrayList<>(); + try { + //1.base64编码内容转换为字节数组 + byte[] bytes = decoder.decodeBuffer(base64Content); + //2.生成jpg图片 + PDDocument document = PDDocument.load(new ByteArrayInputStream(bytes)); + PDFRenderer renderer = new PDFRenderer(document); + // Iterate over each page and save it as an image + for (int pageIndex = 0; pageIndex < document.getNumberOfPages(); pageIndex++) { + // Render the page as an image + BufferedImage image = renderer.renderImageWithDPI(pageIndex, 300); // Set DPI value as needed + // Save the image to a file + String outputFilePath = rootPath +File.separator+ fileTitle +pageIndex+ ".jpg"; // Output file path + ImageIO.write(image, "jpg", new File(outputFilePath)); + //todo 拼装数据 + ScanAssort scanAssort = new ScanAssort(); + scanAssort.setFileTitle(fileTitle +pageIndex); + scanAssort.setImagePath(rootPath); + scanAssort.setFileSource(1); + scanAssort.setFileStorageType(1); + scanAssort.setFilePages(1); + scanAssort.setCreater("检验"); + scanAssort.setCreateTime(new Date()); + scanAssort.setSort(pageIndex); + + addScanList.add(scanAssort); + } + // Close the PDF document + document.close(); + } catch (Exception e) { + e.printStackTrace(); + } + + return addScanList; + } + + + + + + +} \ No newline at end of file diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 8e9faba..490ccfe 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -70,25 +70,25 @@ spring: test-on-borrow: false test-on-return: false validation-query: select 1 - #省厅数据库 - sqlserver1: - driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver - username: sa - password: 17931 - url: jdbc:sqlserver://192.168.8.74:1433;DatabaseName=u_medrecord - # 初始化配置 - 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 + #省厅数据库 + sqlserver1: + driver-class-name: net.sourceforge.jtds.jdbc.Driver + username: rhin + password: rhin + url: jdbc:jtds:sqlserver://192.168.8.250:1433;DatabaseName=bagl_java + # 初始化配置 + 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 diff --git a/src/main/resources/mapper/mysql/BasicMapper.xml b/src/main/resources/mapper/mysql/BasicMapper.xml index 2c1d614..30e9dc9 100644 --- a/src/main/resources/mapper/mysql/BasicMapper.xml +++ b/src/main/resources/mapper/mysql/BasicMapper.xml @@ -4,14 +4,14 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - insert into docus_medicalrecord.t_basic (patient_id,admiss_times,inpatient_no,admiss_id, name,sex,age,id_card, admiss_date,admiss_dept,admiss_dept_name,dis_date, dis_dept,dis_dept_name,main_diag_code,main_diag_name, main_operate_code,main_operate_name,create_time,is_archive, - file_source,b_column5,b_column8,archive_file_storage_type + file_source,b_column5,b_column8,archive_file_storage_type, + scan_upload_state ) values @@ -20,10 +20,33 @@ #{item.admissDate},#{item.admissDept},#{item.admissDeptName},#{item.disDate}, #{item.disDept},#{item.disDeptName},#{item.mainDiagCode},#{item.mainDiagName}, #{item.mainOperateCode},#{item.mainOperateName},#{item.createTime},#{item.isArchive}, - #{item.fileSource},#{item.bColumn5},#{item.bColumn8},#{item.archiveFileStorageType} + #{item.fileSource},#{item.bColumn5},#{item.bColumn8},#{item.archiveFileStorageType}, + #{item.scanUploadState} ) + ON DUPLICATE KEY UPDATE id_card = VALUES(id_card) + ,admiss_dept = VALUES(admiss_dept) + ,admiss_dept_name = VALUES(admiss_dept_name) + ,dis_dept = VALUES(dis_dept) + ,dis_dept_name = VALUES(dis_dept_name) + ,is_archive = VALUES(is_archive); + + + insert into docus_medicalrecord.t_basic_sub + (patient_id,birthday) + values + + (#{item.patientId},#{item.birthday}) + + ON DUPLICATE KEY UPDATE birthday = VALUES(birthday); + + + + update docus_medicalrecord.t_basic set scan_source = 1 + WHERE patient_id = #{pid} + + + \ No newline at end of file diff --git a/src/main/resources/mapper/mysql/ScanAssortMapper.xml b/src/main/resources/mapper/mysql/ScanAssortMapper.xml index ad50340..c058c70 100644 --- a/src/main/resources/mapper/mysql/ScanAssortMapper.xml +++ b/src/main/resources/mapper/mysql/ScanAssortMapper.xml @@ -23,7 +23,7 @@ separator=","> (#{item.id},#{item.patientId},#{item.assortId},#{item.fileTitle},#{item.imagePath},#{item.scanPage},#{item.fileSource},#{item.fileStorageType},#{item.filePages},#{item.creater},#{item.createTime},#{item.sort}) - ON DUPLICATE KEY UPDATE file_pages = VALUES(file_pages), update_time = NOW(),sort = VALUES(sort); + ON DUPLICATE KEY UPDATE file_pages = VALUES(file_pages), update_time = NOW() ,sort = VALUES(sort) ,creater = VALUES(creater) ; - SELECT * - from ( - SELECT row_number() over(order by fid ) as num , Tpatientvisit.* FROM Tpatientvisit + + SELECT * FROM Tpatientvisit @@ -27,9 +26,7 @@ - )as t2 - where t2.num >= #{pageStart} - and t2.num <= #{pageEnd} +