package com.ltkj.web.controller.sqlserver; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.datasource.DynamicDataSourceContextHolder; import com.ltkj.hosp.domain.TjOrder; import com.ltkj.hosp.domain.TjOrderRemark; 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 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 java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import static com.ltkj.framework.datasource.DynamicDataSourceContextHolder.log; import static org.apache.poi.hemf.record.emfplus.HemfPlusRecordType.save; @RestController @RequestMapping("/sqlserver/getdata") @Api(tags = "获取从库数据") 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 redisTemplate; @Resource private RedisCache redisCache; @Resource private TjAsyncService asyncService; @Resource private ITjOrderRemarkService remarkService; @Resource private ITjOrderService orderService; @Resource private ISysDeptService deptService; @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 { // long start = System.currentTimeMillis(); // //需要匹配的key // ScanOptions options = ScanOptions.scanOptions() // //这里指定每次扫描key的数量(很多博客瞎说要指定Integer.MAX_VALUE,这样的话跟 keys有什么区别?) // .count(10000) // .match(aa+"*").build(); // RedisSerializer redisSerializer = (RedisSerializer) redisTemplate.getKeySerializer(); // Cursor cursor = redisTemplate.executeWithStickyConnection(redisConnection -> new ConvertingCursor<>(redisConnection.scan(options), redisSerializer::deserialize)); // List 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()); // Mapmap=new HashMap<>(); // map.put("result",result); // map.put("scan扫描共耗时:{} ms key数量:{}",System.currentTimeMillis()-start+result.size()); // List list = remarkService.list(new LambdaQueryWrapper().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 = deptService.getSysDeptYjWjCustomerList(deptId, tjName, tjNum, aa, page, pageSize); // List 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); } return AjaxResult.success(); } @GetMapping("/getMiddleDetail") public AjaxResult getMiddleDetail() { List 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") public AjaxResult getMiddleHead() { List 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("/getVbjitem") // @ApiOperation(value = "查看列表") // public AjaxResult getVbjitem() { // List list = testMapper.getVbjitem(); // return AjaxResult.success(list); // } @GetMapping("/getTjPat") public AjaxResult getTjPat() { List 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("/getExamJcbgd") public AjaxResult getExamJcbgd() { List 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 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 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 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 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 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 one = testMapper.getHysqdByTmh(id); DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name()); ltkjHysqdService.saveBatch(one); DynamicDataSourceContextHolder.clearDataSourceType(); for (LtkjHysqd ltkjHysqd : one) { List one1 = testMapper.getHybgdByTmh(ltkjHysqd.getTmh()); DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name()); ltkjHybgdService.saveBatch(one1); DynamicDataSourceContextHolder.clearDataSourceType(); } return AjaxResult.success(); } }