From 4cc45714df83cfb23df18f2a163b4af208e78571 Mon Sep 17 00:00:00 2001 From: LiJianZhao Date: Mon, 19 May 2025 16:42:57 +0800 Subject: [PATCH] dev --- .../task/SocialReconciliationManager.java | 31 ++---------- .../SocialReconciliationController.java | 2 +- .../social/SocialReconciliationService.java | 49 ++++++++++++++++++- src/main/resources/application.yml | 8 +-- 4 files changed, 56 insertions(+), 34 deletions(-) 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 index 292dc7b..916aea5 100644 --- a/src/main/java/com/syjiaer/clinic/server/common/task/SocialReconciliationManager.java +++ b/src/main/java/com/syjiaer/clinic/server/common/task/SocialReconciliationManager.java @@ -1,5 +1,6 @@ package com.syjiaer.clinic.server.common.task; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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; @@ -22,35 +23,11 @@ public class SocialReconciliationManager { private SocialReconciliationService socialReconciliationService; @Autowired private CacheUtil cacheUtil; - @Scheduled(cron = "0 0 8 1/1 * ?") + @Scheduled(cron = "0 0 10,16 * * ? ") 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); - } + //最后一次自动对账时间 + socialReconciliationService.auto(); - } - } } } \ 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 1cf3668..1659fce 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 @@ -69,7 +69,7 @@ public class SocialReconciliationController extends BaseController { @RequestMapping("/totalDo") public Result totalDo(){ ReconciliationItemDto dto = parmsUtil.getObject("data", ReconciliationItemDto.class); - return success( socialReconciliationService.totalDo(dto)); + return success( socialReconciliationService.totalDo(dto,false)); } /** * 明细对账 diff --git a/src/main/java/com/syjiaer/clinic/server/service/social/SocialReconciliationService.java b/src/main/java/com/syjiaer/clinic/server/service/social/SocialReconciliationService.java index 9cf274f..431ed93 100644 --- a/src/main/java/com/syjiaer/clinic/server/service/social/SocialReconciliationService.java +++ b/src/main/java/com/syjiaer/clinic/server/service/social/SocialReconciliationService.java @@ -12,6 +12,7 @@ import com.syjiaer.clinic.server.common.config.Config; import com.syjiaer.clinic.server.common.constants.Constants; import com.syjiaer.clinic.server.common.enums.ChargeTypeEnum; import com.syjiaer.clinic.server.common.exception.MessageException; +import com.syjiaer.clinic.server.common.util.DateUtil; import com.syjiaer.clinic.server.common.util.FileUtil; import com.syjiaer.clinic.server.common.util.HttpUtil; import com.syjiaer.clinic.server.common.vo.Page; @@ -35,6 +36,7 @@ import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.math.BigDecimal; +import java.time.LocalDate; import java.time.LocalDateTime; import java.util.*; @@ -128,7 +130,7 @@ public class SocialReconciliationService extends BaseService { * @param dto * @return */ - public OM3201 totalDo(ReconciliationItemDto dto) { + public OM3201 totalDo(ReconciliationItemDto dto,Boolean isRecordLog) { IM3201 im3201 = new IM3201(); IM3201.Data inData = new IM3201.Data(); inData.setInsutype(dto.getInsuranceType()); @@ -142,7 +144,9 @@ public class SocialReconciliationService extends BaseService { inData.setFixmedins_setl_cnt(new BigDecimal(dto.getSettlementCount())); im3201.setData(inData); OM3201 om3201 = socialRequest.call3201(im3201); - recordTotalReconciliationLog(dto, om3201); + if (isRecordLog){ + recordTotalReconciliationLog(dto, om3201); + } return om3201; } @@ -328,4 +332,45 @@ public class SocialReconciliationService extends BaseService { } return pageHelper(query.getPageNum(), query.getPageSize(), queryWrapper, socialReconciliationLogMapper); } + + /** + * 自动对账 + */ + public void auto() { + //最后一次自动对账的时间 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.orderByDesc("create_time"); + queryWrapper.last("limit 1"); + LocalDate lastTime = LocalDate.now(); + SocialReconciliationLog socialReconciliationLog = socialReconciliationLogMapper.selectOne(queryWrapper); + if (socialReconciliationLog != null){ + lastTime = socialReconciliationLog.getCreateTime().toLocalDate(); + } + + List dateList = DateUtil.getDatesBetween(lastTime, LocalDate.now()); + for (LocalDate date : dateList) { + LocalDateTime beginTime = date.atStartOfDay(); + LocalDateTime endTime = date.atTime(23, 59, 59); + List list = getList(beginTime,endTime); + for (ReconciliationItemVo vo : list){ + System.out.println(vo.toString()); + 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 { + totalDo(dto,true); + }catch (Exception e){ + log.error("对账失败",e); + } +// + } + } + } } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 562f9bb..e2e41c3 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -10,10 +10,10 @@ spring: host: dev.jizhiweb.cn port: 6379 datasource: - driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://dev.jizhiweb.cn:3306/syjiaer_clinic - username: root - password: i7L0BS91pADGuy7z + driver-class-name: org.postgresql.Driver + url: jdbc:postgresql://dev.jizhiweb.cn:15321/syjiaer_clinic + username: postgres + password: i7L0BS91pADGuy7z config: import: optional:classpath:developer-config.yml server: