From 15caee81ff8b9fb42128617a9bfebb0254afcb52 Mon Sep 17 00:00:00 2001 From: LiJianZhao Date: Mon, 19 May 2025 14:46:31 +0800 Subject: [PATCH 1/5] 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)); } /** From 8cb2b1c94c8a94b49f79e3569c00be12b14b405a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=9F=E6=98=8E=E8=BD=A9?= <1422906354@qq.com> Date: Mon, 19 May 2025 16:42:30 +0800 Subject: [PATCH 2/5] x --- .../OrganizationSectionController.java | 4 ++ .../OrganizationSectionService.java | 60 ------------------- .../service/statistics/StatisticsService.java | 7 ++- .../resources/xml/InventoryPurchaseMapper.xml | 4 +- 4 files changed, 10 insertions(+), 65 deletions(-) diff --git a/src/main/java/com/syjiaer/clinic/server/controller/organization/OrganizationSectionController.java b/src/main/java/com/syjiaer/clinic/server/controller/organization/OrganizationSectionController.java index f75eaec..a371529 100644 --- a/src/main/java/com/syjiaer/clinic/server/controller/organization/OrganizationSectionController.java +++ b/src/main/java/com/syjiaer/clinic/server/controller/organization/OrganizationSectionController.java @@ -3,6 +3,7 @@ package com.syjiaer.clinic.server.controller.organization; import com.alibaba.fastjson.JSONObject; import com.syjiaer.clinic.server.common.annotations.RecordCommonLog; import com.syjiaer.clinic.server.common.exception.MessageException; +import com.syjiaer.clinic.server.common.util.StringUtil; import com.syjiaer.clinic.server.common.vo.Page; import com.syjiaer.clinic.server.common.vo.Result; import com.syjiaer.clinic.server.controller.BaseController; @@ -33,6 +34,9 @@ public class OrganizationSectionController extends BaseController { @RequestMapping("/add") public Result add() { OrganizationSection organizationSection = parmsUtil.getObjectWithCheck("data", OrganizationSection.class); + + organizationSection.setCode(StringUtil.getCode("os")); + organizationSectionService.add(organizationSection); return success("添加成功"); } diff --git a/src/main/java/com/syjiaer/clinic/server/service/organization/OrganizationSectionService.java b/src/main/java/com/syjiaer/clinic/server/service/organization/OrganizationSectionService.java index bf1c104..020f7fa 100644 --- a/src/main/java/com/syjiaer/clinic/server/service/organization/OrganizationSectionService.java +++ b/src/main/java/com/syjiaer/clinic/server/service/organization/OrganizationSectionService.java @@ -82,31 +82,6 @@ public class OrganizationSectionService extends BaseService { String processing = getString(caty); organizationSection.setCaty(processing); organizationSectionMapper.insert(organizationSection); - try { - socialRequest.call3401(new com.syjiaer.clinic.server.common.api.input.IM3401() - .setHospDeptCodg(organizationSection.getCode()) - .setHospDeptName(organizationSection.getName()) - .setCaty(organizationSection.getCaty()) - .setBegntime(organizationSection.getBeginDate()) - .setEndtime(organizationSection.getEndDate()) - .setItro(organizationSection.getInfo()) - .setDeptResperName(organizationSection.getResperName()) - .setDeptResperTel(organizationSection.getResperTel()) - .setDeptMedServScp(organizationSection.getMedServScp()) - .setDeptEstbdat(organizationSection.getCreationDate()) - .setAprvBedCnt(organizationSection.getBedCnt()) - .setHiCrtfBedCnt(organizationSection.getSocialBedCnt()) - .setPoolareaNo(socialInsuplcAdmdvs) - .setDrPsncnt(organizationSection.getDrPsncnt()) - .setPharPsncnt(organizationSection.getPharPsncnt()) - .setNursPsncnt(organizationSection.getNursPsncnt()) - .setTecnPsncnt(organizationSection.getTecnPsncnt()) - .setMemo(organizationSection.getMemo())); - } catch (MessageException messageException) { - log.error("科室添加失败", messageException); - throw new MessageException("科室添加失败"); - } - } @Transactional(rollbackFor = Exception.class) public void edit(OrganizationSection organizationSection) { @@ -114,34 +89,9 @@ public class OrganizationSectionService extends BaseService { String processing = getString(caty); organizationSection.setCaty(processing); organizationSectionMapper.updateById(organizationSection); -// try { -// socialRequest.call3402(new com.syjiaer.clinic.server.modules.social.api.input.IM3402() -// .setHospDeptCodg(organizationSection.getCode()) -// .setHospDeptName(organizationSection.getName()) -// .setBegntime(organizationSection.getBeginDate()) -// .setEndtime(organizationSection.getEndDate()) -// .setItro(organizationSection.getInfo()) -// .setDeptResperName(organizationSection.getResperName()) -// .setDeptResperTel(organizationSection.getResperTel()) -// .setDeptMedServScp(organizationSection.getMedServScp()) -// .setCaty(organizationSection.getCaty()) -// .setDeptEstbdat(organizationSection.getCreationDate()) -// .setAprvBedCnt(organizationSection.getBedCnt()) -// .setHiCrtfBedCnt(organizationSection.getSocialBedCnt()) -// .setDrPsncnt(organizationSection.getDrPsncnt()) -// .setPharPsncnt(organizationSection.getPharPsncnt()) -// .setNursPsncnt(organizationSection.getNursPsncnt()) -// .setTecnPsncnt(organizationSection.getTecnPsncnt()) -// .setMemo(organizationSection.getMemo()) -// ); -// } catch (MessageException messageException) { -// log.error("科室修改失败", messageException); -// throw new MessageException("科室修改失败"); -// } } - @Transactional(rollbackFor = Exception.class) public void delete(Integer id) { OrganizationSection organizationSection = organizationSectionMapper.selectById(id); @@ -150,16 +100,6 @@ public class OrganizationSectionService extends BaseService { } organizationSection.setDelFlag(1); organizationSectionMapper.updateById(organizationSection); -// try { -// socialRequest.call3403(new com.syjiaer.clinic.server.modules.social.api.input.IM3403() -// .setHospDeptCodg(organizationSection.getCode()) -// .setHospDeptName(organizationSection.getName()) -// .setBegntime(organizationSection.getBeginDate()) -// ); -// } catch (MessageException messageException) { -// log.error("科室删除失败", messageException); -// throw new MessageException("科室删除失败"); -// } } public OrganizationSection get(int id) { QueryWrapper queryWrapper = new QueryWrapper<>(); diff --git a/src/main/java/com/syjiaer/clinic/server/service/statistics/StatisticsService.java b/src/main/java/com/syjiaer/clinic/server/service/statistics/StatisticsService.java index 804f936..1dc6500 100644 --- a/src/main/java/com/syjiaer/clinic/server/service/statistics/StatisticsService.java +++ b/src/main/java/com/syjiaer/clinic/server/service/statistics/StatisticsService.java @@ -243,9 +243,10 @@ public class StatisticsService extends BaseService { ",sum(purchase_unit_price*inventory_whole_number) as total_cost"); goodsWrapper.eq("status", true); Map costAndPriceMap = goodsMapper.selectMaps(goodsWrapper).get(0); - - goodsStatistics.setTotalCost(new BigDecimal(costAndPriceMap.get("total_cost").toString())); - goodsStatistics.setTotalPrice(new BigDecimal(costAndPriceMap.get("total_price").toString())); + if(costAndPriceMap!=null){ + goodsStatistics.setTotalCost(new BigDecimal(costAndPriceMap.get("total_cost").toString())); + goodsStatistics.setTotalPrice(new BigDecimal(costAndPriceMap.get("total_price").toString())); + } QueryWrapper socialWrapper = new QueryWrapper<>(); socialWrapper.eq("status", true); diff --git a/src/main/resources/xml/InventoryPurchaseMapper.xml b/src/main/resources/xml/InventoryPurchaseMapper.xml index fb5ea58..b7320c3 100644 --- a/src/main/resources/xml/InventoryPurchaseMapper.xml +++ b/src/main/resources/xml/InventoryPurchaseMapper.xml @@ -31,7 +31,7 @@