Merge remote-tracking branch '惠信/qms/develop' into qms/develop

This commit is contained in:
曹鹏飞 2026-04-28 16:39:19 +08:00
commit 4733ea8986
10 changed files with 180 additions and 7 deletions

View File

@ -5,6 +5,7 @@ import com.nflg.wms.common.pojo.ApiResult;
import com.nflg.wms.common.pojo.PageData; import com.nflg.wms.common.pojo.PageData;
import com.nflg.wms.common.pojo.qo.QmsIssueTicketAddQO; import com.nflg.wms.common.pojo.qo.QmsIssueTicketAddQO;
import com.nflg.wms.common.pojo.qo.QmsIssueTicketAuditQO; import com.nflg.wms.common.pojo.qo.QmsIssueTicketAuditQO;
import com.nflg.wms.common.pojo.qo.QmsIssueTicketPdiAddQO;
import com.nflg.wms.common.pojo.qo.QmsIssueTicketSearchQO; import com.nflg.wms.common.pojo.qo.QmsIssueTicketSearchQO;
import com.nflg.wms.common.pojo.vo.QmsIssueTicketDetailVO; import com.nflg.wms.common.pojo.vo.QmsIssueTicketDetailVO;
import com.nflg.wms.common.pojo.vo.QmsIssueTicketVO; import com.nflg.wms.common.pojo.vo.QmsIssueTicketVO;
@ -43,6 +44,16 @@ public class QmsIssueTicketController extends BaseController {
return ApiResult.success(); return ApiResult.success();
} }
/**
* 新增PDI检测工单
* 同步创建工单异步创建工单处理记录
*/
@PostMapping("addPdiTicket")
public ApiResult<Void> addPdiTicket(@Valid @RequestBody QmsIssueTicketPdiAddQO request) {
issueTicketControllerService.addPdiTicket(request);
return ApiResult.success();
}
/** /**
* 审核质量问题工单 * 审核质量问题工单
* 更新审批状态审批意见审批人信息并根据审批结果更新工单状态 * 更新审批状态审批意见审批人信息并根据审批结果更新工单状态

View File

@ -2,8 +2,12 @@ package com.nflg.qms.admin.controller;
import com.nflg.qms.admin.service.QmsIssueTicketProcessControllerService; import com.nflg.qms.admin.service.QmsIssueTicketProcessControllerService;
import com.nflg.wms.common.pojo.ApiResult; import com.nflg.wms.common.pojo.ApiResult;
import com.nflg.wms.common.pojo.qo.QmsIssueTicketProcessAddQO;
import com.nflg.wms.starter.BaseController; import com.nflg.wms.starter.BaseController;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import jakarta.validation.Valid;
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.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@ -16,4 +20,13 @@ public class QmsIssueTicketProcessController extends BaseController {
@Resource @Resource
private QmsIssueTicketProcessControllerService issueTicketProcessControllerService; private QmsIssueTicketProcessControllerService issueTicketProcessControllerService;
/**
* 新增工单处理
*/
@PostMapping("add")
public ApiResult<Void> add(@Valid @RequestBody QmsIssueTicketProcessAddQO request) {
issueTicketProcessControllerService.add(request);
return ApiResult.success();
}
} }

View File

