zjh
2025-02-11 a5bbda30b568e9d72679da762166c40c9508b414
zjh20250211
9个文件已修改
170 ■■■■ 已修改文件
ltkj-admin/src/main/java/com/ltkj/web/config/timer/DefaultScheduled.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCustomerController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjSamplingController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/test/java/zwxTest.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-common/src/main/java/com/ltkj/common/utils/IdUtils.java 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-common/src/main/java/com/ltkj/common/utils/PDFDocumentUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TbTransitionMapper.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/config/timer/DefaultScheduled.java
@@ -172,7 +172,8 @@
            } catch (Exception e) {
                scheduleNextTask(Long.parseLong(dsrwsjjg));
                log.error("定时器执行报错");
                e.printStackTrace();
                log.error(String.valueOf(e));
//                e.printStackTrace();
            } finally {
                reentrantLock.unlock();
            }
@@ -216,8 +217,10 @@
            }
        } catch (Exception e) {
            log.info("同步检验数据失败");
            throw new RuntimeException(e);
//            throw new RuntimeException(e);
            log.error(String.valueOf(e));
        }
    }
@@ -237,7 +240,8 @@
            }
        } catch (Exception e) {
            log.info("同步检查数据失败");
            throw new RuntimeException(e);
//            throw new RuntimeException(e);
            log.error(String.valueOf(e));
        }
    }
}
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java
@@ -1711,9 +1711,9 @@
           return AjaxResult.success(maps);
        }else {
            List<Map<String, Object>> mapList = zongjianyishengchakanyichangxiangmu(tjNum);
            if(mapList.isEmpty()){
                return AjaxResult.error("暂无数据");
            }
//            if(mapList.isEmpty()){
//                return AjaxResult.success("暂无数据");
//            }
            return AjaxResult.success(mapList);
        }
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCustomerController.java
@@ -261,7 +261,7 @@
                    tjCustomer1.setGroupingId(tjReservation.getGroupingId());
//                    if(null !=tjReservation.getCompanyId())tjCustomer1.setDictCompId(Long.valueOf(tjReservation.getCompanyId()));
//                    if(null !=tjReservation.getCompany())tjCustomer1.setCompName(tjReservation.getCompany());
                    if(null !=tjReservation.getCompany())tjCustomer1.setCompName(tjReservation.getCompany());
//                    tjCustomerService.updateById(tjCustomer1);
@@ -291,8 +291,8 @@
                    tjCustomer.setCusPassword(substring);
                    tjCustomer.setTjType(tjReservation.getTjType());
                    tjCustomer.setPym(PinyinUtil.getFirstLetter(tjReservation.getName(),""));
