Browse Source

规划预算

contract
15989082884@163.com 2 years ago
parent
commit
94838ca961
  1. 3
      src/main/java/com/qs/serve/modules/bir/controller/BirRoiRateController.java
  2. 1
      src/main/java/com/qs/serve/modules/bir/entity/vo/BirReportVo.java
  3. 19
      src/main/java/com/qs/serve/modules/bir/entity/vo/BudgetPlanVo.java
  4. 22
      src/main/java/com/qs/serve/modules/bir/service/impl/BirReportAccountBookServiceImpl.java
  5. 124
      src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetPlanController.java
  6. 99
      src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetPlan.java
  7. 5
      src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetLogMapper.java
  8. 14
      src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetPlanMapper.java
  9. 14
      src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetPlanService.java
  10. 22
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetPlanServiceImpl.java

3
src/main/java/com/qs/serve/modules/bir/controller/BirRoiRateController.java

@ -94,10 +94,11 @@ public class BirRoiRateController {
* @return * @return
*/ */
@GetMapping("/standingBookByCall") @GetMapping("/standingBookByCall")
public R<?> standingBookByCall(String type){ public R<?> standingBookByCall(String type,String year){
return R.ok(birReportAccountBookService.getReportAccountBookData(type)); return R.ok(birReportAccountBookService.getReportAccountBookData(type));
} }
/** /**
* 获取费率 * 获取费率
* @param param * @param param

1
src/main/java/com/qs/serve/modules/bir/entity/vo/BirReportVo.java

@ -17,4 +17,5 @@ public class BirReportVo {
private List<HeaderOption> headerList; private List<HeaderOption> headerList;
private BudgetPlanVo budgetPlanVo;
} }

19
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;
}

22
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.so.BirCostRoiSo;
import com.qs.serve.modules.bir.entity.vo.BirReportVo; 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.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.entity.vo.YtdQtdToOAVo;
import com.qs.serve.modules.bir.mapper.BirReportAccountBookMapper; import com.qs.serve.modules.bir.mapper.BirReportAccountBookMapper;
import com.qs.serve.modules.bir.mapper.BirRoiRateMapper; 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.entity.dto.ErpDispatchSumVo;
import com.qs.serve.modules.erp.mapper.ErpDispatchDataMapper; import com.qs.serve.modules.erp.mapper.ErpDispatchDataMapper;
import com.qs.serve.modules.tbs.common.TbsCenterType; 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.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.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -45,6 +50,8 @@ public class BirReportAccountBookServiceImpl implements BirReportAccountBookServ
private final BirReportAccountBookMapper birReportAccountBookMapper; private final BirReportAccountBookMapper birReportAccountBookMapper;
private final BmsRegionService bmsRegionService; private final BmsRegionService bmsRegionService;
private final TbsBudgetPlanService tbsBudgetPlanService;
private final TbsBudgetLogMapper tbsBudgetLogMapper;
@Override @Override
public BirReportVo getReportAccountBookData(String type){ public BirReportVo getReportAccountBookData(String type){
@ -99,8 +106,23 @@ public class BirReportAccountBookServiceImpl implements BirReportAccountBookServ
list.add(itemList); list.add(itemList);
} }
LambdaQueryWrapper<TbsBudgetPlan> 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.setHeaderList(headerOptions);
vo.setItemList(list); vo.setItemList(list);
vo.setBudgetPlanVo(budgetPlanVo);
return vo; return vo;
} }
} }

124
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<List<TbsBudgetPlan>> getList(TbsBudgetPlan param){
TbsBudgetPlan entity = CopierUtil.copy(param,new TbsBudgetPlan());
LambdaQueryWrapper<TbsBudgetPlan> lqw = new LambdaQueryWrapper<>(entity);
PageUtil.startPage();
List<TbsBudgetPlan> list = tbsBudgetPlanService.list(lqw);
return R.ok(list);
}
/**
* 翻页
* @param param
* @return
*/
@GetMapping("/page")
// @PreAuthorize("hasRole('tbs:budgetPlan:query')")
public R<PageVo<TbsBudgetPlan>> getPage(TbsBudgetPlan param){
TbsBudgetPlan entity = CopierUtil.copy(param,new TbsBudgetPlan());
LambdaQueryWrapper<TbsBudgetPlan> lqw = new LambdaQueryWrapper<>(entity);
PageUtil.startPage();
List<TbsBudgetPlan> 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<TbsBudgetPlan> 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<Long> idsLong = StringUtils.splitIdLong(ids);
boolean result = tbsBudgetPlanService.removeByIds(idsLong);
return R.isTrue(result);
}
}

99
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;
}
}

5
src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetLogMapper.java

@ -17,5 +17,10 @@ public interface TbsBudgetLogMapper extends BaseMapper<TbsBudgetLog> {
@Select("SELECT SUM(amount) FROM `tbs_budget_log` WHERE budget_id = #{budgetId} AND schedule_item_id = #{itemId} AND del_flag = '0'") @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 ); 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();
} }

14
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<TbsBudgetPlan> {
}

14
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<TbsBudgetPlan> {
}

22
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<TbsBudgetPlanMapper,TbsBudgetPlan> implements TbsBudgetPlanService {
}
Loading…
Cancel
Save