From 3cfa6a267ee3ff2e923e5429b76b4a0852116a2e Mon Sep 17 00:00:00 2001 From: Yen Date: Thu, 24 Nov 2022 17:36:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E6=A0=B8=E9=94=80?= =?UTF-8?q?=E5=AE=9E=E4=BD=93=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/model/enums/SystemModule.java | 1 + .../serve/modules/tbs/entity/TbsActivity.java | 3 + .../modules/tbs/entity/TbsCostApply.java | 4 +- .../tbs/service/TbsCostApplyService.java | 6 + .../service/impl/TbsActivityServiceImpl.java | 2 +- .../service/impl/TbsCostApplyServiceImpl.java | 6 + .../vtb/common/VtbVerificationState.java | 21 +++ .../controller/VtbVerificationController.java | 125 ++++++++++++++ .../modules/vtb/entity/VtbVerification.java | 81 +++++++++ .../entity/VtbVerificationCenterGoods.java | 155 ++++++++++++++++++ .../vtb/entity/VtbVerificationChannel.java | 103 ++++++++++++ .../entity/VtbVerificationChannelPoint.java | 113 +++++++++++++ .../vtb/entity/VtbVerificationSubject.java | 107 ++++++++++++ .../vtb/entity/bo/VtbVerificationBo.java | 52 ++++++ .../bo/VtbVerificationCenterGoodsBo.java | 145 ++++++++++++++++ .../entity/bo/VtbVerificationChannelBo.java | 45 +++++ .../bo/VtbVerificationChannelPointBo.java | 39 +++++ .../entity/bo/VtbVerificationSubjectBo.java | 48 ++++++ .../so/VtbVerificationCenterGoodsSo.java | 116 +++++++++++++ .../so/VtbVerificationChannelPointSo.java | 86 ++++++++++ .../entity/so/VtbVerificationChannelSo.java | 80 +++++++++ .../vtb/entity/so/VtbVerificationSo.java | 68 ++++++++ .../entity/so/VtbVerificationSubjectSo.java | 89 ++++++++++ .../VtbVerificationCenterGoodsMapper.java | 14 ++ .../mapper/VtbVerificationChannelMapper.java | 14 ++ .../VtbVerificationChannelPointMapper.java | 14 ++ .../vtb/mapper/VtbVerificationMapper.java | 14 ++ .../mapper/VtbVerificationSubjectMapper.java | 14 ++ .../VtbVerificationCenterGoodsService.java | 14 ++ .../VtbVerificationChannelPointService.java | 14 ++ .../VtbVerificationChannelService.java | 14 ++ .../vtb/service/VtbVerificationService.java | 21 +++ .../VtbVerificationSubjectService.java | 14 ++ ...VtbVerificationCenterGoodsServiceImpl.java | 22 +++ ...tbVerificationChannelPointServiceImpl.java | 22 +++ .../VtbVerificationChannelServiceImpl.java | 22 +++ .../impl/VtbVerificationServiceImpl.java | 81 +++++++++ .../VtbVerificationSubjectServiceImpl.java | 22 +++ 38 files changed, 1809 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/qs/serve/modules/vtb/common/VtbVerificationState.java create mode 100644 src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java create mode 100644 src/main/java/com/qs/serve/modules/vtb/entity/VtbVerification.java create mode 100644 src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationCenterGoods.java create mode 100644 src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationChannel.java create mode 100644 src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationChannelPoint.java create mode 100644 src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationSubject.java create mode 100644 src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationBo.java create mode 100644 src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationCenterGoodsBo.java create mode 100644 src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationChannelBo.java create mode 100644 src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationChannelPointBo.java create mode 100644 src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationSubjectBo.java create mode 100644 src/main/java/com/qs/serve/modules/vtb/entity/so/VtbVerificationCenterGoodsSo.java create mode 100644 src/main/java/com/qs/serve/modules/vtb/entity/so/VtbVerificationChannelPointSo.java create mode 100644 src/main/java/com/qs/serve/modules/vtb/entity/so/VtbVerificationChannelSo.java create mode 100644 src/main/java/com/qs/serve/modules/vtb/entity/so/VtbVerificationSo.java create mode 100644 src/main/java/com/qs/serve/modules/vtb/entity/so/VtbVerificationSubjectSo.java create mode 100644 src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationCenterGoodsMapper.java create mode 100644 src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationChannelMapper.java create mode 100644 src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationChannelPointMapper.java create mode 100644 src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationMapper.java create mode 100644 src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationSubjectMapper.java create mode 100644 src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationCenterGoodsService.java create mode 100644 src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationChannelPointService.java create mode 100644 src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationChannelService.java create mode 100644 src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationService.java create mode 100644 src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationSubjectService.java create mode 100644 src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationCenterGoodsServiceImpl.java create mode 100644 src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationChannelPointServiceImpl.java create mode 100644 src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationChannelServiceImpl.java create mode 100644 src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java create mode 100644 src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationSubjectServiceImpl.java diff --git a/src/main/java/com/qs/serve/common/model/enums/SystemModule.java b/src/main/java/com/qs/serve/common/model/enums/SystemModule.java index dc710246..dc955dc2 100644 --- a/src/main/java/com/qs/serve/common/model/enums/SystemModule.java +++ b/src/main/java/com/qs/serve/common/model/enums/SystemModule.java @@ -13,6 +13,7 @@ public enum SystemModule { QUESTION("qms","问卷"), Budget("budget","预算"), + Verification("verification","核算"), BIZ("biz","业务"), BASE("bms","基础档案"), GOODS("goods","商品"), diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivity.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivity.java index a819b73e..365a091e 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivity.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivity.java @@ -122,6 +122,9 @@ public class TbsActivity implements Serializable { /** 合计金额 */ private BigDecimal totalAmount; + /** 使用金额 */ + private BigDecimal usedAmount; + /** 产品类型 */ @TableField(exist = false) private String goodsType; diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java index bac5b02a..4aec398e 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java @@ -106,8 +106,10 @@ public class TbsCostApply implements Serializable { private String delFlag; /** 统计所有活动申请的金额 */ - @TableField(exist = false) private BigDecimal totalActivityAmount; + /** 统计所有活动使用的金额 */ + private BigDecimal totalActivityUsedAmount; + } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsCostApplyService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsCostApplyService.java index 3ed9253a..c06e3763 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsCostApplyService.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsCostApplyService.java @@ -10,5 +10,11 @@ import com.qs.serve.modules.tbs.entity.TbsCostApply; */ public interface TbsCostApplyService extends IService { + /** + * 更新活动金额 + * @param id + */ + void updateActivityAmount(Long id); + } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java index e3650ae2..207c10c3 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java @@ -84,7 +84,7 @@ public class TbsActivityServiceImpl extends ServiceImpl implements TbsCostApplyService { + + @Override + public void updateActivityAmount(Long id) { + + } + } diff --git a/src/main/java/com/qs/serve/modules/vtb/common/VtbVerificationState.java b/src/main/java/com/qs/serve/modules/vtb/common/VtbVerificationState.java new file mode 100644 index 00000000..11560230 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/common/VtbVerificationState.java @@ -0,0 +1,21 @@ +package com.qs.serve.modules.vtb.common; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author YenHex + * @since 2022/11/24 + */ +@Getter +@AllArgsConstructor +public enum VtbVerificationState { + + Commit(0), + Success(1), + Fail(2), + Rollback(3); + + private Integer code; + +} diff --git a/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java b/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java new file mode 100644 index 00000000..fa0a15a4 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java @@ -0,0 +1,125 @@ +package com.qs.serve.modules.vtb.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 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.vtb.entity.so.VtbVerificationSo; +import com.qs.serve.modules.vtb.entity.bo.VtbVerificationBo; +import com.qs.serve.modules.vtb.entity.VtbVerification; +import com.qs.serve.modules.vtb.service.VtbVerificationService; + +import javax.validation.Valid; +import java.util.List; + +/** + * 核销 核销 + * @author YenHex + * @since 2022-11-24 + */ +@Slf4j +@AllArgsConstructor +@RestController +@RequestMapping("vtb/verification") +public class VtbVerificationController { + + private VtbVerificationService vtbVerificationService; + + /** + * 列表 + * @param param + * @return + */ + //@GetMapping("/list") + @PreAuthorize("hasRole('vtb:verification:query')") + public R> getList(VtbVerificationSo param){ + VtbVerification entity = CopierUtil.copy(param,new VtbVerification()); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); + PageUtil.startPage(); + List list = vtbVerificationService.list(lqw); + return R.ok(list); + } + + /** + * 翻页 + * @param param + * @return + */ + //@GetMapping("/page") + @PreAuthorize("hasRole('vtb:verification:query')") + public R> getPage(VtbVerificationSo param){ + VtbVerification entity = CopierUtil.copy(param,new VtbVerification()); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); + PageUtil.startPage(); + List list = vtbVerificationService.list(lqw); + return R.byPageHelperList(list); + } + + /** + * ID查询 + * @param id + * @return + */ + //@GetMapping("/getById/{id}") + @SysLog(module = SystemModule.Verification, title = "核销", biz = BizType.QUERY) + @PreAuthorize("hasRole('vtb:verification:query')") + public R getById(@PathVariable("id") String id){ + VtbVerification vtbVerification = vtbVerificationService.getById(id); + return R.ok(vtbVerification); + } + + + + /** + * 更新 + * @param param + * @return + */ + //@PostMapping("/updateById") + @SysLog(module = SystemModule.Verification, title = "核销", biz = BizType.UPDATE) + @PreAuthorize("hasRole('vtb:verification:update')") + public R updateById(@RequestBody @Valid VtbVerificationBo param){ + vtbVerificationService.commit(param); + return R.ok(); + } + + /** + * 新增 + * @param param + * @return + */ + //@PostMapping("/save") + @SysLog(module = SystemModule.Verification, title = "核销", biz = BizType.INSERT) + @PreAuthorize("hasRole('vtb:verification:insert')") + public R save(@RequestBody @Valid VtbVerificationBo param){ + VtbVerification entity = CopierUtil.copy(param,new VtbVerification()); + boolean result = vtbVerificationService.save(entity); + return R.isTrue(result); + } + + /** + * 删除 + * @param ids + * @return + */ + @DeleteMapping("/deleteById/{ids}") + @SysLog(module = SystemModule.Verification, title = "核销", biz = BizType.DELETE) + @PreAuthorize("hasRole('vtb:verification:delete')") + public R deleteById(@PathVariable("ids") String ids){ + List idsLong = StringUtils.splitIdLong(ids); + boolean result = vtbVerificationService.removeByIds(idsLong); + return R.isTrue(result); + } + +} + diff --git a/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerification.java b/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerification.java new file mode 100644 index 00000000..a40cdace --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerification.java @@ -0,0 +1,81 @@ +package com.qs.serve.modules.vtb.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 com.qs.serve.common.framework.mybatis.handler.meta.SplitStringTypeHandler; +import lombok.Data; +import org.apache.ibatis.type.JdbcType; +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 2022-11-24 + */ +@Data +@TableName(value = "vtb_verification",autoResultMap = true) +public class VtbVerification implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + @TableId(type = IdType.AUTO) + private Long id; + + /** 活动id */ + private Long activityId; + + /** 附件id */ + @TableField(typeHandler = SplitStringTypeHandler.class,jdbcType= JdbcType.VARCHAR) + private String[] attachIds; + + /** 核销状态 */ + private Integer verificationState; + + /** 备注 */ + @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/vtb/entity/VtbVerificationCenterGoods.java b/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationCenterGoods.java new file mode 100644 index 00000000..cfd29741 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationCenterGoods.java @@ -0,0 +1,155 @@ +package com.qs.serve.modules.vtb.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 2022-11-24 + */ +@Data +@TableName("vtb_verification_center_goods") +public class VtbVerificationCenterGoods implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + @TableId(type = IdType.AUTO) + private Long id; + + /** 核销id */ + @NotNull(message = "核销id不能为空") + private Long verificationId; + + /** 核销状态 */ + @NotNull(message = "核销状态不能为空") + private Integer verification_state; + + /** 成本明细编码 */ + @NotBlank(message = "成本明细编码不能为空") + @Length(max = 30,message = "成本明细编码长度不能超过30字") + private String centerGoodsCode; + + /** 费用申请id */ + @NotNull(message = "费用申请id不能为空") + private Long costApplyId; + + /** 活动id */ + @NotNull(message = "活动id不能为空") + private Long activityId; + + /** 科目id */ + @NotNull(message = "科目id不能为空") + private Long subjectId; + + /** 科目编码 */ + @NotBlank(message = "科目编码不能为空") + @Length(max = 50,message = "科目编码长度不能超过50字") + private String subjectCode; + + /** 科目名称 */ + @NotBlank(message = "科目名称不能为空") + @Length(max = 50,message = "科目名称长度不能超过50字") + private String subjectName; + + /** 成本中心类型 */ + @NotBlank(message = "成本中心类型不能为空") + @Length(max = 50,message = "成本中心类型长度不能超过50字") + private String centerType; + + /** 成本中心id */ + @NotBlank(message = "成本中心id不能为空") + @Length(max = 32,message = "成本中心id长度不能超过32字") + private String centerId; + + /** 成本中心编码 */ + @NotBlank(message = "成本中心编码不能为空") + @Length(max = 50,message = "成本中心编码长度不能超过50字") + private String centerCode; + + /** 成本中心名称 */ + @NotBlank(message = "成本中心名称不能为空") + @Length(max = 50,message = "成本中心名称长度不能超过50字") + private String centerName; + + /** 已用费用 */ + @NotNull(message = "已用费用不能为空") + private BigDecimal usedAmount; + + /** 目标类型(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; + + /** 目标等级路径 */ + @Length(max = 600,message = "目标等级路径长度不能超过600字") + private String targetLevelPathIds; + + /** 目标等级路径 */ + @Length(max = 600,message = "目标等级路径长度不能超过600字") + private String targetLevelPathNames; + + /** 备注 */ + @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/vtb/entity/VtbVerificationChannel.java b/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationChannel.java new file mode 100644 index 00000000..8afa62bd --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationChannel.java @@ -0,0 +1,103 @@ +package com.qs.serve.modules.vtb.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 2022-11-24 + */ +@Data +@TableName("vtb_verification_channel") +public class VtbVerificationChannel implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + @TableId(type = IdType.AUTO) + private Long id; + + /** 核算id */ + @NotNull(message = "核算id不能为空") + private Long verificationId; + + /** 费用申请id */ + @NotNull(message = "费用申请id不能为空") + private Long costApplyId; + + /** 活动id */ + @NotNull(message = "活动id不能为空") + private Long activityId; + + /** 渠道id */ + @NotNull(message = "渠道id不能为空") + private Long channelId; + + /** 渠道编码 */ + @NotBlank(message = "渠道编码不能为空") + @Length(max = 50,message = "渠道编码长度不能超过50字") + private String channelCode; + + /** 渠道名称 */ + @NotBlank(message = "渠道名称不能为空") + @Length(max = 50,message = "渠道名称长度不能超过50字") + private String channelName; + + /** 渠道费用占比 */ + @NotNull(message = "渠道费用占比不能为空") + private BigDecimal channelRate; + + /** 预计头发网点数量 */ + @NotNull(message = "预计头发网点数量不能为空") + private Integer preCountPoint; + + /** 备注 */ + @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/vtb/entity/VtbVerificationChannelPoint.java b/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationChannelPoint.java new file mode 100644 index 00000000..ea891545 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationChannelPoint.java @@ -0,0 +1,113 @@ +package com.qs.serve.modules.vtb.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 2022-11-24 + */ +@Data +@TableName("vtb_verification_channel_point") +public class VtbVerificationChannelPoint implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + @TableId(type = IdType.AUTO) + private Long id; + + /** 核算id */ + @NotNull(message = "核算id不能为空") + private Long verificationId; + + /** 费用申请id */ + @NotNull(message = "费用申请id不能为空") + private Long costApplyId; + + /** 活动id */ + @NotNull(message = "活动id不能为空") + private Long activityId; + + /** 渠道id */ + @NotNull(message = "渠道id不能为空") + private Long channelId; + + /** 渠道编码 */ + @NotBlank(message = "渠道编码不能为空") + @Length(max = 50,message = "渠道编码长度不能超过50字") + private String channelCode; + + /** 渠道名称 */ + @NotBlank(message = "渠道名称不能为空") + @Length(max = 50,message = "渠道名称长度不能超过50字") + private String channelName; + + /** 网点id */ + @NotNull(message = "网点id不能为空") + private Long pointId; + + /** 网点编码 */ + @NotBlank(message = "网点编码不能为空") + @Length(max = 50,message = "网点编码长度不能超过50字") + private String pointCode; + + /** 网点名称 */ + @NotBlank(message = "网点名称不能为空") + @Length(max = 50,message = "网点名称长度不能超过50字") + private String pointName; + + /** 网点费用占比 */ + @NotNull(message = "网点费用占比不能为空") + private BigDecimal pointRate; + + /** 备注 */ + @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/vtb/entity/VtbVerificationSubject.java b/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationSubject.java new file mode 100644 index 00000000..410c494d --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationSubject.java @@ -0,0 +1,107 @@ +package com.qs.serve.modules.vtb.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 2022-11-24 + */ +@Data +@TableName("vtb_verification_subject") +public class VtbVerificationSubject implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + @TableId(type = IdType.AUTO) + private Long id; + + /** 核算id */ + @NotNull(message = "核算id不能为空") + private Long verificationId; + + /** 费用申请id */ + @NotNull(message = "费用申请id不能为空") + private Long costApplyId; + + /** 活动id */ + @NotNull(message = "活动id不能为空") + private Long activityId; + + /** 科目id */ + @NotNull(message = "科目id不能为空") + private Long subjectId; + + /** 科目编码 */ + @NotBlank(message = "科目编码不能为空") + @Length(max = 50,message = "科目编码长度不能超过50字") + private String subjectCode; + + /** 科目名称 */ + @NotBlank(message = "科目名称不能为空") + @Length(max = 50,message = "科目名称长度不能超过50字") + private String subjectName; + + /** 本次核销额 */ + @NotNull(message = "本次核销额不能为空") + private BigDecimal usedAmount; + + /** 场次 */ + @NotNull(message = "场次不能为空") + private Integer countSession; + + /** 人数 */ + @NotNull(message = "人数不能为空") + private Integer countPerson; + + /** 备注 */ + @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/vtb/entity/bo/VtbVerificationBo.java b/src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationBo.java new file mode 100644 index 00000000..c2693591 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationBo.java @@ -0,0 +1,52 @@ +package com.qs.serve.modules.vtb.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; + +import java.util.List; + +/** + * 核销 Bo + * @author YenHex + * @since 2022-11-24 + */ +@Data +public class VtbVerificationBo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + private Long id; + + /** 活动id */ + private Long activityId; + + /** 附件id */ + private String[] attachIds; + + /** 备注 */ + private String remark; + + /** 渠道 */ + private List channelList; + + /** 网点 */ + private List pointList; + + /** 科目 */ + private List subjectList; + +} + diff --git a/src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationCenterGoodsBo.java b/src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationCenterGoodsBo.java new file mode 100644 index 00000000..6c90a97f --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationCenterGoodsBo.java @@ -0,0 +1,145 @@ +package com.qs.serve.modules.vtb.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-24 + */ +@Data +public class VtbVerificationCenterGoodsBo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + private Long id; + + /** 核销id */ + @NotNull(message = "核销id不能为空") + private Long verificationId; + + /** 核销状态 */ + private Integer verificationState; + + /** 成本明细编码 */ + @NotBlank(message = "成本明细编码不能为空") + @Length(max = 30,message = "成本明细编码长度不能超过30字") + private String centerGoodsCode; + + /** 费用申请id */ + @NotNull(message = "费用申请id不能为空") + private Long costApplyId; + + /** 活动id */ + @NotNull(message = "活动id不能为空") + private Long activityId; + + /** 科目id */ + @NotNull(message = "科目id不能为空") + private Long subjectId; + + /** 科目编码 */ + @NotBlank(message = "科目编码不能为空") + @Length(max = 50,message = "科目编码长度不能超过50字") + private String subjectCode; + + /** 科目名称 */ + @NotBlank(message = "科目名称不能为空") + @Length(max = 50,message = "科目名称长度不能超过50字") + private String subjectName; + + /** 成本中心类型 */ + @NotBlank(message = "成本中心类型不能为空") + @Length(max = 50,message = "成本中心类型长度不能超过50字") + private String centerType; + + /** 成本中心id */ + @NotBlank(message = "成本中心id不能为空") + @Length(max = 32,message = "成本中心id长度不能超过32字") + private String centerId; + + /** 成本中心编码 */ + @NotBlank(message = "成本中心编码不能为空") + @Length(max = 50,message = "成本中心编码长度不能超过50字") + private String centerCode; + + /** 成本中心名称 */ + @NotBlank(message = "成本中心名称不能为空") + @Length(max = 50,message = "成本中心名称长度不能超过50字") + private String centerName; + + /** 已用费用 */ + @NotNull(message = "已用费用不能为空") + private BigDecimal usedAmount; + + /** 目标类型(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; + + /** 目标等级路径 */ + @Length(max = 600,message = "目标等级路径长度不能超过600字") + private String targetLevelPathIds; + + /** 目标等级路径 */ + @Length(max = 600,message = "目标等级路径长度不能超过600字") + private String targetLevelPathNames; + + /** 备注 */ + @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/vtb/entity/bo/VtbVerificationChannelBo.java b/src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationChannelBo.java new file mode 100644 index 00000000..f5f03991 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationChannelBo.java @@ -0,0 +1,45 @@ +package com.qs.serve.modules.vtb.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-24 + */ +@Data +public class VtbVerificationChannelBo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** 渠道id */ + @NotNull(message = "渠道id不能为空") + private Long channelId; + + /** 渠道费用占比 */ + @NotNull(message = "渠道费用占比不能为空") + private BigDecimal channelRate; + + /** 预计投放网点数量 */ + @NotNull(message = "预计投放网点数量不能为空") + private Integer preCountPoint; + + /** 备注 */ + @Length(max = 255,message = "备注长度不能超过255字") + private String remark; + +} + diff --git a/src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationChannelPointBo.java b/src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationChannelPointBo.java new file mode 100644 index 00000000..c396b5dd --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationChannelPointBo.java @@ -0,0 +1,39 @@ +package com.qs.serve.modules.vtb.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-24 + */ +@Data +public class VtbVerificationChannelPointBo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** 网点id */ + @NotNull(message = "网点id不能为空") + private Long pointId; + + /** 网点费用占比 */ + @NotNull(message = "网点费用占比不能为空") + private BigDecimal pointRate; + + private String remark; + +} + diff --git a/src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationSubjectBo.java b/src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationSubjectBo.java new file mode 100644 index 00000000..7ba6de71 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/entity/bo/VtbVerificationSubjectBo.java @@ -0,0 +1,48 @@ +package com.qs.serve.modules.vtb.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-24 + */ +@Data +public class VtbVerificationSubjectBo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** 科目id */ + private Long subjectId; + + /** 场次 */ + @NotNull(message = "场次不能为空") + private Integer countSession; + + /** 人数 */ + @NotNull(message = "人数不能为空") + private Integer countPerson; + + /** 费用额 */ + @NotNull(message = "费用额不能为空") + private BigDecimal amount; + + /** 备注 */ + @Length(max = 255,message = "备注长度不能超过255字") + private String remark; + +} + diff --git a/src/main/java/com/qs/serve/modules/vtb/entity/so/VtbVerificationCenterGoodsSo.java b/src/main/java/com/qs/serve/modules/vtb/entity/so/VtbVerificationCenterGoodsSo.java new file mode 100644 index 00000000..90d272ab --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/entity/so/VtbVerificationCenterGoodsSo.java @@ -0,0 +1,116 @@ +package com.qs.serve.modules.vtb.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 2022-11-24 + */ +@Data +public class VtbVerificationCenterGoodsSo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + private Long id; + + /** 核销id */ + private Long verificationId; + + /** 核销状态 */ + private Integer verficarionState; + + /** 成本明细编码 */ + private String centerGoodsCode; + + /** 费用申请id */ + private Long costApplyId; + + /** 活动id */ + private Long activityId; + + /** 科目id */ + private Long subjectId; + + /** 科目编码 */ + private String subjectCode; + + /** 科目名称 */ + private String subjectName; + + /** 成本中心类型 */ + private String centerType; + + /** 成本中心id */ + private String centerId; + + /** 成本中心编码 */ + private String centerCode; + + /** 成本中心名称 */ + private String centerName; + + /** 已用费用 */ + private BigDecimal usedAmount; + + /** 目标类型(brand、category、series、spu、sku) */ + private String targetType; + + /** 目标id */ + private Long targetId; + + /** 目标编码 */ + private String targetCode; + + /** 目标名称 */ + private String targetName; + + /** 目标等级路径 */ + private String targetLevelPathIds; + + /** 目标等级路径 */ + private String targetLevelPathNames; + + /** 备注 */ + 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/vtb/entity/so/VtbVerificationChannelPointSo.java b/src/main/java/com/qs/serve/modules/vtb/entity/so/VtbVerificationChannelPointSo.java new file mode 100644 index 00000000..b104a6c6 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/entity/so/VtbVerificationChannelPointSo.java @@ -0,0 +1,86 @@ +package com.qs.serve.modules.vtb.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 2022-11-24 + */ +@Data +public class VtbVerificationChannelPointSo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + private Long id; + + /** 费用申请id */ + private Long costApplyId; + + /** 活动id */ + private Long activityId; + + /** 渠道id */ + private Long channelId; + + /** 渠道编码 */ + private String channelCode; + + /** 渠道名称 */ + private String channelName; + + /** 网点id */ + private Long pointId; + + /** 网点编码 */ + private String pointCode; + + /** 网点名称 */ + private String pointName; + + /** 网点费用占比 */ + private BigDecimal pointRate; + + /** 备注 */ + 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/vtb/entity/so/VtbVerificationChannelSo.java b/src/main/java/com/qs/serve/modules/vtb/entity/so/VtbVerificationChannelSo.java new file mode 100644 index 00000000..28ef902c --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/entity/so/VtbVerificationChannelSo.java @@ -0,0 +1,80 @@ +package com.qs.serve.modules.vtb.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 2022-11-24 + */ +@Data +public class VtbVerificationChannelSo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + private Long id; + + /** 费用申请id */ + private Long costApplyId; + + /** 活动id */ + private Long activityId; + + /** 渠道id */ + private Long channelId; + + /** 渠道编码 */ + private String channelCode; + + /** 渠道名称 */ + private String channelName; + + /** 渠道费用占比 */ + private BigDecimal channelRate; + + /** 预计头发网点数量 */ + private Integer preCountPoint; + + /** 备注 */ + 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/vtb/entity/so/VtbVerificationSo.java b/src/main/java/com/qs/serve/modules/vtb/entity/so/VtbVerificationSo.java new file mode 100644 index 00000000..b9ae9dd4 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/entity/so/VtbVerificationSo.java @@ -0,0 +1,68 @@ +package com.qs.serve.modules.vtb.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 2022-11-24 + */ +@Data +public class VtbVerificationSo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + private Long id; + + /** 活动id */ + private Long activityId; + + /** 附件id */ + private String attachIds; + + /** 核销状态 */ + private Integer verficarionState; + + /** 备注 */ + 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/vtb/entity/so/VtbVerificationSubjectSo.java b/src/main/java/com/qs/serve/modules/vtb/entity/so/VtbVerificationSubjectSo.java new file mode 100644 index 00000000..6aa716a1 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/entity/so/VtbVerificationSubjectSo.java @@ -0,0 +1,89 @@ +package com.qs.serve.modules.vtb.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 2022-11-24 + */ +@Data +public class VtbVerificationSubjectSo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + private Long id; + + /** 核算id */ + private Long verificationId; + + /** 费用申请id */ + private Long costApplyId; + + /** 活动id */ + private Long activityId; + + /** 科目id */ + private Long subjectId; + + /** 科目编码 */ + private String subjectCode; + + /** 科目名称 */ + private String subjectName; + + /** 费用额度 */ + private BigDecimal amount; + + /** 本次核销额 */ + private BigDecimal usedAmount; + + /** 场次 */ + private Integer countSession; + + /** 人数 */ + private Integer countPerson; + + /** 备注 */ + 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/vtb/mapper/VtbVerificationCenterGoodsMapper.java b/src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationCenterGoodsMapper.java new file mode 100644 index 00000000..5b7c3951 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationCenterGoodsMapper.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.vtb.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qs.serve.modules.vtb.entity.VtbVerificationCenterGoods; + +/** + * 核销费用项 Mapper + * @author YenHex + * @date 2022-11-24 + */ +public interface VtbVerificationCenterGoodsMapper extends BaseMapper { + +} + diff --git a/src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationChannelMapper.java b/src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationChannelMapper.java new file mode 100644 index 00000000..770d25c1 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationChannelMapper.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.vtb.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qs.serve.modules.vtb.entity.VtbVerificationChannel; + +/** + * 核销渠道项 Mapper + * @author YenHex + * @date 2022-11-24 + */ +public interface VtbVerificationChannelMapper extends BaseMapper { + +} + diff --git a/src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationChannelPointMapper.java b/src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationChannelPointMapper.java new file mode 100644 index 00000000..3da66225 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationChannelPointMapper.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.vtb.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qs.serve.modules.vtb.entity.VtbVerificationChannelPoint; + +/** + * 核销网点项 Mapper + * @author YenHex + * @date 2022-11-24 + */ +public interface VtbVerificationChannelPointMapper extends BaseMapper { + +} + diff --git a/src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationMapper.java b/src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationMapper.java new file mode 100644 index 00000000..db44abeb --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationMapper.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.vtb.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qs.serve.modules.vtb.entity.VtbVerification; + +/** + * 核销 Mapper + * @author YenHex + * @date 2022-11-24 + */ +public interface VtbVerificationMapper extends BaseMapper { + +} + diff --git a/src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationSubjectMapper.java b/src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationSubjectMapper.java new file mode 100644 index 00000000..d9fd4537 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationSubjectMapper.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.vtb.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qs.serve.modules.vtb.entity.VtbVerificationSubject; + +/** + * 核销科目费用 Mapper + * @author YenHex + * @date 2022-11-24 + */ +public interface VtbVerificationSubjectMapper extends BaseMapper { + +} + diff --git a/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationCenterGoodsService.java b/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationCenterGoodsService.java new file mode 100644 index 00000000..c9ac41b5 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationCenterGoodsService.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.vtb.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.qs.serve.modules.vtb.entity.VtbVerificationCenterGoods; + +/** + * 核销费用项 服务接口 + * @author YenHex + * @date 2022-11-24 + */ +public interface VtbVerificationCenterGoodsService extends IService { + +} + diff --git a/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationChannelPointService.java b/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationChannelPointService.java new file mode 100644 index 00000000..2e0e36fc --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationChannelPointService.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.vtb.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.qs.serve.modules.vtb.entity.VtbVerificationChannelPoint; + +/** + * 核销网点项 服务接口 + * @author YenHex + * @date 2022-11-24 + */ +public interface VtbVerificationChannelPointService extends IService { + +} + diff --git a/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationChannelService.java b/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationChannelService.java new file mode 100644 index 00000000..6d5c1e1a --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationChannelService.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.vtb.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.qs.serve.modules.vtb.entity.VtbVerificationChannel; + +/** + * 核销渠道项 服务接口 + * @author YenHex + * @date 2022-11-24 + */ +public interface VtbVerificationChannelService extends IService { + +} + diff --git a/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationService.java b/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationService.java new file mode 100644 index 00000000..df67fcc8 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationService.java @@ -0,0 +1,21 @@ +package com.qs.serve.modules.vtb.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.qs.serve.modules.vtb.entity.VtbVerification; +import com.qs.serve.modules.vtb.entity.bo.VtbVerificationBo; + +/** + * 核销 服务接口 + * @author YenHex + * @date 2022-11-24 + */ +public interface VtbVerificationService extends IService { + + /** + * 提交审批 + * @param vtbVerificationBo + */ + void commit(VtbVerificationBo vtbVerificationBo); + +} + diff --git a/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationSubjectService.java b/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationSubjectService.java new file mode 100644 index 00000000..ebb0a793 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationSubjectService.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.vtb.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.qs.serve.modules.vtb.entity.VtbVerificationSubject; + +/** + * 核销科目费用 服务接口 + * @author YenHex + * @date 2022-11-24 + */ +public interface VtbVerificationSubjectService extends IService { + +} + diff --git a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationCenterGoodsServiceImpl.java b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationCenterGoodsServiceImpl.java new file mode 100644 index 00000000..bb3966b1 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationCenterGoodsServiceImpl.java @@ -0,0 +1,22 @@ +package com.qs.serve.modules.vtb.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.vtb.entity.VtbVerificationCenterGoods; +import com.qs.serve.modules.vtb.service.VtbVerificationCenterGoodsService; +import com.qs.serve.modules.vtb.mapper.VtbVerificationCenterGoodsMapper; + +/** + * 核销费用项 服务实现类 + * @author YenHex + * @since 2022-11-24 + */ +@Slf4j +@Service +@AllArgsConstructor +public class VtbVerificationCenterGoodsServiceImpl extends ServiceImpl implements VtbVerificationCenterGoodsService { + +} + diff --git a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationChannelPointServiceImpl.java b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationChannelPointServiceImpl.java new file mode 100644 index 00000000..ce95ab41 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationChannelPointServiceImpl.java @@ -0,0 +1,22 @@ +package com.qs.serve.modules.vtb.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.vtb.entity.VtbVerificationChannelPoint; +import com.qs.serve.modules.vtb.service.VtbVerificationChannelPointService; +import com.qs.serve.modules.vtb.mapper.VtbVerificationChannelPointMapper; + +/** + * 核销网点项 服务实现类 + * @author YenHex + * @since 2022-11-24 + */ +@Slf4j +@Service +@AllArgsConstructor +public class VtbVerificationChannelPointServiceImpl extends ServiceImpl implements VtbVerificationChannelPointService { + +} + diff --git a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationChannelServiceImpl.java b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationChannelServiceImpl.java new file mode 100644 index 00000000..c2ca93fb --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationChannelServiceImpl.java @@ -0,0 +1,22 @@ +package com.qs.serve.modules.vtb.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.vtb.entity.VtbVerificationChannel; +import com.qs.serve.modules.vtb.service.VtbVerificationChannelService; +import com.qs.serve.modules.vtb.mapper.VtbVerificationChannelMapper; + +/** + * 核销渠道项 服务实现类 + * @author YenHex + * @since 2022-11-24 + */ +@Slf4j +@Service +@AllArgsConstructor +public class VtbVerificationChannelServiceImpl extends ServiceImpl implements VtbVerificationChannelService { + +} + diff --git a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java new file mode 100644 index 00000000..96b31b40 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java @@ -0,0 +1,81 @@ +package com.qs.serve.modules.vtb.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qs.serve.modules.bms.entity.BmsSubject; +import com.qs.serve.modules.bms.service.BmsSubjectService; +import com.qs.serve.modules.tbs.entity.TbsActivity; +import com.qs.serve.modules.tbs.entity.TbsCostApply; +import com.qs.serve.modules.tbs.service.TbsActivityService; +import com.qs.serve.modules.tbs.service.TbsCostApplyService; +import com.qs.serve.modules.vtb.entity.VtbVerificationSubject; +import com.qs.serve.modules.vtb.entity.bo.VtbVerificationBo; +import com.qs.serve.modules.vtb.entity.bo.VtbVerificationChannelBo; +import com.qs.serve.modules.vtb.entity.bo.VtbVerificationChannelPointBo; +import com.qs.serve.modules.vtb.entity.bo.VtbVerificationSubjectBo; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import com.qs.serve.modules.vtb.entity.VtbVerification; +import com.qs.serve.modules.vtb.service.VtbVerificationService; +import com.qs.serve.modules.vtb.mapper.VtbVerificationMapper; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 核销 服务实现类 + * @author YenHex + * @since 2022-11-24 + */ +@Slf4j +@Service +@AllArgsConstructor +public class VtbVerificationServiceImpl extends ServiceImpl implements VtbVerificationService { + + private final TbsActivityService activityService; + private final TbsCostApplyService costApplyService; + private final BmsSubjectService subjectService; + + @Override + public void commit(VtbVerificationBo verificationBo) { + TbsActivity activity = activityService.getById(verificationBo.getActivityId()); + TbsCostApply costApply = costApplyService.getById(activity.getCostApplyId()); + //todo 检测是否有拦截 + VtbVerification verification = new VtbVerification(); + verification.setId(verification.getId()); + verification.setActivityId(verificationBo.getActivityId()); + verification.setAttachIds(verificationBo.getAttachIds()); + verification.setRemark(verificationBo.getRemark()); + this.saveOrUpdate(verification); + + + List channelBoList = verificationBo.getChannelList(); + List pointBoList = verificationBo.getPointList(); + + List subjectBoList = verificationBo.getSubjectList(); + for (VtbVerificationSubjectBo subjectBo : subjectBoList) { + //忽略金额为0的数据 + if(subjectBo.getAmount()==null||subjectBo.getAmount().compareTo(BigDecimal.ZERO)<1){ + continue; + } + BmsSubject subject = subjectService.getById(subjectBo.getSubjectId()); + + VtbVerificationSubject verificationSubject = new VtbVerificationSubject(); + verificationSubject.setVerificationId(verification.getId()); + verificationSubject.setCostApplyId(costApply.getId()); + verificationSubject.setActivityId(activity.getId()); + verificationSubject.setSubjectId(subject.getId()); + verificationSubject.setSubjectCode(subject.getSubjectCode()); + verificationSubject.setSubjectName(subject.getSubjectName()); + verificationSubject.setUsedAmount(subjectBo.getAmount()); + verificationSubject.setCountPerson(subjectBo.getCountPerson()); + verificationSubject.setCountSession(subjectBo.getCountSession()); + verificationSubject.setRemark(subjectBo.getRemark()); + + // + + } + } + +} + diff --git a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationSubjectServiceImpl.java b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationSubjectServiceImpl.java new file mode 100644 index 00000000..353e30bb --- /dev/null +++ b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationSubjectServiceImpl.java @@ -0,0 +1,22 @@ +package com.qs.serve.modules.vtb.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.vtb.entity.VtbVerificationSubject; +import com.qs.serve.modules.vtb.service.VtbVerificationSubjectService; +import com.qs.serve.modules.vtb.mapper.VtbVerificationSubjectMapper; + +/** + * 核销科目费用 服务实现类 + * @author YenHex + * @since 2022-11-24 + */ +@Slf4j +@Service +@AllArgsConstructor +public class VtbVerificationSubjectServiceImpl extends ServiceImpl implements VtbVerificationSubjectService { + +} +