diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsScheduleController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsScheduleController.java index aea5f5ab..9932fc4a 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsScheduleController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsScheduleController.java @@ -6,8 +6,14 @@ import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.SystemModule; +import com.qs.serve.common.util.Assert; import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.CopierUtil; +import com.qs.serve.modules.bms.entity.BmsSubject; +import com.qs.serve.modules.tbs.entity.TbsBudget; +import com.qs.serve.modules.tbs.entity.TbsScheduleItem; +import com.qs.serve.modules.tbs.service.TbsBudgetService; +import com.qs.serve.modules.tbs.service.TbsScheduleItemService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; @@ -20,6 +26,7 @@ import com.qs.serve.modules.tbs.service.TbsScheduleService; import javax.validation.Valid; import java.util.List; +import java.util.stream.Collectors; /** * 预算 考核期 @@ -33,7 +40,8 @@ import java.util.List; public class TbsScheduleController { private TbsScheduleService tbsScheduleService; - + private TbsScheduleItemService tbsScheduleItemService; + private TbsBudgetService tbsBudgetService; /** * 列表 * @param param @@ -71,8 +79,9 @@ public class TbsScheduleController { @GetMapping("/getById/{id}") @SysLog(module = SystemModule.Budget, title = "考核期", biz = BizType.QUERY) @PreAuthorize("hasRole('tbs:schedule:query')") - public R getById(@PathVariable("id") String id){ + public R getById(@PathVariable("id") Long id){ TbsSchedule tbsSchedule = tbsScheduleService.getById(id); + tbsSchedule.setScheduleItemlist(tbsScheduleItemService.listByScheduleId(id)); return R.ok(tbsSchedule); } @@ -86,9 +95,16 @@ public class TbsScheduleController { @PostMapping("/updateById") @SysLog(module = SystemModule.Budget, title = "考核期", biz = BizType.UPDATE) @PreAuthorize("hasRole('tbs:schedule:update')") - public R updateById(@RequestBody @Valid TbsScheduleBo param){ - TbsSchedule entity = CopierUtil.copy(param,new TbsSchedule()); + public R updateById(@RequestBody @Valid TbsSchedule entity){ +// TbsSchedule entity = CopierUtil.copy(param,new TbsSchedule()); boolean result = tbsScheduleService.updateById(entity); + List scheduleItems = tbsScheduleItemService.listByScheduleId(entity.getId()); + tbsScheduleItemService.removeBatchByIds(scheduleItems); + List items = entity.getScheduleItemlist().stream().map(a->{ + a.setScheduleId(entity.getId()); + return a; + }).collect(Collectors.toList()); + tbsScheduleItemService.saveBatch(items); return R.isTrue(result); } @@ -103,6 +119,17 @@ public class TbsScheduleController { public R save(@RequestBody @Valid TbsSchedule param){ TbsSchedule entity = CopierUtil.copy(param,new TbsSchedule()); boolean result = tbsScheduleService.save(entity); + if(!result){ + Assert.throwEx("保存失败!"); + } + for(TbsScheduleItem item:entity.getScheduleItemlist()){ + if(item.getStartDate().isAfter(item.getEndDate())){ + Assert.throwEx("开始时间不能大于结束时间"); + } + item.setScheduleId(entity.getId()); + } + tbsScheduleItemService.saveBatch(entity.getScheduleItemlist()); + return R.isTrue(result); } @@ -115,6 +142,11 @@ public class TbsScheduleController { @SysLog(module = SystemModule.Budget, title = "考核期", biz = BizType.DELETE) @PreAuthorize("hasRole('tbs:schedule:delete')") public R deleteById(@PathVariable("id") Long id){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(TbsBudget::getScheduleId,id); + if(tbsBudgetService.count(lqw)>0){ + Assert.throwEx("预算中已使用该周期模板,不能删除"); + } boolean result = tbsScheduleService.removeById(id); return R.isTrue(result); } diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsScheduleItemBudgetController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsScheduleItemBudgetController.java index 09869592..154a3ed2 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsScheduleItemBudgetController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsScheduleItemBudgetController.java @@ -6,6 +6,7 @@ import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.SystemModule; +import com.qs.serve.common.util.Assert; import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.CopierUtil; import lombok.AllArgsConstructor; diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsSchedule.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsSchedule.java index 2b61b005..71fca3f0 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsSchedule.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsSchedule.java @@ -4,11 +4,13 @@ import java.time.LocalDate; import java.io.Serializable; import java.math.BigDecimal; import java.time.LocalDateTime; +import java.util.List; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.qs.serve.modules.bms.entity.BmsRegionUser; import lombok.Data; import org.hibernate.validator.constraints.Length; import org.springframework.format.annotation.DateTimeFormat; @@ -75,5 +77,7 @@ public class TbsSchedule implements Serializable { @JsonProperty private String delFlag; + @TableField(exist = false) + private List scheduleItemlist; } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsScheduleItemService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsScheduleItemService.java index ff8e890f..27f6521e 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsScheduleItemService.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsScheduleItemService.java @@ -3,6 +3,8 @@ package com.qs.serve.modules.tbs.service; import com.baomidou.mybatisplus.extension.service.IService; import com.qs.serve.modules.tbs.entity.TbsScheduleItem; +import java.util.List; + /** * 考核时间项 服务接口 * @author YenHex @@ -10,5 +12,6 @@ import com.qs.serve.modules.tbs.entity.TbsScheduleItem; */ public interface TbsScheduleItemService extends IService { + List listByScheduleId(Long id); } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsScheduleItemServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsScheduleItemServiceImpl.java index f8a76aa3..3ef3d2cd 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsScheduleItemServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsScheduleItemServiceImpl.java @@ -1,6 +1,8 @@ package com.qs.serve.modules.tbs.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qs.serve.modules.bms.entity.BmsSubject; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -8,6 +10,8 @@ import com.qs.serve.modules.tbs.entity.TbsScheduleItem; import com.qs.serve.modules.tbs.service.TbsScheduleItemService; import com.qs.serve.modules.tbs.mapper.TbsScheduleItemMapper; +import java.util.List; + /** * 考核时间项 服务实现类 * @author YenHex @@ -18,5 +22,11 @@ import com.qs.serve.modules.tbs.mapper.TbsScheduleItemMapper; @AllArgsConstructor public class TbsScheduleItemServiceImpl extends ServiceImpl implements TbsScheduleItemService { + @Override + public List listByScheduleId(Long id) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(TbsScheduleItem::getScheduleId,id); + return this.list(lqw); + } }