zjh
2023-12-13 d7d0578b00c9ec24893e3a0c8e8ff3301f82bc2a
ltkj-admin/src/main/java/com/ltkj/web/controller/sqlserver/TjSqlController.java
@@ -2,21 +2,31 @@
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.service.LtkjMiddleDetailService;
import com.ltkj.hosp.service.LtkjMiddleHeadService;
import com.ltkj.hosp.service.TjvLtkjvtjpatService;
import com.ltkj.hosp.sqlDomain.LtkjMiddleDetail;
import com.ltkj.hosp.sqlDomain.LtkjMiddleHead;
import com.ltkj.hosp.sqlDomain.LtkjTjPat;
import com.ltkj.hosp.service.*;
import com.ltkj.hosp.sqlDomain.*;
import com.ltkj.hosp.mapper.TestMapper;
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.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
@@ -34,20 +44,66 @@
    @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 RedisCache redisCache;
    @GetMapping("/getRedisValue")
    @ApiOperation(value = "测试redis模糊查询")
    public AjaxResult getRedisValue(@RequestParam String aa) {
        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());
        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);
    }
@@ -60,43 +116,108 @@
    @GetMapping("/getTjPat")
    @ApiOperation(value = "查看列表")
    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("/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("/getLtkjTjPatById")
    @ApiOperation(value = "根据id查,存进mysql")
    public AjaxResult getLtkjTjPatById(String id) {
        LtkjTjPat one = testMapper.getTjPatById(id);
    @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());
        final boolean save = tjvLtkjvtjpatService.save(one);
        for (LtkjMiddleHead ltkjMiddleHead : one) {
            final boolean save = headService.save(ltkjMiddleHead);
        }
        DynamicDataSourceContextHolder.clearDataSourceType();
        return AjaxResult.success(save);
    }
    @GetMapping("/getMiddleDetailById")
    @ApiOperation(value = "根据id查,存进mysql")
    public AjaxResult getMiddleDetailById(String id) {
        LtkjMiddleDetail one = testMapper.getMiddleDetailById(id);
    @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());
        final boolean save = middleDetailService.save(one);
        ltkjHysqdService.saveBatch(one);
        DynamicDataSourceContextHolder.clearDataSourceType();
        return AjaxResult.success(save);
        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("/getMiddleHeadById")
    @ApiOperation(value = "根据id查,存进mysql")
    public AjaxResult getMiddleHeadById(String id) {
        LtkjMiddleHead one = testMapper.getMiddleHeadById(id);
        DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
        final boolean save = headService.save(one);
        DynamicDataSourceContextHolder.clearDataSourceType();
        return AjaxResult.success(save);
    }
}