zjh
2024-12-05 3eeaad61513758f2e05277995fb2af3a21f72b35
zjh20241205-1
9个文件已修改
1个文件已添加
332 ■■■■ 已修改文件
ltkj-admin/pom.xml 80 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/LtkjApplication.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/config/timer/DefaultScheduled.java 166 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TestMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderMapper.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-quartz/src/main/java/com/ltkj/quartz/task/RyTask.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/pom.xml
@@ -35,16 +35,12 @@
            <groupId>com.oracle.database.jdbc</groupId>
            <artifactId>ojdbc8</artifactId>
            <version>19.8.0.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/lib/ojdbc8.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>com.oracle.database.jdbc</groupId>
            <artifactId>orai18n</artifactId>
            <version>1.0.2.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/lib/orai18n-12.1.0.2.0.jar</systemPath>
            <version>12.1.0.2.0</version>
        </dependency>
        <dependency>
@@ -200,43 +196,43 @@
    </dependencies>
<!--
        <build>
            <plugins>
                &lt;!&ndash; maven打包插件&ndash;&gt;
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <version>2.1.1.RELEASE</version>
                    <configuration>
                        <fork>true</fork> &lt;!&ndash; 如果没有该配置,devtools不会生效 &ndash;&gt;
                    </configuration>
                    <executions>
                        <execution>
                            <goals>
                                <goal>repackage</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>3.2.2</version>
                    <configuration>
                        <failOnMissingWebXml>false</failOnMissingWebXml>
    &lt;!&ndash;                    <warName>${project.artifactId}</warName>&ndash;&gt;
                        <warName>ltkj-admin</warName>
                    </configuration>
                </plugin>
            </plugins>
            <finalName>ltkj-admin</finalName>
        </build>
-->
    <!--
            <build>
                <plugins>
                    &lt;!&ndash; maven打包插件&ndash;&gt;
                    <plugin>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-maven-plugin</artifactId>
                    </plugin>
                    <plugin>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-maven-plugin</artifactId>
                        <version>2.1.1.RELEASE</version>
                        <configuration>
                            <fork>true</fork> &lt;!&ndash; 如果没有该配置,devtools不会生效 &ndash;&gt;
                        </configuration>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>repackage</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-war-plugin</artifactId>
                        <version>3.2.2</version>
                        <configuration>
                            <failOnMissingWebXml>false</failOnMissingWebXml>
        &lt;!&ndash;                    <warName>${project.artifactId}</warName>&ndash;&gt;
                            <warName>ltkj-admin</warName>
                        </configuration>
                    </plugin>
                </plugins>
                <finalName>ltkj-admin</finalName>
            </build>
    -->
    <build>
        <plugins>
ltkj-admin/src/main/java/com/ltkj/LtkjApplication.java
@@ -7,6 +7,7 @@
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;
/**
@@ -18,6 +19,7 @@
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class},scanBasePackages = {"org.jeecg.modules.jmreport","com.ltkj"})
@EnableAsync
@EnableCaching
@EnableScheduling
public class LtkjApplication {
    public static void main(String[] args) {
        //spring-boot-devtools的模块使Spring Boot应用支持热部署,无需手动重启Spring Boot应用。
ltkj-admin/src/main/java/com/ltkj/web/config/timer/DefaultScheduled.java
New file
@@ -0,0 +1,166 @@
package com.ltkj.web.config.timer;
import com.ltkj.framework.datasource.DynamicDataSourceContextHolder;
import com.ltkj.hosp.domain.TjOrder;
import com.ltkj.hosp.mapper.TestMapper;
import com.ltkj.hosp.mapper.TjOrderMapper;
import com.ltkj.hosp.service.*;
import com.ltkj.hosp.sqlDomain.LtkjExamJcbgd;
import com.ltkj.hosp.sqlDomain.LtkjExamJcsqd;
import com.ltkj.hosp.sqlDomain.LtkjHybgd;
import com.ltkj.hosp.sqlDomain.LtkjHysqd;
import com.ltkj.system.service.ISysConfigService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.ReentrantLock;
/**
 * @Company: 西安路泰科技有限公司
 * @Author: zjh
 * @Date: 2024/7/25 15:05
 */
