|
|
|
@ -1,6 +1,7 @@
|
|
|
|
|
package com.docus.demo.controller;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
|
|
import com.docus.demo.dto.SyncBasicDataDto;
|
|
|
|
|
import com.docus.demo.dto.SyncFileDto;
|
|
|
|
|
import com.docus.demo.dto.UploadJpgFileParam;
|
|
|
|
@ -19,6 +20,7 @@ import java.time.LocalDate;
|
|
|
|
|
import java.time.temporal.TemporalAdjusters;
|
|
|
|
|
import java.util.Collections;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
|
|
|
|
|
|
|
|
@Api(value = "数据同步接口", tags = "数据同步接口")
|
|
|
|
|
@RestController("/sync")
|
|
|
|
@ -32,6 +34,8 @@ public class SyncBasicDataController {
|
|
|
|
|
@Autowired
|
|
|
|
|
private IWebService webService;
|
|
|
|
|
|
|
|
|
|
private static final ConcurrentHashMap<String,Object> SYNC_BASIC_DATA_BLOCK_MAP = new ConcurrentHashMap<>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ApiOperation("去除文件不存在的数据")
|
|
|
|
|
@PostMapping("/deleteSync")
|
|
|
|
@ -43,34 +47,68 @@ public class SyncBasicDataController {
|
|
|
|
|
@ApiOperation("省厅-同步基础数据")
|
|
|
|
|
@PostMapping("/syncBasicData")
|
|
|
|
|
public CommonResult<?> syncBasicData(@RequestBody SyncBasicDataDto syncBasicDataDto){
|
|
|
|
|
return syncBasicDataService.syncBasicData(syncBasicDataDto);
|
|
|
|
|
if(syncBasicDataDto == null){
|
|
|
|
|
return CommonResult.failed("无效的请求参数!");
|
|
|
|
|
}
|
|
|
|
|
String blockKey="syncBasicData:"+ JSON.toJSONString(syncBasicDataDto);
|
|
|
|
|
if (SYNC_BASIC_DATA_BLOCK_MAP.putIfAbsent(blockKey, 0) != null) {
|
|
|
|
|
return CommonResult.failed("有正在同步的任务!");
|
|
|
|
|
}
|
|
|
|
|
try {
|
|
|
|
|
return syncBasicDataService.syncBasicData(syncBasicDataDto);
|
|
|
|
|
}catch (Exception ex){
|
|
|
|
|
return CommonResult.failed("同步失败!");
|
|
|
|
|
}finally {
|
|
|
|
|
SYNC_BASIC_DATA_BLOCK_MAP.remove(blockKey);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
@ApiOperation("省厅-同步单个患者基础数据")
|
|
|
|
|
@GetMapping("/syncSingleBasicData")
|
|
|
|
|
public CommonResult<?> syncSingleBasicData(@RequestParam(name = "disDate") String disDate,@RequestParam(name = "inpatientNo") String inpatientNo){
|
|
|
|
|
log.info("省厅-同步单个患者基础数据,disDate={},inpatientNo={}", disDate, inpatientNo);
|
|
|
|
|
LocalDate localDate = LocalDate.parse(disDate);
|
|
|
|
|
SyncBasicDataDto dto = new SyncBasicDataDto();
|
|
|
|
|
dto.setStartDate(localDate.toString());
|
|
|
|
|
dto.setEndDate(localDate.toString());
|
|
|
|
|
dto.setInpatientNoList(Collections.singletonList(inpatientNo));
|
|
|
|
|
dto.setLimit(100);
|
|
|
|
|
return syncBasicDataService.syncBasicData(dto);
|
|
|
|
|
String blockKey="syncSingleBasicData:"+ inpatientNo+":"+disDate;
|
|
|
|
|
if (SYNC_BASIC_DATA_BLOCK_MAP.putIfAbsent(blockKey, 0) != null) {
|
|
|
|
|
return CommonResult.failed("有正在同步的任务!");
|
|
|
|
|
}
|
|
|
|
|
try {
|
|
|
|
|
LocalDate localDate = LocalDate.parse(disDate);
|
|
|
|
|
SyncBasicDataDto dto = new SyncBasicDataDto();
|
|
|
|
|
dto.setStartDate(localDate.toString());
|
|
|
|
|
dto.setEndDate(localDate.toString());
|
|
|
|
|
dto.setInpatientNoList(Collections.singletonList(inpatientNo));
|
|
|
|
|
dto.setLimit(100);
|
|
|
|
|
return syncBasicDataService.syncBasicData(dto);
|
|
|
|
|
}catch (Exception ex){
|
|
|
|
|
return CommonResult.failed("同步失败!");
|
|
|
|
|
}finally {
|
|
|
|
|
SYNC_BASIC_DATA_BLOCK_MAP.remove(blockKey);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ApiOperation("省厅-同步上个月基础数据")
|
|
|
|
|
@GetMapping("/syncLastMonthBasicData")
|
|
|
|
|
public CommonResult<?> syncLastMonthBasicData(){
|
|
|
|
|
LocalDate today = LocalDate.now();
|
|
|
|
|
LocalDate firstDayOfLastMonth = today.minusMonths(1).with(TemporalAdjusters.firstDayOfMonth());
|
|
|
|
|
LocalDate lastDayOfLastMonth = today.minusMonths(1).with(TemporalAdjusters.lastDayOfMonth());
|
|
|
|
|
|
|
|
|
|
SyncBasicDataDto dto = new SyncBasicDataDto();
|
|
|
|
|
dto.setStartDate(firstDayOfLastMonth.toString());
|
|
|
|
|
dto.setEndDate(lastDayOfLastMonth.toString());
|
|
|
|
|
dto.setLimit(1000);
|
|
|
|
|
return syncBasicDataService.syncBasicData(dto);
|
|
|
|
|
String blockKey="syncLastMonthBasicData";
|
|
|
|
|
if (SYNC_BASIC_DATA_BLOCK_MAP.putIfAbsent(blockKey, 0) != null) {
|
|
|
|
|
return CommonResult.failed("有正在同步的任务!");
|
|
|
|
|
}
|
|
|
|
|
try {
|
|
|
|
|
LocalDate today = LocalDate.now();
|
|
|
|
|
LocalDate firstDayOfLastMonth = today.minusMonths(1).with(TemporalAdjusters.firstDayOfMonth());
|
|
|
|
|
LocalDate lastDayOfLastMonth = today.minusMonths(1).with(TemporalAdjusters.lastDayOfMonth());
|
|
|
|
|
|
|
|
|
|
SyncBasicDataDto dto = new SyncBasicDataDto();
|
|
|
|
|
dto.setStartDate(firstDayOfLastMonth.toString());
|
|
|
|
|
dto.setEndDate(lastDayOfLastMonth.toString());
|
|
|
|
|
dto.setLimit(1000);
|
|
|
|
|
return syncBasicDataService.syncBasicData(dto);
|
|
|
|
|
}catch (Exception ex){
|
|
|
|
|
return CommonResult.failed("同步失败!");
|
|
|
|
|
}finally {
|
|
|
|
|
SYNC_BASIC_DATA_BLOCK_MAP.remove(blockKey);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -83,6 +121,7 @@ public class SyncBasicDataController {
|
|
|
|
|
@ApiOperation("联众-同步基础数据")
|
|
|
|
|
@PostMapping("/syncLzBasicData")
|
|
|
|
|
public CommonResult<?> syncLzBasicData(@RequestBody SyncBasicDataDto syncBasicDataDto){
|
|
|
|
|
|
|
|
|
|
return syncBasicDataService.syncLzBasicData(syncBasicDataDto);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|