|
@@ -59,6 +59,8 @@ public class StandardReportServiceImpl implements StandardReportService {
|
|
|
ItemRepository itemRepository;
|
|
ItemRepository itemRepository;
|
|
|
|
|
|
|
|
ComputeProjectCostAccountRepository computeProjectCostAccountRepository;
|
|
ComputeProjectCostAccountRepository computeProjectCostAccountRepository;
|
|
|
|
|
+
|
|
|
|
|
+ ComputePatientCostAccountRepository computePatientCostAccountRepository;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 科室直接成本表(医疗成本)
|
|
* 科室直接成本表(医疗成本)
|
|
@@ -878,11 +880,53 @@ public class StandardReportServiceImpl implements StandardReportService {
|
|
|
DictDataVo costType = standCostDictMaps.getCostTypeMap().get(projectCostAccount.getCostTypeCode());
|
|
DictDataVo costType = standCostDictMaps.getCostTypeMap().get(projectCostAccount.getCostTypeCode());
|
|
|
HospitalServiceProjectCostVO vo = new HospitalServiceProjectCostVO();
|
|
HospitalServiceProjectCostVO vo = new HospitalServiceProjectCostVO();
|
|
|
//已有的项目类别
|
|
//已有的项目类别
|
|
|
- if (projectCostMap.containsKey(projectCostAccount.getCostItemCode())) {
|
|
|
|
|
- vo = projectCostMap.get(projectCostAccount.getCostItemCode());
|
|
|
|
|
|
|
+ if (projectCostMap.containsKey(projectCostAccount.getItemCode())) {
|
|
|
|
|
+ vo = projectCostMap.get(projectCostAccount.getItemCode());
|
|
|
|
|
+ } else {
|
|
|
|
|
+ //新建一个项目类别对象
|
|
|
|
|
+ projectCostMap.put(projectCostAccount.getItemCode(), projectCostAccount);
|
|
|
|
|
+ }
|
|
|
|
|
+ // 医疗成本
|
|
|
|
|
+ if ("1".equals(costType.getExpandOne())) {
|
|
|
|
|
+ vo.setMedicalCost(vo.getMedicalCost().add(projectCostAccount.getHospitalFullCost()));
|
|
|
|
|
+ }
|
|
|
|
|
+ // 医疗全成本
|
|
|
|
|
+ if (!"3".equals(costType.getExpandOne())) {
|
|
|
|
|
+ vo.setMedicalFullCost(vo.getMedicalFullCost().add(projectCostAccount.getHospitalFullCost()));
|
|
|
|
|
+ }
|
|
|
|
|
+ // 医院全成本
|
|
|
|
|
+ vo.setHospitalFullCost(vo.getHospitalFullCost().add(projectCostAccount.getHospitalFullCost()));
|
|
|
|
|
+ }
|
|
|
|
|
+ List<HospitalServiceProjectCostVO> medServiceCostDetailList =new ArrayList<>(projectCostMap.values());
|
|
|
|
|
+ return medServiceCostDetailList;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 获取医院病种成本明细表数据
|
|
|
|
|
+ *
|
|
|
|
|
+ * @return 病种成本明细列表
|
|
|
|
|
+ */
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public List<HospitalServiceProjectCostVO> getDiseaseCostDetail(String computeDate) {
|
|
|
|
|
+ List<HospitalServiceProjectCostVO> projectCostAccountList = computePatientCostAccountRepository.getDiseaseCostDetailList(computeDate);
|
|
|
|
|
+ if(CollectionUtils.isEmpty(projectCostAccountList)){
|
|
|
|
|
+ throw new CostException("请先计算患者成本");
|
|
|
|
|
+ }
|
|
|
|
|
+ // 获取所有的标准字典数据
|
|
|
|
|
+ StandCostDictMapVO standCostDictMaps = getStandCostDictMaps();
|
|
|
|
|
+ // 记录项目类别对象
|
|
|
|
|
+ Map<String, HospitalServiceProjectCostVO> projectCostMap = new HashMap<>();
|
|
|
|
|
+ for (HospitalServiceProjectCostVO projectCostAccount : projectCostAccountList) {
|
|
|
|
|
+ //按项目类型累加数据
|
|
|
|
|
+ DictDataVo costType = standCostDictMaps.getCostTypeMap().get(projectCostAccount.getCostTypeCode());
|
|
|
|
|
+ HospitalServiceProjectCostVO vo = new HospitalServiceProjectCostVO();
|
|
|
|
|
+ //已有的项目类别
|
|
|
|
|
+ if (projectCostMap.containsKey(projectCostAccount.getItemCode())) {
|
|
|
|
|
+ vo = projectCostMap.get(projectCostAccount.getItemCode());
|
|
|
} else {
|
|
} else {
|
|
|
//新建一个项目类别对象
|
|
//新建一个项目类别对象
|
|
|
- projectCostMap.put(projectCostAccount.getCostItemCode(), projectCostAccount);
|
|
|
|
|
|
|
+ projectCostMap.put(projectCostAccount.getItemCode(), projectCostAccount);
|
|
|
}
|
|
}
|
|
|
// 医疗成本
|
|
// 医疗成本
|
|
|
if ("1".equals(costType.getExpandOne())) {
|
|
if ("1".equals(costType.getExpandOne())) {
|
|
@@ -988,14 +1032,14 @@ public class StandardReportServiceImpl implements StandardReportService {
|
|
|
List<HospitalServiceProjectCostVO> hospitalServiceProjectCostVOS =firstLevel.stream().map( item->convertToHospitalServiceProjectCostVO(item)).collect(Collectors.toList());
|
|
List<HospitalServiceProjectCostVO> hospitalServiceProjectCostVOS =firstLevel.stream().map( item->convertToHospitalServiceProjectCostVO(item)).collect(Collectors.toList());
|
|
|
for (HospitalServiceProjectCostVO item : hospitalServiceProjectCostVOS) {
|
|
for (HospitalServiceProjectCostVO item : hospitalServiceProjectCostVOS) {
|
|
|
//先加自己的
|
|
//先加自己的
|
|
|
- if(projectCostMap.containsKey(item.getCostItemCode())){
|
|
|
|
|
- addBigDecimalFields(projectCostMap.get(item.getCostItemCode()), item);
|
|
|
|
|
|
|
+ if(projectCostMap.containsKey(item.getItemCode())){
|
|
|
|
|
+ addBigDecimalFields(projectCostMap.get(item.getItemCode()), item);
|
|
|
}
|
|
}
|
|
|
if(CollectionUtils.isEmpty(sencodLevel)){
|
|
if(CollectionUtils.isEmpty(sencodLevel)){
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
|
//第一层对应的第二层数据
|
|
//第一层对应的第二层数据
|
|
|
- List<StandItem> children = sencodLevel.stream().filter(child -> item.getCostItemCode().equals(child.getParentCode())).collect(Collectors.toList());
|
|
|
|
|
|
|
+ List<StandItem> children = sencodLevel.stream().filter(child -> item.getItemCode().equals(child.getParentCode())).collect(Collectors.toList());
|
|
|
if(CollectionUtils.isEmpty( children)){
|
|
if(CollectionUtils.isEmpty( children)){
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
@@ -1020,8 +1064,8 @@ public class StandardReportServiceImpl implements StandardReportService {
|
|
|
|
|
|
|
|
public HospitalServiceProjectCostVO convertToHospitalServiceProjectCostVO(StandItem standItem){
|
|
public HospitalServiceProjectCostVO convertToHospitalServiceProjectCostVO(StandItem standItem){
|
|
|
HospitalServiceProjectCostVO vo = new HospitalServiceProjectCostVO();
|
|
HospitalServiceProjectCostVO vo = new HospitalServiceProjectCostVO();
|
|
|
- vo.setCostItemCode(standItem.getCode());
|
|
|
|
|
- vo.setCostItemName(standItem.getName());
|
|
|
|
|
|
|
+ vo.setItemCode(standItem.getCode());
|
|
|
|
|
+ vo.setItemName(standItem.getName());
|
|
|
// 初始化所有费用字段为0
|
|
// 初始化所有费用字段为0
|
|
|
BeanUtil.initBigDecimalFieldsToZero(vo);
|
|
BeanUtil.initBigDecimalFieldsToZero(vo);
|
|
|
return vo;
|
|
return vo;
|