From dc6ad7250cbd477419f8ff02988ec0b011259ebf Mon Sep 17 00:00:00 2001 From: funny <834502597@qq.com> Date: Thu, 9 Apr 2026 18:39:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BE=9B=E5=BA=94=E5=95=86-SQE=20=E5=85=B3?= =?UTF-8?q?=E8=81=94=E7=AE=A1=E7=90=86=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/controller/QmsSqeController.java | 69 ------- .../QmsStandardDefectController.java | 2 +- .../controller/QmsSupplierSqeController.java | 22 ++- .../service/QmsSqeControllerService.java | 183 ------------------ .../nflg/wms/common/pojo/qo/QmsSqeAddQO.java | 28 --- .../wms/common/pojo/qo/QmsSqeSearchQO.java | 20 -- .../wms/common/pojo/qo/QmsSqeUpdateQO.java | 42 ---- .../pojo/qo/QmsSupplierSqeSearchQO.java | 8 +- .../wms/common/pojo/qo/SetSupplierQO.java | 8 +- .../com/nflg/wms/common/pojo/vo/QmsSqeVO.java | 69 ------- .../common/pojo/vo/QmsSupplierSqeMapVO.java | 19 +- .../wms/common/pojo/vo/QmsSupplierSqeVO.java | 65 ------- .../nflg/wms/repository/entity/QmsSqe.java | 88 --------- .../repository/entity/QmsSupplierSqeMap.java | 6 +- .../wms/repository/mapper/QmsSqeMapper.java | 21 -- .../mapper/QmsSupplierSqeMapMapper.java | 17 +- .../repository/service/IQmsSqeService.java | 23 --- .../service/IQmsSupplierSqeMapService.java | 28 +-- .../service/impl/QmsSqeServiceImpl.java | 28 --- .../impl/QmsSupplierSqeMapServiceImpl.java | 60 ++---- .../main/resources/mapper/QmsSqeMapper.xml | 26 --- .../mapper/QmsSupplierSqeMapMapper.xml | 66 +------ 22 files changed, 71 insertions(+), 827 deletions(-) delete mode 100644 nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsSqeController.java delete mode 100644 nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsSqeControllerService.java delete mode 100644 nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsSqeAddQO.java delete mode 100644 nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsSqeSearchQO.java delete mode 100644 nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsSqeUpdateQO.java delete mode 100644 nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsSqeVO.java delete mode 100644 nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsSupplierSqeVO.java delete mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsSqe.java delete mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsSqeMapper.java delete mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsSqeService.java delete mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsSqeServiceImpl.java delete mode 100644 nflg-wms-repository/src/main/resources/mapper/QmsSqeMapper.xml diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsSqeController.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsSqeController.java deleted file mode 100644 index 9916ef92..00000000 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsSqeController.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.nflg.qms.admin.controller; - -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.nflg.qms.admin.service.QmsSqeControllerService; -import com.nflg.wms.common.pojo.ApiResult; -import com.nflg.wms.common.pojo.PageData; -import com.nflg.wms.common.pojo.qo.*; -import com.nflg.wms.common.pojo.vo.QmsSqeVO; -import com.nflg.wms.starter.BaseController; -import jakarta.annotation.Resource; -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotNull; -import org.springframework.web.bind.annotation.*; - -/** - * SQE 管理 - */ -@RestController -@RequestMapping("/sqe") -public class QmsSqeController extends BaseController { - - @Resource - private QmsSqeControllerService qmsSqeControllerService; - - /** - * 新增SQE - */ - @PostMapping("add") - public ApiResult add(@Valid @RequestBody QmsSqeAddQO request) { - qmsSqeControllerService.addSqe(request); - return ApiResult.success(); - } - - /** - * 更新SQE - */ - @PostMapping("update") - public ApiResult update(@Valid @RequestBody QmsSqeUpdateQO request) { - qmsSqeControllerService.updateSqe(request); - return ApiResult.success(); - } - - /** - * 删除SQE - */ - @PostMapping("delete") - public ApiResult delete(@NotNull Long id) { - qmsSqeControllerService.deleteSqe(id); - return ApiResult.success(); - } - - /** - * 启用/禁用SQE - */ - @PostMapping("enable") - public ApiResult enable(@Valid @RequestBody EnableQO request) { - qmsSqeControllerService.enableSqe(request); - return ApiResult.success(); - } - - /** - * 分页查询SQE列表 - */ - @PostMapping("search") - public ApiResult> search(@Valid @RequestBody QmsSqeSearchQO request) { - IPage page = qmsSqeControllerService.searchSqe(request); - return ApiResult.success(page); - } -} diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsStandardDefectController.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsStandardDefectController.java index 55ae97bd..f98496ba 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsStandardDefectController.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsStandardDefectController.java @@ -22,7 +22,7 @@ import java.util.Arrays; import java.util.List; /** - * 标准缺陷库 接口 + * 标准缺陷库管理 */ @RestController @RequestMapping("/standardDefect") diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsSupplierSqeController.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsSupplierSqeController.java index 9e9f40ad..c9354aa1 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsSupplierSqeController.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsSupplierSqeController.java @@ -1,21 +1,20 @@ package com.nflg.qms.admin.controller; -import com.nflg.qms.admin.service.QmsSqeControllerService; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.nflg.wms.common.pojo.ApiResult; import com.nflg.wms.common.pojo.PageData; import com.nflg.wms.common.pojo.qo.EnableQO; import com.nflg.wms.common.pojo.qo.QmsSupplierSqeSearchQO; import com.nflg.wms.common.pojo.qo.SetSupplierQO; import com.nflg.wms.common.pojo.vo.QmsSupplierSqeMapVO; -import com.nflg.wms.common.pojo.vo.QmsSupplierSqeVO; +import com.nflg.wms.repository.service.IQmsSupplierSqeMapService; import com.nflg.wms.starter.BaseController; import jakarta.annotation.Resource; import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; -import java.util.List; - /** * 供应商-SQE 关联管理 */ @@ -24,31 +23,33 @@ import java.util.List; public class QmsSupplierSqeController extends BaseController { @Resource - private QmsSqeControllerService qmsSqeControllerService; + private IQmsSupplierSqeMapService supplierSqeMapService; /** * 分页查询供应商-SQE关联列表(直接查关联表,支持动态过滤) */ @PostMapping("search") public ApiResult> search(@Valid @RequestBody QmsSupplierSqeSearchQO request) { - return ApiResult.success(qmsSqeControllerService.searchSupplierSqe(request)); + return ApiResult.success(supplierSqeMapService.searchMap(request)); } /** - * 设置供应商(为选中SQE绑定供应商,多对多,覆盖式更新,以SQE为主体) + * 设置供应商(为选中用户绑定供应商,多对多,覆盖式更新,以用户为主体) */ + @Transactional @PostMapping("setSupplier") public ApiResult setSupplier(@Valid @RequestBody SetSupplierQO request) { - qmsSqeControllerService.setSupplier(request); + supplierSqeMapService.setSupplier(request.getUserId(), request.getSupplierIds()); return ApiResult.success(); } /** * 启用/禁用供应商-SQE关联关系 */ + @Transactional @PostMapping("enable") public ApiResult enable(@Valid @RequestBody EnableQO request) { - qmsSqeControllerService.enableSupplierSqeMap(request); + supplierSqeMapService.enable(request.getId(), request.getEnable()); return ApiResult.success(); } @@ -57,9 +58,10 @@ public class QmsSupplierSqeController extends BaseController { * * @param id 关联记录ID */ + @Transactional @PostMapping("delete") public ApiResult delete(@NotNull Long id) { - qmsSqeControllerService.deleteSupplierSqeMap(id); + supplierSqeMapService.deleteById(id); return ApiResult.success(); } } diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsSqeControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsSqeControllerService.java deleted file mode 100644 index 974ec0e1..00000000 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsSqeControllerService.java +++ /dev/null @@ -1,183 +0,0 @@ -package com.nflg.qms.admin.service; - -import cn.hutool.core.util.StrUtil; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.nflg.wms.common.pojo.qo.*; -import com.nflg.wms.common.pojo.vo.QmsSqeVO; -import com.nflg.wms.common.pojo.vo.QmsSupplierSqeMapVO; -import com.nflg.wms.common.pojo.vo.QmsSupplierSqeVO; -import com.nflg.wms.common.util.UserUtil; -import com.nflg.wms.common.util.VUtil; -import com.nflg.wms.repository.entity.QmsSqe; -import com.nflg.wms.repository.entity.QmsSupplierSqeMap; -import com.nflg.wms.repository.entity.UserSupplier; -import com.nflg.wms.repository.entity.User; -import com.nflg.wms.repository.service.IQmsSqeService; -import com.nflg.wms.repository.service.IQmsSupplierSqeMapService; -import com.nflg.wms.repository.service.IUserService; -import com.nflg.wms.repository.service.IUserSupplierService; -import jakarta.annotation.Resource; -import jakarta.validation.Valid; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; - -import java.time.LocalDateTime; -import java.util.List; -import java.util.Objects; - -/** - * SQE 与供应商管理业务逻辑 - */ -@Slf4j -@Component -public class QmsSqeControllerService { - - @Resource - private IQmsSqeService qmsSqeService; - - @Resource - private IQmsSupplierSqeMapService supplierSqeMapService; - - @Resource - private IUserSupplierService userSupplierService; - - @Resource - private IUserService userService; - - // ========================= SQE 基础管理 ========================= - - /** - * 新增SQE - * sqeName 强制从 user 表读取 userName,防止前端与 userId 不一致 - */ - @Transactional - public void addSqe(@Valid QmsSqeAddQO request) { - VUtil.trueThrowBusinessError(qmsSqeService.lambdaQuery() - .eq(QmsSqe::getUserId, request.getUserId()).exists()) - .throwMessage("该用户已存在SQE记录"); - // 从 user 表取真实用户名,确保与 userId 强绑定 - User user = userService.getById(request.getUserId()); - VUtil.trueThrowBusinessError(Objects.isNull(user)).throwMessage("用户不存在"); - String operator = UserUtil.getUserName(); - LocalDateTime now = LocalDateTime.now(); - QmsSqe entity = new QmsSqe() - .setUserId(request.getUserId()) - .setSqeName(user.getUserName()) // 强制使用 user 表中的真实姓名 - .setSqeCode(request.getSqeCode()) - .setEmail(user.getEmail()) // 从 user 表自动赋值 - .setPhone(user.getPhone()) // 从 user 表自动赋值 - .setState(1) - .setRemark(request.getRemark()) - .setCreateBy(operator) - .setCreateTime(now) - .setUpdateBy(operator) - .setUpdateTime(now); - qmsSqeService.save(entity); - } - - /** - * 更新SQE信息 - */ - @Transactional - public void updateSqe(@Valid QmsSqeUpdateQO request) { - QmsSqe exist = qmsSqeService.getById(request.getId()); - VUtil.trueThrowBusinessError(Objects.isNull(exist)).throwMessage("SQE不存在"); - qmsSqeService.lambdaUpdate() - .eq(QmsSqe::getId, request.getId()) - .set(StrUtil.isNotBlank(request.getSqeName()), QmsSqe::getSqeName, request.getSqeName()) - .set(StrUtil.isNotBlank(request.getSqeCode()), QmsSqe::getSqeCode, request.getSqeCode()) - .set(StrUtil.isNotBlank(request.getEmail()), QmsSqe::getEmail, request.getEmail()) - .set(StrUtil.isNotBlank(request.getPhone()), QmsSqe::getPhone, request.getPhone()) - .set(StrUtil.isNotBlank(request.getRemark()), QmsSqe::getRemark, request.getRemark()) - .set(QmsSqe::getUpdateBy, UserUtil.getUserName()) - .set(QmsSqe::getUpdateTime, LocalDateTime.now()) - .update(); - } - - /** - * 删除SQE - */ - @Transactional - public void deleteSqe(Long id) { - VUtil.trueThrowBusinessError(Objects.isNull(qmsSqeService.getById(id))).throwMessage("SQE不存在"); - qmsSqeService.removeById(id); - // 同步删除所有关联关系 - supplierSqeMapService.lambdaUpdate() - .eq(QmsSupplierSqeMap::getSqeId, id) - .remove(); - } - - /** - * 启用/禁用SQE - */ - @Transactional - public void enableSqe(@Valid EnableQO request) { - VUtil.trueThrowBusinessError(Objects.isNull(qmsSqeService.getById(request.getId()))).throwMessage("SQE不存在"); - qmsSqeService.lambdaUpdate() - .eq(QmsSqe::getId, request.getId()) - .set(QmsSqe::getState, request.getEnable() ? 1 : 2) - .set(QmsSqe::getUpdateBy, UserUtil.getUserName()) - .set(QmsSqe::getUpdateTime, LocalDateTime.now()) - .update(); - } - - /** - * 分页查询SQE列表 - */ - public IPage searchSqe(@Valid QmsSqeSearchQO request) { - return qmsSqeService.search(request); - } - - // ===================== 供应商-SQE 关联管理 ====================== - - /** - * 分页查询供应商-SQE关联列表(直接查关联表,动态过滤 supplierCode/supplierName/sqeName) - */ - public IPage searchSupplierSqe(@Valid QmsSupplierSqeSearchQO request) { - return supplierSqeMapService.searchMap(request); - } - - /** - * 为供应商设置SQE(多对多,先清后存,以供应商为主体) - */ - @Transactional - public void setSqe(@Valid SetSqeQO request) { - UserSupplier supplier = userSupplierService.getById(request.getSupplierId()); - VUtil.trueThrowBusinessError(Objects.isNull(supplier)).throwMessage("供应商不存在"); - supplierSqeMapService.setSqe(request.getSupplierId(), request.getSqeIds()); - } - - /** - * 为SQE设置供应商(多对多,先清后存,以SQE为主体) - */ - @Transactional - public void setSupplier(@Valid SetSupplierQO request) { - VUtil.trueThrowBusinessError(Objects.isNull(qmsSqeService.getById(request.getSqeId()))).throwMessage("SQE不存在"); - supplierSqeMapService.setSupplier(request.getSqeId(), request.getSupplierIds()); - } - - /** - * 查询某供应商已绑定的SQE列表 - */ - public List getSqeListBySupplierId(Long supplierId) { - VUtil.trueThrowBusinessError(Objects.isNull(userSupplierService.getById(supplierId))).throwMessage("供应商不存在"); - return supplierSqeMapService.listBySupplierId(supplierId); - } - - /** - * 启用/禁用供应商-SQE关联关系 - */ - @Transactional - public void enableSupplierSqeMap(@Valid EnableQO request) { - supplierSqeMapService.enable(request.getId(), request.getEnable()); - } - - /** - * 删除供应商-SQE关联关系(启用状态下禁止删除) - */ - @Transactional - public void deleteSupplierSqeMap(Long id) { - supplierSqeMapService.deleteById(id); - } -} diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsSqeAddQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsSqeAddQO.java deleted file mode 100644 index 7247411e..00000000 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsSqeAddQO.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.nflg.wms.common.pojo.qo; - -import jakarta.validation.constraints.NotNull; -import lombok.Data; - -/** - * 新增 SQE 参数 - * sqeName、email、phone 均由后端从 user 表自动读取,前端无需传入 - */ -@Data -public class QmsSqeAddQO { - - /** - * 关联用户ID(user.id),后端据此自动取用户名、邮箱、手机号 - */ - @NotNull(message = "用户ID不能为空") - private Long userId; - - /** - * SQE工号 - */ - private String sqeCode; - - /** - * 备注 - */ - private String remark; -} diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsSqeSearchQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsSqeSearchQO.java deleted file mode 100644 index 5e96ff29..00000000 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsSqeSearchQO.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.nflg.wms.common.pojo.qo; - -import lombok.Data; - -/** - * SQE 列表查询参数 - */ -@Data -public class QmsSqeSearchQO extends SearchBaseQO { - - /** - * SQE姓名 - */ - private String sqeName; - - /** - * SQE工号 - */ - private String sqeCode; -} diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsSqeUpdateQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsSqeUpdateQO.java deleted file mode 100644 index 85393481..00000000 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsSqeUpdateQO.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.nflg.wms.common.pojo.qo; - -import jakarta.validation.constraints.NotNull; -import lombok.Data; - -/** - * 更新 SQE 参数 - */ -@Data -public class QmsSqeUpdateQO { - - /** - * SQE主键ID - */ - @NotNull(message = "ID不能为空") - private Long id; - - /** - * SQE姓名 - */ - private String sqeName; - - /** - * SQE工号 - */ - private String sqeCode; - - /** - * 邮箱 - */ - private String email; - - /** - * 手机号 - */ - private String phone; - - /** - * 备注 - */ - private String remark; -} diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsSupplierSqeSearchQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsSupplierSqeSearchQO.java index 18d3008f..c29b6bbb 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsSupplierSqeSearchQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsSupplierSqeSearchQO.java @@ -3,10 +3,10 @@ package com.nflg.wms.common.pojo.qo; import lombok.Data; /** - * 供应商-SQE 列表查询参数(对应页面搜索条件) + * 供应商-用户 列表查询参数(对应页面搜索条件) */ @Data -public class QmsSupplierSqeSearchQO extends SearchBaseQO { +public class QmsSupplierSqeSearchQO extends PageQO { /** * 供应商编号 @@ -19,7 +19,7 @@ public class QmsSupplierSqeSearchQO extends SearchBaseQO { private String supplierName; /** - * SQE名称 + * 用户名称 */ - private String sqeName; + private String userName; } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/SetSupplierQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/SetSupplierQO.java index c947d0e8..f6e4acb2 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/SetSupplierQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/SetSupplierQO.java @@ -7,16 +7,16 @@ import lombok.Data; import java.util.List; /** - * 为SQE设置供应商参数(多对多) + * 为用户设置供应商参数(多对多) */ @Data public class SetSupplierQO { /** - * SQE ID(qms_sqe.id) + * 用户ID(user.id) */ - @NotNull(message = "SQE ID不能为空") - private Long sqeId; + @NotNull(message = "用户ID不能为空") + private Long userId; /** * 供应商ID列表(user_supplier.id) diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsSqeVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsSqeVO.java deleted file mode 100644 index 00ddf483..00000000 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsSqeVO.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.nflg.wms.common.pojo.vo; - -import lombok.Data; - -import java.time.LocalDateTime; - -/** - * SQE 信息VO - */ -@Data -public class QmsSqeVO { - - private Long id; - - /** - * 关联用户ID - */ - private Long userId; - - /** - * SQE姓名 - */ - private String sqeName; - - /** - * SQE工号 - */ - private String sqeCode; - - /** - * 邮箱 - */ - private String email; - - /** - * 手机号 - */ - private String phone; - - /** - * 状态:1=启用,2=禁用 - */ - private Integer state; - - /** - * 备注 - */ - private String remark; - - /** - * 创建人 - */ - private String createBy; - - /** - * 创建时间 - */ - private LocalDateTime createTime; - - /** - * 最后更新人 - */ - private String updateBy; - - /** - * 最后更新时间 - */ - private LocalDateTime updateTime; -} diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsSupplierSqeMapVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsSupplierSqeMapVO.java index f0bdca62..7baeac38 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsSupplierSqeMapVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsSupplierSqeMapVO.java @@ -5,7 +5,7 @@ import lombok.Data; import java.time.LocalDateTime; /** - * 供应商-SQE 关联记录 VO(以关联表为主体,每行一条关联记录) + * 供应商-用户 关联记录 VO(以关联表为主体,每行一条关联记录) */ @Data public class QmsSupplierSqeMapVO { @@ -31,19 +31,24 @@ public class QmsSupplierSqeMapVO { private String supplierName; /** - * SQE ID + * 用户ID */ - private Long sqeId; + private Long userId; /** - * SQE 名称 + * 用户名称 */ - private String sqeName; + private String userName; /** - * SQE 工号 + * 用户工号 */ - private String sqeCode; + private String userCode; + + /** + * 职位名称 + */ + private String positionName; /** * 状态:1=启用,2=禁用 diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsSupplierSqeVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsSupplierSqeVO.java deleted file mode 100644 index 690a1237..00000000 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsSupplierSqeVO.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.nflg.wms.common.pojo.vo; - -import lombok.Data; - -import java.time.LocalDateTime; -import java.util.List; - -/** - * 供应商信息(含所属SQE)VO,对应页面列表行 - */ -@Data -public class QmsSupplierSqeVO { - - private Long id; - - /** - * 供应商编号 - */ - private String supplierCode; - - /** - * 供应商名称 - */ - private String supplierName; - - /** - * 所属SQE列表 - */ - private List sqeList; - - /** - * 状态:1=启用,2=禁用 - */ - private Integer state; - - /** - * 创建时间 - */ - private LocalDateTime createTime; - - /** - * 创建人 - */ - private String createBy; - - /** - * 最后更新时间 - */ - private LocalDateTime updateTime; - - /** - * 最后更新人 - */ - private String updateBy; - - /** - * SQE简要信息(用于列表展示) - */ - @Data - public static class SqeSimpleVO { - private Long sqeId; - private String sqeName; - private String sqeCode; - } -} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsSqe.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsSqe.java deleted file mode 100644 index ec3f98af..00000000 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsSqe.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.nflg.wms.repository.entity; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; -import lombok.experimental.Accessors; - -import java.io.Serializable; -import java.time.LocalDateTime; - -/** - *

- * SQE信息表 - *

- * - * @author 代码生成器生成 - * @since 2025 - */ -@Getter -@Setter -@ToString -@Accessors(chain = true) -@TableName("qms_sqe") -public class QmsSqe implements Serializable { - - private static final long serialVersionUID = 1L; - - @TableId(value = "id", type = IdType.ASSIGN_ID) - private Long id; - - /** - * 关联用户ID (user.id) - */ - private Long userId; - - /** - * SQE姓名 - */ - private String sqeName; - - /** - * SQE工号 - */ - private String sqeCode; - - /** - * 邮箱 - */ - private String email; - - /** - * 手机号 - */ - private String phone; - - /** - * 状态:1=启用,2=禁用 - */ - private Integer state; - - /** - * 备注 - */ - private String remark; - - /** - * 创建人 - */ - private String createBy; - - /** - * 创建时间 - */ - private LocalDateTime createTime; - - /** - * 最后更新人 - */ - private String updateBy; - - /** - * 最后更新时间 - */ - private LocalDateTime updateTime; -} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsSupplierSqeMap.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsSupplierSqeMap.java index c8367c01..0e88ea8e 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsSupplierSqeMap.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsSupplierSqeMap.java @@ -13,7 +13,7 @@ import java.time.LocalDateTime; /** *

- * 供应商与SQE关联表(多对多) + * 供应商与用户关联表(多对多) *

* * @author 代码生成器生成 @@ -37,9 +37,9 @@ public class QmsSupplierSqeMap implements Serializable { private Long supplierId; /** - * SQE ID (qms_sqe.id) + * 用户ID (user.id) */ - private Long sqeId; + private Long userId; /** * 状态:1=启用,2=禁用 diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsSqeMapper.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsSqeMapper.java deleted file mode 100644 index 6fa80f6a..00000000 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsSqeMapper.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.nflg.wms.repository.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.nflg.wms.common.pojo.qo.QmsSqeSearchQO; -import com.nflg.wms.common.pojo.vo.QmsSqeVO; -import com.nflg.wms.repository.entity.QmsSqe; - -/** - *

- * SQE Mapper 接口 - *

- * - * @author 代码生成器生成 - * @since 2025 - */ -public interface QmsSqeMapper extends BaseMapper { - - IPage search(QmsSqeSearchQO request, Page page); -} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsSupplierSqeMapMapper.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsSupplierSqeMapMapper.java index c69aad9c..5ba43dab 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsSupplierSqeMapMapper.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsSupplierSqeMapMapper.java @@ -5,15 +5,12 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.nflg.wms.common.pojo.qo.QmsSupplierSqeSearchQO; import com.nflg.wms.common.pojo.vo.QmsSupplierSqeMapVO; -import com.nflg.wms.common.pojo.vo.QmsSupplierSqeVO; import com.nflg.wms.repository.entity.QmsSupplierSqeMap; import org.apache.ibatis.annotations.Param; -import java.util.List; - /** *

- * 供应商-SQE关联 Mapper 接口 + * 供应商-用户关联 Mapper 接口 *

* * @author 代码生成器生成 @@ -22,17 +19,7 @@ import java.util.List; public interface QmsSupplierSqeMapMapper extends BaseMapper { /** - * 分页查询供应商-SQE列表(含SQE名称聚合) - */ - IPage search(QmsSupplierSqeSearchQO request, Page page); - - /** - * 分页查询关联表(直接查 qms_supplier_sqe_map,JOIN 供应商和SQE,支持动态过滤) + * 分页查询关联表(JOIN 供应商/user/user_interior/position,支持动态过滤) */ IPage searchMap(@Param("request") QmsSupplierSqeSearchQO request, Page page); - - /** - * 查询某供应商已绑定的SQE简要信息列表 - */ - List listBySupplierId(@Param("supplierId") Long supplierId); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsSqeService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsSqeService.java deleted file mode 100644 index 84f94fd6..00000000 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsSqeService.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.nflg.wms.repository.service; - -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.service.IService; -import com.nflg.wms.common.pojo.qo.QmsSqeSearchQO; -import com.nflg.wms.common.pojo.vo.QmsSqeVO; -import com.nflg.wms.repository.entity.QmsSqe; - -/** - *

- * SQE 服务类 - *

- * - * @author 代码生成器生成 - * @since 2025 - */ -public interface IQmsSqeService extends IService { - - /** - * 分页查询SQE列表 - */ - IPage search(QmsSqeSearchQO request); -} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsSupplierSqeMapService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsSupplierSqeMapService.java index 21300012..f1104dda 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsSupplierSqeMapService.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsSupplierSqeMapService.java @@ -4,14 +4,13 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.nflg.wms.common.pojo.qo.QmsSupplierSqeSearchQO; import com.nflg.wms.common.pojo.vo.QmsSupplierSqeMapVO; -import com.nflg.wms.common.pojo.vo.QmsSupplierSqeVO; import com.nflg.wms.repository.entity.QmsSupplierSqeMap; import java.util.List; /** *

- * 供应商-SQE关联 服务类 + * 供应商-用户关联 服务类 *

* * @author 代码生成器生成 @@ -20,37 +19,22 @@ import java.util.List; public interface IQmsSupplierSqeMapService extends IService { /** - * 分页查询供应商-SQE列表 - */ - IPage search(QmsSupplierSqeSearchQO request); - - /** - * 直接查关联表分页(动态过滤 supplierCode/supplierName/sqeName) + * 直接查关联表分页(动态过滤 supplierCode/supplierName/userName) */ IPage searchMap(QmsSupplierSqeSearchQO request); /** - * 查询某供应商绑定的SQE简要列表 + * 为用户重新设置供应商(先清后存,以用户为主体) */ - List listBySupplierId(Long supplierId); + void setSupplier(Long userId, List supplierIds); /** - * 为供应商重新设置SQE(先清后存,以供应商为主体) - */ - void setSqe(Long supplierId, List sqeIds); - - /** - * 为SQE重新设置供应商(先清后存,以SQE为主体) - */ - void setSupplier(Long sqeId, List supplierIds); - - /** - * 启用/禁用单条供应商-SQE关联 + * 启用/禁用单条供应商-用户关联 */ void enable(Long id, Boolean enable); /** - * 删除单条供应商-SQE关联(启用状态下不允许删除) + * 删除单条供应商-用户关联(启用状态下不允许删除) */ void deleteById(Long id); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsSqeServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsSqeServiceImpl.java deleted file mode 100644 index f281b3c6..00000000 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsSqeServiceImpl.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.nflg.wms.repository.service.impl; - -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.nflg.wms.common.pojo.qo.QmsSqeSearchQO; -import com.nflg.wms.common.pojo.vo.QmsSqeVO; -import com.nflg.wms.repository.entity.QmsSqe; -import com.nflg.wms.repository.mapper.QmsSqeMapper; -import com.nflg.wms.repository.service.IQmsSqeService; -import org.springframework.stereotype.Service; - -/** - *

- * SQE 服务实现类 - *

- * - * @author 代码生成器生成 - * @since 2025 - */ -@Service -public class QmsSqeServiceImpl extends ServiceImpl implements IQmsSqeService { - - @Override - public IPage search(QmsSqeSearchQO request) { - return baseMapper.search(request, new Page<>(request.getPage(), request.getPageSize())); - } -} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsSupplierSqeMapServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsSupplierSqeMapServiceImpl.java index 10892826..1452dbcf 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsSupplierSqeMapServiceImpl.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsSupplierSqeMapServiceImpl.java @@ -1,6 +1,5 @@ package com.nflg.wms.repository.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -8,7 +7,6 @@ import com.nflg.wms.common.constant.STATE; import com.nflg.wms.common.exception.NflgException; import com.nflg.wms.common.pojo.qo.QmsSupplierSqeSearchQO; import com.nflg.wms.common.pojo.vo.QmsSupplierSqeMapVO; -import com.nflg.wms.common.pojo.vo.QmsSupplierSqeVO; import com.nflg.wms.common.util.UserUtil; import com.nflg.wms.repository.entity.QmsSupplierSqeMap; import com.nflg.wms.repository.mapper.QmsSupplierSqeMapMapper; @@ -19,11 +17,12 @@ import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.util.List; import java.util.Objects; +import java.util.Set; import java.util.stream.Collectors; /** *

- * 供应商-SQE关联 服务实现类 + * 供应商-用户关联 服务实现类 *

* * @author 代码生成器生成 @@ -33,63 +32,38 @@ import java.util.stream.Collectors; public class QmsSupplierSqeMapServiceImpl extends ServiceImpl implements IQmsSupplierSqeMapService { - @Override - public IPage search(QmsSupplierSqeSearchQO request) { - return baseMapper.search(request, new Page<>(request.getPage(), request.getPageSize())); - } - @Override public IPage searchMap(QmsSupplierSqeSearchQO request) { return baseMapper.searchMap(request, new Page<>(request.getPage(), request.getPageSize())); } - @Override - public List listBySupplierId(Long supplierId) { - return baseMapper.listBySupplierId(supplierId); - } - @Transactional @Override - public void setSqe(Long supplierId, List sqeIds) { - // 删除该供应商原有的所有关联 - remove(new LambdaQueryWrapper() - .eq(QmsSupplierSqeMap::getSupplierId, supplierId)); - // 批量保存新关联 + public void setSupplier(Long userId, List supplierIds) { + // 查询该用户已存在的供应商ID集合 + Set existSupplierIds = lambdaQuery() + .eq(QmsSupplierSqeMap::getUserId, userId) + .list() + .stream() + .map(QmsSupplierSqeMap::getSupplierId) + .collect(Collectors.toSet()); + // 只插入不存在的记录,跳过重复的 String operator = UserUtil.getUserName(); LocalDateTime now = LocalDateTime.now(); - List list = sqeIds.stream() - .map(sqeId -> new QmsSupplierSqeMap() - .setSupplierId(supplierId) - .setSqeId(sqeId) - .setState(1) - .setCreateBy(operator) - .setCreateTime(now) - .setUpdateBy(operator) - .setUpdateTime(now)) - .collect(Collectors.toList()); - saveBatch(list); - } - - @Transactional - @Override - public void setSupplier(Long sqeId, List supplierIds) { - // 删除该SQE原有的所有关联 - remove(new LambdaQueryWrapper() - .eq(QmsSupplierSqeMap::getSqeId, sqeId)); - // 批量保存新关联 - String operator = UserUtil.getUserName(); - LocalDateTime now = LocalDateTime.now(); - List list = supplierIds.stream() + List toAdd = supplierIds.stream() + .filter(supplierId -> !existSupplierIds.contains(supplierId)) .map(supplierId -> new QmsSupplierSqeMap() .setSupplierId(supplierId) - .setSqeId(sqeId) + .setUserId(userId) .setState(1) .setCreateBy(operator) .setCreateTime(now) .setUpdateBy(operator) .setUpdateTime(now)) .collect(Collectors.toList()); - saveBatch(list); + if (!toAdd.isEmpty()) { + saveBatch(toAdd); + } } @Transactional diff --git a/nflg-wms-repository/src/main/resources/mapper/QmsSqeMapper.xml b/nflg-wms-repository/src/main/resources/mapper/QmsSqeMapper.xml deleted file mode 100644 index 808fcd88..00000000 --- a/nflg-wms-repository/src/main/resources/mapper/QmsSqeMapper.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - diff --git a/nflg-wms-repository/src/main/resources/mapper/QmsSupplierSqeMapMapper.xml b/nflg-wms-repository/src/main/resources/mapper/QmsSupplierSqeMapMapper.xml index a5ebea7e..e36ee47d 100644 --- a/nflg-wms-repository/src/main/resources/mapper/QmsSupplierSqeMapMapper.xml +++ b/nflg-wms-repository/src/main/resources/mapper/QmsSupplierSqeMapMapper.xml @@ -2,52 +2,17 @@ - - - - + - - -