修改供应商管理功能
This commit is contained in:
parent
8448a11c05
commit
60317a60f2
|
|
@ -438,7 +438,6 @@ public class QmsInspectionStandardControllerService {
|
|||
Long userId = UserUtil.getUserId();
|
||||
String userName = UserUtil.getUserName();
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
|
||||
// 2. 处理检测项列表
|
||||
processItems(qo.getInspectionStandardId(), qo.getItems(), userId, userName, now);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,62 @@
|
|||
package com.nflg.wms.common.pojo.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 供应商-用户 关联平铺 VO(每行一条关联记录,供 Service 层聚合用)
|
||||
*/
|
||||
@Data
|
||||
public class QmsSupplierSqeMapFlatVO {
|
||||
|
||||
/**
|
||||
* 供应商ID
|
||||
*/
|
||||
private Long supplierId;
|
||||
|
||||
/**
|
||||
* 供应商编号
|
||||
*/
|
||||
private String supplierCode;
|
||||
|
||||
/**
|
||||
* 供应商名称
|
||||
*/
|
||||
private String supplierName;
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 用户名称
|
||||
*/
|
||||
private String userName;
|
||||
|
||||
/**
|
||||
* 启用状态
|
||||
*/
|
||||
private Boolean enable;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
private String createBy;
|
||||
|
||||
/**
|
||||
* 修改时间
|
||||
*/
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
/**
|
||||
* 修改人
|
||||
*/
|
||||
private String updateBy;
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@ package com.nflg.wms.common.pojo.vo;
|
|||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 供应商-用户 关联 VO(按供应商聚合,每行一个供应商)
|
||||
|
|
@ -26,9 +27,9 @@ public class QmsSupplierSqeMapVO {
|
|||
private String supplierName;
|
||||
|
||||
/**
|
||||
* SQE用户名称(多个用逗号分隔)
|
||||
* 关联的SQE用户列表(含 userId 和 userName)
|
||||
*/
|
||||
private String userName;
|
||||
private List<QmsSupplierSqeUserVO> users;
|
||||
|
||||
/**
|
||||
* 统一启用状态:所有关联记录均启用时为true,否则为false
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
package com.nflg.wms.common.pojo.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* SQE用户简要信息(用于 QmsSupplierSqeMapVO 中的 users 列表)
|
||||
*/
|
||||
@Data
|
||||
public class QmsSupplierSqeUserVO {
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 用户名称
|
||||
*/
|
||||
private String userName;
|
||||
}
|
||||
|
|
@ -5,6 +5,7 @@ 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.qo.QmsUserMaterialsQO;
|
||||
import com.nflg.wms.common.pojo.vo.QmsSupplierSqeMapFlatVO;
|
||||
import com.nflg.wms.common.pojo.vo.QmsSupplierSqeMapVO;
|
||||
import com.nflg.wms.common.pojo.vo.QmsUserSupplierVO;
|
||||
import com.nflg.wms.repository.entity.QmsSupplierSqeMap;
|
||||
|
|
@ -27,6 +28,11 @@ public interface QmsSupplierSqeMapMapper extends BaseMapper<QmsSupplierSqeMap> {
|
|||
*/
|
||||
IPage<QmsSupplierSqeMapVO> searchMap(@Param("request") QmsSupplierSqeSearchQO request, Page<QmsSupplierSqeMapVO> page);
|
||||
|
||||
/**
|
||||
* 平铺查询(每行一条关联记录,含 userId/userName,供 Service 层聚合为 List)
|
||||
*/
|
||||
List<QmsSupplierSqeMapFlatVO> searchMapFlat(@Param("request") QmsSupplierSqeSearchQO request);
|
||||
|
||||
/**
|
||||
* 按 userId 查询关联的供应商列表(支持供应商过滤,分页)
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -7,7 +7,9 @@ import com.nflg.wms.common.constant.STATE;
|
|||
import com.nflg.wms.common.exception.NflgException;
|
||||
import com.nflg.wms.common.pojo.PageData;
|
||||
import com.nflg.wms.common.pojo.qo.QmsSupplierSqeSearchQO;
|
||||
import com.nflg.wms.common.pojo.vo.QmsSupplierSqeMapFlatVO;
|
||||
import com.nflg.wms.common.pojo.vo.QmsSupplierSqeMapVO;
|
||||
import com.nflg.wms.common.pojo.vo.QmsSupplierSqeUserVO;
|
||||
import com.nflg.wms.common.pojo.vo.QmsUserSupplierVO;
|
||||
import com.nflg.wms.common.util.UserUtil;
|
||||
import com.nflg.wms.repository.entity.QmsSupplierSqeMap;
|
||||
|
|
@ -17,7 +19,10 @@ import org.springframework.stereotype.Service;
|
|||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
|
@ -36,7 +41,56 @@ public class QmsSupplierSqeMapServiceImpl extends ServiceImpl<QmsSupplierSqeMapM
|
|||
|
||||
@Override
|
||||
public IPage<QmsSupplierSqeMapVO> searchMap(QmsSupplierSqeSearchQO request) {
|
||||
return baseMapper.searchMap(request, new Page<>(request.getPage(), request.getPageSize()));
|
||||
// 1. 查平铺列表
|
||||
List<QmsSupplierSqeMapFlatVO> flatList = baseMapper.searchMapFlat(request);
|
||||
|
||||
// 2. 按 supplierId 聚合(保持原始排序,LinkedHashMap)
|
||||
Map<Long, QmsSupplierSqeMapVO> grouped = new LinkedHashMap<>();
|
||||
for (QmsSupplierSqeMapFlatVO flat : flatList) {
|
||||
QmsSupplierSqeMapVO vo = grouped.computeIfAbsent(flat.getSupplierId(), id -> {
|
||||
QmsSupplierSqeMapVO newVo = new QmsSupplierSqeMapVO();
|
||||
newVo.setSupplierId(flat.getSupplierId());
|
||||
newVo.setSupplierCode(flat.getSupplierCode());
|
||||
newVo.setSupplierName(flat.getSupplierName());
|
||||
newVo.setEnable(flat.getEnable());
|
||||
newVo.setCreateTime(flat.getCreateTime());
|
||||
newVo.setCreateBy(flat.getCreateBy());
|
||||
newVo.setUpdateTime(flat.getUpdateTime());
|
||||
newVo.setUpdateBy(flat.getUpdateBy());
|
||||
newVo.setUsers(new ArrayList<>());
|
||||
return newVo;
|
||||
});
|
||||
// 追加用户信息
|
||||
if (Objects.nonNull(flat.getUserId())) {
|
||||
QmsSupplierSqeUserVO userVO = new QmsSupplierSqeUserVO();
|
||||
userVO.setUserId(flat.getUserId());
|
||||
userVO.setUserName(flat.getUserName());
|
||||
vo.getUsers().add(userVO);
|
||||
}
|
||||
// enable 取最严格(有一条禁用则整体禁用)
|
||||
if (Boolean.FALSE.equals(flat.getEnable())) {
|
||||
vo.setEnable(false);
|
||||
}
|
||||
// 取最晚修改时间
|
||||
if (flat.getUpdateTime() != null && (vo.getUpdateTime() == null
|
||||
|| flat.getUpdateTime().isAfter(vo.getUpdateTime()))) {
|
||||
vo.setUpdateTime(flat.getUpdateTime());
|
||||
vo.setUpdateBy(flat.getUpdateBy());
|
||||
}
|
||||
}
|
||||
|
||||
// 3. 手动分页
|
||||
List<QmsSupplierSqeMapVO> allList = new ArrayList<>(grouped.values());
|
||||
int page = request.getPage();
|
||||
int pageSize = request.getPageSize();
|
||||
int total = allList.size();
|
||||
int fromIndex = Math.min((page - 1) * pageSize, total);
|
||||
int toIndex = Math.min(fromIndex + pageSize, total);
|
||||
List<QmsSupplierSqeMapVO> pageList = allList.subList(fromIndex, toIndex);
|
||||
|
||||
Page<QmsSupplierSqeMapVO> result = new Page<>(page, pageSize, total);
|
||||
result.setRecords(pageList);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
|
|
|
|||
|
|
@ -32,6 +32,36 @@
|
|||
ORDER BY qssm.supplier_id DESC
|
||||
</select>
|
||||
|
||||
<!-- 平铺查询:每行一条关联记录,含 userId/userName,供 Service 聚合为 List -->
|
||||
<select id="searchMapFlat" resultType="com.nflg.wms.common.pojo.vo.QmsSupplierSqeMapFlatVO">
|
||||
SELECT
|
||||
qssm.supplier_id,
|
||||
us.supplier_code,
|
||||
us.supplier_name,
|
||||
qssm.user_id,
|
||||
u.user_name,
|
||||
qssm.enable,
|
||||
qssm.create_time,
|
||||
qssm.create_by,
|
||||
qssm.update_time,
|
||||
qssm.update_by
|
||||
FROM qms_supplier_sqe_map qssm
|
||||
LEFT JOIN user_supplier us ON us.id = qssm.supplier_id
|
||||
LEFT JOIN "user" u ON u.id = qssm.user_id
|
||||
<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.userName != null and request.userName != ''">
|
||||
AND u.user_name ilike concat('%', #{request.userName}, '%')
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY qssm.supplier_id DESC, qssm.user_id ASC
|
||||
</select>
|
||||
|
||||
<!-- 按 userId 查询关联的供应商列表(支持供应商过滤) -->
|
||||
<select id="getSuppliersByUserId" resultType="com.nflg.wms.common.pojo.vo.QmsUserSupplierVO">
|
||||
SELECT
|
||||
|
|
|
|||
Loading…
Reference in New Issue