|
@@ -2,9 +2,11 @@ package org.springblade.control.service.impl;
|
|
|
|
|
|
|
|
|
import lombok.AllArgsConstructor;
|
|
|
+import org.springblade.common.utils.CommonUtil;
|
|
|
import org.springblade.control.entity.DepartmentPlanLog;
|
|
|
import org.springblade.control.mapper.DepartmentPlanLogMapper;
|
|
|
import org.springblade.control.service.*;;
|
|
|
+import org.springblade.core.log.exception.ServiceException;
|
|
|
import org.springblade.core.mp.base.BaseServiceImpl;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -42,11 +44,11 @@ public class DepartmentPlanLogImpl extends BaseServiceImpl<DepartmentPlanLogMapp
|
|
|
//设置中途暂停计划日期为今天
|
|
|
log.setPauseTime(LocalDate.now());
|
|
|
//计算暂停日期和,中途开启计划的开始日期,之前的工作天数,如果是第一次暂停,则中途开启为null,则计算计划实际开始日期
|
|
|
- Long days;
|
|
|
+ int days;
|
|
|
if (log.getOpenPlanStartTime() != null){
|
|
|
- days = log.getOpenPlanStartTime().until(log.getPauseTime(), ChronoUnit.DAYS);
|
|
|
+ days = CommonUtil.getWorkDays(log.getOpenPlanStartTime(),log.getPauseTime());
|
|
|
}else {
|
|
|
- days = log.getRealPlanStartTime().until(log.getPauseTime(), ChronoUnit.DAYS);
|
|
|
+ days = CommonUtil.getWorkDays(log.getRealPlanStartTime(),log.getPauseTime());
|
|
|
}
|
|
|
//更新计划实际工作日期,如果是第一次暂停则默认为0+
|
|
|
if (log.getRealWorkDays() == null){
|
|
@@ -62,6 +64,9 @@ public class DepartmentPlanLogImpl extends BaseServiceImpl<DepartmentPlanLogMapp
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public void savePlanInPause(DepartmentPlanLog log) {
|
|
|
+ if (log.getPauseTime() == null){
|
|
|
+ throw new ServiceException("请输入暂停时间");
|
|
|
+ }
|
|
|
log.setId(null);
|
|
|
log.setSort(log.getSort()+1);
|
|
|
log.setStatus(0);
|
|
@@ -93,27 +98,46 @@ public class DepartmentPlanLogImpl extends BaseServiceImpl<DepartmentPlanLogMapp
|
|
|
//计算剩余工作量
|
|
|
BigDecimal days = log.getPlanDays().subtract(log.getRealWorkDays());
|
|
|
//如果剩余天数大于0,才设置默认值
|
|
|
- if (days.intValue() > 0) {
|
|
|
- //设置默认,开启计划开启时间为今天
|
|
|
- log.setOpenPlanStartTime(LocalDate.now());
|
|
|
- //设置默认,开启计划结束时间为剩下的工作量加上今天
|
|
|
- log.setOpenPlanEndTime(LocalDate.now().plusDays(days.longValue()));
|
|
|
- //设置中途开启的计划起止天数,默认值为剩余工作量
|
|
|
- log.setOpenPlanStartEndDays(days);
|
|
|
- }else {
|
|
|
- log.setOpenPlanStartTime(null);
|
|
|
- log.setOpenPlanEndTime(null);
|
|
|
- log.setOpenPlanStartEndDays(null);
|
|
|
- }
|
|
|
+// if (days.intValue() > 0) {
|
|
|
+// //设置默认,开启计划开启时间为今天
|
|
|
+// log.setOpenPlanStartTime(LocalDate.now());
|
|
|
+// //设置默认,开启计划结束时间为剩下的工作量加上今天
|
|
|
+// log.setOpenPlanEndTime(LocalDate.now().plusDays(days.longValue()));
|
|
|
+// //设置中途开启的计划起止天数,默认值为剩余工作量
|
|
|
+// log.setOpenPlanStartEndDays(days);
|
|
|
+// }else {
|
|
|
+// log.setOpenPlanStartTime(null);
|
|
|
+// log.setOpenPlanEndTime(null);
|
|
|
+// log.setOpenPlanStartEndDays(null);
|
|
|
+// }
|
|
|
+ log.setOpenPlanStartTime(null);
|
|
|
+ log.setOpenPlanEndTime(null);
|
|
|
+ log.setOpenPlanStartEndDays(null);
|
|
|
return log;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void savePlanInOpen(DepartmentPlanLog log) {
|
|
|
+ if (log.getOpenPlanStartTime() == null || log.getOpenPlanEndTime() == null){
|
|
|
+ throw new ServiceException("请输入完整的起止时间");
|
|
|
+ }
|
|
|
log.setId(null);
|
|
|
log.setSort(log.getSort()+1);
|
|
|
log.setStatus(1);
|
|
|
this.save(log);
|
|
|
budgetService.updateStatus(log.getPlanId(),2);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 修改开启计划时间,目前只能修改停止时间
|
|
|
+ * @param log
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public DepartmentPlanLog updateOpenTime(DepartmentPlanLog log) {
|
|
|
+ //计算中途开启的工作日
|
|
|
+ int planDays = CommonUtil.getWorkDays(log.getOpenPlanStartTime(), log.getOpenPlanEndTime());
|
|
|
+ log.setOpenPlanStartEndDays(new BigDecimal(planDays));
|
|
|
+ return log;
|
|
|
+ }
|
|
|
}
|