forked from kidgrow-microservices-platform

houruijun
2020-11-27 5fe2259c5c9b473668c0d89ae1d19537c10b77db
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java
@@ -13,8 +13,10 @@
import com.kidgrow.oprationcenter.model.ConsumptionRecord;
import com.kidgrow.oprationcenter.model.ProductOrder;
import com.kidgrow.oprationcenter.model.ProductOrderDetail;
import com.kidgrow.oprationcenter.model.SysProduct;
import com.kidgrow.oprationcenter.service.IProductOrderDetailService;
import com.kidgrow.oprationcenter.service.IProductOrderService;
import com.kidgrow.oprationcenter.service.ISysProductService;
import com.kidgrow.oprationcenter.vo.*;
import com.kidgrow.redis.util.RedisUtils;
import com.kidgrow.usercenter.feign.SysDoctorService;
@@ -52,6 +54,8 @@
    @Autowired
    private IProductOrderService iProductOrderService;
    @Autowired
    private ISysProductService productService;
    @Autowired
    private RedisUtils redisUtils;
    /**
     * 列表
@@ -62,6 +66,15 @@
    public PageResult<ProductOrderDetail> findList(Map<String, Object> params){
        Page<ProductOrderDetail> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit"));
        List<ProductOrderDetail> list  =  baseMapper.findList(page, params);
        for (ProductOrderDetail productOrderDetail : list) {
            if(productOrderDetail.getOrderAilightCount()==null){
                SysProduct byId = productService.getById(productOrderDetail.getProId());
                if(byId!=null){
                    productOrderDetail.setOrderAilightCount(byId.getAilightCount());
                    productOrderDetail.setOrderRecordCount(byId.getRecordCount());
                }
            }
        }
        return PageResult.<ProductOrderDetail>builder().data(list).code(0).count(page.getTotal()).build();
    }
    /**
@@ -81,10 +94,11 @@
     * @param diagnosticId
     * @return
     */
    public ResultBody<UserProductData> UserProductDetailData(Long hospitalId,Long departmentId,String diagnosticId)
    @Override
    public ResultBody<UserProductData> userProductDetailData(Long hospitalId,Long departmentId,String diagnosticId)
    {
        UserProductData userProductData=new UserProductData();
        userProductData.setEnd(true);
        userProductData.setIsEnd(true);
        userProductData.setRecordCount(0);
        userProductData.setAilightCount(0);
        userProductData.setLimitDays(0);
@@ -94,7 +108,7 @@
            userProductDetail.getProductOrderJoinDetailListShare().addAll(userProductDetail.getProductOrderJoinDetailsListDep());
            List<ProductOrderJoinDetail> productOrderJoinDetailList = userProductDetail.getProductOrderJoinDetailListShare();
            if (productOrderJoinDetailList.size() > 0) {
                userProductData.setEnd(false);
                userProductData.setIsEnd(false);
                //合并后按id排序并筛除已用完的套餐
                List<ProductOrderJoinDetail> productOrderJoinDetailsNewList = productOrderJoinDetailList.stream().filter(f -> f.getAilightCount() >= 0).sorted(Comparator.comparing(ProductOrderJoinDetail::getProEndtime)).collect(Collectors.toList());
                for (int i = 0; i <productOrderJoinDetailsNewList.size(); i++) {
@@ -117,7 +131,7 @@
            }
        }
        //是否已经结束
        if (userProductData.isEnd()&& StringUtils.isNotBlank(diagnosticId)) {
        if (userProductData.getIsEnd()&& StringUtils.isNotBlank(diagnosticId)) {
            //写入redis中,防止扣非后不能生成报告
            redisUtils.lSet(CommonConstant.SAAS_LAST_SERVER+diagnosticId,diagnosticId);
        }
@@ -200,6 +214,10 @@
    public List<OrderChartVo> proCountChart() {
        return baseMapper.proCountChart();
    }
   @Override
    public int getUserdProduct(Long hospitalId, Long departmentId) {
        return baseMapper.getUserdProduct(hospitalId,departmentId);
    }
    /**
     *获取该科室下的所有的套餐信息
     * @param params
@@ -211,6 +229,14 @@
        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();
    }
    @Override
    public PageResult<ProductEndVo> productEndList(Map<String, Object> params) {
        Page<ProductEndVo> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit"));
        List<ProductEndVo> list  =
                baseMapper.productEndList(page,MapUtils.getIntValue(params,"monthPar"),MapUtils.getIntValue(params,"aiCountPar"));
        return PageResult.<ProductEndVo>builder().data(list).code(0).count(page.getTotal()).build();
    }
    /**
@@ -235,7 +261,6 @@
        List<GroupProductDetail> list  =  baseMapper.groupProductDetail(page,params);
        return PageResult.<GroupProductDetail>builder().data(list).code(0).count(page.getTotal()).build();
    }
    /**
   * 根据ProductOrderDetail对象当做查询条件进行查询
   * @param productOrderDetail