diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetConditionController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetConditionController.java deleted file mode 100644 index 4c7c0a69..00000000 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetConditionController.java +++ /dev/null @@ -1,124 +0,0 @@ -package com.qs.serve.modules.tbs.controller; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.qs.serve.common.model.annotation.SysLog; -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.PageUtil; -import com.qs.serve.common.util.CopierUtil; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import com.qs.serve.modules.tbs.entity.vo.TbsBudgetConditionVo; -import com.qs.serve.modules.tbs.entity.bo.TbsBudgetConditionBo; -import com.qs.serve.modules.tbs.entity.TbsBudgetCondition; -import com.qs.serve.modules.tbs.service.TbsBudgetConditionService; - -import javax.validation.Valid; -import java.util.List; - -/** - * 预算 预算条件 - * @author YenHex - * @since 2022-11-08 - */ -@Slf4j -@AllArgsConstructor -@RestController -@RequestMapping("tbs/budgetCondition") -public class TbsBudgetConditionController { - - private TbsBudgetConditionService tbsBudgetConditionService; - - /** - * 列表 - * @param param - * @return - */ - @GetMapping("/list") - @PreAuthorize("hasRole('tbs:budgetCondition:query')") - public R> getList(TbsBudgetConditionVo param){ - TbsBudgetCondition entity = CopierUtil.copy(param,new TbsBudgetCondition()); - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); - PageUtil.startPage(); - List list = tbsBudgetConditionService.list(lqw); - return R.ok(list); - } - - /** - * 翻页 - * @param param - * @return - */ - @GetMapping("/page") - @PreAuthorize("hasRole('tbs:budgetCondition:query')") - public R> getPage(TbsBudgetConditionVo param){ - TbsBudgetCondition entity = CopierUtil.copy(param,new TbsBudgetCondition()); - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); - PageUtil.startPage(); - List list = tbsBudgetConditionService.list(lqw); - return R.byPageHelperList(list); - } - - /** - * ID查询 - * @param id - * @return - */ - @GetMapping("/getById/{id}") - @SysLog(module = SystemModule.Budget, title = "预算条件", biz = BizType.QUERY) - @PreAuthorize("hasRole('tbs:budgetCondition:query')") - public R getById(@PathVariable("id") String id){ - TbsBudgetCondition tbsBudgetCondition = tbsBudgetConditionService.getById(id); - return R.ok(tbsBudgetCondition); - } - - - - /** - * 更新 - * @param param - * @return - */ - @PostMapping("/updateById") - @SysLog(module = SystemModule.Budget, title = "预算条件", biz = BizType.UPDATE) - @PreAuthorize("hasRole('tbs:budgetCondition:update')") - public R updateById(@RequestBody @Valid TbsBudgetConditionBo param){ - TbsBudgetCondition entity = CopierUtil.copy(param,new TbsBudgetCondition()); - boolean result = tbsBudgetConditionService.updateById(entity); - return R.isTrue(result); - } - - /** - * 新增 - * @param param - * @return - */ - @PostMapping("/save") - @SysLog(module = SystemModule.Budget, title = "预算条件", biz = BizType.INSERT) - @PreAuthorize("hasRole('tbs:budgetCondition:insert')") - public R save(@RequestBody @Valid TbsBudgetCondition param){ - TbsBudgetCondition entity = CopierUtil.copy(param,new TbsBudgetCondition()); - boolean result = tbsBudgetConditionService.save(entity); - return R.isTrue(result); - } - - /** - * 删除 - * @param id - * @return - */ - @DeleteMapping("/deleteById/{id}") - @SysLog(module = SystemModule.Budget, title = "预算条件", biz = BizType.DELETE) - @PreAuthorize("hasRole('tbs:budgetCondition:delete')") - public R deleteById(@PathVariable("id") Long id){ - boolean result = tbsBudgetConditionService.removeById(id); - return R.isTrue(result); - } - -} - diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java index 2ca49f8f..a73c9922 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java @@ -8,12 +8,13 @@ import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.CopierUtil; +import com.qs.serve.common.util.StringUtils; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; -import com.qs.serve.modules.tbs.entity.vo.TbsBudgetVo; +import com.qs.serve.modules.tbs.entity.so.TbsBudgetSo; import com.qs.serve.modules.tbs.entity.bo.TbsBudgetBo; import com.qs.serve.modules.tbs.entity.TbsBudget; import com.qs.serve.modules.tbs.service.TbsBudgetService; @@ -24,7 +25,7 @@ import java.util.List; /** * 预算 预算 * @author YenHex - * @since 2022-11-08 + * @since 2022-11-12 */ @Slf4j @AllArgsConstructor @@ -41,7 +42,7 @@ public class TbsBudgetController { */ @GetMapping("/list") @PreAuthorize("hasRole('tbs:budget:query')") - public R> getList(TbsBudgetVo param){ + public R> getList(TbsBudgetSo param){ TbsBudget entity = CopierUtil.copy(param,new TbsBudget()); LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); PageUtil.startPage(); @@ -56,7 +57,7 @@ public class TbsBudgetController { */ @GetMapping("/page") @PreAuthorize("hasRole('tbs:budget:query')") - public R> getPage(TbsBudgetVo param){ + public R> getPage(TbsBudgetSo param){ TbsBudget entity = CopierUtil.copy(param,new TbsBudget()); LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); PageUtil.startPage(); @@ -101,7 +102,7 @@ public class TbsBudgetController { @PostMapping("/save") @SysLog(module = SystemModule.Budget, title = "预算", biz = BizType.INSERT) @PreAuthorize("hasRole('tbs:budget:insert')") - public R save(@RequestBody @Valid TbsBudget param){ + public R save(@RequestBody @Valid TbsBudgetBo param){ TbsBudget entity = CopierUtil.copy(param,new TbsBudget()); boolean result = tbsBudgetService.save(entity); return R.isTrue(result); @@ -109,14 +110,15 @@ public class TbsBudgetController { /** * 删除 - * @param id + * @param ids * @return */ - @DeleteMapping("/deleteById/{id}") + @DeleteMapping("/deleteById/{ids}") @SysLog(module = SystemModule.Budget, title = "预算", biz = BizType.DELETE) @PreAuthorize("hasRole('tbs:budget:delete')") - public R deleteById(@PathVariable("id") Long id){ - boolean result = tbsBudgetService.removeById(id); + public R deleteById(@PathVariable("ids") String ids){ + List idsLong = StringUtils.splitIdLong(ids); + boolean result = tbsBudgetService.removeByIds(idsLong); return R.isTrue(result); } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudget.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudget.java index 242be578..50f4d72c 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudget.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudget.java @@ -19,7 +19,7 @@ import javax.validation.constraints.NotBlank; /** * 预算 实体类 * @author YenHex - * @since 2022-11-08 + * @since 2022-11-12 */ @Data @TableName("tbs_budget") diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetCondition.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetCondition.java index 419ef409..2612eb61 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetCondition.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetCondition.java @@ -19,7 +19,7 @@ import javax.validation.constraints.NotBlank; /** * 预算条件 实体类 * @author YenHex - * @since 2022-11-08 + * @since 2022-11-12 */ @Data @TableName("tbs_budget_condition") @@ -33,7 +33,7 @@ public class TbsBudgetCondition implements Serializable { /** 预算id */ @NotNull(message = "预算id不能为空") - private Long budgtId; + private Long budgetId; /** 目标类型(brand、category、series、spu、sku) */ @NotBlank(message = "目标类型(brand、category、series、spu、sku)不能为空") @@ -54,20 +54,13 @@ public class TbsBudgetCondition implements Serializable { @Length(max = 30,message = "目标名称长度不能超过30字") private String targetName; - /** 目标父级id */ - private Long targetParentId; - - /** 目标父级编码 */ - @Length(max = 30,message = "目标父级编码长度不能超过30字") - private String targetParentCode; - - /** 目标父级名称 */ - @Length(max = 20,message = "目标父级名称长度不能超过20字") - private String targetParentName; + /** 目标等级路径 */ + @Length(max = 600,message = "目标等级路径长度不能超过600字") + private String targetLevelPathIds; /** 目标等级路径 */ @Length(max = 600,message = "目标等级路径长度不能超过600字") - private String targetLevelPath; + private String targetLevelPathNames; /** 备注 */ @Length(max = 255,message = "备注长度不能超过255字") diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetBo.java index 1fd9c90f..73a37d95 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetBo.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetBo.java @@ -18,7 +18,7 @@ import javax.validation.constraints.NotBlank; /** * 预算 Bo * @author YenHex - * @since 2022-11-09 + * @since 2022-11-12 */ @Data public class TbsBudgetBo implements Serializable { @@ -32,71 +32,19 @@ public class TbsBudgetBo implements Serializable { @NotNull(message = "科目id不能为空") private Long subjectId; - /** 科目编码 */ - @NotBlank(message = "科目编码不能为空") - @Length(max = 30,message = "科目编码长度不能超过30字") - private String subjectCode; - - /** 科目名称 */ - @NotBlank(message = "科目名称不能为空") - @Length(max = 30,message = "科目名称长度不能超过30字") - private String subjectName; - /** 成本中心id */ @NotNull(message = "成本中心id不能为空") private Long centerId; - /** 成本中心编码 */ - @NotBlank(message = "成本中心编码不能为空") - @Length(max = 30,message = "成本中心编码长度不能超过30字") - private String centerCode; - - /** 成本中心名称 */ - @NotBlank(message = "成本中心名称不能为空") - @Length(max = 30,message = "成本中心名称长度不能超过30字") - private String centerName; - /** 考核期id */ @NotNull(message = "考核期id不能为空") private Long scheduleId; - /** 考核期编码 */ - @NotBlank(message = "考核期编码不能为空") - @Length(max = 30,message = "考核期编码长度不能超过30字") - private String scheduleCode; - - /** 考核期名称 */ - @NotBlank(message = "考核期名称不能为空") - @Length(max = 30,message = "考核期名称长度不能超过30字") - private String scheduleName; - /** 备注 */ @Length(max = 255,message = "备注长度不能超过255字") private String remark; - /** 创建时间 */ - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime createTime; - - /** 最后更新时间 */ - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime updateTime; - - /** 所属租户 */ - @JsonIgnore - @JsonProperty - private String tenantId; - - /** 创建人 */ - private String createBy; - - /** 更新人 */ - private String updateBy; - /** 逻辑删除标记(0:显示;1:隐藏) */ - @JsonIgnore - @JsonProperty - private String delFlag; } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetConditionBo.java b/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetConditionBo.java deleted file mode 100644 index 30481552..00000000 --- a/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetConditionBo.java +++ /dev/null @@ -1,98 +0,0 @@ -package com.qs.serve.modules.tbs.entity.bo; - -import java.time.LocalDate; -import java.io.Serializable; -import java.math.BigDecimal; -import java.time.LocalDateTime; - -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Data; -import org.hibernate.validator.constraints.Length; -import org.springframework.format.annotation.DateTimeFormat; - -import javax.validation.constraints.NotNull; -import javax.validation.constraints.NotBlank; - -/** - * 预算条件 Bo - * @author YenHex - * @since 2022-11-09 - */ -@Data -public class TbsBudgetConditionBo implements Serializable { - - private static final long serialVersionUID = 1L; - - /** id */ - private Long id; - - /** 预算id */ - @NotNull(message = "预算id不能为空") - private Long budgtId; - - /** 目标类型(brand、category、series、spu、sku) */ - @NotBlank(message = "目标类型(brand、category、series、spu、sku)不能为空") - @Length(max = 30,message = "目标类型(brand、category、series、spu、sku)长度不能超过30字") - private String targetType; - - /** 目标id */ - @NotNull(message = "目标id不能为空") - private Long targetId; - - /** 目标编码 */ - @NotBlank(message = "目标编码不能为空") - @Length(max = 30,message = "目标编码长度不能超过30字") - private String targetCode; - - /** 目标名称 */ - @NotBlank(message = "目标名称不能为空") - @Length(max = 30,message = "目标名称长度不能超过30字") - private String targetName; - - /** 目标父级id */ - private Long targetParentId; - - /** 目标父级编码 */ - @Length(max = 30,message = "目标父级编码长度不能超过30字") - private String targetParentCode; - - /** 目标父级名称 */ - @Length(max = 20,message = "目标父级名称长度不能超过20字") - private String targetParentName; - - /** 目标等级路径 */ - @Length(max = 600,message = "目标等级路径长度不能超过600字") - private String targetLevelPath; - - /** 备注 */ - @Length(max = 255,message = "备注长度不能超过255字") - private String remark; - - /** 创建时间 */ - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime createTime; - - /** 最后更新时间 */ - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime updateTime; - - /** 所属租户 */ - @JsonIgnore - @JsonProperty - private String tenantId; - - /** 创建人 */ - private String createBy; - - /** 更新人 */ - private String updateBy; - - /** 逻辑删除标记(0:显示;1:隐藏) */ - @JsonIgnore - @JsonProperty - private String delFlag; - -} - diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsBudgetVo.java b/src/main/java/com/qs/serve/modules/tbs/entity/so/TbsBudgetSo.java similarity index 92% rename from src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsBudgetVo.java rename to src/main/java/com/qs/serve/modules/tbs/entity/so/TbsBudgetSo.java index c767716a..bb449316 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsBudgetVo.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/so/TbsBudgetSo.java @@ -1,4 +1,4 @@ -package com.qs.serve.modules.tbs.entity.vo; +package com.qs.serve.modules.tbs.entity.so; import java.time.LocalDate; import java.io.Serializable; @@ -16,12 +16,12 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.NotBlank; /** - * 预算 VO + * 预算 查询参数 * @author YenHex - * @since 2022-11-09 + * @since 2022-11-12 */ @Data -public class TbsBudgetVo implements Serializable { +public class TbsBudgetSo implements Serializable { private static final long serialVersionUID = 1L; diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsBudgetConditionVo.java b/src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsBudgetConditionVo.java deleted file mode 100644 index f4b8cb1c..00000000 --- a/src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsBudgetConditionVo.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.qs.serve.modules.tbs.entity.vo; - -import java.time.LocalDate; -import java.io.Serializable; -import java.math.BigDecimal; -import java.time.LocalDateTime; - -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Data; -import org.hibernate.validator.constraints.Length; -import org.springframework.format.annotation.DateTimeFormat; - -import javax.validation.constraints.NotNull; -import javax.validation.constraints.NotBlank; - -/** - * 预算条件 VO - * @author YenHex - * @since 2022-11-09 - */ -@Data -public class TbsBudgetConditionVo implements Serializable { - - private static final long serialVersionUID = 1L; - - /** id */ - private Long id; - - /** 预算id */ - private Long budgtId; - - /** 目标类型(brand、category、series、spu、sku) */ - private String targetType; - - /** 目标id */ - private Long targetId; - - /** 目标编码 */ - private String targetCode; - - /** 目标名称 */ - private String targetName; - - /** 目标父级id */ - private Long targetParentId; - - /** 目标父级编码 */ - private String targetParentCode; - - /** 目标父级名称 */ - private String targetParentName; - - /** 目标等级路径 */ - private String targetLevelPath; - - /** 备注 */ - private String remark; - - /** 创建时间 */ - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime createTime; - - /** 最后更新时间 */ - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime updateTime; - - /** 所属租户 */ - @JsonIgnore - @JsonProperty - private String tenantId; - - /** 创建人 */ - private String createBy; - - /** 更新人 */ - private String updateBy; - - /** 逻辑删除标记(0:显示;1:隐藏) */ - @JsonIgnore - @JsonProperty - private String delFlag; - -} - diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java index 62d091a8..e0177e81 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java @@ -2,6 +2,7 @@ package com.qs.serve.modules.tbs.service; import com.baomidou.mybatisplus.extension.service.IService; import com.qs.serve.modules.tbs.entity.TbsBudget; +import com.qs.serve.modules.tbs.entity.bo.TbsBudgetBo; /** * 预算 服务接口 @@ -10,5 +11,11 @@ import com.qs.serve.modules.tbs.entity.TbsBudget; */ public interface TbsBudgetService extends IService { + /** + * 修改 + * @param budgetBo + */ + void modify(TbsBudgetBo budgetBo); + } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java index 9e9f36cb..db3a3969 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java @@ -1,6 +1,15 @@ package com.qs.serve.modules.tbs.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qs.serve.common.util.Assert; +import com.qs.serve.common.util.CopierUtil; +import com.qs.serve.modules.bms.entity.BmsCostCenter; +import com.qs.serve.modules.bms.entity.BmsSubject; +import com.qs.serve.modules.bms.service.BmsCostCenterService; +import com.qs.serve.modules.bms.service.BmsSubjectService; +import com.qs.serve.modules.tbs.entity.TbsSchedule; +import com.qs.serve.modules.tbs.entity.bo.TbsBudgetBo; +import com.qs.serve.modules.tbs.service.TbsScheduleService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -18,5 +27,37 @@ import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper; @AllArgsConstructor public class TbsBudgetServiceImpl extends ServiceImpl implements TbsBudgetService { + private final BmsSubjectService subjectService; + private final BmsCostCenterService costCenterService; + private final TbsScheduleService scheduleService; + + @Override + public void modify(TbsBudgetBo budgetBo) { + TbsBudget budget = null; + if(budgetBo.getId()!=null){ + budget = this.getById(budgetBo.getId()); + if(budget==null){ + Assert.throwEx("预算不存在或被移除"); + } + }else { + budget = CopierUtil.copy(budgetBo,new TbsBudget()); + } + BmsSubject subject = subjectService.getById(budgetBo.getSubjectId()); + BmsCostCenter costCenter = costCenterService.getById(budgetBo.getCenterId()); + TbsSchedule schedule = scheduleService.getById(budgetBo.getScheduleId()); + budget.setSubjectId(subject.getId()); + budget.setSubjectCode(subject.getSubjectCode()); + budget.setSubjectName(subject.getSubjectName()); + budget.setCenterId(costCenter.getId()); + budget.setCenterCode(costCenter.getCode()); + budget.setCenterName(costCenter.getName()); + budget.setScheduleId(schedule.getId()); + budget.setScheduleCode(schedule.getCode()); + budget.setScheduleName(schedule.getName()); + this.saveOrUpdate(budget); + //设置条件 + + } + }