@ -7,6 +7,7 @@ import com.nflg.wms.common.constant.STATE;
import com.nflg.wms.common.exception.NflgException; import com.nflg.wms.common.exception.NflgException;
import com.nflg.wms.common.pojo.qo.QmsIssueTicketAddQO; import com.nflg.wms.common.pojo.qo.QmsIssueTicketAddQO;
import com.nflg.wms.common.pojo.qo.QmsIssueTicketAuditQO; import com.nflg.wms.common.pojo.qo.QmsIssueTicketAuditQO;
import com.nflg.wms.common.pojo.qo.QmsIssueTicketPdiAddQO;
import com.nflg.wms.common.pojo.vo.*; import com.nflg.wms.common.pojo.vo.*;
import com.nflg.wms.common.util.UserUtil; import com.nflg.wms.common.util.UserUtil;
import com.nflg.wms.common.util.VUtil; import com.nflg.wms.common.util.VUtil;
@ -53,6 +54,9 @@ public class QmsIssueTicketControllerService {
@Resource @Resource
private IDictionaryItemService dictionaryItemService; private IDictionaryItemService dictionaryItemService;
@Resource
private QmsIssueTicketProcessControllerService issueTicketProcessControllerService;
/** /**
* 审核质量问题工单 * 审核质量问题工单
* 更新审批状态审批意见审批人信息事故类型并更新工单状态 * 更新审批状态审批意见审批人信息事故类型并更新工单状态
@ -126,6 +130,42 @@ public class QmsIssueTicketControllerService {
issueTicketService.save(entity); issueTicketService.save(entity);
} }
/**
* 新增PDI检测工单
* 工单编号自动生成序号38来源类型固定为1PDI检测任务状态默认为0待流转
* 异步新增工单处理记录
*/
@Transactional(rollbackFor = Exception.class)
public void addPdiTicket(@Valid QmsIssueTicketPdiAddQO request) {
Long userId = UserUtil.getUserId();
String userName = UserUtil.getUserName();
LocalDateTime now = LocalDateTime.now();
// 自动生成工单编号
String ticketNo = basdeSerialNumberControllerService.generateSerialNumber(38);
QmsIssueTicket entity = new QmsIssueTicket()
.setSourceType((short) 1)
.setSourceId(request.getTaskRecordId())
.setTicketNo(ticketNo)
.setStatus((short) 0)
.setCreateUserId(userId)
.setCreateUserName(userName)
.setCreateTime(now)
.setUpdateUserId(userId)
.setUpdateUserName(userName)
.setUpdateTime(now);
issueTicketService.save(entity);
// 异步新增工单处理记录
issueTicketProcessControllerService.addAsync(
entity.getId(),
request.getHandlerUserId(),
request.getInspectionResultIds()
);
}
/** /**
* 通过来料检测任务ID发起IQC检测任务类型质量问题工单 * 通过来料检测任务ID发起IQC检测任务类型质量问题工单
* 工单编号自动生成来源类型固定为0IQC检测任务状态默认为0待流转 * 工单编号自动生成来源类型固定为0IQC检测任务状态默认为0待流转

View File

@ -1,9 +1,19 @@
package com.nflg.qms.admin.service; package com.nflg.qms.admin.service;
import com.nflg.wms.common.constant.STATE;
import com.nflg.wms.common.exception.NflgException;
import com.nflg.wms.common.pojo.qo.QmsIssueTicketProcessAddQO;
import com.nflg.wms.repository.entity.QmsIssueTicketProcess;
import com.nflg.wms.repository.entity.User;
import com.nflg.wms.repository.service.IQmsIssueTicketProcessService; import com.nflg.wms.repository.service.IQmsIssueTicketProcessService;
import com.nflg.wms.repository.service.IUserService;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
/** /**
* 质量问题工单处理 ControllerService * 质量问题工单处理 ControllerService
*/ */
@ -12,4 +22,39 @@ public class QmsIssueTicketProcessControllerService {
@Resource @Resource
private IQmsIssueTicketProcessService issueTicketProcessService; private IQmsIssueTicketProcessService issueTicketProcessService;
@Resource
private IUserService userService;
/**
* 新增工单处理同步 Controller 直接调用
*/
public void add(QmsIssueTicketProcessAddQO request) {
doAdd(request.getIssueTicketId(), request.getHandlerUserId(), request.getTaskResultIds());
}
/**
* 异步新增工单处理供内部服务调用
*/
@Async("ticketTaskExecutor")
public void addAsync(Long issueTicketId, Long handlerUserId, List<Long> taskResultIds) {
doAdd(issueTicketId, handlerUserId, taskResultIds);
}
private void doAdd(Long issueTicketId, Long handlerUserId, List<Long> taskResultIds) {
User user = userService.getById(handlerUserId);
if (user == null) {
throw new NflgException(STATE.BusinessError, "处理人用户不存在");
}
QmsIssueTicketProcess entity = new QmsIssueTicketProcess()
.setIssueTicketId(issueTicketId)
.setHandlerUserId(handlerUserId)
.setHandlerUserName(user.getUserName())
.setTaskResultIds(taskResultIds.stream()
.map(String::valueOf)
.collect(Collectors.joining(",")));
issueTicketProcessService.save(entity);
}
} }