@Slf4j
@Component
public class DefaultScheduled {
    @Resource
    private ITjOrderService orderService;
    @Autowired
    private ISysConfigService configService;
    @Resource
    private LtkjExamJcbgdService jcbgdService;
    @Resource
    private LtkjExamJcsqdService jcsqdService;
    @Resource
    private LtkjHybgdService ltkjHybgdService;
    @Resource
    private LtkjHysqdService ltkjHysqdService;
    @Resource
    private TestMapper testMapper;
    private final ReentrantLock reentrantLock = new ReentrantLock();
    private ScheduledExecutorService scheduledExecutorService;
    private ScheduledFuture<?> scheduledFuture;
    private static final SimpleDateFormat dateTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    @PostConstruct
    private void init() {
        scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
        scheduleNextTask(0); // 初次启动立即执行
    }
    private void scheduleNextTask(long delayInMinutes) {
        if (scheduledFuture != null) {
            scheduledFuture.cancel(false);
        }
        Date nextExecutionTime = new Date(System.currentTimeMillis() + TimeUnit.MINUTES.toMillis(delayInMinutes));
        log.info("下次执行任务时间 -> {}", dateTimeFormat.format(nextExecutionTime));
        scheduledFuture = scheduledExecutorService.schedule(this::exec, delayInMinutes, TimeUnit.MINUTES);
    }
    private void exec() {
        log.info("任务开始执行时间 -> {}", dateTimeFormat.format(new Date()));
        String dsrwsjjg = configService.selectConfigByKey("dsrwsjjg");
        boolean lock = reentrantLock.tryLock();
        try {
            if (lock) {
                    long start = System.currentTimeMillis();
                    // 查询任务数据
                    log.info("开始执行同步 执行数量->{}", 0);
                 List<String> jy= orderService.getDingShiTongBuJianYanTjNum();
                List<String> jc = orderService.getDingShiTongBuJianChaTjNum();
                if(null !=jy && !jy.isEmpty()){
                    for (String s : jy) {
                        TjOrder order = orderService.getOrderByTjNum(s);
                        extractedjianyan(s,order);
                    }
                }
                if(null !=jc && !jc.isEmpty()){
                    for (String s : jc) {
                        TjOrder order = orderService.getOrderByTjNum(s);
                        extractedjiancha(s,order);
                    }
                }
                long end = System.currentTimeMillis();
                log.info("同步结束 耗时:{}秒", (end - start) / 1000);
                // 动态获取下次任务的间隔
                int minute = Integer.parseInt(dsrwsjjg);
                if (minute < 5) minute = 5;
                if (minute > 59) minute = 59;
                scheduleNextTask(minute);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            reentrantLock.unlock();
        }
    }
    private void extractedjianyan(String s,TjOrder order) {
        List<LtkjHysqd> hysqdList = testMapper.getCcXZxYyLtkjHysqdByLisVi(order.getTjNumber());
        if(null != hysqdList && !hysqdList.isEmpty()){
            for (LtkjHysqd hysqd : hysqdList) {
                LtkjHysqd jybgid = ltkjHysqdService.getLtkjHysqdByTjhAndTmh(hysqd.getTjh(),hysqd.getTmh());
                if (null != jybgid) {
                    ltkjHysqdService.deletedLtkjHysqdByTjhAndTmh(hysqd.getTjh(),hysqd.getTmh());
                    ltkjHybgdService.deletedLtkjHybgdByTjhAndTmh(hysqd.getTmh());
                }
                if (ltkjHysqdService.save(hysqd)) {
                    List<LtkjHybgd> hybgdList = testMapper.getCcXZxYyLtkjHybgdByLisVi(hysqd.getTmh());
                    ltkjHybgdService.saveBatch(hybgdList);
                }
            }
            DynamicDataSourceContextHolder.clearDataSourceType();
        }
//        String tjNumber1 = order.getTjNumber();
//        log.info("查询出来的体检号是: " + tjNumber1);
//        log.info("传过来的的体检号是: "+ s);
        Map<String,Object> map=new HashMap<>();
        map.put("tjnum", s);
        testMapper.tjUpdateDetatilByVi(map);
    }
    private void extractedjiancha(String s,TjOrder order) {
        List<LtkjExamJcsqd> jcsqdList = testMapper.getCcXZxYyPacsLtkjExamJcsqd(order.getTjNumber());
        if(null !=jcsqdList && !jcsqdList.isEmpty()){
            jcsqdService.deletedLtkjJcsqdByTjhAndTmh(order.getCardId());
            jcbgdService.deletedLtkjJcbgdByTjhAndTmh(order.getCardId());
            jcsqdService.saveBatch(jcsqdList);
            List<LtkjExamJcbgd> jcbgdList = testMapper.getCcXZxYyPacsLtkjExamJcbgd(order.getCardId());
            if(null != jcbgdList && !jcbgdList.isEmpty())jcbgdService.saveBatch(jcbgdList);
            DynamicDataSourceContextHolder.clearDataSourceType();
        }
//        String tjNumber1 = order.getTjNumber();
//        log.info("查询出来的体检号是: " + tjNumber1);
//        log.info("传过来的的体检号是: "+ s);
        Map<String,Object> map=new HashMap<>();
        map.put("tjnum", s);
        testMapper.tjUpdateDetatilByVi(map);
    }
}
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java
@@ -121,6 +121,13 @@
    @Autowired
    private RedissonClient redissonClient;
//    public void  csdsrw() throws InterruptedException {
//        log.info("定时任务开始执行"+new Date());
//        Thread.sleep(1000*5);
//        log.info("定时任务结束执行"+new Date());
//    }
    @GetMapping ("/getOperationPermissionsByTjNum")
    @ApiOperation (value = "(初审页面  和 医生页面)根据体检号获取是否可操作权限接口  true可操作  反之不可")
    public AjaxResult getOperationPermissionsByTjNum(@ApiParam (value = "体检号") @RequestParam String tjNumber) {
@@ -640,18 +647,18 @@
                            }
                            DynamicDataSourceContextHolder.clearDataSourceType();
                        }
