From 6f90c65d6cde7fc65d1c67caed8665f7d81472fb Mon Sep 17 00:00:00 2001 From: Yen Date: Thu, 13 Oct 2022 15:19:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=88=90=E6=9C=AC=E4=B8=AD?= =?UTF-8?q?=E5=BF=83=E3=80=81erp=E4=BF=A1=E6=81=AF=E3=80=81=E5=95=86?= =?UTF-8?q?=E5=93=81=E5=8D=95=E4=BD=8D=E3=80=81=E6=B7=BB=E5=8A=A0=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E6=B7=BB=E5=8A=A0=E4=BE=9B=E5=BA=94=E5=95=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/BmsCostCenterController.java | 103 ++++++++++++++++++ .../bms/controller/BmsErpInfoController.java | 103 ++++++++++++++++++ .../bms/controller/BmsRegionController.java | 13 +-- .../BmsSupplierAddressController.java | 44 +++++++- .../controller/BmsSupplierBandController.java | 6 +- .../bms/controller/BmsSupplierController.java | 14 +++ .../modules/bms/entity/BmsCostCenter.java | 77 +++++++++++++ .../serve/modules/bms/entity/BmsErpInfo.java | 77 +++++++++++++ .../serve/modules/bms/entity/BmsRegion.java | 1 + .../serve/modules/bms/entity/BmsSupplier.java | 6 + .../bms/entity/vo/BmsRegionBatchBo.java | 3 + .../bms/entity/vo/BmsSupplierBatchBo.java | 47 ++++++++ .../bms/mapper/BmsCostCenterMapper.java | 14 +++ .../modules/bms/mapper/BmsErpInfoMapper.java | 14 +++ .../bms/service/BmsCostCenterService.java | 14 +++ .../bms/service/BmsErpInfoService.java | 14 +++ .../modules/bms/service/BmsRegionService.java | 2 + .../service/BmsSupplierAddressService.java | 6 + .../bms/service/BmsSupplierService.java | 7 ++ .../impl/BmsCostCenterServiceImpl.java | 22 ++++ .../service/impl/BmsErpInfoServiceImpl.java | 22 ++++ .../service/impl/BmsRegionServiceImpl.java | 7 ++ .../impl/BmsSupplierAddressServiceImpl.java | 18 +++ .../service/impl/BmsSupplierServiceImpl.java | 91 +++++++++++++--- .../goods/controller/GoodsUnitController.java | 103 ++++++++++++++++++ .../serve/modules/goods/entity/GoodsSku.java | 10 ++ .../serve/modules/goods/entity/GoodsSpu.java | 3 + .../serve/modules/goods/entity/GoodsUnit.java | 71 ++++++++++++ .../goods/entity/bo/GoodsSpuTasteBo.java | 8 ++ .../modules/goods/mapper/GoodsUnitMapper.java | 14 +++ .../goods/service/GoodsUnitService.java | 16 +++ .../service/impl/GoodsSpuServiceImpl.java | 14 +++ .../service/impl/GoodsUnitServiceImpl.java | 30 +++++ 33 files changed, 962 insertions(+), 32 deletions(-) create mode 100644 src/main/java/com/qs/serve/modules/bms/controller/BmsCostCenterController.java create mode 100644 src/main/java/com/qs/serve/modules/bms/controller/BmsErpInfoController.java create mode 100644 src/main/java/com/qs/serve/modules/bms/entity/BmsCostCenter.java create mode 100644 src/main/java/com/qs/serve/modules/bms/entity/BmsErpInfo.java create mode 100644 src/main/java/com/qs/serve/modules/bms/entity/vo/BmsSupplierBatchBo.java create mode 100644 src/main/java/com/qs/serve/modules/bms/mapper/BmsCostCenterMapper.java create mode 100644 src/main/java/com/qs/serve/modules/bms/mapper/BmsErpInfoMapper.java create mode 100644 src/main/java/com/qs/serve/modules/bms/service/BmsCostCenterService.java create mode 100644 src/main/java/com/qs/serve/modules/bms/service/BmsErpInfoService.java create mode 100644 src/main/java/com/qs/serve/modules/bms/service/impl/BmsCostCenterServiceImpl.java create mode 100644 src/main/java/com/qs/serve/modules/bms/service/impl/BmsErpInfoServiceImpl.java create mode 100644 src/main/java/com/qs/serve/modules/goods/controller/GoodsUnitController.java create mode 100644 src/main/java/com/qs/serve/modules/goods/entity/GoodsUnit.java create mode 100644 src/main/java/com/qs/serve/modules/goods/mapper/GoodsUnitMapper.java create mode 100644 src/main/java/com/qs/serve/modules/goods/service/GoodsUnitService.java create mode 100644 src/main/java/com/qs/serve/modules/goods/service/impl/GoodsUnitServiceImpl.java diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsCostCenterController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsCostCenterController.java new file mode 100644 index 00000000..c49cd023 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsCostCenterController.java @@ -0,0 +1,103 @@ +package com.qs.serve.modules.bms.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 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.bms.entity.BmsCostCenter; +import com.qs.serve.modules.bms.service.BmsCostCenterService; + +import javax.validation.Valid; +import java.util.List; + +/** + * 基础档案 成本中心 + * @author YenHex + * @since 2022-10-13 + */ +@Slf4j +@AllArgsConstructor +@RestController +@RequestMapping("bms/costCenter") +public class BmsCostCenterController { + + private BmsCostCenterService bmsCostCenterService; + + /** + * 翻页查询 + * @param param + * @return + */ + @GetMapping("/page") + @PreAuthorize("hasRole('bms:costCenter:query')") + public R> getPage(BmsCostCenter param){ + PageUtil.startPage(); + LambdaQueryWrapper costCenterWrapper = new LambdaQueryWrapper<>(param); + List list = bmsCostCenterService.list(costCenterWrapper); + return R.byPageHelperList(list); + } + + /** + * 根据ID查询 + * @param id + * @return + */ + @GetMapping("/getById/{id}") + @SysLog(module = SystemModule.BASE, title = "成本中心", biz = BizType.QUERY) + @PreAuthorize("hasRole('bms:costCenter:query')") + public R getById(@PathVariable("id") String id){ + BmsCostCenter bmsCostCenter = bmsCostCenterService.getById(id); + return R.ok(bmsCostCenter); + } + + + + /** + * 根据ID更新 + * @param param + * @return + */ + @PostMapping("/updateById") + @SysLog(module = SystemModule.BASE, title = "成本中心", biz = BizType.UPDATE) + @PreAuthorize("hasRole('bms:costCenter:update')") + public R updateById(@RequestBody @Valid BmsCostCenter param){ + boolean result = bmsCostCenterService.updateById(param); + return R.isTrue(result); + } + + /** + * 新增成本中心 + * @param param + * @return + */ + @PostMapping("/save") + @SysLog(module = SystemModule.BASE, title = "成本中心", biz = BizType.INSERT) + @PreAuthorize("hasRole('bms:costCenter:insert')") + public R save(@RequestBody @Valid BmsCostCenter param){ + boolean result = bmsCostCenterService.save(param); + return R.isTrue(result); + } + + /** + * 删除成本中心 + * @param id + * @return + */ + @DeleteMapping("/deleteById/{id}") + @SysLog(module = SystemModule.BASE, title = "成本中心", biz = BizType.DELETE) + @PreAuthorize("hasRole('bms:costCenter:delete')") + public R deleteById(@PathVariable("id") String id){ + boolean result = bmsCostCenterService.removeById(id); + return R.isTrue(result); + } + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsErpInfoController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsErpInfoController.java new file mode 100644 index 00000000..2f7cbbf9 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsErpInfoController.java @@ -0,0 +1,103 @@ +package com.qs.serve.modules.bms.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 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.bms.entity.BmsErpInfo; +import com.qs.serve.modules.bms.service.BmsErpInfoService; + +import javax.validation.Valid; +import java.util.List; + +/** + * 基础档案 ERP信息 + * @author YenHex + * @since 2022-10-13 + */ +@Slf4j +@AllArgsConstructor +@RestController +@RequestMapping("bms/erpInfo") +public class BmsErpInfoController { + + private BmsErpInfoService bmsErpInfoService; + + /** + * 翻页查询 + * @param param + * @return + */ + @GetMapping("/page") + @PreAuthorize("hasRole('bms:erpInfo:query')") + public R> getPage(BmsErpInfo param){ + PageUtil.startPage(); + LambdaQueryWrapper erpInfoWrapper = new LambdaQueryWrapper<>(param); + List list = bmsErpInfoService.list(erpInfoWrapper); + return R.byPageHelperList(list); + } + + /** + * 根据ID查询 + * @param id + * @return + */ + @GetMapping("/getById/{id}") + @SysLog(module = SystemModule.BASE, title = "ERP信息", biz = BizType.QUERY) + @PreAuthorize("hasRole('bms:erpInfo:query')") + public R getById(@PathVariable("id") String id){ + BmsErpInfo bmsErpInfo = bmsErpInfoService.getById(id); + return R.ok(bmsErpInfo); + } + + + + /** + * 根据ID更新 + * @param param + * @return + */ + @PostMapping("/updateById") + @SysLog(module = SystemModule.BASE, title = "ERP信息", biz = BizType.UPDATE) + @PreAuthorize("hasRole('bms:erpInfo:update')") + public R updateById(@RequestBody @Valid BmsErpInfo param){ + boolean result = bmsErpInfoService.updateById(param); + return R.isTrue(result); + } + + /** + * 新增ERP信息 + * @param param + * @return + */ + @PostMapping("/save") + @SysLog(module = SystemModule.BASE, title = "ERP信息", biz = BizType.INSERT) + @PreAuthorize("hasRole('bms:erpInfo:insert')") + public R save(@RequestBody @Valid BmsErpInfo param){ + boolean result = bmsErpInfoService.save(param); + return R.isTrue(result); + } + + /** + * 删除ERP信息 + * @param id + * @return + */ + @DeleteMapping("/deleteById/{id}") + @SysLog(module = SystemModule.BASE, title = "ERP信息", biz = BizType.DELETE) + @PreAuthorize("hasRole('bms:erpInfo:delete')") + public R deleteById(@PathVariable("id") String id){ + boolean result = bmsErpInfoService.removeById(id); + return R.isTrue(result); + } + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java index a10270e9..668869fc 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java @@ -20,7 +20,6 @@ import com.qs.serve.modules.bms.service.BmsRegionService; import javax.validation.Valid; import java.util.List; -import java.util.stream.Collectors; /** * 基础档案 区域档案 @@ -115,18 +114,14 @@ public class BmsRegionController { @SysLog(module = SystemModule.BASE, title = "区域档案", biz = BizType.INSERT) @PreAuthorize("hasRole('bms:region:insert')") public R editBatch(@RequestBody @Valid BmsRegionBatchBo regionBo){ + ValidateTools.valid(regionBo.getRegionList()); for (BmsRegionBatchBo.BmsRegionBo bmsRegionBo : regionBo.getRegionList()) { BmsRegion region = CopierUtil.copy(bmsRegionBo,new BmsRegion()); - if(region.getId()==null){ - region.setId(IdUtil.getSnowFlakeId()+""); + BmsRegion dbRegion = bmsRegionService.getByCode(region.getCode()); + if(dbRegion==null){ bmsRegionService.save(region); }else { - BmsRegion dbRegion = bmsRegionService.getById(region.getId()); - if(dbRegion==null){ - bmsRegionService.save(region); - }else { - bmsRegionService.updateById(region); - } + bmsRegionService.updateById(region); } } bmsRegionService.flushAllLevel(); diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierAddressController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierAddressController.java index f3d5d05d..d9e5dd6f 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierAddressController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierAddressController.java @@ -10,6 +10,7 @@ import com.qs.serve.common.util.PageUtil; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import com.qs.serve.modules.bms.entity.BmsSupplierAddress; @@ -19,7 +20,7 @@ import javax.validation.Valid; import java.util.List; /** - * 基础档案 供应商地址 后台接口 + * 基础档案 客户收货地址 * @author YenHex * @since 2022-10-12 */ @@ -69,12 +70,18 @@ public class BmsSupplierAddressController { @SysLog(module = SystemModule.BASE, title = "供应商地址", biz = BizType.UPDATE) @PreAuthorize("hasRole('bms:supplierAddress:update')") public R updateById(@RequestBody @Valid BmsSupplierAddress param){ + BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getDefault(param.getSupplierId()); + if(supplierAddress==null){ + param.setDefaultFlag(1); + }else { + param.setDefaultFlag(0); + } boolean result = bmsSupplierAddressService.updateById(param); return R.isTrue(result); } /** - * 新增供应商地址 + * 新增 * @param param * @return */ @@ -82,12 +89,43 @@ public class BmsSupplierAddressController { @SysLog(module = SystemModule.BASE, title = "供应商地址", biz = BizType.INSERT) @PreAuthorize("hasRole('bms:supplierAddress:insert')") public R save(@RequestBody @Valid BmsSupplierAddress param){ + BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getDefault(param.getSupplierId()); + if(supplierAddress==null){ + param.setDefaultFlag(1); + }else { + param.setDefaultFlag(0); + } boolean result = bmsSupplierAddressService.save(param); return R.isTrue(result); } /** - * 删除供应商地址 + * 设置默认的地址 + * @param id 地址ID + * @return + */ + @PostMapping("/setDefault") + @SysLog(module = SystemModule.BASE, title = "供应商地址", biz = BizType.INSERT) + @PreAuthorize("hasRole('bms:supplierAddress:insert')") + @Transactional(rollbackFor = Exception.class) + public R setDefault(@RequestBody @Valid Long id){ + BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getById(id); + List list = bmsSupplierAddressService.listBySupplierId(supplierAddress.getSupplierId()); + //设置其它 + for (BmsSupplierAddress address : list) { + if(!address.getId().equals(id)){ + address.setDefaultFlag(0); + bmsSupplierAddressService.updateById(address); + } + } + //设置默认 + supplierAddress.setDefaultFlag(1); + bmsSupplierAddressService.updateById(supplierAddress); + return R.ok(); + } + + /** + * 删除 * @param id * @return */ diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierBandController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierBandController.java index 9f4da5a6..f774f58b 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierBandController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierBandController.java @@ -19,7 +19,7 @@ import javax.validation.Valid; import java.util.List; /** - * 基础档案 供应商地址 后台接口 + * 基础档案 客户银行信息 * @author YenHex * @since 2022-10-12 */ @@ -74,7 +74,7 @@ public class BmsSupplierBandController { } /** - * 新增供应商地址 + * 新增 * @param param * @return */ @@ -87,7 +87,7 @@ public class BmsSupplierBandController { } /** - * 删除供应商地址 + * 删除 * @param id * @return */ diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java index ac95d93c..c31897d9 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java @@ -10,6 +10,7 @@ import com.qs.serve.common.util.CopierUtil; import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.TreeUtil; import com.qs.serve.modules.bms.entity.vo.BmsRegionTreeVo; +import com.qs.serve.modules.bms.entity.vo.BmsSupplierBatchBo; import com.qs.serve.modules.bms.entity.vo.BmsSupplierBo; import com.qs.serve.modules.bms.entity.vo.BmsSupplierTreeVo; import lombok.AllArgsConstructor; @@ -132,5 +133,18 @@ public class BmsSupplierController { return R.ok(); } + /** + * 批量编辑 + * @param param + * @return + */ + @PostMapping("/editBatch") + @SysLog(module = SystemModule.BASE, title = "供应商", biz = BizType.INSERT) + @PreAuthorize("hasRole('bms:supplier:insert')") + public R editBatch(@RequestBody @Valid BmsSupplierBatchBo param){ + bmsSupplierService.editBatch(param); + return R.ok(); + } + } diff --git a/src/main/java/com/qs/serve/modules/bms/entity/BmsCostCenter.java b/src/main/java/com/qs/serve/modules/bms/entity/BmsCostCenter.java new file mode 100644 index 00000000..2e108f98 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/entity/BmsCostCenter.java @@ -0,0 +1,77 @@ +package com.qs.serve.modules.bms.entity; + +import java.time.LocalDateTime; +import java.io.Serializable; + +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-10-13 + */ +@Data +@TableName("bms_cost_center") +public class BmsCostCenter implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + @TableId(type = IdType.AUTO) + private Long id; + + /** 编码 */ + @NotBlank(message = "编码不能为空") + @Length(max = 20,message = "编码长度不能超过20字") + private String code; + + /** 名称 */ + @NotBlank(message = "名称不能为空") + @Length(max = 20,message = "名称长度不能超过20字") + private String name; + + /** 备注 */ + @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; + + /** 逻辑删除标记(0:显示;1:隐藏) */ + @JsonIgnore + @JsonProperty + private String delFlag; + + /** 创建人 */ + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** 更新人 */ + @TableField(fill = FieldFill.UPDATE) + private String updateBy; + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/entity/BmsErpInfo.java b/src/main/java/com/qs/serve/modules/bms/entity/BmsErpInfo.java new file mode 100644 index 00000000..48e76f13 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/entity/BmsErpInfo.java @@ -0,0 +1,77 @@ +package com.qs.serve.modules.bms.entity; + +import java.time.LocalDateTime; +import java.io.Serializable; + +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; + +/** + * ERP信息 实体类 + * @author YenHex + * @since 2022-10-13 + */ +@Data +@TableName("bms_erp_info") +public class BmsErpInfo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + @TableId(type = IdType.AUTO) + private Long id; + + /** ERP编码 */ + @NotBlank(message = "ERP编码不能为空") + @Length(max = 20,message = "ERP编码长度不能超过20字") + private String code; + + /** ERP名称 */ + @NotBlank(message = "ERP名称不能为空") + @Length(max = 20,message = "ERP名称长度不能超过20字") + private String name; + + /** 备注 */ + @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; + + /** 逻辑删除标记(0:显示;1:隐藏) */ + @JsonIgnore + @JsonProperty + private String delFlag; + + /** 创建人 */ + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** 更新人 */ + @TableField(fill = FieldFill.UPDATE) + private String updateBy; + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/entity/BmsRegion.java b/src/main/java/com/qs/serve/modules/bms/entity/BmsRegion.java index 9a73c182..87afb39e 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/BmsRegion.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/BmsRegion.java @@ -26,6 +26,7 @@ public class BmsRegion implements Serializable { private static final long serialVersionUID = 1L; /** id */ + @TableId(type = IdType.INPUT) private String id; /** 名称 */ diff --git a/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java b/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java index 12693299..6110497d 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java @@ -54,6 +54,12 @@ public class BmsSupplier implements Serializable { /** 父级id */ private String pid; + private String parentCode; + + /** 归属ERP编码,如JSL、JSB、KL 对应ERP信息表作显示 */ + @NotBlank(message = "客户编码不能为空") + private String belong; + /** 创建时间 */ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") diff --git a/src/main/java/com/qs/serve/modules/bms/entity/vo/BmsRegionBatchBo.java b/src/main/java/com/qs/serve/modules/bms/entity/vo/BmsRegionBatchBo.java index a9e57794..8c9b85b5 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/vo/BmsRegionBatchBo.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/vo/BmsRegionBatchBo.java @@ -2,6 +2,8 @@ package com.qs.serve.modules.bms.entity.vo; import lombok.Data; import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotNull; import java.util.List; /** @@ -16,6 +18,7 @@ public class BmsRegionBatchBo { @Data public static class BmsRegionBo{ /** id */ + @NotNull(message = "id不能为空") private String id; /** 名称 */ diff --git a/src/main/java/com/qs/serve/modules/bms/entity/vo/BmsSupplierBatchBo.java b/src/main/java/com/qs/serve/modules/bms/entity/vo/BmsSupplierBatchBo.java new file mode 100644 index 00000000..2493edb6 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/entity/vo/BmsSupplierBatchBo.java @@ -0,0 +1,47 @@ +package com.qs.serve.modules.bms.entity.vo; + +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +import java.util.List; + +/** + * @author YenHex + * @since 2022/10/13 + */ +@Data +public class BmsSupplierBatchBo { + + @NotNull + private List supplierList; + + @Data + public static class BmsSupplierDto{ + /** id */ + private Long id; + + /** 区域ID */ + private Long regionId; + + /** 详细地址 */ + private String address; + + /** 名称 */ + @NotBlank(message = "名称不能为空") + @Length(max = 20,message = "名称长度不能超过20字") + private String name; + + /** 客户编码 */ + @NotBlank(message = "客户编码不能为空") + @Length(max = 20,message = "客户编码长度不能超过20字") + private String code; + + /** 父级编码,空表无父级 */ + private String parentCode; + + } + +} diff --git a/src/main/java/com/qs/serve/modules/bms/mapper/BmsCostCenterMapper.java b/src/main/java/com/qs/serve/modules/bms/mapper/BmsCostCenterMapper.java new file mode 100644 index 00000000..08a83744 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/mapper/BmsCostCenterMapper.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.bms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qs.serve.modules.bms.entity.BmsCostCenter; + +/** + * 成本中心 Mapper + * @author YenHex + * @date 2022-10-13 + */ +public interface BmsCostCenterMapper extends BaseMapper { + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/mapper/BmsErpInfoMapper.java b/src/main/java/com/qs/serve/modules/bms/mapper/BmsErpInfoMapper.java new file mode 100644 index 00000000..541c7328 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/mapper/BmsErpInfoMapper.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.bms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qs.serve.modules.bms.entity.BmsErpInfo; + +/** + * ERP信息 Mapper + * @author YenHex + * @date 2022-10-13 + */ +public interface BmsErpInfoMapper extends BaseMapper { + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/service/BmsCostCenterService.java b/src/main/java/com/qs/serve/modules/bms/service/BmsCostCenterService.java new file mode 100644 index 00000000..8cd5c963 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/service/BmsCostCenterService.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.bms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.qs.serve.modules.bms.entity.BmsCostCenter; + +/** + * 成本中心 服务接口 + * @author YenHex + * @date 2022-10-13 + */ +public interface BmsCostCenterService extends IService { + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/service/BmsErpInfoService.java b/src/main/java/com/qs/serve/modules/bms/service/BmsErpInfoService.java new file mode 100644 index 00000000..1be7f34f --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/service/BmsErpInfoService.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.bms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.qs.serve.modules.bms.entity.BmsErpInfo; + +/** + * ERP信息 服务接口 + * @author YenHex + * @date 2022-10-13 + */ +public interface BmsErpInfoService extends IService { + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/service/BmsRegionService.java b/src/main/java/com/qs/serve/modules/bms/service/BmsRegionService.java index b7de725e..011b493f 100644 --- a/src/main/java/com/qs/serve/modules/bms/service/BmsRegionService.java +++ b/src/main/java/com/qs/serve/modules/bms/service/BmsRegionService.java @@ -18,6 +18,8 @@ public interface BmsRegionService extends IService { List listChild(String pid); + BmsRegion getByCode(String code); + void flushLevel(BmsRegion param); void flushAllLevel(); diff --git a/src/main/java/com/qs/serve/modules/bms/service/BmsSupplierAddressService.java b/src/main/java/com/qs/serve/modules/bms/service/BmsSupplierAddressService.java index b14025b3..5cb4469d 100644 --- a/src/main/java/com/qs/serve/modules/bms/service/BmsSupplierAddressService.java +++ b/src/main/java/com/qs/serve/modules/bms/service/BmsSupplierAddressService.java @@ -3,6 +3,8 @@ package com.qs.serve.modules.bms.service; import com.baomidou.mybatisplus.extension.service.IService; import com.qs.serve.modules.bms.entity.BmsSupplierAddress; +import java.util.List; + /** * 供应商地址 服务接口 * @author YenHex @@ -10,5 +12,9 @@ import com.qs.serve.modules.bms.entity.BmsSupplierAddress; */ public interface BmsSupplierAddressService extends IService { + BmsSupplierAddress getDefault(Long supplierId); + + List listBySupplierId(Long supplierId); + } diff --git a/src/main/java/com/qs/serve/modules/bms/service/BmsSupplierService.java b/src/main/java/com/qs/serve/modules/bms/service/BmsSupplierService.java index fe074fca..befd18ae 100644 --- a/src/main/java/com/qs/serve/modules/bms/service/BmsSupplierService.java +++ b/src/main/java/com/qs/serve/modules/bms/service/BmsSupplierService.java @@ -2,6 +2,7 @@ package com.qs.serve.modules.bms.service; import com.baomidou.mybatisplus.extension.service.IService; import com.qs.serve.modules.bms.entity.BmsSupplier; +import com.qs.serve.modules.bms.entity.vo.BmsSupplierBatchBo; import com.qs.serve.modules.bms.entity.vo.BmsSupplierBo; import org.springframework.web.bind.annotation.RequestBody; @@ -17,7 +18,13 @@ public interface BmsSupplierService extends IService { void edit(BmsSupplierBo param); + BmsSupplier getByCode(String code); + List listChild(String pid); + void editBatch(BmsSupplierBatchBo param); + + void flashParentId(); + } diff --git a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsCostCenterServiceImpl.java b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsCostCenterServiceImpl.java new file mode 100644 index 00000000..7bde4c7e --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsCostCenterServiceImpl.java @@ -0,0 +1,22 @@ +package com.qs.serve.modules.bms.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.bms.entity.BmsCostCenter; +import com.qs.serve.modules.bms.service.BmsCostCenterService; +import com.qs.serve.modules.bms.mapper.BmsCostCenterMapper; + +/** + * 成本中心 服务实现类 + * @author YenHex + * @since 2022-10-13 + */ +@Slf4j +@Service +@AllArgsConstructor +public class BmsCostCenterServiceImpl extends ServiceImpl implements BmsCostCenterService { + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsErpInfoServiceImpl.java b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsErpInfoServiceImpl.java new file mode 100644 index 00000000..acc27e9a --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsErpInfoServiceImpl.java @@ -0,0 +1,22 @@ +package com.qs.serve.modules.bms.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.bms.entity.BmsErpInfo; +import com.qs.serve.modules.bms.service.BmsErpInfoService; +import com.qs.serve.modules.bms.mapper.BmsErpInfoMapper; + +/** + * ERP信息 服务实现类 + * @author YenHex + * @since 2022-10-13 + */ +@Slf4j +@Service +@AllArgsConstructor +public class BmsErpInfoServiceImpl extends ServiceImpl implements BmsErpInfoService { + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegionServiceImpl.java b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegionServiceImpl.java index 39359d9f..c3ff7f7e 100644 --- a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegionServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegionServiceImpl.java @@ -47,6 +47,13 @@ public class BmsRegionServiceImpl extends ServiceImpl return this.list(lqw); } + @Override + public BmsRegion getByCode(String code) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(BmsRegion::getCode,code); + return this.getOne(lqw,false); + } + @Override public void flushLevel(BmsRegion param) { if(StringUtils.hasText(param.getPid())){ diff --git a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierAddressServiceImpl.java b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierAddressServiceImpl.java index 7d93dfc3..78877f5b 100644 --- a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierAddressServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierAddressServiceImpl.java @@ -1,5 +1,6 @@ package com.qs.serve.modules.bms.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -8,6 +9,8 @@ import com.qs.serve.modules.bms.entity.BmsSupplierAddress; import com.qs.serve.modules.bms.service.BmsSupplierAddressService; import com.qs.serve.modules.bms.mapper.BmsSupplierAddressMapper; +import java.util.List; + /** * 供应商地址 服务实现类 * @author YenHex @@ -18,5 +21,20 @@ import com.qs.serve.modules.bms.mapper.BmsSupplierAddressMapper; @AllArgsConstructor public class BmsSupplierAddressServiceImpl extends ServiceImpl implements BmsSupplierAddressService { + @Override + public BmsSupplierAddress getDefault(Long supplierId) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(BmsSupplierAddress::getSupplierId,supplierId); + lqw.eq(BmsSupplierAddress::getDefaultFlag,1); + return this.getOne(lqw,false); + } + + @Override + public List listBySupplierId(Long supplierId) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(BmsSupplierAddress::getSupplierId,supplierId); + return this.list(lqw); + } + } diff --git a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java index 1b0dacfd..8ef2eab4 100644 --- a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.qs.serve.common.util.CopierUtil; import com.qs.serve.modules.bms.entity.BmsRegion; +import com.qs.serve.modules.bms.entity.vo.BmsSupplierBatchBo; import com.qs.serve.modules.bms.entity.vo.BmsSupplierBo; import com.qs.serve.modules.bms.service.BmsRegionService; import lombok.AllArgsConstructor; @@ -30,24 +31,10 @@ public class BmsSupplierServiceImpl extends ServiceImpl lqw = new LambdaQueryWrapper<>(); + lqw.eq(BmsSupplier::getCode,code); + return this.getOne(lqw,false); + } + @Override public List listChild(String pid) { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(BmsSupplier::getPid,pid); return this.list(lqw); } + + @Override + public void editBatch(BmsSupplierBatchBo batchBo) { + for (BmsSupplierBatchBo.BmsSupplierDto param : batchBo.getSupplierList()) { + BmsSupplier supplier = CopierUtil.copy(param,new BmsSupplier()); + BmsSupplier parentNode = this.getByCode(param.getParentCode()); + if(parentNode!=null){ + supplier.setPid(parentNode.getPid()); + }else { + supplier.setPid("-1"); + } + this.initRegion(supplier,param.getRegionId()); + if(supplier.getId()!=null){ + this.updateById(supplier); + }else { + this.save(supplier); + } + } + this.flashParentId(); + } + + @Override + public void flashParentId() { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(BmsSupplier::getPid,"-1"); + List suppliers = this.list(lqw); + for (BmsSupplier supplier : suppliers) { + BmsSupplier parentSupplier = this.getByCode(supplier.getParentCode()); + if(parentSupplier==null){ + log.warn("无效的供应商父级编码:{}",supplier.getParentCode()); + supplier.setPid("0"); + }else { + supplier.setPid(parentSupplier.getPid()); + } + this.updateById(supplier); + } + } + + /** + * 初始化区域等级 + * @param supplier + * @param regionId + */ + private void initRegion(BmsSupplier supplier,Long regionId){ + BmsRegion region1 = regionService.getById(regionId); + if(!region1.getPid().equals("0")){ + BmsRegion region2 = regionService.getById(region1.getPid()); + if(!region2.getPid().equals("0")){ + supplier.setRegionFirst(region2.getPid()); + supplier.setRegionSecond(region2.getId()); + supplier.setRegionThird(region1.getId()); + }else { + supplier.setRegionFirst(region2.getId()); + supplier.setRegionSecond(region1.getId()); + supplier.setRegionThird(""); + } + }else { + supplier.setRegionFirst(region1.getId()); + supplier.setRegionSecond(""); + supplier.setRegionThird(""); + } + } + } diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsUnitController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsUnitController.java new file mode 100644 index 00000000..290ec4dd --- /dev/null +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsUnitController.java @@ -0,0 +1,103 @@ +package com.qs.serve.modules.goods.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 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.goods.entity.GoodsUnit; +import com.qs.serve.modules.goods.service.GoodsUnitService; + +import javax.validation.Valid; +import java.util.List; + +/** + * 商品 单位 后台接口 + * @author YenHex + * @since 2022-10-13 + */ +@Slf4j +@AllArgsConstructor +@RestController +@RequestMapping("goods/unit") +public class GoodsUnitController { + + private GoodsUnitService goodsUnitService; + + /** + * 翻页查询 + * @param param + * @return + */ + @GetMapping("/page") + @PreAuthorize("hasRole('goods:unit:query')") + public R> getPage(GoodsUnit param){ + PageUtil.startPage(); + LambdaQueryWrapper unitWrapper = new LambdaQueryWrapper<>(param); + List list = goodsUnitService.list(unitWrapper); + return R.byPageHelperList(list); + } + + /** + * 根据ID查询 + * @param id + * @return + */ + @GetMapping("/getById/{id}") + @SysLog(module = SystemModule.GOODS, title = "单位", biz = BizType.QUERY) + @PreAuthorize("hasRole('goods:unit:query')") + public R getById(@PathVariable("id") String id){ + GoodsUnit goodsUnit = goodsUnitService.getById(id); + return R.ok(goodsUnit); + } + + + + /** + * 根据ID更新 + * @param param + * @return + */ + @PostMapping("/updateById") + @SysLog(module = SystemModule.GOODS, title = "单位", biz = BizType.UPDATE) + @PreAuthorize("hasRole('goods:unit:update')") + public R updateById(@RequestBody @Valid GoodsUnit param){ + boolean result = goodsUnitService.updateById(param); + return R.isTrue(result); + } + + /** + * 新增单位 + * @param param + * @return + */ + @PostMapping("/save") + @SysLog(module = SystemModule.GOODS, title = "单位", biz = BizType.INSERT) + @PreAuthorize("hasRole('goods:unit:insert')") + public R save(@RequestBody @Valid GoodsUnit param){ + boolean result = goodsUnitService.save(param); + return R.isTrue(result); + } + + /** + * 删除单位 + * @param id + * @return + */ + @DeleteMapping("/deleteById/{id}") + @SysLog(module = SystemModule.GOODS, title = "单位", biz = BizType.DELETE) + @PreAuthorize("hasRole('goods:unit:delete')") + public R deleteById(@PathVariable("id") String id){ + boolean result = goodsUnitService.removeById(id); + return R.isTrue(result); + } + +} + diff --git a/src/main/java/com/qs/serve/modules/goods/entity/GoodsSku.java b/src/main/java/com/qs/serve/modules/goods/entity/GoodsSku.java index c92fa385..2e8178df 100644 --- a/src/main/java/com/qs/serve/modules/goods/entity/GoodsSku.java +++ b/src/main/java/com/qs/serve/modules/goods/entity/GoodsSku.java @@ -68,9 +68,19 @@ public class GoodsSku implements Serializable { @Length(max = 2,message = "是否启用1、是;0否长度不能超过2字") private String enable; + /** 单位id */ + private Long unitId; + + /** 单位 */ + @Length(max = 20,message = "单位长度不能超过20字") + private String unitName; + /** 版本号 */ private Integer version; + /** 备注 */ + private Integer remark; + /** 最后更新时间 */ @TableField(fill = FieldFill.UPDATE) private LocalDateTime updateTime; diff --git a/src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java b/src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java index 6934e820..19b41a4b 100644 --- a/src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java +++ b/src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java @@ -77,6 +77,9 @@ public class GoodsSpu implements Serializable { @Length(max = 2,message = "0统一规格;1多规格长度不能超过2字") private String specType; + /** 产品口味(非sku规格值) */ + private String tasteValue; + /** 创建时间 */ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") diff --git a/src/main/java/com/qs/serve/modules/goods/entity/GoodsUnit.java b/src/main/java/com/qs/serve/modules/goods/entity/GoodsUnit.java new file mode 100644 index 00000000..5109525c --- /dev/null +++ b/src/main/java/com/qs/serve/modules/goods/entity/GoodsUnit.java @@ -0,0 +1,71 @@ +package com.qs.serve.modules.goods.entity; + +import java.time.LocalDateTime; +import java.io.Serializable; + +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-10-13 + */ +@Data +@TableName("goods_unit") +public class GoodsUnit implements Serializable { + + private static final long serialVersionUID = 1L; + + /** PK */ + @TableId(type = IdType.AUTO) + private Long id; + + /** 名称 */ + @Length(max = 16,message = "名称长度不能超过16字") + private String name; + + /** 描述 */ + @Length(max = 255,message = "描述长度不能超过255字") + private String description; + + /** 创建时间 */ + @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; + +} + diff --git a/src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsSpuTasteBo.java b/src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsSpuTasteBo.java index 0c8ff7de..7f0f0c67 100644 --- a/src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsSpuTasteBo.java +++ b/src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsSpuTasteBo.java @@ -35,9 +35,11 @@ public class GoodsSpuTasteBo { private String categoryCode; /** 品牌编码 */ + @NotNull(message = "品牌编码不能为空") private String brandCode; /** 系列编码 */ + @NotNull(message = "系列编码不能为空") private String seriesCode; /** 商品组图片 */ @@ -73,4 +75,10 @@ public class GoodsSpuTasteBo { @NotNull(message = "体积(m³)不能为空") private BigDecimal volume; + /** 产品单位 */ + private String unit; + + /** 含归属ERP编码的客户不显示该商品。值如JSL、JSB、KL */ + private String[] notBelong; + } diff --git a/src/main/java/com/qs/serve/modules/goods/mapper/GoodsUnitMapper.java b/src/main/java/com/qs/serve/modules/goods/mapper/GoodsUnitMapper.java new file mode 100644 index 00000000..a7a197c4 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/goods/mapper/GoodsUnitMapper.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.goods.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qs.serve.modules.goods.entity.GoodsUnit; + +/** + * 单位 Mapper + * @author YenHex + * @date 2022-10-13 + */ +public interface GoodsUnitMapper extends BaseMapper { + +} + diff --git a/src/main/java/com/qs/serve/modules/goods/service/GoodsUnitService.java b/src/main/java/com/qs/serve/modules/goods/service/GoodsUnitService.java new file mode 100644 index 00000000..545b64a3 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/goods/service/GoodsUnitService.java @@ -0,0 +1,16 @@ +package com.qs.serve.modules.goods.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.qs.serve.modules.goods.entity.GoodsUnit; + +/** + * 单位 服务接口 + * @author YenHex + * @date 2022-10-13 + */ +public interface GoodsUnitService extends IService { + + GoodsUnit getByName(String name); + +} + diff --git a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java index 73936b88..4bbe5d19 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java @@ -3,6 +3,7 @@ package com.qs.serve.modules.goods.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.qs.serve.common.util.CopierUtil; +import com.qs.serve.common.util.StringUtils; import com.qs.serve.common.util.ValidateTools; import com.qs.serve.modules.goods.entity.*; import com.qs.serve.modules.goods.entity.bo.GoodsSpuBatchTasteBo; @@ -32,6 +33,7 @@ public class GoodsSpuServiceImpl extends ServiceImpl im private GoodsSeriesService goodsSeriesService; private GoodsBrandService goodsBrandService; + private GoodsUnitService goodsUnitService; private GoodsSkuService goodsSkuService; private GoodsSpuSpecService goodsSpuSpecService; private GoodsSpecValueService goodsSpecValueService; @@ -124,6 +126,7 @@ public class GoodsSpuServiceImpl extends ServiceImpl im spu.setSeriesId(goodsSeries.getId()); } spu.setSpecType("1"); + spu.setTasteValue(tasteProduct.getProductTasteValue()); if(spu.getId()==null){ this.save(spu); //保存spu与规格关联 @@ -150,6 +153,17 @@ public class GoodsSpuServiceImpl extends ServiceImpl im goodsSku.setSkuCode(tasteProduct.getInvCode()); goodsSku.setSpuId(spu.getId()); goodsSku.setPicUrl(tasteProduct.getInvPicUrl()); + //设置sku单位 + if(StringUtils.hasText(tasteProduct.getUnit())){ + GoodsUnit goodsUnit = goodsUnitService.getByName(tasteProduct.getUnit()); + if(goodsUnit==null){ + goodsUnit = new GoodsUnit(); + goodsUnit.setName(tasteProduct.getUnit()); + goodsUnitService.save(goodsUnit); + } + goodsSku.setUnitId(goodsUnit.getId()); + goodsSku.setUnitName(goodsUnit.getName()); + } if(goodsSku.getId()==null){ goodsSkuService.save(goodsSku); }else { diff --git a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsUnitServiceImpl.java b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsUnitServiceImpl.java new file mode 100644 index 00000000..f50d2c66 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsUnitServiceImpl.java @@ -0,0 +1,30 @@ +package com.qs.serve.modules.goods.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +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.goods.entity.GoodsUnit; +import com.qs.serve.modules.goods.service.GoodsUnitService; +import com.qs.serve.modules.goods.mapper.GoodsUnitMapper; + +/** + * 单位 服务实现类 + * @author YenHex + * @since 2022-10-13 + */ +@Slf4j +@Service +@AllArgsConstructor +public class GoodsUnitServiceImpl extends ServiceImpl implements GoodsUnitService { + + @Override + public GoodsUnit getByName(String name) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(GoodsUnit::getName,name); + return getOne(lqw,false); + } + +} +