供应商-SQE 关联管理修改
This commit is contained in:
parent
e01ab6e094
commit
dc6ad7250c
|
|
@ -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<Void> add(@Valid @RequestBody QmsSqeAddQO request) {
|
||||
qmsSqeControllerService.addSqe(request);
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新SQE
|
||||
*/
|
||||
@PostMapping("update")
|
||||
public ApiResult<Void> update(@Valid @RequestBody QmsSqeUpdateQO request) {
|
||||
qmsSqeControllerService.updateSqe(request);
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除SQE
|
||||
*/
|
||||
@PostMapping("delete")
|
||||
public ApiResult<Void> delete(@NotNull Long id) {
|
||||
qmsSqeControllerService.deleteSqe(id);
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 启用/禁用SQE
|
||||
*/
|
||||
@PostMapping("enable")
|
||||
public ApiResult<Void> enable(@Valid @RequestBody EnableQO request) {
|
||||
qmsSqeControllerService.enableSqe(request);
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询SQE列表
|
||||
*/
|
||||
@PostMapping("search")
|
||||
public ApiResult<PageData<QmsSqeVO>> search(@Valid @RequestBody QmsSqeSearchQO request) {
|
||||
IPage<QmsSqeVO> page = qmsSqeControllerService.searchSqe(request);
|
||||
return ApiResult.success(page);
|
||||
}
|
||||
}
|
||||
|
|
@ -22,7 +22,7 @@ import java.util.Arrays;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 标准缺陷库 接口
|
||||
* 标准缺陷库管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/standardDefect")
|
||||
|
|
|
|||
|
|
@ -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<PageData<QmsSupplierSqeMapVO>> search(@Valid @RequestBody QmsSupplierSqeSearchQO request) {
|
||||
return ApiResult.success(qmsSqeControllerService.searchSupplierSqe(request));
|
||||
return ApiResult.success(supplierSqeMapService.searchMap(request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置供应商(为选中SQE绑定供应商,多对多,覆盖式更新,以SQE为主体)
|
||||
* 设置供应商(为选中用户绑定供应商,多对多,覆盖式更新,以用户为主体)
|
||||
*/
|
||||
@Transactional
|
||||
@PostMapping("setSupplier")
|
||||
public ApiResult<Void> setSupplier(@Valid @RequestBody SetSupplierQO request) {
|
||||
qmsSqeControllerService.setSupplier(request);
|
||||
supplierSqeMapService.setSupplier(request.getUserId(), request.getSupplierIds());
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 启用/禁用供应商-SQE关联关系
|
||||
*/
|
||||
@Transactional
|
||||
@PostMapping("enable")
|
||||
public ApiResult<Void> 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<Void> delete(@NotNull Long id) {
|
||||
qmsSqeControllerService.deleteSupplierSqeMap(id);
|
||||
supplierSqeMapService.deleteById(id);
|
||||
return ApiResult.success();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<QmsSqeVO> searchSqe(@Valid QmsSqeSearchQO request) {
|
||||
return qmsSqeService.search(request);
|
||||
}
|
||||
|
||||
// ===================== 供应商-SQE 关联管理 ======================
|
||||
|
||||
/**
|
||||
* 分页查询供应商-SQE关联列表(直接查关联表,动态过滤 supplierCode/supplierName/sqeName)
|
||||
*/
|
||||
public IPage<QmsSupplierSqeMapVO> 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<QmsSupplierSqeVO.SqeSimpleVO> 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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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=禁用
|
||||
|
|
|
|||
|
|
@ -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<SqeSimpleVO> 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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* SQE信息表
|
||||
* </p>
|
||||
*
|
||||
* @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;
|
||||
}
|
||||
|
|
@ -13,7 +13,7 @@ import java.time.LocalDateTime;
|
|||
|
||||
/**
|
||||
* <p>
|
||||
* 供应商与SQE关联表(多对多)
|
||||
* 供应商与用户关联表(多对多)
|
||||
* </p>
|
||||
*
|
||||
* @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=禁用
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* SQE Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
* @since 2025
|
||||
*/
|
||||
public interface QmsSqeMapper extends BaseMapper<QmsSqe> {
|
||||
|
||||
IPage<QmsSqeVO> search(QmsSqeSearchQO request, Page<Object> page);
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 供应商-SQE关联 Mapper 接口
|
||||
* 供应商-用户关联 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
|
|
@ -22,17 +19,7 @@ import java.util.List;
|
|||
public interface QmsSupplierSqeMapMapper extends BaseMapper<QmsSupplierSqeMap> {
|
||||
|
||||
/**
|
||||
* 分页查询供应商-SQE列表(含SQE名称聚合)
|
||||
*/
|
||||
IPage<QmsSupplierSqeVO> search(QmsSupplierSqeSearchQO request, Page<Object> page);
|
||||
|
||||
/**
|
||||
* 分页查询关联表(直接查 qms_supplier_sqe_map,JOIN 供应商和SQE,支持动态过滤)
|
||||
* 分页查询关联表(JOIN 供应商/user/user_interior/position,支持动态过滤)
|
||||
*/
|
||||
IPage<QmsSupplierSqeMapVO> searchMap(@Param("request") QmsSupplierSqeSearchQO request, Page<QmsSupplierSqeMapVO> page);
|
||||
|
||||
/**
|
||||
* 查询某供应商已绑定的SQE简要信息列表
|
||||
*/
|
||||
List<QmsSupplierSqeVO.SqeSimpleVO> listBySupplierId(@Param("supplierId") Long supplierId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* SQE 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
* @since 2025
|
||||
*/
|
||||
public interface IQmsSqeService extends IService<QmsSqe> {
|
||||
|
||||
/**
|
||||
* 分页查询SQE列表
|
||||
*/
|
||||
IPage<QmsSqeVO> search(QmsSqeSearchQO request);
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 供应商-SQE关联 服务类
|
||||
* 供应商-用户关联 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
|
|
@ -20,37 +19,22 @@ import java.util.List;
|
|||
public interface IQmsSupplierSqeMapService extends IService<QmsSupplierSqeMap> {
|
||||
|
||||
/**
|
||||
* 分页查询供应商-SQE列表
|
||||
*/
|
||||
IPage<QmsSupplierSqeVO> search(QmsSupplierSqeSearchQO request);
|
||||
|
||||
/**
|
||||
* 直接查关联表分页(动态过滤 supplierCode/supplierName/sqeName)
|
||||
* 直接查关联表分页(动态过滤 supplierCode/supplierName/userName)
|
||||
*/
|
||||
IPage<QmsSupplierSqeMapVO> searchMap(QmsSupplierSqeSearchQO request);
|
||||
|
||||
/**
|
||||
* 查询某供应商绑定的SQE简要列表
|
||||
* 为用户重新设置供应商(先清后存,以用户为主体)
|
||||
*/
|
||||
List<QmsSupplierSqeVO.SqeSimpleVO> listBySupplierId(Long supplierId);
|
||||
void setSupplier(Long userId, List<Long> supplierIds);
|
||||
|
||||
/**
|
||||
* 为供应商重新设置SQE(先清后存,以供应商为主体)
|
||||
*/
|
||||
void setSqe(Long supplierId, List<Long> sqeIds);
|
||||
|
||||
/**
|
||||
* 为SQE重新设置供应商(先清后存,以SQE为主体)
|
||||
*/
|
||||
void setSupplier(Long sqeId, List<Long> supplierIds);
|
||||
|
||||
/**
|
||||
* 启用/禁用单条供应商-SQE关联
|
||||
* 启用/禁用单条供应商-用户关联
|
||||
*/
|
||||
void enable(Long id, Boolean enable);
|
||||
|
||||
/**
|
||||
* 删除单条供应商-SQE关联(启用状态下不允许删除)
|
||||
* 删除单条供应商-用户关联(启用状态下不允许删除)
|
||||
*/
|
||||
void deleteById(Long id);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* SQE 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
* @since 2025
|
||||
*/
|
||||
@Service
|
||||
public class QmsSqeServiceImpl extends ServiceImpl<QmsSqeMapper, QmsSqe> implements IQmsSqeService {
|
||||
|
||||
@Override
|
||||
public IPage<QmsSqeVO> search(QmsSqeSearchQO request) {
|
||||
return baseMapper.search(request, new Page<>(request.getPage(), request.getPageSize()));
|
||||
}
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 供应商-SQE关联 服务实现类
|
||||
* 供应商-用户关联 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
|
|
@ -33,63 +32,38 @@ import java.util.stream.Collectors;
|
|||
public class QmsSupplierSqeMapServiceImpl extends ServiceImpl<QmsSupplierSqeMapMapper, QmsSupplierSqeMap>
|
||||
implements IQmsSupplierSqeMapService {
|
||||
|
||||
@Override
|
||||
public IPage<QmsSupplierSqeVO> search(QmsSupplierSqeSearchQO request) {
|
||||
return baseMapper.search(request, new Page<>(request.getPage(), request.getPageSize()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<QmsSupplierSqeMapVO> searchMap(QmsSupplierSqeSearchQO request) {
|
||||
return baseMapper.searchMap(request, new Page<>(request.getPage(), request.getPageSize()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<QmsSupplierSqeVO.SqeSimpleVO> listBySupplierId(Long supplierId) {
|
||||
return baseMapper.listBySupplierId(supplierId);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public void setSqe(Long supplierId, List<Long> sqeIds) {
|
||||
// 删除该供应商原有的所有关联
|
||||
remove(new LambdaQueryWrapper<QmsSupplierSqeMap>()
|
||||
.eq(QmsSupplierSqeMap::getSupplierId, supplierId));
|
||||
// 批量保存新关联
|
||||
public void setSupplier(Long userId, List<Long> supplierIds) {
|
||||
// 查询该用户已存在的供应商ID集合
|
||||
Set<Long> existSupplierIds = lambdaQuery()
|
||||
.eq(QmsSupplierSqeMap::getUserId, userId)
|
||||
.list()
|
||||
.stream()
|
||||
.map(QmsSupplierSqeMap::getSupplierId)
|
||||
.collect(Collectors.toSet());
|
||||
// 只插入不存在的记录,跳过重复的
|
||||
String operator = UserUtil.getUserName();
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
List<QmsSupplierSqeMap> 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<Long> supplierIds) {
|
||||
// 删除该SQE原有的所有关联
|
||||
remove(new LambdaQueryWrapper<QmsSupplierSqeMap>()
|
||||
.eq(QmsSupplierSqeMap::getSqeId, sqeId));
|
||||
// 批量保存新关联
|
||||
String operator = UserUtil.getUserName();
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
List<QmsSupplierSqeMap> list = supplierIds.stream()
|
||||
List<QmsSupplierSqeMap> 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
|
||||
|
|
|
|||
|
|
@ -1,26 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.nflg.wms.repository.mapper.QmsSqeMapper">
|
||||
|
||||
<select id="search" resultType="com.nflg.wms.common.pojo.vo.QmsSqeVO">
|
||||
SELECT id, user_id, sqe_name, sqe_code, email, phone, state, remark,
|
||||
create_by, create_time, update_by, update_time
|
||||
FROM qms_sqe
|
||||
<where>
|
||||
<if test="request.sqeName != null and request.sqeName != ''">
|
||||
AND sqe_name ilike concat('%', #{request.sqeName}, '%')
|
||||
</if>
|
||||
<if test="request.sqeCode != null and request.sqeCode != ''">
|
||||
AND sqe_code ilike concat('%', #{request.sqeCode}, '%')
|
||||
</if>
|
||||
<if test="request.startDate != null">
|
||||
AND create_time >= #{request.startDate}
|
||||
</if>
|
||||
<if test="request.endDate != null">
|
||||
AND create_time <= #{request.endDate}
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY id DESC
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
@ -2,52 +2,17 @@
|
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.nflg.wms.repository.mapper.QmsSupplierSqeMapMapper">
|
||||
|
||||
<!-- 分页查询供应商列表(每行包含聚合后的SQE名称用于展示) -->
|
||||
<select id="search" resultType="com.nflg.wms.common.pojo.vo.QmsSupplierSqeVO">
|
||||
SELECT
|
||||
us.id,
|
||||
us.supplier_code,
|
||||
us.supplier_name,
|
||||
us.state,
|
||||
us.create_time,
|
||||
us.create_by,
|
||||
us.update_time,
|
||||
us.update_by
|
||||
FROM user_supplier us
|
||||
<if test="request.sqeName != null and request.sqeName != ''">
|
||||
INNER JOIN qms_supplier_sqe_map qssm ON qssm.supplier_id = us.id AND qssm.state = 1
|
||||
INNER JOIN qms_sqe qs ON qs.id = qssm.sqe_id
|
||||
AND qs.sqe_name ilike concat('%', #{request.sqeName}, '%')
|
||||
</if>
|
||||
<where>
|
||||
<if test="request.supplierCode != null and request.supplierCode != ''">
|
||||
AND us.supplier_code ilike concat('%', #{request.supplierCode}, '%')
|
||||
</if>
|
||||
<if test="request.supplierName != null and request.supplierName != ''">
|
||||
AND us.supplier_name ilike concat('%', #{request.supplierName}, '%')
|
||||
</if>
|
||||
<if test="request.startDate != null">
|
||||
AND us.create_time >= #{request.startDate}
|
||||
</if>
|
||||
<if test="request.endDate != null">
|
||||
AND us.create_time <= #{request.endDate}
|
||||
</if>
|
||||
</where>
|
||||
GROUP BY us.id, us.supplier_code, us.supplier_name,
|
||||
us.state, us.create_time, us.create_by, us.update_time, us.update_by
|
||||
ORDER BY us.id DESC
|
||||
</select>
|
||||
|
||||
<!-- 直接查关联表,JOIN 供应商和SQE,动态过滤,分页 -->
|
||||
<!-- 分页查询关联表,JOIN 供应商/user/user_interior/position,动态过滤 -->
|
||||
<select id="searchMap" resultType="com.nflg.wms.common.pojo.vo.QmsSupplierSqeMapVO">
|
||||
SELECT
|
||||
qssm.id,
|
||||
qssm.supplier_id,
|
||||
us.supplier_code,
|
||||
us.supplier_name,
|
||||
qssm.sqe_id,
|
||||
qs.sqe_name,
|
||||
qs.sqe_code,
|
||||
qssm.user_id,
|
||||
u.user_name,
|
||||
u.user_code,
|
||||
p.name AS position_name,
|
||||
qssm.state,
|
||||
qssm.create_by,
|
||||
qssm.create_time,
|
||||
|
|
@ -55,7 +20,9 @@
|
|||
qssm.update_time
|
||||
FROM qms_supplier_sqe_map qssm
|
||||
LEFT JOIN user_supplier us ON us.id = qssm.supplier_id
|
||||
LEFT JOIN qms_sqe qs ON qs.id = qssm.sqe_id
|
||||
LEFT JOIN "user" u ON u.id = qssm.user_id
|
||||
LEFT JOIN user_interior ui ON ui.user_id = qssm.user_id
|
||||
LEFT JOIN position p ON p.id = ui.position_id
|
||||
<where>
|
||||
<if test="request.supplierCode != null and request.supplierCode != ''">
|
||||
AND us.supplier_code ilike concat('%', #{request.supplierCode}, '%')
|
||||
|
|
@ -63,24 +30,11 @@
|
|||
<if test="request.supplierName != null and request.supplierName != ''">
|
||||
AND us.supplier_name ilike concat('%', #{request.supplierName}, '%')
|
||||
</if>
|
||||
<if test="request.sqeName != null and request.sqeName != ''">
|
||||
AND qs.sqe_name ilike concat('%', #{request.sqeName}, '%')
|
||||
<if test="request.userName != null and request.userName != ''">
|
||||
AND u.user_name ilike concat('%', #{request.userName}, '%')
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY qssm.id DESC
|
||||
</select>
|
||||
|
||||
<!-- 查询某供应商绑定的所有SQE简要信息 -->
|
||||
<select id="listBySupplierId" resultType="com.nflg.wms.common.pojo.vo.QmsSupplierSqeVO$SqeSimpleVO">
|
||||
SELECT
|
||||
qs.id AS sqe_id,
|
||||
qs.sqe_name,
|
||||
qs.sqe_code
|
||||
FROM qms_supplier_sqe_map qssm
|
||||
INNER JOIN qms_sqe qs ON qs.id = qssm.sqe_id
|
||||
WHERE qssm.supplier_id = #{supplierId}
|
||||
AND qssm.state = 1
|
||||
ORDER BY qs.sqe_name
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
|
|||
Loading…
Reference in New Issue