|
@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
+import com.mysql.cj.protocol.x.ReusableInputStream;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
import org.springblade.common.utils.SnowFlakeUtil;
|
|
import org.springblade.common.utils.SnowFlakeUtil;
|
|
import org.springblade.control.dto.ControlProjectInfoDTO;
|
|
import org.springblade.control.dto.ControlProjectInfoDTO;
|
|
@@ -52,6 +53,8 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, C
|
|
|
|
|
|
private final JdbcTemplate jdbcTemplate;
|
|
private final JdbcTemplate jdbcTemplate;
|
|
|
|
|
|
|
|
+ private final IEmployeeTaskInfoService employeeTaskInfoService;
|
|
|
|
+
|
|
|
|
|
|
public String getProjectNameByBudgetId(Long id){
|
|
public String getProjectNameByBudgetId(Long id){
|
|
return baseMapper.getProjectNameByBudgetId(id);
|
|
return baseMapper.getProjectNameByBudgetId(id);
|
|
@@ -170,11 +173,13 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, C
|
|
@Override
|
|
@Override
|
|
public AllProjectStatsVO allProjectStats() {
|
|
public AllProjectStatsVO allProjectStats() {
|
|
AllProjectStatsVO vo = baseMapper.allProjectStats();
|
|
AllProjectStatsVO vo = baseMapper.allProjectStats();
|
|
|
|
+ //获取截至目前的人工支出
|
|
|
|
+ BigDecimal salary = employeeTaskInfoService.getAllEmployeeSalaryByYear(0);
|
|
//获取截至目前所有维护支出
|
|
//获取截至目前所有维护支出
|
|
- BigDecimal cost2 = budgetService.getAllMaintainCost2();
|
|
|
|
|
|
+ BigDecimal cost2 = employeeTaskInfoService.getAllMaintainSalaryByYear(0);
|
|
//所有的报销支出
|
|
//所有的报销支出
|
|
BigDecimal decimal = this.getThisYearReimburse(0);
|
|
BigDecimal decimal = this.getThisYearReimburse(0);
|
|
- vo.setAllPracticalDisburse(vo.getAllPracticalDisburse().add(cost2).add(decimal));
|
|
|
|
|
|
+ vo.setAllPracticalDisburse(salary.add(cost2).add(decimal));
|
|
return vo;
|
|
return vo;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -184,12 +189,10 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, C
|
|
@Override
|
|
@Override
|
|
public List<AllProjectStatsVO> ProjectListStats() {
|
|
public List<AllProjectStatsVO> ProjectListStats() {
|
|
List<AllProjectStatsVO> vos = baseMapper.ProjectListStats();
|
|
List<AllProjectStatsVO> vos = baseMapper.ProjectListStats();
|
|
|
|
+ //获取人工支出
|
|
|
|
+ Map<Long, BigDecimal> costMap = employeeTaskInfoService.getAllEmployeeSalaryByYear3(0);
|
|
//获取维护支出
|
|
//获取维护支出
|
|
- Map<Long, BigDecimal> map = budgetService.getAllMaintainCost5();
|
|
|
|
- Boolean isMaintain = true;
|
|
|
|
- if (map == null || map.size() <= 0){
|
|
|
|
- isMaintain = false;
|
|
|
|
- }
|
|
|
|
|
|
+ Map<Long, BigDecimal> maintainMap = employeeTaskInfoService.getAllMaintainSalaryByYear3(0);
|
|
//报销支出
|
|
//报销支出
|
|
Map<Long, BigDecimal> reimburseMap = this.getYearReimburseByYear(0);
|
|
Map<Long, BigDecimal> reimburseMap = this.getYearReimburseByYear(0);
|
|
Boolean isReimburse = true;
|
|
Boolean isReimburse = true;
|
|
@@ -197,23 +200,23 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, C
|
|
isReimburse = false;
|
|
isReimburse = false;
|
|
}
|
|
}
|
|
for (AllProjectStatsVO vo : vos) {
|
|
for (AllProjectStatsVO vo : vos) {
|
|
- if (isMaintain) {
|
|
|
|
- BigDecimal decimal = map.get(vo.getProjectId());
|
|
|
|
- //维护支出
|
|
|
|
- if (decimal != null) {
|
|
|
|
- if (vo.getPracticalPayCost() == null){
|
|
|
|
- vo.setPracticalPayCost(new BigDecimal(0));
|
|
|
|
- }
|
|
|
|
- vo.setPracticalPayCost(vo.getPracticalPayCost().add(decimal));
|
|
|
|
- }
|
|
|
|
- //计算报销
|
|
|
|
- if (isReimburse){
|
|
|
|
- BigDecimal decimals = reimburseMap.get(vo.getProjectId());
|
|
|
|
- if (decimals != null){
|
|
|
|
- vo.setPracticalPayCost(vo.getPracticalPayCost().add(decimals));
|
|
|
|
- }
|
|
|
|
|
|
+ BigDecimal big = new BigDecimal(0);
|
|
|
|
+ //人工支出
|
|
|
|
+ if (costMap != null && costMap.get(vo.getProjectId()) != null){
|
|
|
|
+ big = big.add(costMap.get(vo.getProjectId()));
|
|
|
|
+ }
|
|
|
|
+ //维护支出
|
|
|
|
+ if (maintainMap != null && maintainMap.get(vo.getProjectId()) != null){
|
|
|
|
+ big = big.add(maintainMap.get(vo.getProjectId()));
|
|
|
|
+ }
|
|
|
|
+ //计算报销
|
|
|
|
+ if (isReimburse){
|
|
|
|
+ BigDecimal decimals = reimburseMap.get(vo.getProjectId());
|
|
|
|
+ if (decimals != null){
|
|
|
|
+ big = big.add(decimals);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ vo.setPracticalPayCost(big);
|
|
}
|
|
}
|
|
return vos;
|
|
return vos;
|
|
}
|
|
}
|
|
@@ -228,25 +231,16 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, C
|
|
List<DictInfo> costTypeDict = baseMapper.getCostTypeDict();
|
|
List<DictInfo> costTypeDict = baseMapper.getCostTypeDict();
|
|
//获取项目所有预算
|
|
//获取项目所有预算
|
|
List<ProjectCostBudget> budgets = budgetService.getAllBudgetByProjectId(id);
|
|
List<ProjectCostBudget> budgets = budgetService.getAllBudgetByProjectId(id);
|
|
- //获取项目所有的维护预算
|
|
|
|
- Set<Long> set = budgetService.getAllMaintainBudgetId(id);
|
|
|
|
- //从预算中排除维护预算
|
|
|
|
-// budgets = budgets.stream().filter(l->!set.contains(l.getId())).collect(Collectors.toList());
|
|
|
|
- //获取项目所有维护预算
|
|
|
|
- Map<Integer, BigDecimal> map = budgetService.getAllMaintainCost6(id);
|
|
|
|
- Boolean isMaintain = true;
|
|
|
|
- if (map == null || map.size() <= 0){
|
|
|
|
- isMaintain = false;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
+ //人工支出
|
|
|
|
+ Map<Integer, BigDecimal> costMap = employeeTaskInfoService.getAllEmployeeSalaryByProject2(id);
|
|
|
|
+ //维护支出
|
|
|
|
+ Map<Integer, BigDecimal> maintainMap = employeeTaskInfoService.getAllMaintainSalaryByProject2(id);
|
|
//报销支出
|
|
//报销支出
|
|
Map<Integer, BigDecimal> reimburseMap = this.getProjectReimburseByCostType(id);
|
|
Map<Integer, BigDecimal> reimburseMap = this.getProjectReimburseByCostType(id);
|
|
Boolean isReimburse = true;
|
|
Boolean isReimburse = true;
|
|
if (reimburseMap == null || reimburseMap.size() <= 0){
|
|
if (reimburseMap == null || reimburseMap.size() <= 0){
|
|
isReimburse = false;
|
|
isReimburse = false;
|
|
}
|
|
}
|
|
- //获取项目所有实际费用
|
|
|
|
- List<ProjectCostBudget> practicalList = budgetService.getAllPracticalBudgetByProjectId(id);
|
|
|
|
if (budgets != null && budgets.size() > 0){
|
|
if (budgets != null && budgets.size() > 0){
|
|
Map<Integer, List<ProjectCostBudget>> budgetMap = budgets.parallelStream()
|
|
Map<Integer, List<ProjectCostBudget>> budgetMap = budgets.parallelStream()
|
|
.collect(Collectors.groupingBy(ProjectCostBudget::getCostType));
|
|
.collect(Collectors.groupingBy(ProjectCostBudget::getCostType));
|
|
@@ -262,31 +256,19 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, C
|
|
bigDecimal = bigDecimal.add(budget.getBudgetCountMoney());
|
|
bigDecimal = bigDecimal.add(budget.getBudgetCountMoney());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- //加上每个部门的维护预算
|
|
|
|
-// if (isMaintain){
|
|
|
|
-// BigDecimal decimal = map.get(i);
|
|
|
|
-// if (decimal != null){
|
|
|
|
-// bigDecimal = bigDecimal.add(decimal);
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
|
|
+ //测算成本
|
|
vo.setBudgetCost(bigDecimal);
|
|
vo.setBudgetCost(bigDecimal);
|
|
//设置费用分类实际费用,目前设置人工,维护支出,报销支出
|
|
//设置费用分类实际费用,目前设置人工,维护支出,报销支出
|
|
BigDecimal practicalCost = new BigDecimal(0);
|
|
BigDecimal practicalCost = new BigDecimal(0);
|
|
- if (practicalList != null && practicalList.size() > 0){
|
|
|
|
- for (ProjectCostBudget budget : practicalList) {
|
|
|
|
- if (budget.getCostType() == i){
|
|
|
|
- practicalCost = practicalCost.add(budget.getActualTotalMoney());
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ //人工成本
|
|
|
|
+ if (costMap != null && costMap.get(i) != null ){
|
|
|
|
+ practicalCost = practicalCost.add(costMap.get(i));
|
|
}
|
|
}
|
|
- //加上每个部门的维护支出
|
|
|
|
- if (isMaintain){
|
|
|
|
- BigDecimal decimal = map.get(i);
|
|
|
|
- if (decimal != null){
|
|
|
|
- practicalCost = practicalCost.add(decimal);
|
|
|
|
- }
|
|
|
|
|
|
+ //维护支出
|
|
|
|
+ if (maintainMap != null && maintainMap.get(i) != null ){
|
|
|
|
+ practicalCost = practicalCost.add(maintainMap.get(i));
|
|
}
|
|
}
|
|
- //加上每个部门的报销支出
|
|
|
|
|
|
+ //报销支出
|
|
if (isReimburse){
|
|
if (isReimburse){
|
|
BigDecimal decimals = reimburseMap.get(i);
|
|
BigDecimal decimals = reimburseMap.get(i);
|
|
if (decimals != null){
|
|
if (decimals != null){
|
|
@@ -304,35 +286,8 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, C
|
|
list.get(0).setTotal(big);
|
|
list.get(0).setTotal(big);
|
|
}
|
|
}
|
|
return list;
|
|
return list;
|
|
- }else {
|
|
|
|
- if (isMaintain){
|
|
|
|
- for (int i = 1; i <= 6; i++) {
|
|
|
|
- AllProjectStatsVO vo = new AllProjectStatsVO();
|
|
|
|
- vo.setProjectId(id);
|
|
|
|
- vo.setCostType(i);
|
|
|
|
- vo.setCostTypeValue(costTypeDict.get(i-1).getDictName());
|
|
|
|
- BigDecimal bigDecimal = new BigDecimal(0);
|
|
|
|
- BigDecimal practicalCost = new BigDecimal(0);
|
|
|
|
- if (practicalList != null && practicalList.size() > 0){
|
|
|
|
- for (ProjectCostBudget budget : practicalList) {
|
|
|
|
- if (budget.getCostType() == i){
|
|
|
|
- practicalCost = practicalCost.add(budget.getActualTotalMoney());
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- BigDecimal decimal = map.get(i);
|
|
|
|
- if (decimal != null){
|
|
|
|
- bigDecimal = bigDecimal.add(decimal);
|
|
|
|
- practicalCost = practicalCost.add(decimal);
|
|
|
|
- }
|
|
|
|
- vo.setBudgetCost(bigDecimal);
|
|
|
|
- vo.setPracticalCost(practicalCost);
|
|
|
|
- list.add(vo);
|
|
|
|
- }
|
|
|
|
- return list;
|
|
|
|
- }
|
|
|
|
- return null;
|
|
|
|
}
|
|
}
|
|
|
|
+ return null;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|