|
@@ -1,25 +1,32 @@
|
|
package org.springblade.control.service.impl;
|
|
package org.springblade.control.service.impl;
|
|
|
|
|
|
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.extension.plugins.pagination.Page;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
import org.springblade.common.utils.SnowFlakeUtil;
|
|
import org.springblade.common.utils.SnowFlakeUtil;
|
|
|
|
+import org.springblade.control.dto.ControlContractInfoDTO;
|
|
import org.springblade.control.dto.ControlProjectInfoDTO;
|
|
import org.springblade.control.dto.ControlProjectInfoDTO;
|
|
-import org.springblade.control.entity.DepartmentMonthPlan;
|
|
|
|
-import org.springblade.control.entity.DictInfo;
|
|
|
|
-import org.springblade.control.entity.ProjectProcess;
|
|
|
|
|
|
+import org.springblade.control.dto.ProjectCostBudgetDTO;
|
|
|
|
+import org.springblade.control.entity.*;
|
|
import org.springblade.control.mapper.DepartmentMonthPlanMapper;
|
|
import org.springblade.control.mapper.DepartmentMonthPlanMapper;
|
|
import org.springblade.control.mapper.ProjectProcessMapper;
|
|
import org.springblade.control.mapper.ProjectProcessMapper;
|
|
import org.springblade.control.service.IDepartmentMonthPlanService;
|
|
import org.springblade.control.service.IDepartmentMonthPlanService;
|
|
|
|
+import org.springblade.control.service.IDepartmentPlanLogService;
|
|
import org.springblade.control.service.IProjectCostBudgetService;
|
|
import org.springblade.control.service.IProjectCostBudgetService;
|
|
import org.springblade.control.service.IProjectProcessService;
|
|
import org.springblade.control.service.IProjectProcessService;
|
|
|
|
+import org.springblade.control.vo.DepartmentMonthPlanVO;
|
|
import org.springblade.control.vo.ProjectCostBudgetVO;
|
|
import org.springblade.control.vo.ProjectCostBudgetVO;
|
|
import org.springblade.control.vo.ProjectProcessVO;
|
|
import org.springblade.control.vo.ProjectProcessVO;
|
|
import org.springblade.core.log.exception.ServiceException;
|
|
import org.springblade.core.log.exception.ServiceException;
|
|
import org.springblade.core.mp.base.BaseServiceImpl;
|
|
import org.springblade.core.mp.base.BaseServiceImpl;
|
|
|
|
+import org.springblade.core.mp.support.Query;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.time.LocalDate;
|
|
import java.time.LocalDate;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
|
+import java.util.Arrays;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -33,6 +40,18 @@ public class DepartmentMonthPlanServiceImpl extends BaseServiceImpl<DepartmentMo
|
|
|
|
|
|
private final IProjectCostBudgetService budgetService;
|
|
private final IProjectCostBudgetService budgetService;
|
|
|
|
|
|
|
|
+ private final IDepartmentPlanLogService logService;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 部门月计划分页
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public List<DepartmentMonthPlanVO> getPage(ControlContractInfoDTO dto, Query query) {
|
|
|
|
+ IPage page = new Page(query.getCurrent(), query.getSize());
|
|
|
|
+ return baseMapper.getPage(page,dto);
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 新增部门月计划
|
|
* 新增部门月计划
|
|
*/
|
|
*/
|
|
@@ -51,6 +70,25 @@ public class DepartmentMonthPlanServiceImpl extends BaseServiceImpl<DepartmentMo
|
|
String planDate = plan.getPlanDate();
|
|
String planDate = plan.getPlanDate();
|
|
String[] date = planDate.split("-");
|
|
String[] date = planDate.split("-");
|
|
plan.setPlanName(date[0]+"年"+date[1]+"月"+departmentName+"预算计划");
|
|
plan.setPlanName(date[0]+"年"+date[1]+"月"+departmentName+"预算计划");
|
|
|
|
+ LocalDate startDate;
|
|
|
|
+ LocalDate endDate;
|
|
|
|
+ startDate = LocalDate.of(Integer.parseInt(date[0]),Integer.parseInt(date[1]),1);
|
|
|
|
+ if (Arrays.asList("1,3,5,7,8,10,12".split(",")).contains(Integer.parseInt(date[1]))){
|
|
|
|
+ endDate = LocalDate.of(Integer.parseInt(date[0]),Integer.parseInt(date[1]),31);
|
|
|
|
+ }else {
|
|
|
|
+ if (Integer.parseInt(date[1]) != 2) {
|
|
|
|
+ endDate = LocalDate.of(Integer.parseInt(date[0]), Integer.parseInt(date[1]), 30);
|
|
|
|
+ }else {
|
|
|
|
+ if (Integer.parseInt(date[1]) % 4 == 0){
|
|
|
|
+ endDate = LocalDate.of(Integer.parseInt(date[0]), Integer.parseInt(date[1]), 29);
|
|
|
|
+ }else {
|
|
|
|
+ endDate = LocalDate.of(Integer.parseInt(date[0]), Integer.parseInt(date[1]), 28);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ plan.setPlanStartDate(startDate);
|
|
|
|
+ plan.setPlanEndDate(endDate);
|
|
this.save(plan);
|
|
this.save(plan);
|
|
//查询出部门当月的项目计划,返回
|
|
//查询出部门当月的项目计划,返回
|
|
return getDepartmentPlan(plan);
|
|
return getDepartmentPlan(plan);
|
|
@@ -80,4 +118,33 @@ public class DepartmentMonthPlanServiceImpl extends BaseServiceImpl<DepartmentMo
|
|
}
|
|
}
|
|
return voList;
|
|
return voList;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 修改部门月计划
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ @Transactional
|
|
|
|
+ public void updateDepartmentPlan(ProjectCostBudgetDTO dto) {
|
|
|
|
+ List<ProjectCostBudget> list = dto.getDepartmentPlanList();
|
|
|
|
+ if (list != null && list.size() > 0){
|
|
|
|
+ for (ProjectCostBudget budget : list) {
|
|
|
|
+ if (budget.getTaskUser() != null && budget.getStatus() == 1){
|
|
|
|
+ //分配任务人,开始执行计划
|
|
|
|
+ DepartmentPlanLog planLog = new DepartmentPlanLog();
|
|
|
|
+ planLog.setPlanId(budget.getId());
|
|
|
|
+ planLog.setPlanStartTime(budget.getPlanStartTime());
|
|
|
|
+ planLog.setPlanEndTime(budget.getPlanEndTime());
|
|
|
|
+ planLog.setRealPlanStartTime(LocalDate.now());
|
|
|
|
+ planLog.setPlanDays(budget.getPlanDays());
|
|
|
|
+ planLog.setSort(1);
|
|
|
|
+ logService.save(planLog);
|
|
|
|
+ //修改计划状态为进行中
|
|
|
|
+ budget.setStatus(2);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ budgetService.updateBatchById(list);
|
|
|
|
+ }else {
|
|
|
|
+ throw new ServiceException("暂无数据,无需保存");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|