From 3eeaad61513758f2e05277995fb2af3a21f72b35 Mon Sep 17 00:00:00 2001 From: zjh <1084500556@qq.com> Date: 星期四, 05 十二月 2024 08:55:00 +0800 Subject: [PATCH] zjh20241205-1 --- ltkj-admin/src/main/java/com/ltkj/LtkjApplication.java | 2 ltkj-admin/src/main/java/com/ltkj/web/config/timer/DefaultScheduled.java | 166 +++++++++++++++++++++++++++ ltkj-admin/pom.xml | 80 ++++++------- ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderServiceImpl.java | 10 + ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java | 1 ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java | 31 +++-- ltkj-quartz/src/main/java/com/ltkj/quartz/task/RyTask.java | 10 + ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TestMapper.java | 3 ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderMapper.java | 24 ++++ ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderService.java | 5 10 files changed, 277 insertions(+), 55 deletions(-) diff --git a/ltkj-admin/pom.xml b/ltkj-admin/pom.xml index 70964f6..a0186c9 100644 --- a/ltkj-admin/pom.xml +++ b/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> diff --git a/ltkj-admin/src/main/java/com/ltkj/LtkjApplication.java b/ltkj-admin/src/main/java/com/ltkj/LtkjApplication.java index 99a95ec..3bb1b28 100644 --- a/ltkj-admin/src/main/java/com/ltkj/LtkjApplication.java +++ b/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搴旂敤銆� diff --git a/ltkj-admin/src/main/java/com/ltkj/web/config/timer/DefaultScheduled.java b/ltkj-admin/src/main/java/com/ltkj/web/config/timer/DefaultScheduled.java new file mode 100644 index 0000000..d451a4d --- /dev/null +++ b/ltkj-admin/src/main/java/com/ltkj/web/config/timer/DefaultScheduled.java @@ -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); + } +} diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java index 51ff07b..c4e4d68 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java +++ b/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); diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java index 91ccef7..25481cf 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java +++ b/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); diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TestMapper.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TestMapper.java index 1d65155..c4d7e19 100644 --- a/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TestMapper.java +++ b/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(); diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderMapper.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderMapper.java index d3f984f..a6affca 100644 --- a/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderMapper.java +++ b/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(); } diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderService.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderService.java index 4c7f5d5..a41b75d 100644 --- a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderService.java +++ b/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(); + } diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderServiceImpl.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderServiceImpl.java index d07392b..90e3652 100644 --- a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderServiceImpl.java +++ b/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(); + } } diff --git a/ltkj-quartz/src/main/java/com/ltkj/quartz/task/RyTask.java b/ltkj-quartz/src/main/java/com/ltkj/quartz/task/RyTask.java index 67967ef..6edc7ea 100644 --- a/ltkj-quartz/src/main/java/com/ltkj/quartz/task/RyTask.java +++ b/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()); + } } -- Gitblit v1.8.0