|
@@ -55,6 +55,7 @@ public class StandardReportServiceImpl implements StandardReportService {
|
|
|
ShareParamValueRepository shareParamValueRepository;
|
|
ShareParamValueRepository shareParamValueRepository;
|
|
|
|
|
|
|
|
StandItemRepository standItemRepository;
|
|
StandItemRepository standItemRepository;
|
|
|
|
|
+
|
|
|
ItemRepository itemRepository;
|
|
ItemRepository itemRepository;
|
|
|
|
|
|
|
|
ComputeProjectCostAccountRepository computeProjectCostAccountRepository;
|
|
ComputeProjectCostAccountRepository computeProjectCostAccountRepository;
|
|
@@ -802,11 +803,8 @@ public class StandardReportServiceImpl implements StandardReportService {
|
|
|
* @param computeDate 核算年月
|
|
* @param computeDate 核算年月
|
|
|
* @return 报表数据
|
|
* @return 报表数据
|
|
|
*/
|
|
*/
|
|
|
-// @Override
|
|
|
|
|
|
|
+ @Override
|
|
|
public List<HospitalServiceProjectCostVO> getHospitalServiceProjectCost(String computeDate) {
|
|
public List<HospitalServiceProjectCostVO> getHospitalServiceProjectCost(String computeDate) {
|
|
|
- Integer year = ComputeDateUtils.getComputeYear(computeDate);
|
|
|
|
|
- Integer month = ComputeDateUtils.getComputeMonth(computeDate);
|
|
|
|
|
-
|
|
|
|
|
List<StandItem> standItemList = standItemRepository.getList();
|
|
List<StandItem> standItemList = standItemRepository.getList();
|
|
|
if(CollectionUtils.isEmpty(standItemList)){
|
|
if(CollectionUtils.isEmpty(standItemList)){
|
|
|
throw new CostException("标准医疗服务项目未维护,请先添加标准医疗服务项目");
|
|
throw new CostException("标准医疗服务项目未维护,请先添加标准医疗服务项目");
|
|
@@ -818,7 +816,7 @@ public class StandardReportServiceImpl implements StandardReportService {
|
|
|
|
|
|
|
|
List<ComputeProjectCostAccount> projectCostAccountList = computeProjectCostAccountRepository.getList(computeDate);
|
|
List<ComputeProjectCostAccount> projectCostAccountList = computeProjectCostAccountRepository.getList(computeDate);
|
|
|
if(CollectionUtils.isEmpty(projectCostAccountList)){
|
|
if(CollectionUtils.isEmpty(projectCostAccountList)){
|
|
|
- throw new CostException("医疗服务项目未维护,请先添加医疗服务项目");
|
|
|
|
|
|
|
+ throw new CostException("请先计算项目成本");
|
|
|
}
|
|
}
|
|
|
// 获取所有的标准字典数据
|
|
// 获取所有的标准字典数据
|
|
|
StandCostDictMapVO standCostDictMaps = getStandCostDictMaps();
|
|
StandCostDictMapVO standCostDictMaps = getStandCostDictMaps();
|
|
@@ -840,7 +838,8 @@ public class StandardReportServiceImpl implements StandardReportService {
|
|
|
vo = projectCostMap.get(projectItemType.getCode());
|
|
vo = projectCostMap.get(projectItemType.getCode());
|
|
|
} else {
|
|
} else {
|
|
|
//新建一个项目类别对象
|
|
//新建一个项目类别对象
|
|
|
- convertToHospitalServiceProjectCostVO(projectItemType);
|
|
|
|
|
|
|
+ vo = convertToHospitalServiceProjectCostVO(projectItemType);
|
|
|
|
|
+ projectCostMap.put(projectItemType.getCode(), vo);
|
|
|
}
|
|
}
|
|
|
// 医疗成本
|
|
// 医疗成本
|
|
|
if ("1".equals(costType.getExpandOne())) {
|
|
if ("1".equals(costType.getExpandOne())) {
|
|
@@ -858,6 +857,47 @@ public class StandardReportServiceImpl implements StandardReportService {
|
|
|
return reportList;
|
|
return reportList;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 获取医院医疗服务项目成本明细表数据
|
|
|
|
|
+ *
|
|
|
|
|
+ * @return 医疗服务项目成本明细列表
|
|
|
|
|
+ */
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public List<HospitalServiceProjectCostVO> getMedicalServiceCostDetail(String computeDate) {
|
|
|
|
|
+
|
|
|
|
|
+ List<HospitalServiceProjectCostVO> projectCostAccountList = computeProjectCostAccountRepository.getMedicalServiceCostDetailList(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.getCostItemCode())) {
|
|
|
|
|
+ vo = projectCostMap.get(projectCostAccount.getCostItemCode());
|
|
|
|
|
+ } else {
|
|
|
|
|
+ //新建一个项目类别对象
|
|
|
|
|
+ projectCostMap.put(projectCostAccount.getCostItemCode(), 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;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 获取项目归属的项目类型
|
|
* 获取项目归属的项目类型
|
|
@@ -948,14 +988,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.getCostCode())){
|
|
|
|
|
- addBigDecimalFields(projectCostMap.get(item.getCostCode()), item);
|
|
|
|
|
|
|
+ if(projectCostMap.containsKey(item.getCostItemCode())){
|
|
|
|
|
+ addBigDecimalFields(projectCostMap.get(item.getCostItemCode()), item);
|
|
|
}
|
|
}
|
|
|
if(CollectionUtils.isEmpty(sencodLevel)){
|
|
if(CollectionUtils.isEmpty(sencodLevel)){
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
|
//第一层对应的第二层数据
|
|
//第一层对应的第二层数据
|
|
|
- List<StandItem> children = sencodLevel.stream().filter(child -> item.getCostCode().equals(child.getParentCode())).collect(Collectors.toList());
|
|
|
|
|
|
|
+ List<StandItem> children = sencodLevel.stream().filter(child -> item.getCostItemCode().equals(child.getParentCode())).collect(Collectors.toList());
|
|
|
if(CollectionUtils.isEmpty( children)){
|
|
if(CollectionUtils.isEmpty( children)){
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
@@ -980,8 +1020,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.setCostCode(standItem.getCode());
|
|
|
|
|
- vo.setCostItem(standItem.getName());
|
|
|
|
|
|
|
+ vo.setCostItemCode(standItem.getCode());
|
|
|
|
|
+ vo.setCostItemName(standItem.getName());
|
|
|
// 初始化所有费用字段为0
|
|
// 初始化所有费用字段为0
|
|
|
BeanUtil.initBigDecimalFieldsToZero(vo);
|
|
BeanUtil.initBigDecimalFieldsToZero(vo);
|
|
|
return vo;
|
|
return vo;
|