package com.ltkj.web.controller.sqlserver;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.ltkj.common.annotation.RepeatSubmit;
|
import com.ltkj.common.core.controller.BaseController;
|
import com.ltkj.common.core.domain.AjaxResult;
|
import com.ltkj.common.core.redis.RedisCache;
|
import com.ltkj.common.enums.DataSourceType;
|
import com.ltkj.framework.config.UserHoder;
|
import com.ltkj.framework.datasource.DynamicDataSourceContextHolder;
|
import com.ltkj.hosp.domain.*;
|
import com.ltkj.hosp.service.*;
|
import com.ltkj.hosp.sqlDomain.*;
|
import com.ltkj.hosp.mapper.TestMapper;
|
import com.ltkj.system.service.ISysDeptService;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiParam;
|
import org.checkerframework.checker.units.qual.A;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.data.redis.core.ConvertingCursor;
|
import org.springframework.data.redis.core.Cursor;
|
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.data.redis.core.ScanOptions;
|
import org.springframework.data.redis.serializer.RedisSerializer;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpSession;
|
import java.sql.ResultSet;
|
import java.sql.SQLException;
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
import static com.ltkj.framework.datasource.DynamicDataSourceContextHolder.log;
|
import static org.apache.poi.hemf.record.emfplus.HemfPlusRecordType.save;
|
|
|
@RestController
|
@RequestMapping("/sqlserver/getdata")
|
@Api(tags = "AAAAAAAAAAA获取从库数据")
|
public class TjSqlController extends BaseController {
|
@Resource
|
private TestMapper testMapper;
|
|
@Resource
|
private TjvLtkjvtjpatService tjvLtkjvtjpatService;
|
|
@Resource
|
private LtkjMiddleDetailService middleDetailService;
|
|
@Resource
|
private LtkjMiddleHeadService headService;
|
@Resource
|
private LtkjExamJcbgdService ltkjExamJcbgdService;
|
@Resource
|
private LtkjExamJcsqdService ltkjExamJcsqdService;
|
@Resource
|
private LtkjHybgdService ltkjHybgdService;
|
@Resource
|
private LtkjHysqdService ltkjHysqdService;
|
@Autowired
|
public RedisTemplate<Object,Object> redisTemplate;
|
@Resource
|
private ITjCustomerService tjCustomerService;
|
@Resource
|
private RedisCache redisCache;
|
@Resource
|
private TjAsyncService asyncService;
|
@Resource
|
private ITjOrderRemarkService remarkService;
|
@Resource
|
private ITjOrderService orderService;
|
@Resource
|
private ISysDeptService deptService;
|
@Resource
|
private LtkjHisUserService hisUserService;
|
@Resource
|
private ITjProjectService tjProjectService;
|
@Autowired
|
private ITjOrderDetailService tjOrderDetailService;
|
@Resource
|
private ITjOrderRemarkService tjOrderRemarkService;
|
|
|
@GetMapping("/getTjHyBgList")
|
@ApiOperation(value = "查询lis数据库项目信息接口")
|
public AjaxResult getTjHyBgList(@RequestParam(required = false)String pacCode,
|
@RequestParam(required = false)String pacName,
|
@RequestParam(required = false)String pacRemark) {
|
List<Map<String, Object>> maps = testMapper.getTjHyBgList(pacCode,pacName,pacRemark);
|
DynamicDataSourceContextHolder.clearDataSourceType();
|
return AjaxResult.success(maps);
|
}
|
|
|
@GetMapping("/newGetTjPat")
|
@ApiOperation(value = "A------新的查询体检信息接口")
|
public AjaxResult newGetTjPat(@RequestParam(required = false)String pacCode,
|
@RequestParam(required = false)String pacName,
|
@RequestParam(required = false)String pacRemark) {
|
List<Map<String, Object>> maps = testMapper.newGetTjPat(pacCode,pacName,pacRemark);
|
DynamicDataSourceContextHolder.clearDataSourceType();
|
List<String> strings = orderService.selectTjOrderByCardId1();
|
if(null !=strings && strings.size()>0){
|
List<Map<String, Object>> collect = maps.stream()
|
.filter(item -> !strings.contains(item.get("pacCode").toString())).collect(Collectors.toList());
|
return AjaxResult.success(collect);
|
}
|
return AjaxResult.success(maps);
|
}
|
|
|
|
|
@GetMapping("/getRedisValue")
|
@ApiOperation(value = "测试redis模糊查询")
|
public AjaxResult getRedisValue(@RequestParam int aa,
|
@RequestParam(defaultValue = "1") Integer page,
|
@RequestParam(defaultValue = "10") Integer pageSize,
|
@RequestParam(required = false) String deptId,
|
@RequestParam(required = false) String tjName,
|
@RequestParam(required = false) String tjNum) throws SQLException, JsonProcessingException {
|
// long start = System.currentTimeMillis();
|
// //需要匹配的key
|
// ScanOptions options = ScanOptions.scanOptions()
|
// //这里指定每次扫描key的数量(很多博客瞎说要指定Integer.MAX_VALUE,这样的话跟 keys有什么区别?)
|
// .count(10000)
|
// .match(aa+"*").build();
|
// RedisSerializer<String> redisSerializer = (RedisSerializer<String>) redisTemplate.getKeySerializer();
|
// Cursor cursor = redisTemplate.executeWithStickyConnection(redisConnection -> new ConvertingCursor<>(redisConnection.scan(options), redisSerializer::deserialize));
|
// List<Object> result = new ArrayList<>();
|
// while(cursor.hasNext()){
|
// String s = cursor.next().toString();
|
// redisCache.deleteObject(s);
|
// }
|
// //切记这里一定要关闭,否则会耗尽连接数。报Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisException: Could not get a
|
// cursor.close();
|
//// System.out.println(result);
|
// log.info("scan扫描共耗时:{} ms key数量:{}",System.currentTimeMillis()-start,result.size());
|
// Map<String,Object>map=new HashMap<>();
|
// map.put("result",result);
|
// map.put("scan扫描共耗时:{} ms key数量:{}",System.currentTimeMillis()-start+result.size());
|
// List<TjOrderRemark> list = remarkService.list(new LambdaQueryWrapper<TjOrderRemark>().ne(TjOrderRemark::getType,2).groupBy(TjOrderRemark::getTjNumber));
|
// for (TjOrderRemark remark : list) {
|
// TjOrder orderByTjNum = orderService.getOrderByTjNum(remark.getTjNumber());
|
// if(null !=orderByTjNum){
|
// asyncService.dockerSetWjCustomerByRedis(orderByTjNum.getOrderId(),remark.getDeptId());
|
// asyncService.dockerSetYjCustomerByRedis(orderByTjNum.getOrderId(),remark.getDeptId());
|
// }
|
// }
|
if(null==deptId) deptId="";
|
if(null==tjName) tjName="";
|
if(null==tjNum) tjNum="";
|
|
// List<Map<String, Object>> map = deptService.getSysDeptYjWjCustomerList(deptId, tjName, tjNum, aa, page, pageSize);
|
// List<ResultSet> map = deptService.getSysDeptYjWjCustomerList1(deptId, tjName, tjNum, aa, page, pageSize);
|
// ResultSet resultSet = deptService.getSysDeptYjWjCustomerList12(deptId, tjName, tjNum, aa, page, pageSize);
|
// while (resultSet.next()){
|
// String anInt = resultSet.getString(1);
|
// System.out.println(anInt);
|
// }
|
|
Map<String,Object> map = deptService.getSysDeptYjWjCustomerList13(deptId, tjName, tjNum, aa, page, pageSize);
|
return AjaxResult.success(map);
|
}
|
|
|
@GetMapping("/getMiddleDetail")
|
@ApiOperation(value = "查询收费项目详情")
|
public AjaxResult getMiddleDetail() {
|
List<LtkjMiddleDetail> list = testMapper.getMiddleDetail();
|
DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
|
for (LtkjMiddleDetail ltkjMiddleDetail : list) {
|
final boolean save = middleDetailService.save(ltkjMiddleDetail);
|
}
|
DynamicDataSourceContextHolder.clearDataSourceType();
|
return AjaxResult.success(list);
|
}
|
|
|
@GetMapping("/getMiddleHead")
|
@ApiOperation(value = "查询收费信息")
|
public AjaxResult getMiddleHead() {
|
List<LtkjMiddleHead> list = testMapper.getMiddleHead();
|
DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
|
for (LtkjMiddleHead ltkjMiddleHead : list) {
|
final boolean save = headService.save(ltkjMiddleHead);
|
}
|
DynamicDataSourceContextHolder.clearDataSourceType();
|
return AjaxResult.success(list);
|
}
|
|
@GetMapping("/getMiddleHeadByPartId")
|
@ApiOperation(value = "根据身份证号查询收费信息")
|
public AjaxResult getMiddleHeadByPartId(@RequestParam String partId) {
|
TjCustomer customer = tjCustomerService.getTjCustomerByCusIdCard(partId);
|
LtkjMiddleHead pat = testMapper.getMiddleHeadByPartId(customer.getCardId());
|
if (null != pat) {
|
List<LtkjMiddleDetail> list = testMapper.getMiddleDetailByFeadId(pat.getFeadId());
|
DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
|
LtkjMiddleHead o = headService.getMiddleHeadByPartId(customer.getCardId());
|
if(o==null){
|
headService.save(pat);
|
for (LtkjMiddleDetail ltkjMiddleDetail : list) {
|
middleDetailService.save(ltkjMiddleDetail);
|
}
|
testMapper.saveTjProByCusId(customer.getCardId(),customer.getCusIdcard());
|
}
|
testMapper.saveTjProByCusId(customer.getCardId(),customer.getCusIdcard());
|
}
|
DynamicDataSourceContextHolder.clearDataSourceType();
|
return AjaxResult.success();
|
}
|
|
|
|
@GetMapping("/getTjPat")
|
@ApiOperation(value = "测试getTjPat")
|
public AjaxResult getTjPat() {
|
List<LtkjTjPat> list = testMapper.getTjPat();
|
DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
|
for (LtkjTjPat ltkjTjPat : list) {
|
final boolean save = tjvLtkjvtjpatService.save(ltkjTjPat);
|
}
|
DynamicDataSourceContextHolder.clearDataSourceType();
|
return AjaxResult.success(list);
|
}
|
|
|
@GetMapping("/getTjPatByIdCard")
|
@ApiOperation(value = "根据身份证号测试getTjPat")
|
public AjaxResult getTjPatByIdCard(@RequestParam String idCard) {
|
LtkjTjPat tjPatByIdCard = testMapper.getTjPatByIdCard(idCard.trim());
|
if(null != tjPatByIdCard){
|
String fcardNo = tjPatByIdCard.getFcardNo();
|
if(null !=fcardNo){
|
fcardNo=fcardNo.trim();
|
tjPatByIdCard.setFcardNo(fcardNo);
|
}
|
LtkjTjPat ltkjTjPat = tjvLtkjvtjpatService.getLtkjTjPatByCusIdCard(idCard);
|
if(null==ltkjTjPat){
|
tjvLtkjvtjpatService.save(tjPatByIdCard);
|
}
|
}
|
DynamicDataSourceContextHolder.clearDataSourceType();
|
//再根据身份证号写customer表
|
TjCustomer tjCustomer = tjCustomerService.getTjCustomerByCusIdCard(idCard);
|
if(null == tjCustomer){
|
testMapper.getTjPatByCusId(idCard);
|
}
|
return AjaxResult.success(tjPatByIdCard);
|
}
|
|
@GetMapping("/getExamJcbgd")
|
public AjaxResult getExamJcbgd() {
|
List<LtkjExamJcbgd> list = testMapper.getExamJcbgd();
|
DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
|
for (LtkjExamJcbgd ltkjExamJcbgd : list) {
|
final boolean save = ltkjExamJcbgdService.save(ltkjExamJcbgd);
|
}
|
DynamicDataSourceContextHolder.clearDataSourceType();
|
return AjaxResult.success(list);
|
}
|
|
@GetMapping("/getExamJcsqd")
|
public AjaxResult getExamJcsqd() {
|
List<LtkjExamJcsqd> list = testMapper.getExamJcsqd();
|
DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
|
for (LtkjExamJcsqd ltkjExamJcsqd : list) {
|
final boolean save = ltkjExamJcsqdService.save(ltkjExamJcsqd);
|
}
|
DynamicDataSourceContextHolder.clearDataSourceType();
|
return AjaxResult.success(list);
|
}
|
|
@GetMapping("/getHybgd")
|
public AjaxResult getHybgd() {
|
List<LtkjHybgd> list = testMapper.getHybgd();
|
DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
|
for (LtkjHybgd ltkjHybgd : list) {
|
final boolean save = ltkjHybgdService.save(ltkjHybgd);
|
}
|
DynamicDataSourceContextHolder.clearDataSourceType();
|
return AjaxResult.success(list);
|
}
|
|
@GetMapping("/getHysqd")
|
public AjaxResult getHysqd() {
|
List<LtkjHysqd> list = testMapper.getHysqd();
|
DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
|
for (LtkjHysqd ltkjHysqd : list) {
|
final boolean save = ltkjHysqdService.save(ltkjHysqd);
|
}
|
DynamicDataSourceContextHolder.clearDataSourceType();
|
return AjaxResult.success(list);
|
}
|
|
|
|
@GetMapping("/getTjPatByCusId")
|
public AjaxResult getTjPatByCusId(String cusId) {
|
testMapper.getTjPatByCusId(cusId);
|
return AjaxResult.success();
|
}
|
|
|
@GetMapping("/saveMiddleHeadByPatId")
|
public AjaxResult saveMiddleHeadByPatId(String id) {
|
List<LtkjMiddleHead> one = testMapper.saveMiddleHeadByPatId(id);
|
DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
|
for (LtkjMiddleHead ltkjMiddleHead : one) {
|
final boolean save = headService.save(ltkjMiddleHead);
|
}
|
DynamicDataSourceContextHolder.clearDataSourceType();
|
return AjaxResult.success(save);
|
}
|
|
|
@GetMapping("/getMiddleDetailByHeadId")
|
public AjaxResult getMiddleDetailByHeadId(String id) {
|
List<LtkjMiddleDetail> one = testMapper.getMiddleDetailByHeadId(id);
|
for (LtkjMiddleDetail ltkjMiddleDetail : one) {
|
DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
|
final boolean save = middleDetailService.save(ltkjMiddleDetail);
|
DynamicDataSourceContextHolder.clearDataSourceType();
|
}
|
return AjaxResult.success(one);
|
}
|
|
@GetMapping("/test")
|
public AjaxResult getHysqdByTmh(String id) {
|
List<LtkjHysqd> one = testMapper.getHysqdByTmh(id);
|
DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
|
ltkjHysqdService.saveBatch(one);
|
DynamicDataSourceContextHolder.clearDataSourceType();
|
for (LtkjHysqd ltkjHysqd : one) {
|
List<LtkjHybgd> one1 = testMapper.getHybgdByTmh(ltkjHysqd.getTmh());
|
DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
|
ltkjHybgdService.saveBatch(one1);
|
DynamicDataSourceContextHolder.clearDataSourceType();
|
}
|
|
return AjaxResult.success();
|
}
|
|
|
@GetMapping("/getLtkjHisUser")
|
@ApiOperation(value = "同步his用户")
|
public AjaxResult getLtkjHisUser() {
|
List<LtkjHisUser> list = testMapper.getLtkjHisUser();
|
if(null !=list && list.size()>0){
|
DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
|
for (LtkjHisUser user : list) {
|
LtkjHisUser hisUser= hisUserService.getHisUserByHisGh(user.getHisgh());
|
if(null == hisUser){
|
hisUserService.save(user);
|
}
|
}
|
DynamicDataSourceContextHolder.clearDataSourceType();
|
}
|
return AjaxResult.success();
|
}
|
|
|
|
|
@GetMapping("/dataSynchronization")
|
@ApiOperation(value = "同步sql server数据到本地数据库数据接口")
|
@RepeatSubmit
|
public AjaxResult dataSynchronization(@RequestParam String tjNumber) {
|
//根据配置调取存储过程 将临时表数据存入预约表2023.12.12
|
// final String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData");
|
// if ("Y".equals(getInfoFromSqlData)) {
|
TjOrder order = orderService.getOrderByTjNum(tjNumber);
|
if (null != order) {
|
List<LtkjHysqd> one = testMapper.getHysqdByTmh(order.getCardId());
|
if (one != null && one.size() > 0) {
|
for (LtkjHysqd ltkjHysqd : one) {
|
// DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
|
LtkjHysqd hysqd = ltkjHysqdService.getLtkjHysqdByTjhAndTmh(ltkjHysqd.getTjh(), ltkjHysqd.getTmh());
|
if(hysqd==null){
|
ltkjHysqdService.save(ltkjHysqd);
|
DynamicDataSourceContextHolder.clearDataSourceType();
|
List<LtkjHybgd> one1 = testMapper.getHybgdByTmh(ltkjHysqd.getTmh());
|
if (one1 != null && one1.size() > 0) {
|
DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
|
ltkjHybgdService.saveBatch(one1);
|
DynamicDataSourceContextHolder.clearDataSourceType();
|
}
|
}
|
}
|
}
|
|
// List<LtkjExamJcsqd> one2 = testMapper.getExamJcsqdTmh(tjNumber);
|
// if (one2 != null && one2.size() > 0) {
|
// DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
|
// ltkjExamJcsqdService.saveBatch(one2);
|
// DynamicDataSourceContextHolder.clearDataSourceType();
|
// for (LtkjExamJcsqd ltkjExamJcsqd : one2) {
|
// List<LtkjExamJcbgd> one3 = testMapper.getExamJcbgdByTjh(ltkjExamJcsqd.getTmh());
|
// if (one3 != null && one3.size() > 0) {
|
// DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
|
// ltkjExamJcbgdService.saveBatch(one3);
|
// DynamicDataSourceContextHolder.clearDataSourceType();
|
// }
|
// }
|
// }
|
//同步化验项目
|
testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()),order.getTjNumber(), "1");
|
//同步检查项目
|
// testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()),order.getTjNumber(),"1");
|
}
|
// }
|
return AjaxResult.success("同步成功");
|
}
|
|
|
|
@GetMapping("/getTjYxjcList")
|
@ApiOperation(value = "查询影响检查项目")
|
public AjaxResult getTjYxjcList() {
|
List<Map<String, Object>> tjYxjcList = testMapper.getTjYxjcList("杨云云",null,null);
|
return AjaxResult.success(tjYxjcList);
|
}
|
|
|
|
@GetMapping("/getPacTjProjectList")
|
@ApiOperation(value = "维护套餐页面新增项目时调用")
|
public AjaxResult getPacTjProjectList() {
|
// LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
|
// wq.eq(TjProject::getProParentId, 0);
|
// wq.eq(TjProject::getProStatus, 0);
|
List<TjProject> tjProjects = tjProjectService.getPacTjProjectList();
|
// if (tjProjects != null) {
|
// for (TjProject project : tjProjects) {
|
// List<TjProject> projectList = tjProjectService.getTjProjectListBySoneId(String.valueOf(project.getProId()));
|
// project.setTjProjectList(projectList);
|
// }
|
// return AjaxResult.success(tjProjects);
|
// }
|
return AjaxResult.success(tjProjects);
|
}
|
|
|
@GetMapping("/getHuaYanProByTjNum")
|
@ApiOperation(value = "根据体检号查询化验项目接口")
|
public AjaxResult getHuaYanProByTjNum(@RequestParam @ApiParam(value = "体检号") String tjNumber) {
|
Map<String,Object> map=new HashMap<>();
|
|
List<TjOrderDetail> tjOrderDetails = tjOrderDetailService.addHuaYanTable(tjNumber);
|
List<TjOrderRemark> tjOrderRemarks = tjOrderRemarkService.addHuaYanTable(tjNumber);
|
map.put("tjOrderDetails",tjOrderDetails);
|
map.put("tjOrderRemarks",tjOrderRemarks);
|
return AjaxResult.success(map);
|
}
|
|
|
}
|