|
@@ -2370,12 +2370,104 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
|
|
return list;
|
|
return list;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 获取每月实际的人工支出+其他成本
|
|
|
|
+ * @param y
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public List<BigDecimal> getAllMonthStaffCostByYear3(int y) {
|
|
|
|
+ //获取所有今年的固定计划,计划开始时间和结束时间是今年的
|
|
|
|
+ List<ProjectCostBudget> budgets = baseMapper.getBudgetByYear2(y);
|
|
|
|
+ List<BigDecimal> list = new ArrayList<>();
|
|
|
|
+ if (budgets != null && budgets.size() > 0){
|
|
|
|
+ for (int i = 0; i < 12; i++) {
|
|
|
|
+ BigDecimal big = new BigDecimal(0);
|
|
|
|
+ for (ProjectCostBudget budget : budgets) {
|
|
|
|
+ //如果计划实际开始时间和实际结束时间中有当月
|
|
|
|
+ if ((budget.getPlanStartTime().getMonthValue() == (i+1) && budget.getPlanStartTime().getYear() == y)
|
|
|
|
+ || ((budget.getPlanEndTime().getMonthValue() == (i+1)) && budget.getPlanEndTime().getYear() == y)){
|
|
|
|
+ //如果实际结束时间是当月
|
|
|
|
+ if ((budget.getPlanEndTime().getMonthValue() == (i+1) && budget.getPlanEndTime().getYear() == y)) {
|
|
|
|
+ if (budget.getPlanIsTwoMonth() == 0){
|
|
|
|
+ //人工成本没跨月,证明开始时间和结束时间是同一个月,直接使用人工成本到当月
|
|
|
|
+ big = big.add(budget.getPlanStaffCost());
|
|
|
|
+ }else {
|
|
|
|
+ big = big.add(budget.getPlanEndMoney());
|
|
|
|
+ }
|
|
|
|
+ ////如果实际开始时间是当月
|
|
|
|
+ }else if ((budget.getPlanStartTime().getMonthValue() == (i+1)) && budget.getPlanStartTime().getYear() == y){
|
|
|
|
+ if (budget.getPlanIsTwoMonth() == 0){
|
|
|
|
+ //人工成本没跨月,证明开始时间和结束时间是同一个月,直接使用人工成本到当月
|
|
|
|
+ big = big.add(budget.getPlanStaffCost());
|
|
|
|
+ }else {
|
|
|
|
+ big = big.add(budget.getPlanStartMoney());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ list.add(big);
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
|
|
+ for (int i = 0; i < 12; i++) {
|
|
|
|
+ list.add(new BigDecimal(0));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return list;
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 获取每月实际的人工支出,
|
|
* 获取每月实际的人工支出,
|
|
* @param y
|
|
* @param y
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
|
|
+ public List<BigDecimal> getAllMonthStaffCostByYear2(int y) {
|
|
|
|
+ //获取所有今年的固定计划,计划开始时间和结束时间是今年的
|
|
|
|
+ List<ProjectCostBudget> budgets = baseMapper.getBudgetByYear2(y);
|
|
|
|
+ List<BigDecimal> list = new ArrayList<>();
|
|
|
|
+ if (budgets != null && budgets.size() > 0){
|
|
|
|
+ for (int i = 0; i < 12; i++) {
|
|
|
|
+ BigDecimal big = new BigDecimal(0);
|
|
|
|
+ for (ProjectCostBudget budget : budgets) {
|
|
|
|
+ //如果计划实际开始时间和实际结束时间中有当月
|
|
|
|
+ if ((budget.getPlanStartTime().getMonthValue() == (i+1) && budget.getPlanStartTime().getYear() == y)
|
|
|
|
+ || ((budget.getPlanEndTime().getMonthValue() == (i+1)) && budget.getPlanEndTime().getYear() == y)){
|
|
|
|
+ //如果实际结束时间是当月
|
|
|
|
+ if ((budget.getPlanEndTime().getMonthValue() == (i+1) && budget.getPlanEndTime().getYear() == y)) {
|
|
|
|
+ if (budget.getPlanIsTwoMonth() == 0){
|
|
|
|
+ //人工成本没跨月,证明开始时间和结束时间是同一个月,直接使用人工成本到当月
|
|
|
|
+ big = big.add(budget.getPlanStaffCost());
|
|
|
|
+ }else {
|
|
|
|
+ big = big.add(budget.getPlanEndMoney());
|
|
|
|
+ }
|
|
|
|
+ ////如果实际开始时间是当月
|
|
|
|
+ }else if ((budget.getPlanStartTime().getMonthValue() == (i+1)) && budget.getPlanStartTime().getYear() == y){
|
|
|
|
+ if (budget.getPlanIsTwoMonth() == 0){
|
|
|
|
+ //人工成本没跨月,证明开始时间和结束时间是同一个月,直接使用人工成本到当月
|
|
|
|
+ big = big.add(budget.getPlanStaffCost());
|
|
|
|
+ }else {
|
|
|
|
+ big = big.add(budget.getPlanStartMoney());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ list.add(big);
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
|
|
+ for (int i = 0; i < 12; i++) {
|
|
|
|
+ list.add(new BigDecimal(0));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return list;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 获取每月预算的人工支出,
|
|
|
|
+ * @param y
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
public List<BigDecimal> getAllMonthStaffCostByYear(int y) {
|
|
public List<BigDecimal> getAllMonthStaffCostByYear(int y) {
|
|
//获取已经闭环的任务
|
|
//获取已经闭环的任务
|
|
List<ProjectCostBudget> budgets = baseMapper.getBudgetByYear(y);
|
|
List<ProjectCostBudget> budgets = baseMapper.getBudgetByYear(y);
|