//                        List<LtkjExamJcsqd> jcsqdList = testMapper.getCcXZxYyPacsLtkjExamJcsqd(order.getTjNumber());
//                        if(null !=jcsqdList && !jcsqdList.isEmpty()){
//                            jcsqdService.deletedLtkjJcsqdByTjhAndTmh(order.getCardId());
//                            jcbgdService.deletedLtkjJcbgdByTjhAndTmh(order.getCardId());
//                            jcsqdService.saveBatch(jcsqdList);
//                            List<LtkjExamJcbgd> jcbgdList = testMapper.getCcXZxYyPacsLtkjExamJcbgd(order.getCardId());
//                            if(null != jcbgdList && !jcbgdList.isEmpty())jcbgdService.saveBatch(jcbgdList);
//                            DynamicDataSourceContextHolder.clearDataSourceType();
//                        }
                        String tjNumber1 = order.getTjNumber();
                        log.info("查询出来的体检号是: " + tjNumber1);
                        log.info("传过来的的体检号是: "+tjNumber);
                        List<LtkjExamJcsqd> jcsqdList = testMapper.getCcXZxYyPacsLtkjExamJcsqd(order.getTjNumber());
                        if(null !=jcsqdList && !jcsqdList.isEmpty()){
                            jcsqdService.deletedLtkjJcsqdByTjhAndTmh(order.getCardId());
                            jcbgdService.deletedLtkjJcbgdByTjhAndTmh(order.getCardId());
                            jcsqdService.saveBatch(jcsqdList);
                            List<LtkjExamJcbgd> jcbgdList = testMapper.getCcXZxYyPacsLtkjExamJcbgd(order.getCardId());
                            if(null != jcbgdList && !jcbgdList.isEmpty())jcbgdService.saveBatch(jcbgdList);
                            DynamicDataSourceContextHolder.clearDataSourceType();
                        }
