package com.kidgrow.oprationcenter.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kidgrow.common.model.PageResult;
import com.kidgrow.common.service.impl.SuperServiceImpl;
import com.kidgrow.common.utils.StringUtils;
import com.kidgrow.oprationcenter.mapper.ConsumptionRecordMapper;
import com.kidgrow.oprationcenter.model.ConsumptionRecord;
import com.kidgrow.oprationcenter.service.IConsumptionRecordService;
import com.kidgrow.oprationcenter.service.IProductOrderDetailService;
import com.kidgrow.oprationcenter.vo.ProductOrderJoinDetail;
import com.kidgrow.oprationcenter.vo.UserProductDetail;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020
* @Description:
* @Project: 运营中心
* @CreateDate: Created in 2020-06-23 15:07:14
* @Author: houruijun
* @version 1.0
*/
@Slf4j
@Service
public class ConsumptionRecordServiceImpl extends SuperServiceImpl implements IConsumptionRecordService {
@Autowired
private IProductOrderDetailService productOrderDetailService;
/**
* 列表
* @param params
* @return
*/
@Override
public PageResult findList(Map params){
Page page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit"));
List list = baseMapper.findList(page, params);
return PageResult.builder().data(list).code(0).count(page.getTotal()).build();
}
/**
* 列表
* @param params
* @return
*/
@Override
public List findAllList(Map params){
return baseMapper.findList(params);
}
/**
* 根据ConsumptionRecord对象当做查询条件进行查询
* @param consumptionRecord
* @return ConsumptionRecord
*/
@Override
public ConsumptionRecord findByObject(ConsumptionRecord consumptionRecord){
return baseMapper.findByObject(consumptionRecord);
}
/**
*
* @param hospitalId
* @param departmentId
* @return
*/
public boolean deductionDepartmentProduct(Long hospitalId,Long departmentId)
{
UserProductDetail userProductDetail=productOrderDetailService.getUserProductDetail(hospitalId,departmentId);
//合并集合
userProductDetail.getProductOrderJoinDetailListShare().addAll(userProductDetail.getProductOrderJoinDetailsListDep());
List productOrderJoinDetailList=userProductDetail.getProductOrderJoinDetailListShare();
//Collections.sort(productOrderJoinDetailList);
return false;
}
/**
* 写/更新记录数据
* @param consumptionRecord
* @return
*/
public ConsumptionRecord SaveConsumptionRecord(ConsumptionRecord consumptionRecord)
{
if (consumptionRecord != null) {
this.saveOrUpdate(consumptionRecord);
return consumptionRecord;
}
return null;
}
/**
* 检查该业务是否存在该业务类型
* @param consumptionRecordList 该业务下的扣费列表
* @param recordType 记录类型编码 参考ConsumptionConstant里面
* @return
*/
public boolean isBeforeDeduction(List consumptionRecordList,int recordType)
{
if (consumptionRecordList != null) {
if (consumptionRecordList.size()>0) {
//过滤预扣费的记录
return consumptionRecordList.stream().filter(f->f.getRecordType()==recordType).collect(Collectors.toList()).size()==1;
}
}
return false;
}
/**
* 获取一个业务关联的扣费记录
* @param businessId 光片的名称/编号
* @return
*/
public List GetBusinessConsumptionList(String businessId)
{
if (StringUtils.isNotBlank(businessId)) {
Map params = new HashMap<>();
params.put("businessId", businessId);
List consumptionRecordList=this.findAllList(params);
return consumptionRecordList;
}
return null;
}
/**
* 获取一个扣费记录
* @param recordId 扣费记录id
* @return
*/
public ConsumptionRecord GetBusinessConsumptionList(Long recordId)
{
if (recordId>0) {
return baseMapper.selectById(recordId);
}
return null;
}
}