Merge branch 'qms/yf' into qms/develop
# Conflicts: # nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/Department.java
This commit is contained in:
commit
179322612b
|
|
@ -9,6 +9,7 @@ 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;
|
||||||
|
import com.nflg.wms.common.pojo.vo.QmsPdiTicketDetailVO;
|
||||||
import com.nflg.wms.repository.service.IQmsIssueTicketService;
|
import com.nflg.wms.repository.service.IQmsIssueTicketService;
|
||||||
import com.nflg.wms.starter.BaseController;
|
import com.nflg.wms.starter.BaseController;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
|
|
@ -64,6 +65,15 @@ public class QmsIssueTicketController extends BaseController {
|
||||||
return ApiResult.success();
|
return ApiResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询PDI工单详情
|
||||||
|
* 返回工单基本信息、处理记录及措施列表
|
||||||
|
*/
|
||||||
|
@GetMapping("detail/pdi-ticket")
|
||||||
|
public ApiResult<QmsPdiTicketDetailVO> detailPdiTicket(@NotNull(message = "ID不能为空") Long id) {
|
||||||
|
return ApiResult.success(issueTicketControllerService.getPdiTicketDetail(id));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询来料检测任务质量问题工单详情
|
* 查询来料检测任务质量问题工单详情
|
||||||
* 含来料检测任务详情及来料检验任务检验记录子项样本列表
|
* 含来料检测任务详情及来料检验任务检验记录子项样本列表
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ public class QmsPdiDetectionRulesController extends BaseController {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增PDI检测规则
|
* 新增PDI检测规则
|
||||||
* 参数:机型编号、质检负责人id、质检周期、质检类型、销售订单号(全部必传)
|
* 参数:机型编号、质检负责人id、质检周期、质检类型(必传),销售订单号(可选)
|
||||||
* 自动生成规则编号和版本号,状态/发布状态/维护状态默认均为 false
|
* 自动生成规则编号和版本号,状态/发布状态/维护状态默认均为 false
|
||||||
*/
|
*/
|
||||||
@Transactional
|
@Transactional
|
||||||
|
|
|
||||||
|
|
@ -69,6 +69,18 @@ public class QmsIssueTicketControllerService {
|
||||||
@Resource
|
@Resource
|
||||||
private WmsIncomingInspectionTaskCallbackService wmsIncomingInspectionTaskCallbackService;
|
private WmsIncomingInspectionTaskCallbackService wmsIncomingInspectionTaskCallbackService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IQmsIssueTicketProcessService issueTicketProcessService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IQmsIssueTicketProcessMeasureService issueTicketProcessMeasureService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IUserInteriorService userInteriorService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IDepartmentService departmentService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 审核质量问题工单
|
* 审核质量问题工单
|
||||||
* 更新审批状态、审批意见、审批人信息、事故类型,并更新工单状态
|
* 更新审批状态、审批意见、审批人信息、事故类型,并更新工单状态
|
||||||
|
|
@ -371,4 +383,109 @@ public class QmsIssueTicketControllerService {
|
||||||
|
|
||||||
return vo;
|
return vo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询PDI工单详情
|
||||||
|
* 返回工单基本信息及处理记录、措施列表
|
||||||
|
*/
|
||||||
|
public QmsPdiTicketDetailVO getPdiTicketDetail(Long id) {
|
||||||
|
// 查询工单基本信息
|
||||||
|
QmsIssueTicket ticket = issueTicketService.getById(id);
|
||||||
|
QmsPdiTicketDetailVO vo = new QmsPdiTicketDetailVO();
|
||||||
|
vo.setTicketNo(ticket.getTicketNo());
|
||||||
|
vo.setTicketTitle(ticket.getTicketTitle());
|
||||||
|
vo.setStatus(ticket.getStatus());
|
||||||
|
|
||||||
|
// 查询处理记录列表
|
||||||
|
List<QmsIssueTicketProcess> processes = issueTicketProcessService.lambdaQuery()
|
||||||
|
.eq(QmsIssueTicketProcess::getIssueTicketId, id)
|
||||||
|
.list();
|
||||||
|
|
||||||
|
// 收集所有不合格质检项
|
||||||
|
List<QmsPdiTicketDetailVO.UnqualifiedItemVO> unqualifiedItems = new ArrayList<>();
|
||||||
|
|
||||||
|
List<QmsPdiTicketDetailVO.ProcessVO> processVOList = processes.stream().map(process -> {
|
||||||
|
QmsPdiTicketDetailVO.ProcessVO processVO = new QmsPdiTicketDetailVO.ProcessVO();
|
||||||
|
processVO.setId(process.getId());
|
||||||
|
processVO.setHandlerUserId(process.getHandlerUserId());
|
||||||
|
processVO.setHandlerUserName(process.getHandlerUserName());
|
||||||
|
|
||||||
|
// 查询处理人所属部门
|
||||||
|
if (process.getHandlerUserId() != null) {
|
||||||
|
UserInterior userInterior = userInteriorService.lambdaQuery()
|
||||||
|
.eq(UserInterior::getUserId, process.getHandlerUserId())
|
||||||
|
.one();
|
||||||
|
if (userInterior != null && userInterior.getDeptId() != null) {
|
||||||
|
Department department = departmentService.getById(userInterior.getDeptId());
|
||||||
|
if (department != null) {
|
||||||
|
processVO.setHandlerDeptId(department.getId());
|
||||||
|
processVO.setHandlerDeptName(department.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
processVO.setRootCause(process.getRootCause());
|
||||||
|
processVO.setTaskResultIds(process.getTaskResultIds());
|
||||||
|
processVO.setApprovalStatus(process.getApprovalStatus());
|
||||||
|
processVO.setApprovalOpinion(process.getApprovalOpinion());
|
||||||
|
processVO.setApprovalUserId(process.getApprovalUserId());
|
||||||
|
processVO.setApprovalUserName(process.getApprovalUserName());
|
||||||
|
processVO.setApprovalTime(process.getApprovalTime());
|
||||||
|
processVO.setLeaderApprovalResult(process.getLeaderApprovalResult());
|
||||||
|
processVO.setLeaderApprovalOpinion(process.getLeaderApprovalOpinion());
|
||||||
|
processVO.setLeaderUserId(process.getLeaderUserId());
|
||||||
|
processVO.setLeaderUserName(process.getLeaderUserName());
|
||||||
|
processVO.setLeaderApprovalTime(process.getLeaderApprovalTime());
|
||||||
|
|
||||||
|
// 查询不合格质检项(inspectionItemResults=false)
|
||||||
|
if (StrUtil.isNotBlank(process.getTaskResultIds())) {
|
||||||
|
String[] taskIds = process.getTaskResultIds().split(",");
|
||||||
|
for (String taskId : taskIds) {
|
||||||
|
if (StrUtil.isNotBlank(taskId)) {
|
||||||
|
List<QmsPdiInspectionResults> unqualifiedResults = pdiInspectionResultsService.lambdaQuery()
|
||||||
|
.eq(QmsPdiInspectionResults::getTaskId, Long.parseLong(taskId.trim()))
|
||||||
|
.eq(QmsPdiInspectionResults::getInspectionItemResults, false)
|
||||||
|
.list();
|
||||||
|
|
||||||
|
for (QmsPdiInspectionResults result : unqualifiedResults) {
|
||||||
|
QmsPdiTicketDetailVO.UnqualifiedItemVO itemVO = new QmsPdiTicketDetailVO.UnqualifiedItemVO();
|
||||||
|
itemVO.setId(result.getId());
|
||||||
|
itemVO.setInspectionItemId(result.getInspectionItemId());
|
||||||
|
itemVO.setInspectionItemType(result.getInspectionItemType());
|
||||||
|
itemVO.setInspectionItemImage(result.getInspectionItemImage());
|
||||||
|
itemVO.setRemark(result.getRemark());
|
||||||
|
itemVO.setInspectorId(result.getInspectorId());
|
||||||
|
itemVO.setInspectionTime(result.getInspectionTime());
|
||||||
|
itemVO.setInspectionBy(result.getInspectionBy());
|
||||||
|
unqualifiedItems.add(itemVO);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询措施列表
|
||||||
|
List<QmsIssueTicketProcessMeasure> measures = issueTicketProcessMeasureService.lambdaQuery()
|
||||||
|
.eq(QmsIssueTicketProcessMeasure::getIssueTicketProcessId, process.getId())
|
||||||
|
.list();
|
||||||
|
|
||||||
|
List<QmsPdiTicketDetailVO.MeasureVO> measureVOList = measures.stream().map(measure -> {
|
||||||
|
QmsPdiTicketDetailVO.MeasureVO measureVO = new QmsPdiTicketDetailVO.MeasureVO();
|
||||||
|
measureVO.setId(measure.getId());
|
||||||
|
measureVO.setMeasureTypeId(measure.getMeasureTypeId());
|
||||||
|
measureVO.setMeasureContent(measure.getMeasureContent());
|
||||||
|
measureVO.setChargeUser(measure.getChargeUser());
|
||||||
|
measureVO.setPlanDate(measure.getPlanDate());
|
||||||
|
measureVO.setConfirmDate(measure.getConfirmDate());
|
||||||
|
measureVO.setRemark(measure.getRemark());
|
||||||
|
return measureVO;
|
||||||
|
}).toList();
|
||||||
|
|
||||||
|
processVO.setMeasures(measureVOList);
|
||||||
|
return processVO;
|
||||||
|
}).toList();
|
||||||
|
|
||||||
|
vo.setProcesses(processVOList);
|
||||||
|
vo.setUnqualifiedItems(unqualifiedItems);
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,15 +5,20 @@ import com.nflg.wms.common.exception.NflgException;
|
||||||
import com.nflg.wms.common.pojo.qo.QmsIssueTicketProcessAddQO;
|
import com.nflg.wms.common.pojo.qo.QmsIssueTicketProcessAddQO;
|
||||||
import com.nflg.wms.common.pojo.qo.QmsIssueTicketProcessDraftQO;
|
import com.nflg.wms.common.pojo.qo.QmsIssueTicketProcessDraftQO;
|
||||||
import com.nflg.wms.common.pojo.qo.QmsIssueTicketProcessLeaderDraftQO;
|
import com.nflg.wms.common.pojo.qo.QmsIssueTicketProcessLeaderDraftQO;
|
||||||
|
import com.nflg.wms.common.util.UserUtil;
|
||||||
import com.nflg.wms.common.util.VUtil;
|
import com.nflg.wms.common.util.VUtil;
|
||||||
|
import com.nflg.wms.repository.entity.Department;
|
||||||
import com.nflg.wms.repository.entity.QmsIssueTicket;
|
import com.nflg.wms.repository.entity.QmsIssueTicket;
|
||||||
import com.nflg.wms.repository.entity.QmsIssueTicketProcess;
|
import com.nflg.wms.repository.entity.QmsIssueTicketProcess;
|
||||||
import com.nflg.wms.repository.entity.QmsTodoItem;
|
import com.nflg.wms.repository.entity.QmsTodoItem;
|
||||||
import com.nflg.wms.repository.entity.User;
|
import com.nflg.wms.repository.entity.User;
|
||||||
|
import com.nflg.wms.repository.entity.UserInterior;
|
||||||
|
import com.nflg.wms.repository.service.IDepartmentService;
|
||||||
import com.nflg.wms.repository.service.IDictionaryItemService;
|
import com.nflg.wms.repository.service.IDictionaryItemService;
|
||||||
import com.nflg.wms.repository.service.IQmsIssueTicketProcessService;
|
import com.nflg.wms.repository.service.IQmsIssueTicketProcessService;
|
||||||
import com.nflg.wms.repository.service.IQmsIssueTicketService;
|
import com.nflg.wms.repository.service.IQmsIssueTicketService;
|
||||||
import com.nflg.wms.repository.service.IQmsTodoItemService;
|
import com.nflg.wms.repository.service.IQmsTodoItemService;
|
||||||
|
import com.nflg.wms.repository.service.IUserInteriorService;
|
||||||
import com.nflg.wms.repository.service.IUserService;
|
import com.nflg.wms.repository.service.IUserService;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
|
|
@ -38,6 +43,9 @@ public class QmsIssueTicketProcessControllerService {
|
||||||
@Resource
|
@Resource
|
||||||
private IUserService userService;
|
private IUserService userService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IUserInteriorService userInteriorService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private QmsIssueTicketProcessMeasureControllerService issueTicketProcessMeasureControllerService;
|
private QmsIssueTicketProcessMeasureControllerService issueTicketProcessMeasureControllerService;
|
||||||
|
|
||||||
|
|
@ -50,6 +58,9 @@ public class QmsIssueTicketProcessControllerService {
|
||||||
@Resource
|
@Resource
|
||||||
private IDictionaryItemService dictionaryItemService;
|
private IDictionaryItemService dictionaryItemService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IDepartmentService departmentService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增工单处理(同步,供 Controller 直接调用)
|
* 新增工单处理(同步,供 Controller 直接调用)
|
||||||
*/
|
*/
|
||||||
|
|
@ -112,7 +123,13 @@ public class QmsIssueTicketProcessControllerService {
|
||||||
// 2. 保存数据
|
// 2. 保存数据
|
||||||
issueTicketProcessMeasureControllerService.draft(request);
|
issueTicketProcessMeasureControllerService.draft(request);
|
||||||
|
|
||||||
// 3. 查询工单处理记录,获取关联的工单
|
// 3. 写入审批时间
|
||||||
|
issueTicketProcessService.lambdaUpdate()
|
||||||
|
.eq(QmsIssueTicketProcess::getId, request.getId())
|
||||||
|
.set(QmsIssueTicketProcess::getApprovalTime, LocalDateTime.now())
|
||||||
|
.update();
|
||||||
|
|
||||||
|
// 4. 查询工单处理记录,获取关联的工单
|
||||||
QmsIssueTicketProcess process = issueTicketProcessService.getById(request.getId());
|
QmsIssueTicketProcess process = issueTicketProcessService.getById(request.getId());
|
||||||
QmsIssueTicket ticket = issueTicketService.getById(process.getIssueTicketId());
|
QmsIssueTicket ticket = issueTicketService.getById(process.getIssueTicketId());
|
||||||
VUtil.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("关联的质量问题工单不存在");
|
VUtil.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("关联的质量问题工单不存在");
|
||||||
|
|
@ -134,7 +151,24 @@ public class QmsIssueTicketProcessControllerService {
|
||||||
todoItemService.save(todoItem);
|
todoItemService.save(todoItem);
|
||||||
} else if (request.getApprovalStatus() == 0) {
|
} else if (request.getApprovalStatus() == 0) {
|
||||||
// 通过:推送给当前用户所在部门负责人
|
// 通过:推送给当前用户所在部门负责人
|
||||||
// TODO: Department 表暂无负责人字段,后续补充
|
Long currentUserId = UserUtil.getUserId();
|
||||||
|
UserInterior userInterior = userInteriorService.lambdaQuery()
|
||||||
|
.eq(UserInterior::getUserId, currentUserId)
|
||||||
|
.one();
|
||||||
|
if (userInterior != null && userInterior.getDeptId() != null) {
|
||||||
|
Department department = departmentService.getById(userInterior.getDeptId());
|
||||||
|
if (department != null && department.getHeadUserId() != null) {
|
||||||
|
QmsTodoItem todoItem = new QmsTodoItem()
|
||||||
|
.setCode(ticket.getTicketNo())
|
||||||
|
.setIsRead(false)
|
||||||
|
.setSourceTypeId(sourceTypeId)
|
||||||
|
.setSourceId(process.getId())
|
||||||
|
.setCreateUserId(department.getHeadUserId())
|
||||||
|
.setCreateUserName(department.getHeadUserName())
|
||||||
|
.setCreateTime(now);
|
||||||
|
todoItemService.save(todoItem);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -151,15 +185,10 @@ public class QmsIssueTicketProcessControllerService {
|
||||||
VUtil.trueThrowBusinessError(Objects.isNull(request.getLeaderApprovalResult()))
|
VUtil.trueThrowBusinessError(Objects.isNull(request.getLeaderApprovalResult()))
|
||||||
.throwMessage("提交时领导审批结果不能为空");
|
.throwMessage("提交时领导审批结果不能为空");
|
||||||
|
|
||||||
// 2. 保存数据
|
// 2. 保存数据(leaderDraft 已写入领导信息 + 审批时间)
|
||||||
issueTicketProcessMeasureControllerService.leaderDraft(request);
|
issueTicketProcessMeasureControllerService.leaderDraft(request);
|
||||||
|
|
||||||
// 3. 写入领导审批时间
|
|
||||||
LocalDateTime now = LocalDateTime.now();
|
LocalDateTime now = LocalDateTime.now();
|
||||||
issueTicketProcessService.lambdaUpdate()
|
|
||||||
.eq(QmsIssueTicketProcess::getId, request.getId())
|
|
||||||
.set(QmsIssueTicketProcess::getLeaderApprovalTime, now)
|
|
||||||
.update();
|
|
||||||
|
|
||||||
if (request.getLeaderApprovalResult() == 0) {
|
if (request.getLeaderApprovalResult() == 0) {
|
||||||
// 驳回:推送待办给处理人
|
// 驳回:推送待办给处理人
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ import jakarta.validation.Valid;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -43,13 +44,20 @@ public class QmsIssueTicketProcessMeasureControllerService {
|
||||||
.set(request.getRootCause() != null, QmsIssueTicketProcess::getRootCause, request.getRootCause())
|
.set(request.getRootCause() != null, QmsIssueTicketProcess::getRootCause, request.getRootCause())
|
||||||
.set(request.getApprovalStatus() != null, QmsIssueTicketProcess::getApprovalStatus, request.getApprovalStatus())
|
.set(request.getApprovalStatus() != null, QmsIssueTicketProcess::getApprovalStatus, request.getApprovalStatus())
|
||||||
.set(request.getApprovalOpinion() != null, QmsIssueTicketProcess::getApprovalOpinion, request.getApprovalOpinion())
|
.set(request.getApprovalOpinion() != null, QmsIssueTicketProcess::getApprovalOpinion, request.getApprovalOpinion())
|
||||||
|
.set(QmsIssueTicketProcess::getApprovalUserId, UserUtil.getUserId())
|
||||||
|
.set(QmsIssueTicketProcess::getApprovalUserName, UserUtil.getUserName())
|
||||||
.update();
|
.update();
|
||||||
|
|
||||||
// 有措施内容则新增一条措施记录
|
// 有措施内容则新增一条措施记录
|
||||||
if (StrUtil.isNotBlank(request.getMeasureContent())) {
|
if (StrUtil.isNotBlank(request.getMeasureContent())) {
|
||||||
QmsIssueTicketProcessMeasure measure = new QmsIssueTicketProcessMeasure()
|
QmsIssueTicketProcessMeasure measure = new QmsIssueTicketProcessMeasure()
|
||||||
.setIssueTicketProcessId(request.getId())
|
.setIssueTicketProcessId(request.getId())
|
||||||
.setMeasureContent(request.getMeasureContent());
|
.setMeasureContent(request.getMeasureContent())
|
||||||
|
.setMeasureTypeId(request.getMeasureTypeId())
|
||||||
|
.setChargeUser(request.getChargeUser())
|
||||||
|
.setPlanDate(request.getPlanDate())
|
||||||
|
.setConfirmDate(request.getConfirmDate())
|
||||||
|
.setRemark(request.getRemark());
|
||||||
issueTicketProcessMeasureService.save(measure);
|
issueTicketProcessMeasureService.save(measure);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -70,6 +78,7 @@ public class QmsIssueTicketProcessMeasureControllerService {
|
||||||
QmsIssueTicketProcess::getLeaderApprovalResult, request.getLeaderApprovalResult())
|
QmsIssueTicketProcess::getLeaderApprovalResult, request.getLeaderApprovalResult())
|
||||||
.set(QmsIssueTicketProcess::getLeaderUserId, UserUtil.getUserId())
|
.set(QmsIssueTicketProcess::getLeaderUserId, UserUtil.getUserId())
|
||||||
.set(QmsIssueTicketProcess::getLeaderUserName, UserUtil.getUserName())
|
.set(QmsIssueTicketProcess::getLeaderUserName, UserUtil.getUserName())
|
||||||
|
.set(QmsIssueTicketProcess::getLeaderApprovalTime, LocalDateTime.now())
|
||||||
.update();
|
.update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,8 @@ package com.nflg.wms.common.pojo.qo;
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 质量问题工单处理 暂存/提交参数
|
* 质量问题工单处理 暂存/提交参数
|
||||||
*/
|
*/
|
||||||
|
|
@ -34,4 +36,29 @@ public class QmsIssueTicketProcessDraftQO {
|
||||||
* 措施内容(可选),有值则新增一条 QmsIssueTicketProcessMeasure 记录
|
* 措施内容(可选),有值则新增一条 QmsIssueTicketProcessMeasure 记录
|
||||||
*/
|
*/
|
||||||
private String measureContent;
|
private String measureContent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 措施类型ID(可选),关联字典项表
|
||||||
|
*/
|
||||||
|
private Long measureTypeId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 负责人(可选)
|
||||||
|
*/
|
||||||
|
private String chargeUser;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 计划日期(可选)
|
||||||
|
*/
|
||||||
|
private LocalDate planDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 确认日期(可选)
|
||||||
|
*/
|
||||||
|
private LocalDate confirmDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注(可选)
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -35,8 +35,7 @@ public class QmsPdiDetectionRulesAddQO {
|
||||||
private Integer inspectionType;
|
private Integer inspectionType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 销售订单号(必传)
|
* 销售订单号(可选)
|
||||||
*/
|
*/
|
||||||
@NotBlank(message = "销售订单号不能为空")
|
|
||||||
private String orderNo;
|
private String orderNo;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,216 @@
|
||||||
|
package com.nflg.wms.common.pojo.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PDI工单详情
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class QmsPdiTicketDetailVO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工单编号
|
||||||
|
*/
|
||||||
|
private String ticketNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工单标题
|
||||||
|
*/
|
||||||
|
private String ticketTitle;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工单状态:0=待流转,1=处理中,2=已完成
|
||||||
|
*/
|
||||||
|
private Short status;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 不合格质检项列表
|
||||||
|
*/
|
||||||
|
private List<UnqualifiedItemVO> unqualifiedItems;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理记录列表
|
||||||
|
*/
|
||||||
|
private List<ProcessVO> processes;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public static class UnqualifiedItemVO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 质检结果记录ID
|
||||||
|
*/
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检验项ID
|
||||||
|
*/
|
||||||
|
private Long inspectionItemId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检验项类型:0=静态检测项,1=动态检测项,2=装车前检测项,3=特殊检测项
|
||||||
|
*/
|
||||||
|
private Integer inspectionItemType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检验现场图片
|
||||||
|
*/
|
||||||
|
private String inspectionItemImage;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 质检人ID
|
||||||
|
*/
|
||||||
|
private String inspectorId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 质检时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime inspectionTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 质检人
|
||||||
|
*/
|
||||||
|
private String inspectionBy;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public static class ProcessVO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理记录ID
|
||||||
|
*/
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理人ID
|
||||||
|
*/
|
||||||
|
private Long handlerUserId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理人姓名
|
||||||
|
*/
|
||||||
|
private String handlerUserName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理人所属部门ID
|
||||||
|
*/
|
||||||
|
private Long handlerDeptId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理人所属部门名称
|
||||||
|
*/
|
||||||
|
private String handlerDeptName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根本原因
|
||||||
|
*/
|
||||||
|
private String rootCause;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务结果ID,多个用逗号分隔
|
||||||
|
*/
|
||||||
|
private String taskResultIds;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审批状态:0=通过,1=驳回
|
||||||
|
*/
|
||||||
|
private Short approvalStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审批意见
|
||||||
|
*/
|
||||||
|
private String approvalOpinion;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审批人ID
|
||||||
|
*/
|
||||||
|
private Long approvalUserId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审批人姓名
|
||||||
|
*/
|
||||||
|
private String approvalUserName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审批时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime approvalTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上级领导审批结果:0=驳回,1=同意
|
||||||
|
*/
|
||||||
|
private Short leaderApprovalResult;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上级领导审批意见
|
||||||
|
*/
|
||||||
|
private String leaderApprovalOpinion;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上级领导ID
|
||||||
|
*/
|
||||||
|
private Long leaderUserId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上级领导姓名
|
||||||
|
*/
|
||||||
|
private String leaderUserName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上级领导审批时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime leaderApprovalTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 措施列表
|
||||||
|
*/
|
||||||
|
private List<MeasureVO> measures;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public static class MeasureVO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 措施ID
|
||||||
|
*/
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 措施类型ID,关联字典项表
|
||||||
|
*/
|
||||||
|
private Long measureTypeId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 措施内容
|
||||||
|
*/
|
||||||
|
private String measureContent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 负责人
|
||||||
|
*/
|
||||||
|
private String chargeUser;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 计划日期
|
||||||
|
*/
|
||||||
|
private LocalDate planDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 确认日期
|
||||||
|
*/
|
||||||
|
private LocalDate confirmDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -53,7 +53,7 @@ public class Department implements Serializable {
|
||||||
private Boolean enable;
|
private Boolean enable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 部门负责人id
|
* 部门负责人ID
|
||||||
*/
|
*/
|
||||||
private Long headUserId;
|
private Long headUserId;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -339,12 +339,14 @@ public class QmsQualityInspectorServiceImpl extends ServiceImpl<QmsQualityInspec
|
||||||
|
|
||||||
// 查部门名称
|
// 查部门名称
|
||||||
String deptName = null;
|
String deptName = null;
|
||||||
|
String deptLeaderName = null;
|
||||||
String positionName = null;
|
String positionName = null;
|
||||||
if (Objects.nonNull(userInterior)) {
|
if (Objects.nonNull(userInterior)) {
|
||||||
if (Objects.nonNull(userInterior.getDeptId())) {
|
if (Objects.nonNull(userInterior.getDeptId())) {
|
||||||
Department department = departmentService.getById(userInterior.getDeptId());
|
Department department = departmentService.getById(userInterior.getDeptId());
|
||||||
if (Objects.nonNull(department)) {
|
if (Objects.nonNull(department)) {
|
||||||
deptName = department.getName();
|
deptName = department.getName();
|
||||||
|
deptLeaderName = department.getHeadUserName();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (Objects.nonNull(userInterior.getPositionId())) {
|
if (Objects.nonNull(userInterior.getPositionId())) {
|
||||||
|
|
@ -364,7 +366,7 @@ public class QmsQualityInspectorServiceImpl extends ServiceImpl<QmsQualityInspec
|
||||||
detail.setUserName(user.getUserName());
|
detail.setUserName(user.getUserName());
|
||||||
}
|
}
|
||||||
detail.setDeptName(deptName);
|
detail.setDeptName(deptName);
|
||||||
detail.setDeptLeaderName(null);
|
detail.setDeptLeaderName(deptLeaderName);
|
||||||
detail.setPositionName(positionName);
|
detail.setPositionName(positionName);
|
||||||
|
|
||||||
// 用主表 id 查明细表
|
// 用主表 id 查明细表
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue