From 3dc40f7da646c8ca87af0c52bd0ac3f37a1edc29 Mon Sep 17 00:00:00 2001 From: Yen Date: Wed, 20 Sep 2023 09:03:47 +0800 Subject: [PATCH] =?UTF-8?q?=E9=94=80=E5=94=AE=E8=AE=A1=E5=88=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/model/enums/SystemModule.java | 3 +- .../sale/controller/SalePlanController.java | 117 ++++++++++++++++ .../serve/modules/sale/entity/SalePlan.java | 125 +++++++++++++++++ .../modules/sale/entity/SalePlanGoods.java | 126 ++++++++++++++++++ .../modules/sale/entity/bo/SalePlanBo.java | 8 ++ .../sale/mapper/SalePlanGoodsMapper.java | 14 ++ .../modules/sale/mapper/SalePlanMapper.java | 14 ++ .../sale/service/SalePlanGoodsService.java | 14 ++ .../modules/sale/service/SalePlanService.java | 14 ++ .../impl/SalePlanGoodsServiceImpl.java | 22 +++ .../service/impl/SalePlanServiceImpl.java | 22 +++ 11 files changed, 478 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/qs/serve/modules/sale/controller/SalePlanController.java create mode 100644 src/main/java/com/qs/serve/modules/sale/entity/SalePlan.java create mode 100644 src/main/java/com/qs/serve/modules/sale/entity/SalePlanGoods.java create mode 100644 src/main/java/com/qs/serve/modules/sale/entity/bo/SalePlanBo.java create mode 100644 src/main/java/com/qs/serve/modules/sale/mapper/SalePlanGoodsMapper.java create mode 100644 src/main/java/com/qs/serve/modules/sale/mapper/SalePlanMapper.java create mode 100644 src/main/java/com/qs/serve/modules/sale/service/SalePlanGoodsService.java create mode 100644 src/main/java/com/qs/serve/modules/sale/service/SalePlanService.java create mode 100644 src/main/java/com/qs/serve/modules/sale/service/impl/SalePlanGoodsServiceImpl.java create mode 100644 src/main/java/com/qs/serve/modules/sale/service/impl/SalePlanServiceImpl.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 5a9fc005..a348f1e2 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 @@ -24,7 +24,8 @@ public enum SystemModule { UMS("ums","手机用户"), DATA("data","数据"), Excel("excel","excel数据"), - Tag("tag","标签"); + Tag("tag","标签"), + SALE("sale","销售"); String code; diff --git a/src/main/java/com/qs/serve/modules/sale/controller/SalePlanController.java b/src/main/java/com/qs/serve/modules/sale/controller/SalePlanController.java new file mode 100644 index 00000000..8aa644d6 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/sale/controller/SalePlanController.java @@ -0,0 +1,117 @@ +package com.qs.serve.modules.sale.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.sale.entity.bo.SalePlanBo; +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.sale.entity.SalePlan; +import com.qs.serve.modules.sale.service.SalePlanService; + +import javax.validation.Valid; +import java.util.List; + +/** + * 销售 销售计划 + * @author YenHex + * @since 2023-09-20 + */ +@Slf4j +@AllArgsConstructor +@RestController +@RequestMapping("sale/plan") +public class SalePlanController { + + private SalePlanService salePlanService; + + /** + * 列表 + * @param param + * @return + */ + //@GetMapping("/list") + public R> getList(SalePlan param){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(param); + List list = salePlanService.list(lqw); + return R.ok(list); + } + + /** + * 翻页 + * @param param + * @return + */ + @GetMapping("/page") + public R> getPage(SalePlan param){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(param); + PageUtil.startPage(); + List list = salePlanService.list(lqw); + return R.byPageHelperList(list); + } + + /** + * ID查询 + * @param id + * @return + */ + @GetMapping("/getById/{id}") + @SysLog(module = SystemModule.SALE, title = "销售计划", biz = BizType.QUERY) + @PreAuthorize("hasRole('sale:plan:query')") + public R getById(@PathVariable("id") String id){ + SalePlan salePlan = salePlanService.getById(id); + return R.ok(salePlan); + } + + + + /** + * 更新 + * @param param + * @return + */ + @PostMapping("/updateById") + @SysLog(module = SystemModule.SALE, title = "销售计划", biz = BizType.UPDATE) + public R updateById(@RequestBody @Valid SalePlanBo param){ + SalePlan entity = CopierUtil.copy(param,new SalePlan()); + boolean result = salePlanService.updateById(entity); + return R.isTrue(result); + } + + /** + * 新增 + * @param param + * @return + */ + @PostMapping("/save") + @SysLog(module = SystemModule.SALE, title = "销售计划", biz = BizType.INSERT) + public R save(@RequestBody @Valid SalePlanBo param){ + SalePlan entity = CopierUtil.copy(param,new SalePlan()); + boolean result = salePlanService.save(entity); + return R.isTrue(result); + } + + /** + * 删除 + * @param ids + * @return + */ + @DeleteMapping("/deleteById/{ids}") + @SysLog(module = SystemModule.SALE, title = "销售计划", biz = BizType.DELETE) + public R deleteById(@PathVariable("ids") String ids){ + List idsLong = StringUtils.splitIdLong(ids); + boolean result = salePlanService.removeByIds(idsLong); + return R.isTrue(result); + } + +} + diff --git a/src/main/java/com/qs/serve/modules/sale/entity/SalePlan.java b/src/main/java/com/qs/serve/modules/sale/entity/SalePlan.java new file mode 100644 index 00000000..62692937 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/sale/entity/SalePlan.java @@ -0,0 +1,125 @@ +package com.qs.serve.modules.sale.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-09-20 + */ +@Data +@TableName("sale_plan") +public class SalePlan implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + @TableId(type = IdType.AUTO) + private Long id; + + /** 编码 */ + @NotBlank(message = "编码不能为空") + @Length(max = 50,message = "编码长度不能超过50字") + private String planCode; + + /** 标题 */ + @NotBlank(message = "标题不能为空") + @Length(max = 255,message = "标题长度不能超过255字") + private String planTitle; + + /** 状态 */ + @NotNull(message = "状态不能为空") + private Integer planState; + + /** 发布人id */ + @Length(max = 255,message = "发布人id长度不能超过255字") + private String userId; + + /** 发布人编码 */ + @Length(max = 255,message = "发布人编码长度不能超过255字") + private String userCode; + + /** 发布人 */ + @Length(max = 255,message = "发布人长度不能超过255字") + private String userName; + + /** 客户id */ + @Length(max = 255,message = "客户id长度不能超过255字") + private String supplierId; + + /** 客户编码 */ + @Length(max = 255,message = "客户编码长度不能超过255字") + private String supplierCode; + + /** 客户名称 */ + @Length(max = 255,message = "客户名称长度不能超过255字") + private String supplierName; + + /** 创建时间 */ + @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; + + /** 逻辑删除标记(0:显示;1:隐藏) */ + @JsonIgnore + @JsonProperty + private String delFlag; + + /** 创建人 */ + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** 更新人 */ + @TableField(fill = FieldFill.UPDATE) + private String updateBy; + + + public static SalePlan toNewObject(SalePlan source){ + SalePlan plan = new SalePlan(); + plan.setId(source.getId()); + plan.setPlanCode(source.getPlanCode()); + plan.setPlanTitle(source.getPlanTitle()); + plan.setPlanState(source.getPlanState()); + plan.setUserId(source.getUserId()); + plan.setUserCode(source.getUserCode()); + plan.setUserName(source.getUserName()); + plan.setSupplierId(source.getSupplierId()); + plan.setSupplierCode(source.getSupplierCode()); + plan.setSupplierName(source.getSupplierName()); + plan.setCreateTime(source.getCreateTime()); + plan.setUpdateTime(source.getUpdateTime()); + plan.setTenantId(source.getTenantId()); + plan.setDelFlag(source.getDelFlag()); + plan.setCreateBy(source.getCreateBy()); + plan.setUpdateBy(source.getUpdateBy()); + return plan; + } + +} + diff --git a/src/main/java/com/qs/serve/modules/sale/entity/SalePlanGoods.java b/src/main/java/com/qs/serve/modules/sale/entity/SalePlanGoods.java new file mode 100644 index 00000000..1b277326 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/sale/entity/SalePlanGoods.java @@ -0,0 +1,126 @@ +package com.qs.serve.modules.sale.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-09-20 + */ +@Data +@TableName("sale_plan_goods") +public class SalePlanGoods implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + @TableId(type = IdType.AUTO) + private Long id; + + /** 标题 */ + @NotNull(message = "标题不能为空") + private Long planId; + + /** 状态 */ + @NotNull(message = "状态不能为空") + private Integer planState; + + /** 目标类型(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 = 200,message = "目标名称长度不能超过200字") + private String targetName; + + /** 目标等级路径 */ + @Length(max = 600,message = "目标等级路径长度不能超过600字") + private String targetLevelPathIds; + + /** 目标等级路径 */ + @Length(max = 800,message = "目标等级路径长度不能超过800字") + private String targetLevelPathNames; + + /** 计划数量 */ + @NotNull(message = "计划数量不能为空") + private Integer qty; + + /** 创建时间 */ + @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; + + /** 创建人 */ + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** 最后更新时间 */ + @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; + + /** 更新人 */ + @TableField(fill = FieldFill.UPDATE) + private String updateBy; + + /** 逻辑删除标记(0:显示;1:隐藏) */ + @JsonIgnore + @JsonProperty + private String delFlag; + + /** 所属租户 */ + @JsonIgnore + @JsonProperty + private String tenantId; + + + public static SalePlanGoods toNewObject(SalePlanGoods source){ + SalePlanGoods planGoods = new SalePlanGoods(); + planGoods.setId(source.getId()); + planGoods.setPlanId(source.getPlanId()); + planGoods.setPlanState(source.getPlanState()); + planGoods.setTargetType(source.getTargetType()); + planGoods.setTargetId(source.getTargetId()); + planGoods.setTargetCode(source.getTargetCode()); + planGoods.setTargetName(source.getTargetName()); + planGoods.setTargetLevelPathIds(source.getTargetLevelPathIds()); + planGoods.setTargetLevelPathNames(source.getTargetLevelPathNames()); + planGoods.setQty(source.getQty()); + planGoods.setCreateTime(source.getCreateTime()); + planGoods.setCreateBy(source.getCreateBy()); + planGoods.setUpdateTime(source.getUpdateTime()); + planGoods.setUpdateBy(source.getUpdateBy()); + planGoods.setDelFlag(source.getDelFlag()); + planGoods.setTenantId(source.getTenantId()); + return planGoods; + } + +} + diff --git a/src/main/java/com/qs/serve/modules/sale/entity/bo/SalePlanBo.java b/src/main/java/com/qs/serve/modules/sale/entity/bo/SalePlanBo.java new file mode 100644 index 00000000..c1cc8cf9 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/sale/entity/bo/SalePlanBo.java @@ -0,0 +1,8 @@ +package com.qs.serve.modules.sale.entity.bo; + +/** + * @author YenHex + * @since 2023/9/20 + */ +public class SalePlanBo { +} diff --git a/src/main/java/com/qs/serve/modules/sale/mapper/SalePlanGoodsMapper.java b/src/main/java/com/qs/serve/modules/sale/mapper/SalePlanGoodsMapper.java new file mode 100644 index 00000000..a45ec630 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/sale/mapper/SalePlanGoodsMapper.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.sale.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qs.serve.modules.sale.entity.SalePlanGoods; + +/** + * 销售计划商品 Mapper + * @author YenHex + * @date 2023-09-20 + */ +public interface SalePlanGoodsMapper extends BaseMapper { + +} + diff --git a/src/main/java/com/qs/serve/modules/sale/mapper/SalePlanMapper.java b/src/main/java/com/qs/serve/modules/sale/mapper/SalePlanMapper.java new file mode 100644 index 00000000..784df9ce --- /dev/null +++ b/src/main/java/com/qs/serve/modules/sale/mapper/SalePlanMapper.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.sale.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qs.serve.modules.sale.entity.SalePlan; + +/** + * 销售计划 Mapper + * @author YenHex + * @date 2023-09-20 + */ +public interface SalePlanMapper extends BaseMapper { + +} + diff --git a/src/main/java/com/qs/serve/modules/sale/service/SalePlanGoodsService.java b/src/main/java/com/qs/serve/modules/sale/service/SalePlanGoodsService.java new file mode 100644 index 00000000..623aa8eb --- /dev/null +++ b/src/main/java/com/qs/serve/modules/sale/service/SalePlanGoodsService.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.sale.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.qs.serve.modules.sale.entity.SalePlanGoods; + +/** + * 销售计划商品 服务接口 + * @author YenHex + * @date 2023-09-20 + */ +public interface SalePlanGoodsService extends IService { + +} + diff --git a/src/main/java/com/qs/serve/modules/sale/service/SalePlanService.java b/src/main/java/com/qs/serve/modules/sale/service/SalePlanService.java new file mode 100644 index 00000000..e1ee109f --- /dev/null +++ b/src/main/java/com/qs/serve/modules/sale/service/SalePlanService.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.sale.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.qs.serve.modules.sale.entity.SalePlan; + +/** + * 销售计划 服务接口 + * @author YenHex + * @date 2023-09-20 + */ +public interface SalePlanService extends IService { + +} + diff --git a/src/main/java/com/qs/serve/modules/sale/service/impl/SalePlanGoodsServiceImpl.java b/src/main/java/com/qs/serve/modules/sale/service/impl/SalePlanGoodsServiceImpl.java new file mode 100644 index 00000000..bde605ec --- /dev/null +++ b/src/main/java/com/qs/serve/modules/sale/service/impl/SalePlanGoodsServiceImpl.java @@ -0,0 +1,22 @@ +package com.qs.serve.modules.sale.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.sale.entity.SalePlanGoods; +import com.qs.serve.modules.sale.service.SalePlanGoodsService; +import com.qs.serve.modules.sale.mapper.SalePlanGoodsMapper; + +/** + * 销售计划商品 服务实现类 + * @author YenHex + * @since 2023-09-20 + */ +@Slf4j +@Service +@AllArgsConstructor +public class SalePlanGoodsServiceImpl extends ServiceImpl implements SalePlanGoodsService { + +} + diff --git a/src/main/java/com/qs/serve/modules/sale/service/impl/SalePlanServiceImpl.java b/src/main/java/com/qs/serve/modules/sale/service/impl/SalePlanServiceImpl.java new file mode 100644 index 00000000..0c9faa25 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/sale/service/impl/SalePlanServiceImpl.java @@ -0,0 +1,22 @@ +package com.qs.serve.modules.sale.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.sale.entity.SalePlan; +import com.qs.serve.modules.sale.service.SalePlanService; +import com.qs.serve.modules.sale.mapper.SalePlanMapper; + +/** + * 销售计划 服务实现类 + * @author YenHex + * @since 2023-09-20 + */ +@Slf4j +@Service +@AllArgsConstructor +public class SalePlanServiceImpl extends ServiceImpl implements SalePlanService { + +} +