//                    if(null !=tjReservation.getCompanyId())tjCustomer.setDictCompId(Long.valueOf(tjReservation.getCompanyId()));
//                    if(null !=tjReservation.getCompany())tjCustomer.setCompName(tjReservation.getCompany());
                    if(null !=tjReservation.getCompanyId())tjCustomer.setCompId(tjReservation.getCompanyId());
                    if(null !=tjReservation.getCompany())tjCustomer.setCompName(tjReservation.getCompany());
                    if (null != key && key.equals("Y")) {
                        AjaxResult result = controller.Outpincreateapply(tjCustomer);
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java
@@ -90,6 +90,7 @@
import org.aspectj.weaver.ast.Var;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.http.HttpRequest;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -240,6 +241,8 @@
    @Autowired
    private TbTransitionMapper tbTransitionMapper;
    private static final String TJH = "tjhs:tjh";
    //将方法返回值解析成json格式
    public JSONObject getJSONObject(String builder) {
        String Response = JSONUtil.parseObj(builder).getStr("Response");
@@ -305,7 +308,7 @@
            wqq.like(TjCustomer::getCusName, name);
            List<TjCustomer> customerList = tjCustomerService.list(wqq);
            List<TjOrder> list2 = new ArrayList<>();
            if (null != customerList && customerList.size() > 0) {
            if (null != customerList && !customerList.isEmpty()) {
                List<TjOrder> list = new ArrayList<>();
                for (TjCustomer customer : customerList) {
                    LambdaQueryWrapper<TjOrder> wq = new LambdaQueryWrapper<>();
@@ -316,13 +319,13 @@
                    list.addAll(tjOrderService.list(wq));
                }
                List<TjOrder> collect = null;
                if (list.size() > 0) {
                if (!list.isEmpty()) {
                    for (TjOrder order : list) {
                        //筛选有调查问卷的
                        LambdaQueryWrapper<TjSurveyRecord> wqq1 = new LambdaQueryWrapper<>();
                        wqq1.eq(TjSurveyRecord::getTjnumber, order.getTjNumber());
                        List<TjSurveyRecord> one = surveyRecordService.list(wqq1);
                        if (one.size() == 0) {
                        if (one.isEmpty()) {
                            TjCustomer tjCustomer = tjCustomerService.getById(order.getUserId());
                            if (null != tjCustomer) {
                                order.setTjCustomerName(MatchUtils.hideCusName(tjCustomer.getCusName()));
@@ -383,7 +386,7 @@
                LambdaQueryWrapper<TjSurveyRecord> wqq = new LambdaQueryWrapper<>();
                wqq.eq(TjSurveyRecord::getTjnumber, order.getTjNumber());
                List<TjSurveyRecord> one = surveyRecordService.list(wqq);
                if (one.size() == 0) {
                if (one.isEmpty()) {
                    TjCustomer tjCustomer = tjCustomerService.getById(order.getUserId());
                    if (null != tjCustomer) {
                        order.setTjCustomerName(MatchUtils.hideCusName(tjCustomer.getCusName()));
@@ -1099,7 +1102,7 @@
//        if(StringUtil.isNotBlank(makeLisTmhPrefix)) tjNumber=makeLisTmhPrefix+tjNumber;
        String tjNumber = (SecurityUtils.getUsername() + IdUtils.getTjNumber());
        String tjNumber = (SecurityUtils.getUsername() + idUtils.getTjNumber());
        if (StringUtil.isNotBlank(makeLisTmhPrefix)) tjNumber = makeLisTmhPrefix + tjNumber;
        tjOrder.setTjNumber(tjNumber);
@@ -1558,15 +1561,11 @@
//                            }
//                        }
//                    });
                    String tjh = (sysUser.getUserName() + new SimpleDateFormat("yyMMddHHmmss").format(new Date()));
                    String finalTjh = tjh;
                    Future<AjaxResult> future = executor.submit(new Callable<AjaxResult>() {
                        @Override
                        public AjaxResult call() throws Exception {
                            return getAjaxResult(aLong, sysUser, daoDto.getTjCategory(), finalTjh);
                            return getAjaxResult(aLong, sysUser, daoDto.getTjCategory());
                        }
                    });
                    try {
@@ -1580,7 +1579,7 @@
                            errTjh.add(userId);
                        }
                    } catch (InterruptedException | ExecutionException e) {
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
//                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                        e.printStackTrace();
                    }
                }
@@ -1588,7 +1587,7 @@
            }
            // TODO 因为有体检号会查出空数据 先使用死数据  打印导诊单
            if (!tjNumbers.isEmpty()) {
                Map<String, Object> map = null;
            /*    Map<String, Object> map = null;
                try {
                    map = PDFDocumentUtil.getDocument();
                    Document document = (Document) map.get("document");
@@ -1643,15 +1642,19 @@
                } catch (IOException | DocumentException e) {
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                    e.printStackTrace();
                }
                return AjaxResult.success("操作成功");
                }*/
                Map<String,Object> map=new HashMap<>();
                map.put("tjh",tjNumbers);
                return AjaxResult.success("操作成功",map);
            }
            if (!errTjh.isEmpty()){
                return AjaxResult.success("以上人员签到失败",errTjh);
                Map<String,Object> map=new HashMap<>();
                map.put("errtjh",errTjh);
                return AjaxResult.success("以上人员签到失败",map);
            }
            return AjaxResult.success();
        }
        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
//        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
        return AjaxResult.error();
    }
@@ -1665,7 +1668,7 @@
        return AjaxResult.success(hashMap);
    }
//    @Transactional
    @Transactional
    public void getAjaxResults(String cusIdcard) {
        if (!"".equals(cusIdcard) && cusIdcard != null) {
            //根据配置调取存储过程 将临时表数据存入预约表2023.12.12
@@ -1800,8 +1803,8 @@
        DynamicDataSourceContextHolder.clearDataSourceType();
    }
//    @Transactional
    public AjaxResult getAjaxResult(Long userId, SysUser sysUser, String tjCategory,String tjh) throws IOException {
    @Transactional
    public AjaxResult getAjaxResult(Long userId, SysUser sysUser, String tjCategory) throws IOException {
        LambdaQueryWrapper<TjCustomer> wq = new LambdaQueryWrapper<>();
        wq.eq(TjCustomer::getCusId, userId);
@@ -1858,14 +1861,33 @@
//            tjReservationService.updateById(tjReservation);
            //生成体检号
            String tjNumber = (sysUser.getUserName() + new SimpleDateFormat("yyMMddHHmmss").format(new Date()));
//            String tjNumber = (sysUser.getUserName() + new SimpleDateFormat("yyMMddHHmmss").format(new Date()));
//            tjNumber = tjNumber.replaceAll(".{6}$", userId.toString().substring(userId.toString().length() - 6));
            tjNumber = tjNumber.replaceAll(".{4}$", userId.toString().substring(userId.toString().length() - 4));
            tjh = tjh.replaceAll(".{4}$", userId.toString().substring(userId.toString().length() - 4));
            //获取拼接前缀
            String makeLisTmhPrefix = configService.selectConfigByKey("make_lis_tmh_prefix");
            String tjNumber = (sysUser.getUserName() + idUtils.getTjNumber());
            if (StringUtil.isNotBlank(makeLisTmhPrefix)) tjNumber = makeLisTmhPrefix + tjNumber;
//            tjOrder.setTjNumber(tjNumber);
            tjOrder.setTjNumber(tjh);
//            if (redisCache.hasKey(TJH)) {
//                while (true){
//                    List<String> tjh = redisCache.getCacheList(TJH);
//                    if(tjh.contains(tjNumber)){
//                        tjNumber =(sysUser.getUserName() + IdUtils.getTjNumber());
//                        if (StringUtil.isNotBlank(makeLisTmhPrefix)) tjNumber = makeLisTmhPrefix + tjNumber;
//                    }else {
//                        tjh.add(tjNumber);
//                    }
//                }
//            }else {
//                List<String> stringList = tjOrderService.
//                        list(new LambdaQueryWrapper<TjOrder>().select(TjOrder::getTjNumber)).stream().map(TjOrder::getTjNumber).collect(Collectors.toList());
//                stringList.add(tjNumber);
//                redisCache.setCacheList(TJH,stringList);
//            }
            tjOrder.setTjNumber(tjNumber);
            if (null != tjOrder.getPhoto()) {
                File file = new File(tjOrder.getPhoto());
                if (file.isFile()) {
@@ -1910,8 +1932,12 @@
                tjFlowingWater.setUpdateTime(date);
                tjFlowingWater.setCreateBy(sysUser.getNickName());
                tjFlowingWater.setUpdateBy(sysUser.getNickName());
                tjFlowingWater.setCopeWith(tbTransitionMapper.sumTbTransitionOrdPriceByTjNum(tjOrder.getTjNumber()));
                tjFlowingWater.setPaidIn(tbTransitionMapper.sumTbTransitionNowPriceByTjNum(tjOrder.getTjNumber()));
//                BigDecimal bigDecimal = tbTransitionMapper.sumTbTransitionOrdPriceByTjNum(tjOrder.getTjNumber());
                BigDecimal bigDecimal = tbTransitionMapper.sumTbTransitionOrdPriceByTjNumIsNull(tjCustomer.getCusIdcard());
                tjFlowingWater.setCopeWith(bigDecimal);
//                BigDecimal bigDecimal1 = tbTransitionMapper.sumTbTransitionNowPriceByTjNum(tjOrder.getTjNumber());
                BigDecimal bigDecimal1 = tbTransitionMapper.sumTbTransitionNowPriceByTjNumIsNull(tjCustomer.getCusIdcard());
                tjFlowingWater.setPaidIn(bigDecimal1);
                tjFlowingWater.setDiscount(String.valueOf(10));
                tjFlowingWater.setPayStasus(1L);
                tjFlowingWater.setPayType(3L);
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjSamplingController.java
@@ -221,6 +221,7 @@
    public AjaxResult getCusList(@RequestParam(defaultValue = "1") @ApiParam(value = "0是1否") Integer isSignFor,
                                 @RequestParam(required = false) @ApiParam(value = "体检号") String tjNum,
                                 @RequestParam(required = false) @ApiParam(value = "客户姓名") String name,
                                 @RequestParam(required = false) @ApiParam(value = "单位") String dw,
                                 @ApiParam(value = "页码数(默认1)") @RequestParam(defaultValue = "1") Integer pageNum,
                                 @ApiParam(value = "显示条数(默认10)") @RequestParam(defaultValue = "10") Integer pageSize,
                                 @ApiParam(value = "开始时间") @RequestParam(required = false) String beginTime,
@@ -234,6 +235,17 @@
            wrapper.like(TjSampling::getCusName, name);
        if (null != beginTime && null != endTime && StrUtil.isNotBlank(beginTime) && StrUtil.isNotBlank(endTime))
            wrapper.between(TjSampling::getApplicationTime, beginTime, endTime);
        if (StrUtil.isNotBlank(dw)){
            LambdaQueryWrapper<TjOrder> wqq=new LambdaQueryWrapper<>();
            wqq.like(TjOrder::getFirmId,dw);
            wqq.select(TjOrder::getTjNumber);
            List<TjOrder> orderList = orderService.list(wqq);
            if(null !=orderList && !orderList.isEmpty()){
                List<String> list = orderList.stream().map(TjOrder::getTjNumber).collect(Collectors.toList());
                wrapper.in(TjSampling::getTjNum, list);
            }
        }
        wrapper.groupBy(TjSampling::getCusId);
        wrapper.orderByDesc(TjSampling::getCreateTime);
//        wrapper.last("LIMIT " + (pageNum - 1) * pageSize + "," + pageSize);
@@ -243,6 +255,8 @@
        for (TjSampling tjSampling : list) {
            TjCustomer customer = customerService.getById(tjSampling.getCusId());
            if(null !=customer){
                TjOrder order = orderService.getOrderByTjNum(tjSampling.getTjNum());
                customer.setCompName(order.getFirmName());
                customer.setCusName(customer.getCusName());
                customer.setCusPhone(MatchUtils.hidePhoneNum(customer.getCusPhone()));
                customer.setCusIdcard(MatchUtils.hideIdCardNum(customer.getCusIdcard()));
ltkj-admin/src/test/java/zwxTest.java
@@ -10,6 +10,7 @@
import com.ltkj.LtkjApplication;
import com.ltkj.common.core.domain.AjaxResult;
import com.ltkj.common.core.domain.entity.DictUserInfo;
import com.ltkj.common.core.redis.RedisCache;
import com.ltkj.hosp.domain.*;
import com.ltkj.hosp.hisDto.OutpintestapplyDetailsDto;
import com.ltkj.hosp.lisDto.LisSaveSqdxxDto;
@@ -31,6 +32,7 @@
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.test.context.junit4.SpringRunner;
import javax.annotation.Resource;
@@ -59,6 +61,10 @@
    private ITjReportTemplateService reportTemplateService;
    @Autowired
    private HisPDFUtil hisPDFUtil;
    @Autowired
    private RedisCache redisCache;
    @Autowired
    private RedisTemplate<String,Object> redisTemplate;
    public static String generateId() {
        String id;
@@ -110,4 +116,10 @@
        reportTemplateService.save(template);
    }
    @Test
    public void test11(){
        redisCache.setCacheList("list1",new ArrayList<>());
        redisTemplate.opsForList().set("list2",0,new ArrayList<>());
    }
}
ltkj-common/src/main/java/com/ltkj/common/utils/IdUtils.java
@@ -18,6 +18,7 @@
public class IdUtils {
    private static final String LIS_LAST_ID_KEY = "id:generate:lis:id";
    private static final String TJH_LAST_ID_KEY = "id:generate:tjhs:tjh";
    private static final String LIS_LAST_ID_INCR_KEY = "id:generate:lis:id:incr";
    private static final String LIS_CURRENT_DATE_KEY = "id:generate:lis:currentDate";
@@ -68,16 +69,35 @@
    private static long lastTimestamp = -1;
    private static final Random random = new Random();
    public static synchronized String getTjNumber() {
        long timestamp = System.currentTimeMillis();  // 获取当前时间戳(毫秒)
//    public static synchronized String getTjNumber() {
//        long timestamp = System.currentTimeMillis();  // 获取当前时间戳(毫秒)
//
//        // 如果时间戳和上次生成的时间戳相同,生成一个新的随机数
//        if (timestamp == lastTimestamp) {
//            return String.format("%09d", (timestamp % 1000000000) + random.nextInt(900) + 100);
//        } else {
//            lastTimestamp = timestamp;  // 更新最后生成时间戳
//            return String.format("%09d", (timestamp % 1000000000) + random.nextInt(900) + 100);
//        }
//    }
        // 如果时间戳和上次生成的时间戳相同,生成一个新的随机数
        if (timestamp == lastTimestamp) {
            return String.format("%09d", (timestamp % 1000000000) + random.nextInt(900) + 100);
    public  synchronized String getTjNumber() {
        String currentDate = new SimpleDateFormat("yyyyMMdd").format(new Date());
        String storedDate = stringRedisTemplate.opsForValue().get(LIS_CURRENT_DATE_KEY);
        String lastIdStr = stringRedisTemplate.opsForValue().get(TJH_LAST_ID_KEY);
        if (StrUtil.isBlank(lastIdStr))lastIdStr = "0";
        int lastId;
        if (storedDate == null || !storedDate.equals(currentDate)) {
            lastId = 1;
            stringRedisTemplate.opsForValue().set(TJH_LAST_ID_KEY, String.valueOf(lastId));
            stringRedisTemplate.opsForValue().set(LIS_CURRENT_DATE_KEY, currentDate);
        } else {
            lastTimestamp = timestamp;  // 更新最后生成时间戳
            return String.format("%09d", (timestamp % 1000000000) + random.nextInt(900) + 100);
            lastId = Integer.parseInt(lastIdStr) + 1;
            stringRedisTemplate.opsForValue().set(TJH_LAST_ID_KEY, String.valueOf(lastId));
        }
        String yyMMdd = currentDate.substring(2);
        return String.format("%s%05d", yyMMdd, lastId);
    }
ltkj-common/src/main/java/com/ltkj/common/utils/PDFDocumentUtil.java
@@ -95,7 +95,7 @@
                        map.put(EncodeHintType.CHARACTER_SET,"utf-8");
                        BitMatrix encode = null;
                        try {
                            encode = new MultiFormatWriter().encode(tjNumber, BarcodeFormat.CODE_128, 300, 100, map);
                            encode = new MultiFormatWriter().encode(tjNumber, BarcodeFormat.CODE_128, 500, 100, map);
                        } catch (WriterException e) {
                            e.printStackTrace();
                        }
ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TbTransitionMapper.java
@@ -378,9 +378,15 @@
    @Select("SELECT SUM(a.ord_price) FROM tb_transition a WHERE  a.tj_num=#{tjNum} AND a.parent_pro_id=#{proId}")
    BigDecimal getTbTransitionOrdPriceByTjNumAndParentId(@Param("tjNum")String tjNum,@Param("proId")String proId);
    @Select("SELECT SUM(a.ord_price) FROM tb_transition a WHERE  a.tj_num=#{tjNum}")
    @Select("SELECT SUM(a.ord_price) FROM tb_transition a WHERE a.tj_num=#{tjNum} ")
    BigDecimal sumTbTransitionOrdPriceByTjNum(@Param("tjNum")String tjNum);
    @Select("SELECT SUM(a.ord_price) FROM tb_transition a WHERE a.cus_id=#{tjNum} and  isnull(a.tj_num)")
    BigDecimal sumTbTransitionOrdPriceByTjNumIsNull(@Param("tjNum")String tjNum);
    @Select("SELECT SUM(a.now_price) FROM tb_transition a WHERE  a.tj_num=#{tjNum}")
    BigDecimal sumTbTransitionNowPriceByTjNum(@Param("tjNum")String tjNum);
    @Select("SELECT SUM(a.now_price) FROM tb_transition a WHERE  a.cus_id=#{tjNum} and  isnull(a.tj_num)")
    BigDecimal sumTbTransitionNowPriceByTjNumIsNull(@Param("tjNum")String tjNum);
}