From 15caee81ff8b9fb42128617a9bfebb0254afcb52 Mon Sep 17 00:00:00 2001 From: LiJianZhao Date: Mon, 19 May 2025 14:46:31 +0800 Subject: [PATCH] dev --- .../clinic/server/ServerApplication.java | 2 + .../task/SocialReconciliationManager.java | 56 +++++++++++++++++++ .../clinic/server/common/util/CacheUtil.java | 6 ++ .../clinic/server/common/util/DateUtil.java | 6 ++ .../SocialReconciliationController.java | 2 +- 5 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/syjiaer/clinic/server/common/task/SocialReconciliationManager.java diff --git a/src/main/java/com/syjiaer/clinic/server/ServerApplication.java b/src/main/java/com/syjiaer/clinic/server/ServerApplication.java index eccb04a..532b1aa 100644 --- a/src/main/java/com/syjiaer/clinic/server/ServerApplication.java +++ b/src/main/java/com/syjiaer/clinic/server/ServerApplication.java @@ -3,8 +3,10 @@ package com.syjiaer.clinic.server; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.scheduling.annotation.EnableScheduling; @SpringBootApplication +@EnableScheduling @MapperScan("com.syjiaer.clinic.server.mapper.*") public class ServerApplication { diff --git a/src/main/java/com/syjiaer/clinic/server/common/task/SocialReconciliationManager.java b/src/main/java/com/syjiaer/clinic/server/common/task/SocialReconciliationManager.java new file mode 100644 index 0000000..292dc7b --- /dev/null +++ b/src/main/java/com/syjiaer/clinic/server/common/task/SocialReconciliationManager.java @@ -0,0 +1,56 @@ +package com.syjiaer.clinic.server.common.task; + +import com.syjiaer.clinic.server.common.util.CacheUtil; +import com.syjiaer.clinic.server.common.util.DateUtil; +import com.syjiaer.clinic.server.entity.social.dto.ReconciliationItemDto; +import com.syjiaer.clinic.server.entity.social.vo.ReconciliationItemVo; +import com.syjiaer.clinic.server.service.social.SocialReconciliationService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.List; + +@Component +@Slf4j +public class SocialReconciliationManager { + @Autowired + private SocialReconciliationService socialReconciliationService; + @Autowired + private CacheUtil cacheUtil; + @Scheduled(cron = "0 0 8 1/1 * ?") + public void everyDayReconciliation() { + LocalDate localDate = cacheUtil.get("social:reconciliation:lastEveryDayReconciliationTime", LocalDate.class); + System.out.println(localDate); + cacheUtil.set("social:reconciliation:lastEveryDayReconciliationTime", LocalDate.now().plusDays(-1)); + List dateList = DateUtil.getDatesBetween(localDate, LocalDate.now()); + + for (LocalDate date : dateList) { + LocalDateTime beginTime = date.atStartOfDay(); + LocalDateTime endTime = date.atTime(23, 59, 59); + List list = socialReconciliationService.getList(beginTime,endTime); + for (ReconciliationItemVo vo : list){ + ReconciliationItemDto dto = new ReconciliationItemDto(); + dto.setReconciliationType(vo.getReconciliationType()); + dto.setInsuranceType(vo.getInsuranceType()); + dto.setHandlingInstitution(vo.getHandlingInstitution()); + dto.setTotalMedicalCost(vo.getTotalMedicalCost()); + dto.setTotalFundPayment(vo.getTotalFundPayment()); + dto.setTotalPersonalAccountPayment(vo.getTotalPersonalAccountPayment()); + dto.setSettlementCount(vo.getSettlementCount()); + dto.setBeginTime(beginTime); + dto.setEndTime(endTime); + try { + socialReconciliationService.totalDo(dto); + }catch (Exception e){ + log.error("对账失败",e); + } + + } + } + } +} \ No newline at end of file diff --git a/src/main/java/com/syjiaer/clinic/server/common/util/CacheUtil.java b/src/main/java/com/syjiaer/clinic/server/common/util/CacheUtil.java index e841810..2925aa3 100644 --- a/src/main/java/com/syjiaer/clinic/server/common/util/CacheUtil.java +++ b/src/main/java/com/syjiaer/clinic/server/common/util/CacheUtil.java @@ -20,6 +20,12 @@ public class CacheUtil { } + public void set(String key, Object value) { + String s = JSONObject.toJSONString(value); + redisTemplate.opsForValue().set(key, s); + } + + public T get(String key, Class clazz) { String json = (String) redisTemplate.opsForValue().get(key); if (json == null) return null; diff --git a/src/main/java/com/syjiaer/clinic/server/common/util/DateUtil.java b/src/main/java/com/syjiaer/clinic/server/common/util/DateUtil.java index 31b77b2..608e807 100644 --- a/src/main/java/com/syjiaer/clinic/server/common/util/DateUtil.java +++ b/src/main/java/com/syjiaer/clinic/server/common/util/DateUtil.java @@ -5,6 +5,7 @@ import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; +import java.util.stream.Stream; public class DateUtil { public static final String DATE_FORMAT = "yyyy-MM-dd"; @@ -70,4 +71,9 @@ public class DateUtil { } return dates; } + + public static List getDatesBetween(LocalDate startDate, LocalDate endDate) { + return Stream.iterate(startDate, date -> date.plusDays(1)) + .limit(java.time.temporal.ChronoUnit.DAYS.between(startDate, endDate) + 1).toList(); + } } \ No newline at end of file diff --git a/src/main/java/com/syjiaer/clinic/server/controller/social/SocialReconciliationController.java b/src/main/java/com/syjiaer/clinic/server/controller/social/SocialReconciliationController.java index 9de61a7..1cf3668 100644 --- a/src/main/java/com/syjiaer/clinic/server/controller/social/SocialReconciliationController.java +++ b/src/main/java/com/syjiaer/clinic/server/controller/social/SocialReconciliationController.java @@ -59,7 +59,7 @@ public class SocialReconciliationController extends BaseController { */ @RequestMapping("/pageHistory") public Result> pageHistory(){ - ReconciliationLogQuery query = parmsUtil.getObject("data", ReconciliationLogQuery.class); + ReconciliationLogQuery query = parmsUtil.getObject("query", ReconciliationLogQuery.class); return success(socialReconciliationService.pageLogs(query)); } /**