From 45cdcc302bc41c400d66c104965144c5eec00998 Mon Sep 17 00:00:00 2001 From: qiankanghui Date: Wed, 8 Jul 2026 17:21:24 +0800 Subject: [PATCH] =?UTF-8?q?feat(baseInformation):=20=E6=B7=BB=E5=8A=A0SRM?= =?UTF-8?q?=E9=9B=B6=E4=BB=B6SKU=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增SrmPartSku实体类,包含站点、SKU编码、备注、激活状态等字段 - 实现SrmPartSkuController控制器,提供分页查询、保存、更新、删除接口 - 创建SrmPartSkuMapper数据访问层,实现数据库CRUD操作 - 配置SrmPartSkuMapper.xml映射文件,定义SQL查询语句 - 实现SrmPartSkuService业务接口及具体服务类 - 添加参数校验、重复检查、数据标准化等业务逻辑 - 支持按站点、SKU编码、激活状态进行条件查询和分页显示 --- .../controller/SrmPartSkuController.java | 47 +++++++ .../baseInformation/entity/SrmPartSku.java | 27 ++++ .../mapper/SrmPartSkuMapper.java | 34 +++++ .../service/SrmPartSkuService.java | 16 +++ .../service/impl/SrmPartSkuServiceImpl.java | 119 ++++++++++++++++++ .../baseInformation/SrmPartSkuMapper.xml | 88 +++++++++++++ 6 files changed, 331 insertions(+) create mode 100644 src/main/java/com/xujie/modules/baseInformation/controller/SrmPartSkuController.java create mode 100644 src/main/java/com/xujie/modules/baseInformation/entity/SrmPartSku.java create mode 100644 src/main/java/com/xujie/modules/baseInformation/mapper/SrmPartSkuMapper.java create mode 100644 src/main/java/com/xujie/modules/baseInformation/service/SrmPartSkuService.java create mode 100644 src/main/java/com/xujie/modules/baseInformation/service/impl/SrmPartSkuServiceImpl.java create mode 100644 src/main/resources/mapper/baseInformation/SrmPartSkuMapper.xml diff --git a/src/main/java/com/xujie/modules/baseInformation/controller/SrmPartSkuController.java b/src/main/java/com/xujie/modules/baseInformation/controller/SrmPartSkuController.java new file mode 100644 index 0000000..9d4d215 --- /dev/null +++ b/src/main/java/com/xujie/modules/baseInformation/controller/SrmPartSkuController.java @@ -0,0 +1,47 @@ +package com.xujie.modules.baseInformation.controller; + +import com.xujie.common.utils.PageUtils; +import com.xujie.common.utils.R; +import com.xujie.modules.baseInformation.entity.SrmPartFamily; +import com.xujie.modules.baseInformation.entity.SrmPartSku; +import com.xujie.modules.baseInformation.service.impl.SrmPartSkuServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/srmPartSku") +public class SrmPartSkuController { + + @Autowired + private SrmPartSkuServiceImpl srmPartSkuService; + + /** + * part_sku 分页查询 + */ + @RequestMapping("/getPartSkuListPaging") + public R getPartSkuListPaging(@RequestBody SrmPartSku partSku) { + PageUtils page = srmPartSkuService.getPartFamilyListPaging(partSku); + return R.ok().put("data", page); + } + + @PostMapping("/savePartSku") + public R savePartSku(@RequestBody SrmPartSku partSku) { + return srmPartSkuService.savePartSku(partSku); + } + + @PostMapping("/updatePartSku") + public R updatePartSku(@RequestBody SrmPartSku partSku) { + + return srmPartSkuService.updatePartSku(partSku); + } + + @PostMapping("/deletePartSku") + public R deletePartSku(@RequestBody SrmPartSku partSku) { + return srmPartSkuService.deletePartSku(partSku.getSku(), partSku.getSite()); + } + + +} diff --git a/src/main/java/com/xujie/modules/baseInformation/entity/SrmPartSku.java b/src/main/java/com/xujie/modules/baseInformation/entity/SrmPartSku.java new file mode 100644 index 0000000..a5e968f --- /dev/null +++ b/src/main/java/com/xujie/modules/baseInformation/entity/SrmPartSku.java @@ -0,0 +1,27 @@ +package com.xujie.modules.baseInformation.entity; + + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.xujie.common.utils.QueryPage; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +@Data +public class SrmPartSku extends QueryPage { + + private String site; + + private String sku; + + private String remark; + + private String active; + + private String createBy; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createDate; +} diff --git a/src/main/java/com/xujie/modules/baseInformation/mapper/SrmPartSkuMapper.java b/src/main/java/com/xujie/modules/baseInformation/mapper/SrmPartSkuMapper.java new file mode 100644 index 0000000..ad4d7d7 --- /dev/null +++ b/src/main/java/com/xujie/modules/baseInformation/mapper/SrmPartSkuMapper.java @@ -0,0 +1,34 @@ +package com.xujie.modules.baseInformation.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.xujie.modules.baseInformation.entity.SrmPartFamily; +import com.xujie.modules.baseInformation.entity.SrmPartSku; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +@Mapper +public interface SrmPartSkuMapper { + IPage selectPartSkuListWithPaging(@Param("page") Page page, @Param("partSku") SrmPartSku partSku); + + /** + * 根据sku和site查询记录 + */ + SrmPartSku selectPartSkuByCode(@Param("sku") String sku, + @Param("site") String site); + + /** + * 插入SKU记录 + */ + int insertPartSku(SrmPartSku partSku); + + /** + * 更新SKU记录 + */ + int updatePartSku(SrmPartSku partSku); + + /** + * 删除SKU记录 + */ + int deletePartSku(@Param("sku") String sku, @Param("site") String site); +} diff --git a/src/main/java/com/xujie/modules/baseInformation/service/SrmPartSkuService.java b/src/main/java/com/xujie/modules/baseInformation/service/SrmPartSkuService.java new file mode 100644 index 0000000..3f93b54 --- /dev/null +++ b/src/main/java/com/xujie/modules/baseInformation/service/SrmPartSkuService.java @@ -0,0 +1,16 @@ +package com.xujie.modules.baseInformation.service; + +import com.xujie.common.utils.PageUtils; +import com.xujie.common.utils.R; +import com.xujie.modules.baseInformation.entity.SrmPartSku; + +public interface SrmPartSkuService { + + PageUtils getPartFamilyListPaging(SrmPartSku partSku); + + R savePartSku(SrmPartSku partSku); + + R updatePartSku(SrmPartSku partSku); + + R deletePartSku(String sku, String site); +} diff --git a/src/main/java/com/xujie/modules/baseInformation/service/impl/SrmPartSkuServiceImpl.java b/src/main/java/com/xujie/modules/baseInformation/service/impl/SrmPartSkuServiceImpl.java new file mode 100644 index 0000000..06c5bf0 --- /dev/null +++ b/src/main/java/com/xujie/modules/baseInformation/service/impl/SrmPartSkuServiceImpl.java @@ -0,0 +1,119 @@ +package com.xujie.modules.baseInformation.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.xujie.common.utils.PageUtils; +import com.xujie.common.utils.R; +import com.xujie.modules.baseInformation.entity.SrmPartFamily; +import com.xujie.modules.baseInformation.entity.SrmPartSku; +import com.xujie.modules.baseInformation.mapper.SrmPartSkuMapper; +import com.xujie.modules.baseInformation.service.SrmPartSkuService; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class SrmPartSkuServiceImpl implements SrmPartSkuService { + + @Autowired + private SrmPartSkuMapper srmPartSkuMapper; + + @Override + public PageUtils getPartFamilyListPaging(SrmPartSku partSku) { + Page page = new Page<>(partSku.getPage(), partSku.getLimit()); + IPage iPage = this.srmPartSkuMapper.selectPartSkuListWithPaging(page, partSku); + return new PageUtils(iPage); + } + + @Override + public R savePartSku(SrmPartSku partSku) { + // 1. 参数校验 + if (partSku == null) { + return R.error("参数不能为空"); + } + if (StringUtils.isBlank(partSku.getSku())) { + return R.error("SKU 不能为空"); + } + if (StringUtils.isBlank(partSku.getActive())) { + partSku.setActive("Y"); // 默认启用 + } + + SrmPartSku existing = srmPartSkuMapper.selectPartSkuByCode(partSku.getSku(), partSku.getSite()); + if (existing != null) { + return R.error("SKU 已存在"); + } + + int result = srmPartSkuMapper.insertPartSku(partSku); + return result > 0 ? R.ok().put("msg", "新增成功") : R.error("新增失败"); + } + + @Override + public R updatePartSku(SrmPartSku partSku) { + // 1. 参数校验 + if (partSku == null) { + return R.error("参数不能为空"); + } + + // 2. 去除空格 + normalizeInput(partSku); + + // 3. 必填字段校验 + if (StringUtils.isBlank(partSku.getSite())) { + return R.error("site 不能为空"); + } + if (StringUtils.isBlank(partSku.getSku())) { + return R.error("SKU 不能为空"); + } + if (StringUtils.isBlank(partSku.getActive())) { + return R.error("是否在用不能为空"); + } + + // 4. 检查记录是否存在 + SrmPartSku existing = srmPartSkuMapper.selectPartSkuByCode(partSku.getSku(), partSku.getSite()); + if (existing == null) { + return R.error("记录不存在"); + } + + // 5. 执行更新 + int result = srmPartSkuMapper.updatePartSku(partSku); + return result > 0 ? R.ok().put("msg", "更新成功") : R.error("更新失败"); + } + + @Override + public R deletePartSku(String sku, String site) { + // 1. 参数校验 + sku = StringUtils.trimToEmpty(sku); + site = StringUtils.trimToEmpty(site); + + if (StringUtils.isBlank(site)) { + return R.error("site 不能为空"); + } + if (StringUtils.isBlank(sku)) { + return R.error("SKU 不能为空"); + } + + // 2. 检查记录是否存在 + SrmPartSku existing = srmPartSkuMapper.selectPartSkuByCode(sku, site); + if (existing == null) { + return R.error("记录不存在"); + } + + // 3. 执行删除 + int result = srmPartSkuMapper.deletePartSku(sku, site); + return result > 0 ? R.ok().put("msg", "删除成功") : R.error("删除失败"); + } + + /** + * 标准化输入数据,去除前后空格 + */ + private void normalizeInput(SrmPartSku partSku) { + if (partSku == null) { + return; + } + partSku.setSite(StringUtils.trimToEmpty(partSku.getSite())); + partSku.setSku(StringUtils.trimToEmpty(partSku.getSku())); + partSku.setRemark(StringUtils.trimToEmpty(partSku.getRemark())); + partSku.setActive(StringUtils.trimToEmpty(partSku.getActive())); + partSku.setCreateBy(StringUtils.trimToEmpty(partSku.getCreateBy())); + } +} diff --git a/src/main/resources/mapper/baseInformation/SrmPartSkuMapper.xml b/src/main/resources/mapper/baseInformation/SrmPartSkuMapper.xml new file mode 100644 index 0000000..2681571 --- /dev/null +++ b/src/main/resources/mapper/baseInformation/SrmPartSkuMapper.xml @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + site, + sku, + remark, + active, + create_date, + create_by + + + + + + + + + + INSERT INTO part_sku ( + site, + sku, + remark, + active, + create_date, + create_by + ) VALUES ( + #{site}, + #{sku}, + #{remark}, + #{active}, + GETDATE(), + #{createBy} + ) + + + + + UPDATE part_sku + + remark = #{remark}, + active = #{active}, + create_by = #{createBy} + + WHERE site = #{site} + AND sku = #{sku} + + + + + DELETE FROM part_sku + WHERE site = #{site} + AND sku = #{sku} + +