ltkj-admin/pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ltkj-admin/src/main/java/com/ltkj/LtkjApplication.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ltkj-admin/src/main/java/com/ltkj/web/config/timer/DefaultScheduled.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TestMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ltkj-quartz/src/main/java/com/ltkj/quartz/task/RyTask.java | ●●●●● 补丁 | 查看 | 原始文档 | 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> <!– maven打包插件–> <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> <!– 如果没有该配置,devtools不会生效 –> </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> <!– <warName>${project.artifactId}</warName>–> <warName>ltkj-admin</warName> </configuration> </plugin> </plugins> <finalName>ltkj-admin</finalName> </build> --> <!-- <build> <plugins> <!– maven打包插件–> <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> <!– 如果没有该配置,devtools不会生效 –> </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> <!– <warName>${project.artifactId}</warName>–> <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()); } }