diff --git a/dataConfig/homeQualitySet.json b/dataConfig/homeQualitySet.json index b390bad..17688ef 100644 --- a/dataConfig/homeQualitySet.json +++ b/dataConfig/homeQualitySet.json @@ -46,5 +46,8 @@ //oracle表名 "tableName":"V_DOCUMENT_PDF", //oracle时间配置 - "collectTimeName":"ARCHIVE_DATE_TIME" + "collectTimeName":"ARCHIVE_DATE_TIME", + +// ----以下是梅州完整性检验同步配置------ + "pageSize":"1000" } \ No newline at end of file diff --git a/src/main/java/com/docus/bgts/controller/BgtsController.java b/src/main/java/com/docus/bgts/controller/BgtsController.java index dad5b6f..75a8c9e 100644 --- a/src/main/java/com/docus/bgts/controller/BgtsController.java +++ b/src/main/java/com/docus/bgts/controller/BgtsController.java @@ -4,16 +4,13 @@ package com.docus.bgts.controller; import com.docus.bgts.entity.CommonResult; import com.docus.bgts.facade.IAfCollectTaskService; import com.docus.bgts.facade.IBgtsService; -import com.docus.bgts.utils.FileUtils; -import com.docus.bgts.utils.XmlUtils; +import com.docus.bgts.facade.IMzSyncService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; -import org.apache.ibatis.annotations.Param; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.dom4j.Element; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -27,7 +24,10 @@ import java.util.List; @RestController public class BgtsController { - Logger logger= LogManager.getLogger(BgtsController.class); + private final Logger logger = LoggerFactory.getLogger(getClass()); + + @Autowired + IMzSyncService mzSyncService; @Autowired IBgtsService bgtsService; @@ -42,6 +42,11 @@ public class BgtsController { return bgtsService.test(collectSubId)+"---"+empId; } + @GetMapping("/syncIntegrality") + public void syncIntegrality(){ + mzSyncService.syncIntegrality(); + } + @ApiOperation("采集接口") @ApiImplicitParams({ @@ -50,7 +55,7 @@ public class BgtsController { }) @GetMapping("/collect") public CommonResult collect(@RequestParam("collectSubId") String collectSubId, - @RequestParam("empId") String empId) { + @RequestParam("empId") String empId) { try { logger.info("采集接口接收到参数:\nempId--"+empId+"\ncollectSubId--"+collectSubId); bgtsService.collect(empId); diff --git a/src/main/java/com/docus/bgts/entity/MzSync.java b/src/main/java/com/docus/bgts/entity/MzSync.java new file mode 100644 index 0000000..38c043c --- /dev/null +++ b/src/main/java/com/docus/bgts/entity/MzSync.java @@ -0,0 +1,16 @@ +package com.docus.bgts.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; +@Data +@ApiModel("梅州完整性校验同步类") +public class MzSync { + @ApiModelProperty("记账号") + private String jzh; + @ApiModelProperty("文件详情列表") + private List mzSyncDetails; + +} diff --git a/src/main/java/com/docus/bgts/entity/MzSyncDetails.java b/src/main/java/com/docus/bgts/entity/MzSyncDetails.java new file mode 100644 index 0000000..1d90326 --- /dev/null +++ b/src/main/java/com/docus/bgts/entity/MzSyncDetails.java @@ -0,0 +1,14 @@ +package com.docus.bgts.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel("文件详情") +public class MzSyncDetails { + @ApiModelProperty("采集流水号") + private String serialnum; + @ApiModelProperty("文件标题") + private String fileTitle; +} diff --git a/src/main/java/com/docus/bgts/facade/IMzSyncService.java b/src/main/java/com/docus/bgts/facade/IMzSyncService.java new file mode 100644 index 0000000..5583a3e --- /dev/null +++ b/src/main/java/com/docus/bgts/facade/IMzSyncService.java @@ -0,0 +1,5 @@ +package com.docus.bgts.facade; + +public interface IMzSyncService { + void syncIntegrality(); +} diff --git a/src/main/java/com/docus/bgts/mapper/dbmysql/AfCollectAddMapper.java b/src/main/java/com/docus/bgts/mapper/dbmysql/AfCollectAddMapper.java index c9ca2a2..180b1be 100644 --- a/src/main/java/com/docus/bgts/mapper/dbmysql/AfCollectAddMapper.java +++ b/src/main/java/com/docus/bgts/mapper/dbmysql/AfCollectAddMapper.java @@ -2,12 +2,46 @@ package com.docus.bgts.mapper.dbmysql; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.docus.bgts.entity.AfCollectAdd; +import com.docus.bgts.entity.MzSync; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.Date; +import java.util.List; +import java.util.Map; public interface AfCollectAddMapper extends BaseMapper { /** * 获取最新的采集时间 */ Date getTimeByAdd(); + + /** + * 获取jzh集合 + * @param pageNumber + * @param pageSize + * @return + */ + List listJzh(@Param("pageNumber") int pageNumber,@Param("pageSize") Integer pageSize); + + /** + * 数据完整性校验 + * @param mzSyncs + * @return + */ + List integrality(@Param("mzSyncs") List mzSyncs); + + /** + * 直接执行sql + * @param sql + */ + @Select("${sqlStr}") + void dynamicSql(@Param("sqlStr")String sql); + + /** + * 写入tbasic完整性校验结果 + * @param result + * @param jzh + */ + void updateTBasic(@Param("result") String result,@Param("jzh") String jzh); } diff --git a/src/main/java/com/docus/bgts/mapper/dboracle/MzSyncMapper.java b/src/main/java/com/docus/bgts/mapper/dboracle/MzSyncMapper.java new file mode 100644 index 0000000..b2127d9 --- /dev/null +++ b/src/main/java/com/docus/bgts/mapper/dboracle/MzSyncMapper.java @@ -0,0 +1,14 @@ +package com.docus.bgts.mapper.dboracle; + +import com.docus.bgts.entity.MzSync; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MzSyncMapper { + + List listMzSync(@Param("jzhs") List jzhs, + @Param("front") int front , + @Param("later") int later); + +} diff --git a/src/main/java/com/docus/bgts/service/MzSyncService.java b/src/main/java/com/docus/bgts/service/MzSyncService.java new file mode 100644 index 0000000..cc2a347 --- /dev/null +++ b/src/main/java/com/docus/bgts/service/MzSyncService.java @@ -0,0 +1,89 @@ +package com.docus.bgts.service; + +import com.docus.bgts.entity.MzSync; +import com.docus.bgts.facade.IMzSyncService; +import com.docus.bgts.mapper.dbmysql.AfCollectAddMapper; +import com.docus.bgts.mapper.dboracle.MzSyncMapper; +import com.docus.bgts.utils.FileUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Arrays; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +/** + * 梅州完整性检验 + */ +@Service +public class MzSyncService implements IMzSyncService { + + @Autowired + AfCollectAddMapper afCollectAddMapper; + + @Autowired + MzSyncMapper mzSyncMapper; + + private final Logger log = LoggerFactory.getLogger(getClass()); + + /** + * 完整性同步方法 + */ + @Override + public void syncIntegrality() { + log.info("完整性同步开始"); + long startTime = System.currentTimeMillis(); + //获取分页数 + Integer pageSize = Integer.parseInt(String.valueOf(FileUtils.getJsonByName("pageSize"))); + List jzhs; + int front; + int later; + List mzSyncs; + StringBuilder sql; + for (int i = 0; ; i++) { + front = i * pageSize; + later = front + pageSize; + jzhs = afCollectAddMapper.listJzh(front, later); + if (null == jzhs || jzhs.size() == 0) { + break; + } else { + mzSyncs = mzSyncMapper.listMzSync(jzhs, front, later); + System.out.println(Arrays.asList(mzSyncs)); + if (null != mzSyncs && mzSyncs.size() != 0) { + List maps = afCollectAddMapper.integrality(mzSyncs); + System.out.println(maps); + sql=new StringBuilder(); + for (Map map : maps) { + sql.append("update docus_medicalrecord.t_basic set integrity_desc="); + sql.append("'"); + sql.append(map.get("file_title")); + sql.append("'"); + sql.append(" where jzh="); + sql.append("'"); + sql.append(map.get("jzh")); + sql.append("'"); + sql.append(";"); + } + System.out.println(sql); + afCollectAddMapper.dynamicSql(sql.toString()); + } + //创建并行流 +// mzSyncs.parallelStream().forEach(mzSync -> { +// String result = afCollectAddMapper.integrality(mzSync); +// System.out.println(result); +// +// afCollectAddMapper.updateTBasic(result, mzSync.getJzh()); +// }); + } + if (mzSyncs.size() != 0) { + log.info("本次成功同步数:" + mzSyncs.size()); + } + } + long endTime = System.currentTimeMillis(); + System.out.println(endTime - startTime); + log.info("完整性同步结束"); + } +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 5c0e213..61ece28 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,5 +1,5 @@ server: - port: 9306 + port: 9308 # http mybatis-plus: @@ -24,7 +24,7 @@ spring: driver-class-name: com.mysql.cj.jdbc.Driver username: docus password: docus702 - url: jdbc:mysql://db.docus.cn:3306/docus_archivefile?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true + url: jdbc:mysql://db.docus.cn:3306/docus_archivefile?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true&allowMultiQueries=true oracle-docus: driver-class-name: oracle.jdbc.driver.OracleDriver url: jdbc:oracle:thin:@192.168.117.100:1521:helowin diff --git a/src/main/resources/mapper/dbmysql/AfCollectAddMapper.xml b/src/main/resources/mapper/dbmysql/AfCollectAddMapper.xml index 09a79dc..878abc0 100644 --- a/src/main/resources/mapper/dbmysql/AfCollectAddMapper.xml +++ b/src/main/resources/mapper/dbmysql/AfCollectAddMapper.xml @@ -6,4 +6,44 @@ + + + + + + + update docus_medicalrecord.t_basic + set integrity_desc=#{result} + where jzh=#{jzh} + \ No newline at end of file diff --git a/src/main/resources/mapper/dboracle/MzSyncMapper.xml b/src/main/resources/mapper/dboracle/MzSyncMapper.xml new file mode 100644 index 0000000..411ba7c --- /dev/null +++ b/src/main/resources/mapper/dboracle/MzSyncMapper.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + \ No newline at end of file