From fcad07002088ac0bcbc34c1edaa2021ae410c9a9 Mon Sep 17 00:00:00 2001 From: Yen Date: Thu, 5 Jan 2023 15:59:58 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=84=E7=AE=97=E6=97=A5=E5=BF=97-=E9=A2=84?= =?UTF-8?q?=E7=AE=97=E6=96=B0=E5=A2=9E=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../goods/entity/bo/GoodsCategoryBo.java | 6 + .../tbs/controller/TbsBudgetController.java | 5 +- .../controller/TbsBudgetLogController.java | 61 ++++++ .../tbs/controller/TbsScheduleController.java | 4 +- .../modules/tbs/entity/TbsBudgetLog.java | 191 ++++++++++++++++++ .../modules/tbs/entity/so/TbsBudgetLogSo.java | 139 +++++++++++++ .../tbs/mapper/TbsBudgetLogMapper.java | 14 ++ .../tbs/service/TbsBudgetLogService.java | 14 ++ .../service/impl/TbsBudgetLogServiceImpl.java | 22 ++ .../service/impl/TbsBudgetServiceImpl.java | 32 ++- .../resources/mapper/tbs/TbsBudgetMapper.xml | 2 +- 11 files changed, 485 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetLogController.java create mode 100644 src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetLog.java create mode 100644 src/main/java/com/qs/serve/modules/tbs/entity/so/TbsBudgetLogSo.java create mode 100644 src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetLogMapper.java create mode 100644 src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetLogService.java create mode 100644 src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetLogServiceImpl.java diff --git a/src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsCategoryBo.java b/src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsCategoryBo.java index 5e50f4f9..0da20bd1 100644 --- a/src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsCategoryBo.java +++ b/src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsCategoryBo.java @@ -33,4 +33,10 @@ public class GoodsCategoryBo { /** 排序 */ private Integer sort; + /** 可投放费用标识 */ + private Integer costFlag; + + /** (1:开启;0:关闭) */ + private Integer enable; + } 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 93748639..7011afc7 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 @@ -76,7 +76,10 @@ public class TbsBudgetController { List budgetIds = tbsBudgetMapper.selectBudgetId(param); if(budgetIds.size()>0){ PageUtil.startPage(); - List list = tbsBudgetService.listByIds(budgetIds); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.in(TbsBudget::getId,budgetIds); + lqw.orderByDesc(TbsBudget::getId); + List list = tbsBudgetService.list(lqw); List voList = new ArrayList<>(); for (TbsBudget budget : list) { TbsBudgetVo budgetVo = tbsBudgetService.toVoEntity(budget); diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetLogController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetLogController.java new file mode 100644 index 00000000..ceb306d7 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetLogController.java @@ -0,0 +1,61 @@ +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.web.bind.annotation.*; + +import com.qs.serve.modules.tbs.entity.so.TbsBudgetLogSo; +import com.qs.serve.modules.tbs.entity.TbsBudgetLog; +import com.qs.serve.modules.tbs.service.TbsBudgetLogService; + +import java.util.List; + +/** + * 预算 预算日志 + * @author YenHex + * @since 2023-01-05 + */ +@Slf4j +@AllArgsConstructor +@RestController +@RequestMapping("tbs/budgetLog") +public class TbsBudgetLogController { + + private TbsBudgetLogService tbsBudgetLogService; + + /** + * 翻页 + * @param param + * @return + */ + @GetMapping("/page") + public R> getPage(TbsBudgetLogSo param){ + TbsBudgetLog entity = CopierUtil.copy(param,new TbsBudgetLog()); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); + PageUtil.startPage(); + List list = tbsBudgetLogService.list(lqw); + return R.byPageHelperList(list); + } + + /** + * ID查询 + * @param id + * @return + */ + @GetMapping("/getById/{id}") + @SysLog(module = SystemModule.Budget, title = "预算日志", biz = BizType.QUERY) + public R getById(@PathVariable("id") String id){ + TbsBudgetLog tbsBudgetLog = tbsBudgetLogService.getById(id); + return R.ok(tbsBudgetLog); + } + +} + 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 5227f5de..6dee5fa5 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 @@ -102,7 +102,7 @@ public class TbsScheduleController { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(TbsBudget::getScheduleId,entity.getId()); if(tbsBudgetService.count(lqw)>0){ - Assert.throwEx("预算中已使用该周期模板,不能修改"); + Assert.throwEx("修改失败,预算中已使用该周期模板"); } boolean result = tbsScheduleService.updateById(entity); List scheduleItems = tbsScheduleItemService.listByScheduleId(entity.getId()); @@ -152,7 +152,7 @@ public class TbsScheduleController { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(TbsBudget::getScheduleId,id); if(tbsBudgetService.count(lqw)>0){ - Assert.throwEx("预算中已使用该周期模板,不能删除"); + Assert.throwEx("删除失败,预算中已使用该周期模板"); } boolean result = tbsScheduleService.removeById(id); return R.isTrue(result); diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetLog.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetLog.java new file mode 100644 index 00000000..f98749a4 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetLog.java @@ -0,0 +1,191 @@ +package com.qs.serve.modules.tbs.entity; + +import java.time.LocalDate; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import com.baomidou.mybatisplus.annotation.*; +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; + +/** + * 预算日志 实体类 + * @author YenHex + * @since 2023-01-05 + */ +@Data +@TableName("tbs_budget_log") +public class TbsBudgetLog implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + @TableId(type = IdType.AUTO) + private Long id; + + /** 预算id */ + @NotNull(message = "预算id不能为空") + private Long budgetId; + + /** 预算编码 */ + @NotBlank(message = "预算编码不能为空") + @Length(max = 30,message = "预算编码长度不能超过30字") + private String budgetCode; + + /** 类型:0-预算新增;1-费用申请;2-预算调增;3-预算调减;4-费用释放 */ + @NotNull(message = "类型:0-预算新增;1-费用申请;2-预算调增;3-预算调减;4-费用释放不能为空") + private Integer optType; + + /** 操作人id */ + @NotBlank(message = "操作人id不能为空") + @Length(max = 32,message = "操作人id长度不能超过32字") + private String optUserId; + + /** 操作人名称 */ + @NotBlank(message = "操作人名称不能为空") + @Length(max = 32,message = "操作人名称长度不能超过32字") + private String optUserName; + + /** 操作人编号 */ + @NotBlank(message = "操作人编号不能为空") + @Length(max = 32,message = "操作人编号长度不能超过32字") + private String optUserCode; + + /** 预算金额/调整金额/释放金额 */ + @NotNull(message = "预算金额/调整金额/释放金额不能为空") + private BigDecimal amount; + + /** 考核id */ + @NotNull(message = "考核id不能为空") + private Long scheduleId; + + /** 考核期项id */ + @NotNull(message = "考核期项id不能为空") + private Long scheduleItemId; + + /** 考核编码 */ + @NotBlank(message = "考核编码不能为空") + @Length(max = 30,message = "考核编码长度不能超过30字") + private String itemName; + + /** 开始时间 */ + @NotNull(message = "开始时间不能为空") + @Length(max = 0,message = "开始时间长度不能超过0字") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime startDate; + + /** 结束时间 */ + @NotNull(message = "结束时间不能为空") + @Length(max = 0,message = "结束时间长度不能超过0字") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime endDate; + + /** 科目id */ + @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; + + /** 成本中心类型 */ + @NotBlank(message = "成本中心类型不能为空") + @Length(max = 20,message = "成本中心类型长度不能超过20字") + private String centerType; + + /** 成本中心id */ + @NotBlank(message = "成本中心id不能为空") + @Length(max = 32,message = "成本中心id长度不能超过32字") + private String centerId; + + /** 成本中心编码 */ + @NotBlank(message = "成本中心编码不能为空") + @Length(max = 30,message = "成本中心编码长度不能超过30字") + private String centerCode; + + /** 成本中心名称 */ + @NotBlank(message = "成本中心名称不能为空") + @Length(max = 30,message = "成本中心名称长度不能超过30字") + private String centerName; + + /** 客户id */ + private Long supplierId; + + /** 客户编码 */ + @Length(max = 30,message = "客户编码长度不能超过30字") + private String supplierCode; + + /** 客户名称 */ + @Length(max = 30,message = "客户名称长度不能超过30字") + private String supplierName; + + /** 活动id */ + private Long activityId; + + /** 活动编码 */ + @Length(max = 30,message = "活动编码长度不能超过30字") + private String activityCode; + + /** 费用申请id */ + private Long costApplyId; + + /** 费用申请编码 */ + @Length(max = 30,message = "费用申请编码长度不能超过30字") + private String costApplyCode; + + /** 费用申请主题 */ + @Length(max = 150,message = "费用申请主题长度不能超过150字") + private String costApplyTheme; + + /** 备注 */ + @Length(max = 255,message = "备注长度不能超过255字") + private String remark; + + /** 创建时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + /** 最后更新时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.UPDATE) + private LocalDateTime updateTime; + + /** 所属租户 */ + @JsonIgnore + @JsonProperty + private String tenantId; + + /** 创建人 */ + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** 更新人 */ + @TableField(fill = FieldFill.UPDATE) + private String updateBy; + + /** 逻辑删除标记(0:显示;1:隐藏) */ + @JsonIgnore + @JsonProperty + private String delFlag; + +} + diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/so/TbsBudgetLogSo.java b/src/main/java/com/qs/serve/modules/tbs/entity/so/TbsBudgetLogSo.java new file mode 100644 index 00000000..37582c3f --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/entity/so/TbsBudgetLogSo.java @@ -0,0 +1,139 @@ +package com.qs.serve.modules.tbs.entity.so; + +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; + +/** + * 预算日志 查询参数 + * @author YenHex + * @since 2023-01-05 + */ +@Data +public class TbsBudgetLogSo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + private Long id; + + /** 类型:0-预算新增;1-费用申请;2-预算调增;3-预算调减;4-费用释放 */ + private Integer optType; + + /** 预算金额/调整金额/释放金额 */ + private BigDecimal amount; + + /** 考核id */ + private Long scheduleId; + + /** 考核期项id */ + private Long scheduleItemId; + + /** 考核编码 */ + private String itemName; + + /** 开始时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime startDate; + + /** 结束时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime endDate; + + /** 预算id */ + private Long budgetId; + + /** 预算编码 */ + private String budgetCode; + + /** 科目id */ + private Long subjectId; + + /** 科目编码 */ + private String subjectCode; + + /** 科目名称 */ + private String subjectName; + + /** 成本中心类型 */ + private String centerType; + + /** 成本中心id */ + private String centerId; + + /** 成本中心编码 */ + private String centerCode; + + /** 成本中心名称 */ + private String centerName; + + /** 客户id */ + private Long supplierId; + + /** 客户编码 */ + private String supplierCode; + + /** 客户名称 */ + private String supplierName; + + /** 活动id */ + private Long activityId; + + /** 活动编码 */ + private String activityCode; + + /** 费用申请id */ + private Long costApplyId; + + /** 费用申请编码 */ + private String costApplyCode; + + /** 费用申请主题 */ + private String costApplyTheme; + + /** 操作人id */ + private String optUserId; + + /** 操作人名称 */ + private String optUserName; + + /** 备注 */ + 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/mapper/TbsBudgetLogMapper.java b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetLogMapper.java new file mode 100644 index 00000000..41d5c9ac --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetLogMapper.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.tbs.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qs.serve.modules.tbs.entity.TbsBudgetLog; + +/** + * 预算日志 Mapper + * @author YenHex + * @date 2023-01-05 + */ +public interface TbsBudgetLogMapper extends BaseMapper { + +} + diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetLogService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetLogService.java new file mode 100644 index 00000000..2b3bbe67 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetLogService.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.tbs.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.qs.serve.modules.tbs.entity.TbsBudgetLog; + +/** + * 预算日志 服务接口 + * @author YenHex + * @date 2023-01-05 + */ +public interface TbsBudgetLogService extends IService { + +} + diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetLogServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetLogServiceImpl.java new file mode 100644 index 00000000..d8089009 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetLogServiceImpl.java @@ -0,0 +1,22 @@ +package com.qs.serve.modules.tbs.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import com.qs.serve.modules.tbs.entity.TbsBudgetLog; +import com.qs.serve.modules.tbs.service.TbsBudgetLogService; +import com.qs.serve.modules.tbs.mapper.TbsBudgetLogMapper; + +/** + * 预算日志 服务实现类 + * @author YenHex + * @since 2023-01-05 + */ +@Slf4j +@Service +@AllArgsConstructor +public class TbsBudgetLogServiceImpl extends ServiceImpl implements TbsBudgetLogService { + +} + 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 4dffe97e..34216239 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 @@ -3,6 +3,7 @@ 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.common.util.Assert; +import com.qs.serve.common.util.AuthContextUtils; import com.qs.serve.common.util.CollectionUtil; import com.qs.serve.common.util.CopierUtil; import com.qs.serve.modules.bms.entity.BmsSubject; @@ -15,6 +16,8 @@ import com.qs.serve.modules.goods.entity.dto.TbsCenterDto; import com.qs.serve.modules.goods.service.GoodsCategoryService; import com.qs.serve.modules.goods.service.GoodsSkuService; import com.qs.serve.modules.goods.service.GoodsSpuService; +import com.qs.serve.modules.sys.entity.SysUser; +import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.tbs.common.TbsGoodsType; import com.qs.serve.modules.tbs.entity.*; import com.qs.serve.modules.tbs.entity.bo.TbsBudgetBo; @@ -47,6 +50,7 @@ public class TbsBudgetServiceImpl extends ServiceImpl private final BmsSubjectService subjectService; private final TbsScheduleService scheduleService; private final TbsBudgetConditionService budgetConditionService; + private final TbsBudgetLogService budgetLogService; private final TbsScheduleItemBudgetService scheduleItemBudgetService; private final TbsScheduleItemService scheduleItemService; private final TbsCenterDtoService tbsCenterDtoService; @@ -57,11 +61,12 @@ public class TbsBudgetServiceImpl extends ServiceImpl private final GoodsSkuService goodsSkuService; private final GoodsSpuService goodsSpuService; private final GoodsCategoryService goodsCategoryService; - + private final SysUserService sysUserService; @Override @Transactional(rollbackFor = Exception.class) public void modify(TbsBudgetBo budgetBo) { + SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); TbsBudget budget; if(budgetBo.getId()!=null){ budget = this.getById(budgetBo.getId()); @@ -98,6 +103,31 @@ public class TbsBudgetServiceImpl extends ServiceImpl scheduleItemBudgets.add(itemBudget); } scheduleItemBudgetService.saveBatch(scheduleItemBudgets); + //保存预算流水日志 + List budgetLogList = new ArrayList<>(); + for (TbsScheduleItemBudget scheduleItemBudget : scheduleItemBudgets) { + TbsBudgetLog budgetLog = new TbsBudgetLog(); + budgetLog.setBudgetId(budget.getId()); + budgetLog.setBudgetCode(budget.getBudgetCode()); + budgetLog.setOptType(0); + budgetLog.setOptUserId(sysUser.getId()); + budgetLog.setOptUserCode(sysUser.getCode()); + budgetLog.setOptUserName(sysUser.getName()); + budgetLog.setAmount(scheduleItemBudget.getBudgetAmount()); + budgetLog.setScheduleId(scheduleItemBudget.getScheduleId()); + budgetLog.setScheduleItemId(scheduleItemBudget.getScheduleItemId()); + budgetLog.setItemName(scheduleItemBudget.getItemName()); + budgetLog.setStartDate(scheduleItemBudget.getStartDate()); + budgetLog.setEndDate(scheduleItemBudget.getEndDate()); + budgetLog.setSubjectId(budget.getSubjectId()); + budgetLog.setSubjectCode(budget.getSubjectCode()); + budgetLog.setSubjectName(budget.getSubjectName()); + budgetLog.setCenterId(budget.getCenterId()); + budgetLog.setCenterCode(budget.getCenterCode()); + budgetLog.setCenterName(budget.getCenterName()); + budgetLogList.add(budgetLog); + } + budgetLogService.saveBatch(budgetLogList); //设置条件 List skuIds = budgetBo.getSkuIds(); List spuIds = budgetBo.getSpuIds(); diff --git a/src/main/resources/mapper/tbs/TbsBudgetMapper.xml b/src/main/resources/mapper/tbs/TbsBudgetMapper.xml index 86858465..a1de2305 100644 --- a/src/main/resources/mapper/tbs/TbsBudgetMapper.xml +++ b/src/main/resources/mapper/tbs/TbsBudgetMapper.xml @@ -142,7 +142,7 @@ ) - GROUP BY `tbs_budget`.`id` + GROUP BY `tbs_budget`.`id` ORDER BY `tbs_budget`.`id` DESC