View File

@ -181,7 +181,7 @@ public class QmsPdiInspectionResultsControllerService {
taskRecordService.lambdaUpdate() taskRecordService.lambdaUpdate()
.eq(QmsPdiTaskRecord::getId, taskRecord.getId()) .eq(QmsPdiTaskRecord::getId, taskRecord.getId())
.set(QmsPdiTaskRecord::getInspectionInspection, .set(QmsPdiTaskRecord::getInspectionInspection,
request.getOverallResult() != null && request.getOverallResult() ? "合格" : "不合格") request.getOverallResult() != null && request.getOverallResult())
.update(); .update();
// 5. 设置检测完成时间状态改为已完成 // 5. 设置检测完成时间状态改为已完成

View File

@ -0,0 +1,32 @@
package com.nflg.wms.common.pojo.qo;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.util.List;
/**
* PDI检测工单 新增参数
*/
@Data
public class QmsIssueTicketPdiAddQO {
/**
* PDI检测任务记录IDQmsPdiTaskRecord.ID存入工单的source_id
*/
@NotNull(message = "PDI检测任务记录ID不能为空")
private Long taskRecordId;
/**
* 处理人用户ID
*/
@NotNull(message = "处理人用户ID不能为空")
private Long handlerUserId;
/**
* PDI检测结果ID列表qms_pdi_inspection_results.ID存入工单处理的task_result_ids
*/
@NotEmpty(message = "检测结果ID列表不能为空")
private List<Long> inspectionResultIds;
}

View File

@ -0,0 +1,32 @@
package com.nflg.wms.common.pojo.qo;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.util.List;
/**
* 质量问题工单处理 新增参数
*/
@Data
public class QmsIssueTicketProcessAddQO {
/**
* 任务结果ID列表QmsPdiTaskRecord.ID
*/
@NotEmpty(message = "任务结果ID列表不能为空")
private List<Long> taskResultIds;
/**
* 处理人用户ID
*/
@NotNull(message = "处理人用户ID不能为空")
private Long handlerUserId;
/**
* 质量问题工单ID
*/
@NotNull(message = "质量问题工单ID不能为空")
private Long issueTicketId;
}

View File

@ -61,9 +61,9 @@ public class QmsPdiTaskRecordDefectPageVO {
private Integer inspectionEnable; private Integer inspectionEnable;
/** /**
* 质检结果 * 质检结果true=合格false=不合格
*/ */
private String inspectionInspection; private Boolean inspectionInspection;
/** /**
* 质检人名字 * 质检人名字

View File

@ -61,9 +61,9 @@ public class QmsPdiTaskRecordPageVO {
private Integer inspectionEnable; private Integer inspectionEnable;
/** /**
* 质检结果 * 质检结果true=合格false=不合格
*/ */
private String inspectionInspection; private Boolean inspectionInspection;
/** /**
* 质检人名字通过 detection_rules.inspector_id -> user.user_name * 质检人名字通过 detection_rules.inspector_id -> user.user_name

View File

@ -43,9 +43,9 @@ public class QmsPdiTaskRecord implements Serializable {
private Integer inspectionEnable; private Integer inspectionEnable;
/** /**
* 质检结果 * 质检结果true=合格false=不合格
*/ */
private String inspectionInspection; private Boolean inspectionInspection;
/** /**
* 帮办人IDuser.id * 帮办人IDuser.id