From 4fa3c68a3526dd366638a6aa3020ce9c1ede22d4 Mon Sep 17 00:00:00 2001 From: houruijun <411269194@kidgrow.com> Date: Tue, 25 Aug 2020 11:18:41 +0800 Subject: [PATCH] 1.医院管理增加查看科室套餐功能 2.修复剩余读片量取值错误的问题 --- kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java | 60 ++++++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 44 insertions(+), 16 deletions(-) diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java index c3d4ead..a672c0a 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java @@ -2,7 +2,6 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.kidgrow.common.constant.ConsumptionConstant; import com.kidgrow.common.model.*; import com.kidgrow.common.service.impl.SuperServiceImpl; import com.kidgrow.common.utils.DateUtils; @@ -20,6 +19,7 @@ import com.kidgrow.usercenter.model.SysHospital; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.MapUtils; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cglib.beans.BeanCopier; import org.springframework.stereotype.Service; @@ -158,7 +158,7 @@ * @return */ @Override - public OrderChartVo productOrderChart(Map<String, Object> params) { + public List<OrderChartVo> productOrderChart(Map<String, Object> params) { return baseMapper.productOrderChart(params); } /** @@ -167,8 +167,20 @@ * units 是产品名称 */ @Override - public OrderChartVo proCountChart() { + public List<OrderChartVo> proCountChart() { return baseMapper.proCountChart(); + } + /** + *获取该科室下的所有的套餐信息 + * @param params + * @return + */ + @Override + public PageResult<ProductOrderDetail> departmentProductDetail(Map<String, Object> params) { + Page<ProductOrderDetail> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit")); + List<ProductOrderDetail> list = + baseMapper.departmentProductDetail(page, Long.parseLong(params.get("hospitalId").toString()),Long.parseLong(params.get("departmentId").toString())); + return PageResult.<ProductOrderDetail>builder().data(list).code(0).count(page.getTotal()).build(); } /** @@ -287,7 +299,7 @@ //包含共享的数据 userProductDetail.setProductOrderJoinDetailListShare(productOrderDetailList.stream().filter(f -> f.getIsShare()).collect(Collectors.toList())); //科室私有的数据 - userProductDetail.setProductOrderJoinDetailsListDep(productOrderDetailList.stream().filter((f -> departmentId.equals(f.getDepartmentId()) && f.getIsShare() == false)).collect(Collectors.toList())); + userProductDetail.setProductOrderJoinDetailsListDep(productOrderDetailList.stream().filter((f -> departmentId.equals(f.getDepartmentId()) && !f.getIsShare())).collect(Collectors.toList())); return userProductDetail; } return null; @@ -310,24 +322,40 @@ //科室私有的数据 List<ProductOrderJoinDetail> productOrderJoinDetailsListDep = userProductDetail.getProductOrderJoinDetailsListDep(); //本医院可共享的读片总量 - int shareCount = productOrderJoinDetailListShare.stream().collect(Collectors.summingInt(ProductOrderJoinDetail::getAilightCount)); + int shareCount = (productOrderJoinDetailListShare.size()>0)? + productOrderJoinDetailListShare.stream().collect(Collectors.summingInt(ProductOrderJoinDetail::getAilightCount)) + :0; //本科室私有读片总量 - int depCount = productOrderJoinDetailsListDep.stream().collect(Collectors.summingInt(ProductOrderJoinDetail::getAilightCount)); + int depCount = (productOrderJoinDetailsListDep.size()>0)? + productOrderJoinDetailsListDep.stream().collect(Collectors.summingInt(ProductOrderJoinDetail::getAilightCount)) + :0; //可用的总量 userAICount = shareCount + depCount; + + //共享套餐里面的detailid + List<Long> shareDetailId = (productOrderJoinDetailListShare.size()>0) + ?productOrderJoinDetailListShare.stream().map(m -> m.getId()).collect(Collectors.toList()) + :new ArrayList<>(); + //私有套餐里面的detailid + List<Long> depDetailId = (productOrderJoinDetailsListDep.size()>0) + ?productOrderJoinDetailsListDep.stream().map(m -> m.getId()).collect(Collectors.toList()) + :new ArrayList<>(); + //获取所有有效的套餐id + List<Long> nowDetailList=new ArrayList<>(); + BeanUtils.copyProperties(shareDetailId,nowDetailList); + nowDetailList.addAll(depDetailId); + //查询已预扣 未退还 未扣费的数据 + List<ConsumptionRecord> consumptionRecordList = consumptionRecordMapper.findDetailList(nowDetailList); //计算预扣费的总量 - Map<String, Object> selectMap = new HashMap<>(); - selectMap.put("recordType", ConsumptionConstant.BEFORE_DEDUCTION); - List<ConsumptionRecord> consumptionRecordList = consumptionRecordMapper.findList(selectMap);; if (consumptionRecordList.size() > 0) { - //共享套餐里面的detailid - List<Long> shareDetailId = productOrderJoinDetailListShare.stream().map(m -> m.getId()).collect(Collectors.toList()); - //私有套餐里面的detailid - List<Long> depDetailId = productOrderJoinDetailsListDep.stream().map(m -> m.getId()).collect(Collectors.toList()); //共享套餐里面预扣费总数 - int shareConCount = consumptionRecordList.stream().filter(f -> shareDetailId.contains(f.getProOrderDetailId())).collect(Collectors.summingInt(ConsumptionRecord::getConsumptionCount)); - //共享套餐里面预扣费总数 - int depConCount = consumptionRecordList.stream().filter(f -> depDetailId.contains(f.getProOrderDetailId())).collect(Collectors.summingInt(ConsumptionRecord::getConsumptionCount)); + int shareConCount = (shareDetailId.size()>0)?consumptionRecordList.stream() + .filter(f -> shareDetailId.contains(f.getProOrderDetailId())) + .collect(Collectors.summingInt(ConsumptionRecord::getConsumptionCount)):0; + //私有套餐里面预扣费总数 + int depConCount = (depDetailId.size()>0)?consumptionRecordList.stream() + .filter(f -> depDetailId.contains(f.getProOrderDetailId())) + .collect(Collectors.summingInt(ConsumptionRecord::getConsumptionCount)):0; userAICount -= (shareConCount + depConCount); } } -- Gitblit v1.8.0