//                        String tjNumber1 = order.getTjNumber();
//                        log.info("查询出来的体检号是: " + tjNumber1);
//                        log.info("传过来的的体检号是: "+tjNumber);
                        Map<String,Object> map=new HashMap<>();
                        map.put("tjnum",tjNumber);
                        testMapper.tjUpdateDetatilByVi(map);
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java
@@ -2774,6 +2774,7 @@
//            if (null != payByTjNum) {
//                return AjaxResult.error("该用户已收费不可撤销签到!");
//            }
            if(null !=order.getFinishTime()) return AjaxResult.error("该人员已签离,不可撤销!!!");
            tjOrderService.deleteTjOrderByOrderId(order.getOrderId());
            tjOrderDetailService.deleteTjOrderDetailByOrderDetailId(String.valueOf(order.getOrderId()));
            remarkService.deletedOrderRemarkByTjNum(tjNum);
ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TestMapper.java
@@ -234,7 +234,8 @@
    @DataSource(value = DataSourceType.SLAVE_LIS)
    @Select("SELECT * FROM vi_his_patientresult ")
    @Select("select t.* from vi_his_patientresult t \n" +
            "\tjoin(select * from vi_his_patientinfo t where t.HOSPITALID='chkwyy' and t.PATIENTNO like '800%') b on b.SAMPLEID = t.SAMPLEID")
    List<Map<String, Object>> getCcXZxYyLisJgSt();
ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderMapper.java
@@ -297,4 +297,28 @@
    @Select("SELECT a.sqdh FROM ltkj_jianchajianyan_tree a WHERE a.card_id=#{cardId} AND a.type='检验' AND a.service = 'lis' GROUP BY a.sqdh")
    List<String> getBlJysqdhByLis(String cardId);
    @Select("SELECT\n" +
            " DISTINCT a.tj_number \n" +
            "FROM\n" +
            "  tj_order_remark a\n" +
            "  JOIN sys_dept b ON b.dept_id = a.dept_id \n" +
            "WHERE\n" +
            "  a.deleted = 0 \n" +
            "  AND b.org_type = 1 \n" +
            "  AND a.type !=1")
    List<String> getDingShiTongBuJianYanTjNum();
    @Select("  SELECT\n" +
            " DISTINCT a.tj_number \n" +
            "FROM\n" +
            "  tj_order_remark a\n" +
            "  JOIN sys_dept b ON b.dept_id = a.dept_id \n" +
            "WHERE\n" +
            "  a.deleted = 0 \n" +
            "  AND b.org_type = 2 \n" +
            "  AND a.type !=1")
    List<String> getDingShiTongBuJianChaTjNum();
}
ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderService.java
@@ -176,4 +176,9 @@
    List<String> getBljcsqdhByPacs(String cardId);
    List<String> getBljysqdhByLis(String cardId);
    List<String> getDingShiTongBuJianYanTjNum();
    List<String> getDingShiTongBuJianChaTjNum();
}
ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderServiceImpl.java
@@ -393,4 +393,14 @@
    public List<String> getBljysqdhByLis(String cardId) {
        return tjOrderMapper.getBlJysqdhByLis(cardId);
    }
    @Override
    public List<String> getDingShiTongBuJianYanTjNum() {
        return tjOrderMapper.getDingShiTongBuJianYanTjNum();
    }
    @Override
    public List<String> getDingShiTongBuJianChaTjNum() {
        return tjOrderMapper.getDingShiTongBuJianChaTjNum();
    }
}
ltkj-quartz/src/main/java/com/ltkj/quartz/task/RyTask.java
@@ -1,7 +1,10 @@
package com.ltkj.quartz.task;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import com.ltkj.common.utils.StringUtils;
import java.util.Date;
/**
 * 定时任务调度测试
@@ -9,6 +12,7 @@
 * @author ltkj
 */
@Component("ryTask")
@Slf4j
public class RyTask {
    public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i) {
        System.out.println(StringUtils.format("执行多参方法: 字符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i));
@@ -21,4 +25,10 @@
    public void ryNoParams() {
        System.out.println("执行无参方法");
    }
    public void  csdsrw() throws InterruptedException {
        log.info("定时任务开始执行"+new Date());
        Thread.sleep(1000*5);
        log.info("定时任务结束执行"+new Date());
    }
}