|
@@ -6,15 +6,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import org.springblade.common.utils.SnowFlakeUtil;
|
|
|
import org.springblade.control.dto.ControlProjectInfoDTO;
|
|
|
-import org.springblade.control.entity.ControlContractInfo;
|
|
|
-import org.springblade.control.entity.ControlProjectInfo;
|
|
|
-import org.springblade.control.entity.DictInfo;
|
|
|
-import org.springblade.control.entity.ProjectCostBudgetStats;
|
|
|
+import org.springblade.control.entity.*;
|
|
|
import org.springblade.control.mapper.ProjectInfoMapper;
|
|
|
-import org.springblade.control.service.IContractInfoService;
|
|
|
-import org.springblade.control.service.IProjectCostBudgetStatsService;
|
|
|
-import org.springblade.control.service.IProjectInfoService;
|
|
|
-import org.springblade.control.service.IProjectProcessService;
|
|
|
+import org.springblade.control.service.*;
|
|
|
import org.springblade.control.vo.AllProjectStatsVO;
|
|
|
import org.springblade.control.vo.ControlProjectInfoVO;
|
|
|
import org.springblade.core.log.exception.ServiceException;
|
|
@@ -22,10 +16,16 @@ import org.springblade.core.mp.base.BaseServiceImpl;
|
|
|
import org.springblade.core.mp.support.Query;
|
|
|
import org.springblade.system.entity.DictBiz;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.context.annotation.Lazy;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @Param
|
|
@@ -38,6 +38,7 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, C
|
|
|
private final ProjectInfoMapper infoMapper;
|
|
|
private final IProjectProcessService processService;
|
|
|
private final IContractInfoService contractInfoService;
|
|
|
+ private final IProjectCostBudgetService budgetService;
|
|
|
|
|
|
/**
|
|
|
* 自定义分页
|
|
@@ -145,5 +146,45 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, C
|
|
|
return baseMapper.allProjectStats();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 项目统计列表统计
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<AllProjectStatsVO> ProjectListStats() {
|
|
|
+ return baseMapper.ProjectListStats();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 项目统计费用分类
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<AllProjectStatsVO> ProjectCostTypeStats(Long id) {
|
|
|
+ List<AllProjectStatsVO> list = new ArrayList<>();
|
|
|
+ //获取费用字典
|
|
|
+ List<DictInfo> costTypeDict = baseMapper.getCostTypeDict();
|
|
|
+ //获取项目所有预算
|
|
|
+ List<ProjectCostBudget> budgets = budgetService.getAllBudgetByProjectId(id);
|
|
|
+ if (budgets != null && budgets.size() > 0){
|
|
|
+ Map<Integer, List<ProjectCostBudget>> budgetMap = budgets.parallelStream()
|
|
|
+ .collect(Collectors.groupingBy(ProjectCostBudget::getCostType));
|
|
|
+ for (int i = 1; i <= 6; i++) {
|
|
|
+ AllProjectStatsVO vo = new AllProjectStatsVO();
|
|
|
+ vo.setCostType(i);
|
|
|
+ vo.setCostTypeValue(costTypeDict.get(i-1).getDictName());
|
|
|
+ List<ProjectCostBudget> costBudgets = budgetMap.get(i-1);
|
|
|
+ BigDecimal bigDecimal = new BigDecimal(0);
|
|
|
+ if (costBudgets != null && costBudgets.size() > 0){
|
|
|
+ for (ProjectCostBudget budget : costBudgets) {
|
|
|
+ bigDecimal = bigDecimal.add(budget.getBudgetCountMoney());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ vo.setBudgetCost(bigDecimal);
|
|
|
+ list.add(vo);
|
|
|
+ }
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|