Merge remote-tracking branch 'refs/remotes/惠信/qms/yf' into qms/develop
This commit is contained in:
commit
2e2111c0ba
|
|
@ -38,9 +38,6 @@ public class QmsCoaTaskController extends BaseController {
|
|||
@Resource
|
||||
private IQmsCoaTaskService coaTaskService;
|
||||
|
||||
@Resource
|
||||
private List<ISendMessageService> sendMessageServices;
|
||||
|
||||
@Resource
|
||||
private IQmsTodoItemService todoItemService;
|
||||
|
||||
|
|
|
|||
|
|
@ -43,14 +43,14 @@ public class QmsQualityInspectorController extends BaseController {
|
|||
}
|
||||
|
||||
/**
|
||||
* 删除质检人员(传入 userId,删除该用户所有关联记录,启用状态下不允许删除)
|
||||
* 删除质检人员(传入 id,删除该用户所有关联记录,启用状态下不允许删除)
|
||||
*
|
||||
* @param userId 员工ID
|
||||
* @param id 质检人员主表ID
|
||||
*/
|
||||
@Transactional
|
||||
@PostMapping("delete")
|
||||
public ApiResult<Void> delete(@NotNull Long userId) {
|
||||
qualityInspectorService.delete(userId);
|
||||
public ApiResult<Void> delete(@NotNull Long id) {
|
||||
qualityInspectorService.delete(id);
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
|
|
@ -73,13 +73,13 @@ public class QmsQualityInspectorController extends BaseController {
|
|||
}
|
||||
|
||||
/**
|
||||
* 按员工ID查询质检人员详情(物料和物料类别分开返回,不分页)
|
||||
* 按ID查询质检人员详情(物料和物料类别分开返回,不分页)
|
||||
*
|
||||
* @param userId 员工ID(user.id)
|
||||
* @param id 质检人员主表ID
|
||||
*/
|
||||
@GetMapping("detail")
|
||||
public ApiResult<QmsQualityInspectorDetailVO> detail(@NotNull Long userId) {
|
||||
return ApiResult.success(qualityInspectorService.getDetailByUserId(userId));
|
||||
public ApiResult<QmsQualityInspectorDetailVO> detail(@NotNull Long id) {
|
||||
return ApiResult.success(qualityInspectorService.getDetailByUserId(id));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -88,7 +88,7 @@ public class QmsQualityInspectorController extends BaseController {
|
|||
@Transactional
|
||||
@PostMapping("updateStatus")
|
||||
public ApiResult<Void> updateStatus(@Valid @RequestBody QmsQualityInspectorStatusQO request) {
|
||||
qualityInspectorService.updateStatus(request.getUserId(), request.getEnable());
|
||||
qualityInspectorService.updateStatus(request.getId(), request.getEnable());
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
|
|
@ -105,12 +105,12 @@ public class QmsQualityInspectorController extends BaseController {
|
|||
/**
|
||||
* 取消转办(将该质检人所有记录的转办人清空)
|
||||
*
|
||||
* @param userId 员工ID
|
||||
* @param id 质检人员主表ID
|
||||
*/
|
||||
@Transactional
|
||||
@PostMapping("cancelTransfer")
|
||||
public ApiResult<Void> cancelTransfer(@NotNull Long userId) {
|
||||
qualityInspectorService.cancelTransfer(userId);
|
||||
public ApiResult<Void> cancelTransfer(@NotNull Long id) {
|
||||
qualityInspectorService.cancelTransfer(id);
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -10,10 +10,10 @@ import lombok.Data;
|
|||
public class QmsQualityInspectorStatusQO {
|
||||
|
||||
/**
|
||||
* 质检人ID,必传
|
||||
* 质检人员主表ID,必传
|
||||
*/
|
||||
@NotNull(message = "质检人ID不能为空")
|
||||
private Long userId;
|
||||
@NotNull(message = "ID不能为空")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 状态:true=启用,false=禁用
|
||||
|
|
|
|||
|
|
@ -31,9 +31,9 @@ public interface IQmsQualityInspectorService extends IService<QmsQualityInspecto
|
|||
void add(QmsQualityInspectorAddQO request);
|
||||
|
||||
/**
|
||||
* 删除质检人员(传入 userId,删除该用户所有关联记录,启用状态不允许删除)
|
||||
* 删除质检人员(传入主表 id,删除该用户所有关联记录,启用状态不允许删除)
|
||||
*/
|
||||
void delete(Long userId);
|
||||
void delete(Long id);
|
||||
|
||||
/**
|
||||
* 修改质检人员的物料/物料类别(追加或删除)
|
||||
|
|
@ -46,14 +46,14 @@ public interface IQmsQualityInspectorService extends IService<QmsQualityInspecto
|
|||
IPage<QmsQualityInspectorVO> search(QmsQualityInspectorSearchQO request);
|
||||
|
||||
/**
|
||||
* 按员工ID(user_id)查询质检人员详情,物料和物料类别分开返回(不分页)
|
||||
* 按主表 id 查询质检人员详情,物料和物料类别分开返回(不分页)
|
||||
*/
|
||||
QmsQualityInspectorDetailVO getDetailByUserId(Long userId);
|
||||
QmsQualityInspectorDetailVO getDetailByUserId(Long id);
|
||||
|
||||
/**
|
||||
* 修改状态(将该质检人的所有记录状态全改)
|
||||
*/
|
||||
void updateStatus(Long userId, Boolean enable);
|
||||
void updateStatus(Long id, Boolean enable);
|
||||
|
||||
/**
|
||||
* 转办(将该质检人所有记录设置转办人)
|
||||
|
|
@ -63,7 +63,7 @@ public interface IQmsQualityInspectorService extends IService<QmsQualityInspecto
|
|||
/**
|
||||
* 取消转办(将该质检人所有记录的转办人清空)
|
||||
*/
|
||||
void cancelTransfer(Long userId);
|
||||
void cancelTransfer(Long id);
|
||||
|
||||
/**
|
||||
* 按 userId 查询当前用户绑定的物料列表(支持物料编号/类别/描述过滤,分页)
|
||||
|
|
|
|||
|
|
@ -139,7 +139,7 @@ public class QmsQualityInspectorServiceImpl extends ServiceImpl<QmsQualityInspec
|
|||
.setUpdateBy(operator)
|
||||
.setUpdateTime(now);
|
||||
save(inspector);
|
||||
Long inspectorId = inspector.getUserId();
|
||||
Long inspectorId = inspector.getId();
|
||||
|
||||
// 批量插入物料明细
|
||||
if (!CollectionUtils.isEmpty(request.getMaterialIds())) {
|
||||
|
|
@ -181,11 +181,9 @@ public class QmsQualityInspectorServiceImpl extends ServiceImpl<QmsQualityInspec
|
|||
|
||||
@Transactional
|
||||
@Override
|
||||
public void delete(Long userId) {
|
||||
// 查询主表记录
|
||||
QmsQualityInspector inspector = lambdaQuery()
|
||||
.eq(QmsQualityInspector::getUserId, userId)
|
||||
.one();
|
||||
public void delete(Long id) {
|
||||
// 按主表 id 查主表记录
|
||||
QmsQualityInspector inspector = getById(id);
|
||||
if (Objects.isNull(inspector)) {
|
||||
throw new NflgException(STATE.BusinessError, "该质检人员不存在");
|
||||
}
|
||||
|
|
@ -193,16 +191,15 @@ public class QmsQualityInspectorServiceImpl extends ServiceImpl<QmsQualityInspec
|
|||
if (Boolean.TRUE.equals(inspector.getEnable())) {
|
||||
throw new NflgException(STATE.BusinessError, "该质检人员处于启用状态,不允许删除,请先禁用后再删除");
|
||||
}
|
||||
Long inspectorId = inspector.getId();
|
||||
// 删除两张明细表
|
||||
materialItemService.lambdaUpdate()
|
||||
.eq(QmsInspectorMaterialItem::getInspectorId, inspectorId)
|
||||
.eq(QmsInspectorMaterialItem::getInspectorId, id)
|
||||
.remove();
|
||||
materialCategoryItemService.lambdaUpdate()
|
||||
.eq(QmsInspectorMaterialCategoryItem::getInspectorId, inspectorId)
|
||||
.eq(QmsInspectorMaterialCategoryItem::getInspectorId, id)
|
||||
.remove();
|
||||
// 删除主表
|
||||
removeById(inspectorId);
|
||||
removeById(id);
|
||||
}
|
||||
|
||||
// ========================= 修改物料/物料类别 =========================
|
||||
|
|
@ -221,16 +218,28 @@ public class QmsQualityInspectorServiceImpl extends ServiceImpl<QmsQualityInspec
|
|||
if (Objects.isNull(inspector)) {
|
||||
throw new NflgException(STATE.BusinessError, "该质检人员不存在");
|
||||
}
|
||||
Long inspectorId = inspector.getUserId();
|
||||
Long inspectorId = inspector.getId();
|
||||
Integer inspectionType = inspector.getInspectionType();
|
||||
|
||||
// 追加物料
|
||||
if (!CollectionUtils.isEmpty(request.getAddMaterialIds())) {
|
||||
// 校验这些物料是否已被任意质检员绑定(含自己)
|
||||
// 校验这些物料是否已被相同 inspectionType 的质检员绑定
|
||||
List<QmsInspectorMaterialItem> conflictMaterials = materialItemService.lambdaQuery()
|
||||
.in(QmsInspectorMaterialItem::getMaterialId, request.getAddMaterialIds())
|
||||
.list();
|
||||
if (!conflictMaterials.isEmpty()) {
|
||||
throw new NflgException(STATE.BusinessError, "追加的物料中存在已被质检员绑定的物料,不允许重复追加");
|
||||
// 查冲突记录对应的质检员 inspectionType
|
||||
List<Long> conflictInspectorIds = conflictMaterials.stream()
|
||||
.map(QmsInspectorMaterialItem::getInspectorId)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
boolean sameTypeConflict = lambdaQuery()
|
||||
.in(QmsQualityInspector::getId, conflictInspectorIds)
|
||||
.eq(QmsQualityInspector::getInspectionType, inspectionType)
|
||||
.exists();
|
||||
if (sameTypeConflict) {
|
||||
throw new NflgException(STATE.BusinessError, "追加的物料中存在已被相同质检类型的质检员绑定的物料,不允许重复追加");
|
||||
}
|
||||
}
|
||||
List<QmsInspectorMaterialItem> toAdd = request.getAddMaterialIds().stream()
|
||||
.map(materialId -> new QmsInspectorMaterialItem()
|
||||
|
|
@ -256,13 +265,23 @@ public class QmsQualityInspectorServiceImpl extends ServiceImpl<QmsQualityInspec
|
|||
if (!CollectionUtils.isEmpty(request.getAddMaterialCategoryCodes())) {
|
||||
Map<String, Long> codeToIdMap = getCategoryCodeToIdMap(request.getAddMaterialCategoryCodes());
|
||||
List<Long> addCategoryIds = new ArrayList<>(codeToIdMap.values());
|
||||
// 校验这些物料类别是否已被任意质检员绑定(含自己)
|
||||
// 校验这些物料类别是否已被相同 inspectionType 的质检员绑定
|
||||
if (!addCategoryIds.isEmpty()) {
|
||||
List<QmsInspectorMaterialCategoryItem> conflictCategories = materialCategoryItemService.lambdaQuery()
|
||||
.in(QmsInspectorMaterialCategoryItem::getMaterialCategoryId, addCategoryIds)
|
||||
.list();
|
||||
if (!conflictCategories.isEmpty()) {
|
||||
throw new NflgException(STATE.BusinessError, "追加的物料类别中存在已被质检员绑定的类别,不允许重复追加");
|
||||
List<Long> conflictInspectorIds = conflictCategories.stream()
|
||||
.map(QmsInspectorMaterialCategoryItem::getInspectorId)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
boolean sameTypeConflict = lambdaQuery()
|
||||
.in(QmsQualityInspector::getId, conflictInspectorIds)
|
||||
.eq(QmsQualityInspector::getInspectionType, inspectionType)
|
||||
.exists();
|
||||
if (sameTypeConflict) {
|
||||
throw new NflgException(STATE.BusinessError, "追加的物料类别中存在已被相同质检类型的质检员绑定的类别,不允许重复追加");
|
||||
}
|
||||
}
|
||||
}
|
||||
List<QmsInspectorMaterialCategoryItem> toAdd = new ArrayList<>();
|
||||
|
|
@ -304,15 +323,15 @@ public class QmsQualityInspectorServiceImpl extends ServiceImpl<QmsQualityInspec
|
|||
}
|
||||
|
||||
@Override
|
||||
public QmsQualityInspectorDetailVO getDetailByUserId(Long userId) {
|
||||
// 按 user_id 查主表,取到 inspector.id 后再查两张明细表
|
||||
QmsQualityInspector inspector = lambdaQuery()
|
||||
.eq(QmsQualityInspector::getUserId, userId)
|
||||
.one();
|
||||
public QmsQualityInspectorDetailVO getDetailByUserId(Long id) {
|
||||
// 按主表 id 查主表
|
||||
QmsQualityInspector inspector = getById(id);
|
||||
if (Objects.isNull(inspector)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
Long userId = inspector.getUserId();
|
||||
|
||||
// 查 user 信息
|
||||
User user = userService.getById(userId);
|
||||
|
||||
|
|
@ -351,9 +370,9 @@ public class QmsQualityInspectorServiceImpl extends ServiceImpl<QmsQualityInspec
|
|||
detail.setDeptLeaderName(null);
|
||||
detail.setPositionName(positionName);
|
||||
|
||||
// 按 userId 查物料列表和物料类别列表(明细表 inspector_id 存的是 user.id)
|
||||
detail.setMaterials(baseMapper.getMaterialsByInspectorId(userId));
|
||||
detail.setCategories(baseMapper.getCategoriesByInspectorId(userId));
|
||||
// 用主表 id 查明细表
|
||||
detail.setMaterials(baseMapper.getMaterialsByInspectorId(id));
|
||||
detail.setCategories(baseMapper.getCategoriesByInspectorId(id));
|
||||
|
||||
return detail;
|
||||
}
|
||||
|
|
@ -362,25 +381,22 @@ public class QmsQualityInspectorServiceImpl extends ServiceImpl<QmsQualityInspec
|
|||
|
||||
@Transactional
|
||||
@Override
|
||||
public void updateStatus(Long userId, Boolean enable) {
|
||||
public void updateStatus(Long id, Boolean enable) {
|
||||
// 仅在改为启用时做校验
|
||||
if (Boolean.TRUE.equals(enable)) {
|
||||
QmsQualityInspector inspector = lambdaQuery()
|
||||
.eq(QmsQualityInspector::getUserId, userId)
|
||||
.one();
|
||||
QmsQualityInspector inspector = getById(id);
|
||||
if (Objects.isNull(inspector)) {
|
||||
throw new NflgException(STATE.BusinessError, "该质检人员不存在");
|
||||
}
|
||||
Long inspectorId = inspector.getId();
|
||||
|
||||
// 查当前人员绑定的物料ID列表
|
||||
List<QmsInspectorMaterialItem> myMaterials = materialItemService.lambdaQuery()
|
||||
.eq(QmsInspectorMaterialItem::getInspectorId, inspectorId)
|
||||
.eq(QmsInspectorMaterialItem::getInspectorId, id)
|
||||
.list();
|
||||
|
||||
// 查当前人员绑定的物料类别ID列表
|
||||
List<QmsInspectorMaterialCategoryItem> myCategories = materialCategoryItemService.lambdaQuery()
|
||||
.eq(QmsInspectorMaterialCategoryItem::getInspectorId, inspectorId)
|
||||
.eq(QmsInspectorMaterialCategoryItem::getInspectorId, id)
|
||||
.list();
|
||||
|
||||
// 校验物料是否已被其他启用的质检员接管
|
||||
|
|
@ -391,7 +407,7 @@ public class QmsQualityInspectorServiceImpl extends ServiceImpl<QmsQualityInspec
|
|||
// 查其他人员中是否有相同物料绑定(排除自己)
|
||||
List<QmsInspectorMaterialItem> conflictItems = materialItemService.lambdaQuery()
|
||||
.in(QmsInspectorMaterialItem::getMaterialId, myMaterialIds)
|
||||
.ne(QmsInspectorMaterialItem::getInspectorId, inspectorId)
|
||||
.ne(QmsInspectorMaterialItem::getInspectorId, id)
|
||||
.list();
|
||||
if (!conflictItems.isEmpty()) {
|
||||
// 进一步判断接管人员是否处于启用状态
|
||||
|
|
@ -416,7 +432,7 @@ public class QmsQualityInspectorServiceImpl extends ServiceImpl<QmsQualityInspec
|
|||
.collect(Collectors.toList());
|
||||
List<QmsInspectorMaterialCategoryItem> conflictItems = materialCategoryItemService.lambdaQuery()
|
||||
.in(QmsInspectorMaterialCategoryItem::getMaterialCategoryId, myCategoryIds)
|
||||
.ne(QmsInspectorMaterialCategoryItem::getInspectorId, inspectorId)
|
||||
.ne(QmsInspectorMaterialCategoryItem::getInspectorId, id)
|
||||
.list();
|
||||
if (!conflictItems.isEmpty()) {
|
||||
List<Long> conflictInspectorIds = conflictItems.stream()
|
||||
|
|
@ -435,7 +451,7 @@ public class QmsQualityInspectorServiceImpl extends ServiceImpl<QmsQualityInspec
|
|||
}
|
||||
|
||||
lambdaUpdate()
|
||||
.eq(QmsQualityInspector::getUserId, userId)
|
||||
.eq(QmsQualityInspector::getId, id)
|
||||
.set(QmsQualityInspector::getEnable, enable)
|
||||
.set(QmsQualityInspector::getUpdateBy, UserUtil.getUserName())
|
||||
.set(QmsQualityInspector::getUpdateTime, LocalDateTime.now())
|
||||
|
|
@ -459,9 +475,9 @@ public class QmsQualityInspectorServiceImpl extends ServiceImpl<QmsQualityInspec
|
|||
|
||||
@Transactional
|
||||
@Override
|
||||
public void cancelTransfer(Long userId) {
|
||||
public void cancelTransfer(Long id) {
|
||||
lambdaUpdate()
|
||||
.eq(QmsQualityInspector::getUserId, userId)
|
||||
.eq(QmsQualityInspector::getId, id)
|
||||
.set(QmsQualityInspector::getChangeUserId, null)
|
||||
.set(QmsQualityInspector::getUpdateBy, UserUtil.getUserName())
|
||||
.set(QmsQualityInspector::getUpdateTime, LocalDateTime.now())
|
||||
|
|
|
|||
Loading…
Reference in New Issue