From 94838ca961ab10d834249a19f90f045f472e689b Mon Sep 17 00:00:00 2001 From: "15989082884@163.com" <15989082884@163.com> Date: Mon, 10 Jul 2023 20:20:27 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=84=E5=88=92=E9=A2=84=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bir/controller/BirRoiRateController.java | 3 +- .../modules/bir/entity/vo/BirReportVo.java | 1 + .../modules/bir/entity/vo/BudgetPlanVo.java | 19 +++ .../impl/BirReportAccountBookServiceImpl.java | 22 ++++ .../controller/TbsBudgetPlanController.java | 124 ++++++++++++++++++ .../modules/tbs/entity/TbsBudgetPlan.java | 99 ++++++++++++++ .../tbs/mapper/TbsBudgetLogMapper.java | 5 + .../tbs/mapper/TbsBudgetPlanMapper.java | 14 ++ .../tbs/service/TbsBudgetPlanService.java | 14 ++ .../impl/TbsBudgetPlanServiceImpl.java | 22 ++++ 10 files changed, 322 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/qs/serve/modules/bir/entity/vo/BudgetPlanVo.java create mode 100644 src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetPlanController.java create mode 100644 src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetPlan.java create mode 100644 src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetPlanMapper.java create mode 100644 src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetPlanService.java create mode 100644 src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetPlanServiceImpl.java diff --git a/src/main/java/com/qs/serve/modules/bir/controller/BirRoiRateController.java b/src/main/java/com/qs/serve/modules/bir/controller/BirRoiRateController.java index 2fdf203e..df83873a 100644 --- a/src/main/java/com/qs/serve/modules/bir/controller/BirRoiRateController.java +++ b/src/main/java/com/qs/serve/modules/bir/controller/BirRoiRateController.java @@ -94,10 +94,11 @@ public class BirRoiRateController { * @return */ @GetMapping("/standingBookByCall") - public R standingBookByCall(String type){ + public R standingBookByCall(String type,String year){ return R.ok(birReportAccountBookService.getReportAccountBookData(type)); } + /** * 获取费率 * @param param diff --git a/src/main/java/com/qs/serve/modules/bir/entity/vo/BirReportVo.java b/src/main/java/com/qs/serve/modules/bir/entity/vo/BirReportVo.java index 6b256bbc..f6378438 100644 --- a/src/main/java/com/qs/serve/modules/bir/entity/vo/BirReportVo.java +++ b/src/main/java/com/qs/serve/modules/bir/entity/vo/BirReportVo.java @@ -17,4 +17,5 @@ public class BirReportVo { private List headerList; + private BudgetPlanVo budgetPlanVo; } diff --git a/src/main/java/com/qs/serve/modules/bir/entity/vo/BudgetPlanVo.java b/src/main/java/com/qs/serve/modules/bir/entity/vo/BudgetPlanVo.java new file mode 100644 index 00000000..686bc7a9 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bir/entity/vo/BudgetPlanVo.java @@ -0,0 +1,19 @@ +package com.qs.serve.modules.bir.entity.vo; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class BudgetPlanVo { + + String budgetYear; + + BigDecimal budgetPlanSaleAmout; + + BigDecimal budgetPlanAmount; + + BigDecimal usedAmout; + + BigDecimal plannedAmount; +} diff --git a/src/main/java/com/qs/serve/modules/bir/service/impl/BirReportAccountBookServiceImpl.java b/src/main/java/com/qs/serve/modules/bir/service/impl/BirReportAccountBookServiceImpl.java index abb7134b..9fc96171 100644 --- a/src/main/java/com/qs/serve/modules/bir/service/impl/BirReportAccountBookServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/bir/service/impl/BirReportAccountBookServiceImpl.java @@ -9,6 +9,7 @@ import com.qs.serve.modules.bir.entity.dto.BirRoiCostDTO; import com.qs.serve.modules.bir.entity.so.BirCostRoiSo; import com.qs.serve.modules.bir.entity.vo.BirReportVo; import com.qs.serve.modules.bir.entity.vo.BirRoiCostItemVo; +import com.qs.serve.modules.bir.entity.vo.BudgetPlanVo; import com.qs.serve.modules.bir.entity.vo.YtdQtdToOAVo; import com.qs.serve.modules.bir.mapper.BirReportAccountBookMapper; import com.qs.serve.modules.bir.mapper.BirRoiRateMapper; @@ -21,7 +22,11 @@ import com.qs.serve.modules.bms.service.BmsRegionService; import com.qs.serve.modules.erp.entity.dto.ErpDispatchSumVo; import com.qs.serve.modules.erp.mapper.ErpDispatchDataMapper; import com.qs.serve.modules.tbs.common.TbsCenterType; +import com.qs.serve.modules.tbs.entity.TbsBudgetPlan; import com.qs.serve.modules.tbs.entity.TbsCostApply; +import com.qs.serve.modules.tbs.mapper.TbsBudgetLogMapper; +import com.qs.serve.modules.tbs.service.TbsBudgetLogService; +import com.qs.serve.modules.tbs.service.TbsBudgetPlanService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -45,6 +50,8 @@ public class BirReportAccountBookServiceImpl implements BirReportAccountBookServ private final BirReportAccountBookMapper birReportAccountBookMapper; private final BmsRegionService bmsRegionService; + private final TbsBudgetPlanService tbsBudgetPlanService; + private final TbsBudgetLogMapper tbsBudgetLogMapper; @Override public BirReportVo getReportAccountBookData(String type){ @@ -99,8 +106,23 @@ public class BirReportAccountBookServiceImpl implements BirReportAccountBookServ list.add(itemList); } + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(TbsBudgetPlan::getBudgetYear,"2023"); + TbsBudgetPlan tbsBudgetPlan = tbsBudgetPlanService.getOne(lqw); + + BudgetPlanVo budgetPlanVo = new BudgetPlanVo(); + CopierUtil.copy(tbsBudgetPlan,budgetPlanVo); + + + BigDecimal plannedAmount = tbsBudgetLogMapper.countPlannedBudgetAmount(); + budgetPlanVo.setPlannedAmount(plannedAmount); + + BigDecimal usedAmount = tbsBudgetLogMapper.countUsedBudgetAmount(); + budgetPlanVo.setUsedAmout(usedAmount); + vo.setHeaderList(headerOptions); vo.setItemList(list); + vo.setBudgetPlanVo(budgetPlanVo); return vo; } } diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetPlanController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetPlanController.java new file mode 100644 index 00000000..f223cd63 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetPlanController.java @@ -0,0 +1,124 @@ +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 com.qs.serve.common.util.StringUtils; +import com.qs.serve.modules.tbs.entity.TbsBudgetPlan; +import com.qs.serve.modules.tbs.service.TbsBudgetPlanService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + + +import javax.validation.Valid; +import java.util.List; + +/** + * 预算 预算 + * @author YenHex + * @since 2023-07-10 + */ +@Slf4j +@AllArgsConstructor +@RestController +@RequestMapping("tbs/budgetPlan") +public class TbsBudgetPlanController { + + private TbsBudgetPlanService tbsBudgetPlanService; + + /** + * 列表 + * @param param + * @return + */ + //@GetMapping("/list") +// @PreAuthorize("hasRole('tbs:budgetPlan:query')") + public R> getList(TbsBudgetPlan param){ + TbsBudgetPlan entity = CopierUtil.copy(param,new TbsBudgetPlan()); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); + PageUtil.startPage(); + List list = tbsBudgetPlanService.list(lqw); + return R.ok(list); + } + + /** + * 翻页 + * @param param + * @return + */ + @GetMapping("/page") +// @PreAuthorize("hasRole('tbs:budgetPlan:query')") + public R> getPage(TbsBudgetPlan param){ + TbsBudgetPlan entity = CopierUtil.copy(param,new TbsBudgetPlan()); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); + PageUtil.startPage(); + List list = tbsBudgetPlanService.list(lqw); + return R.byPageHelperList(list); + } + + /** + * ID查询 + * @param id + * @return + */ + @GetMapping("/getById/{id}") + @SysLog(module = SystemModule.Budget, title = "预算", biz = BizType.QUERY) +// @PreAuthorize("hasRole('tbs:budgetPlan:query')") + public R getById(@PathVariable("id") String id){ + TbsBudgetPlan tbsBudgetPlan = tbsBudgetPlanService.getById(id); + return R.ok(tbsBudgetPlan); + } + + + + /** + * 更新 + * @param param + * @return + */ + @PostMapping("/updateById") + @SysLog(module = SystemModule.Budget, title = "预算", biz = BizType.UPDATE) +// @PreAuthorize("hasRole('tbs:budgetPlan:update')") + public R updateById(@RequestBody @Valid TbsBudgetPlan param){ + TbsBudgetPlan entity = CopierUtil.copy(param,new TbsBudgetPlan()); + boolean result = tbsBudgetPlanService.updateById(entity); + return R.isTrue(result); + } + + /** + * 新增 + * @param param + * @return + */ + @PostMapping("/save") + @SysLog(module = SystemModule.Budget, title = "预算", biz = BizType.INSERT) +// @PreAuthorize("hasRole('tbs:budgetPlan:insert')") + public R save(@RequestBody @Valid TbsBudgetPlan param){ + TbsBudgetPlan entity = CopierUtil.copy(param,new TbsBudgetPlan()); + boolean result = tbsBudgetPlanService.save(entity); + return R.isTrue(result); + } + + /** + * 删除 + * @param ids + * @return + */ + @DeleteMapping("/deleteById/{ids}") + @SysLog(module = SystemModule.Budget, title = "预算", biz = BizType.DELETE) +// @PreAuthorize("hasRole('tbs:budgetPlan:delete')") + public R deleteById(@PathVariable("ids") String ids){ + List idsLong = StringUtils.splitIdLong(ids); + boolean result = tbsBudgetPlanService.removeByIds(idsLong); + return R.isTrue(result); + } + +} + diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetPlan.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetPlan.java new file mode 100644 index 00000000..d3ae7eba --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetPlan.java @@ -0,0 +1,99 @@ +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-07-10 + */ +@Data +@TableName("tbs_budget_plan") +public class TbsBudgetPlan implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + @TableId(type = IdType.AUTO) + private Long id; + + /** 年度 */ + @NotBlank(message = "年度不能为空") + @Length(max = 255,message = "年度长度不能超过255字") + private String budgetYear; + + /** 年度规划销售金额 */ + @NotNull(message = "年度规划销售金额不能为空") + private BigDecimal budgetPlanSaleAmout; + + /** 年度规划预算金额 */ + @NotNull(message = "年度规划预算金额不能为空") + private BigDecimal budgetPlanAmount; + + /** 备注 */ + @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; + + + public static TbsBudgetPlan toNewObject(TbsBudgetPlan source){ + TbsBudgetPlan budgetPlan = new TbsBudgetPlan(); + budgetPlan.setId(source.getId()); + budgetPlan.setBudgetYear(source.getBudgetYear()); + budgetPlan.setBudgetPlanSaleAmout(source.getBudgetPlanSaleAmout()); + budgetPlan.setBudgetPlanAmount(source.getBudgetPlanAmount()); + budgetPlan.setRemark(source.getRemark()); + budgetPlan.setCreateTime(source.getCreateTime()); + budgetPlan.setUpdateTime(source.getUpdateTime()); + budgetPlan.setTenantId(source.getTenantId()); + budgetPlan.setCreateBy(source.getCreateBy()); + budgetPlan.setUpdateBy(source.getUpdateBy()); + budgetPlan.setDelFlag(source.getDelFlag()); + return budgetPlan; + } + +} + 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 index 32e0f75a..60b455cc 100644 --- a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetLogMapper.java +++ b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetLogMapper.java @@ -17,5 +17,10 @@ public interface TbsBudgetLogMapper extends BaseMapper { @Select("SELECT SUM(amount) FROM `tbs_budget_log` WHERE budget_id = #{budgetId} AND schedule_item_id = #{itemId} AND del_flag = '0'") BigDecimal countBudgetItemAmount(@Param("budgetId")Long budgetId,@Param("itemId")Long itemId ); + @Select("SELECT SUM(amount) FROM `tbs_budget_log` WHERE opt_type in (0,2,3) and del_flag = '0'") + BigDecimal countPlannedBudgetAmount(); + + @Select("SELECT SUM(amount) FROM `tbs_budget_log` WHERE opt_type in (1,4,5,6,11,12,13,14,15) and del_flag = '0'") + BigDecimal countUsedBudgetAmount(); } diff --git a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetPlanMapper.java b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetPlanMapper.java new file mode 100644 index 00000000..875dae4f --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetPlanMapper.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.TbsBudgetPlan; + +/** + * 预算 Mapper + * @author YenHex + * @date 2023-07-10 + */ +public interface TbsBudgetPlanMapper extends BaseMapper { + +} + diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetPlanService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetPlanService.java new file mode 100644 index 00000000..fcf61723 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetPlanService.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.TbsBudgetPlan; + +/** + * 预算 服务接口 + * @author YenHex + * @date 2023-07-10 + */ +public interface TbsBudgetPlanService extends IService { + +} + diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetPlanServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetPlanServiceImpl.java new file mode 100644 index 00000000..ada5ce59 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetPlanServiceImpl.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.TbsBudgetPlan; +import com.qs.serve.modules.tbs.service.TbsBudgetPlanService; +import com.qs.serve.modules.tbs.mapper.TbsBudgetPlanMapper; + +/** + * 预算 服务实现类 + * @author YenHex + * @since 2023-07-10 + */ +@Slf4j +@Service +@AllArgsConstructor +public class TbsBudgetPlanServiceImpl extends ServiceImpl implements TbsBudgetPlanService { + +} +