COA上传文件修改

退料任务字段修改
This commit is contained in:
yf001217 2026-06-26 09:46:51 +08:00
parent cf014398e0
commit 13697d5b71
23 changed files with 25 additions and 419 deletions

View File

@ -209,7 +209,7 @@ public class IncomingInspectionTaskControllerService {
.setRequiredFinishTime(Objects.nonNull(standard) ? now.plusDays(standard.getInspectionCycle()) : null)
.setIsOverdue(false)
.setRequestNo(request.getRequestNo())
.setBatchNo(request.getBatchNo());
.setReturnType(request.getReturnType());
returnInspectionTaskService.save(task);
Long sourceTypeId = dictionaryItemService.getIdByCode("MessageType", "ReturnInspectionTask");

View File

@ -218,6 +218,7 @@ public class QmsReturnInspectionTaskControllerService {
vo.setId(record.getId());
vo.setTaskId(record.getTaskId());
vo.setMaterialUniqueNo(record.getMaterialUniqueNo());
vo.setBatchNo(record.getBatchNo());
vo.setQualified(record.getQualified());
vo.setCreateUserId(record.getCreateUserId());
vo.setCreateUserName(record.getCreateUserName());
@ -518,6 +519,7 @@ public class QmsReturnInspectionTaskControllerService {
QmsReturnInspectionTaskRecord record = new QmsReturnInspectionTaskRecord()
.setTaskId(task.getId())
.setMaterialUniqueNo(StrUtil.isBlank(request.getMaterialUniqueNo()) ? null : request.getMaterialUniqueNo())
.setBatchNo(StrUtil.isBlank(request.getBatchNo()) ? null : request.getBatchNo())
.setQualified(request.getQualified())
.setCreateUserId(UserUtil.getUserId())
.setCreateUserName(UserUtil.getUserName())

View File

@ -6,40 +6,20 @@ import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 对外接口-退料检测申请QO
*/
@Data
@Accessors(chain = true)
public class ExternalReturnInspectionApplyQO {
/**
* 请求单号第三方唯一编号
*/
@NotBlank(message = "请求单号不能为空")
private String requestNo;
/**
* 物料编号
*/
@NotBlank(message = "物料编号不能为空")
private String materialNo;
/**
* 物料类别id
*/
@NotNull(message = "物料类别不能为空")
private Long materialCategoryId;
/**
* 送检数量
*/
@NotNull(message = "送检数量不能为空")
@Min(value = 1, message = "送检数量必须大于0")
@NotNull(message = "检验数量不能为空")
@Min(value = 1, message = "检验数量必须大于0")
private Integer inspectionQty;
/**
* 批次号
*/
private String batchNo;
@NotNull(message = "退料来源不能为空")
private Short returnType;
}

View File

@ -6,37 +6,17 @@ import lombok.Data;
import java.util.List;
/**
* 新增COA审核参数
*/
@Data
public class QmsCoaReviewAddQO {
/**
* 物料编码必传用于匹配任务
*/
@NotBlank(message = "物料编码不能为空")
private String materialNo;
/**
* 采购单号必传
*/
@NotBlank(message = "采购单号不能为空")
private String purchaseNo;
/**
* 批次号
*/
private String batchNo;
/**
* COA报告文件ID列表必传
*/
@NotEmpty(message = "COA报告不能为空")
private List<Long> coaFileIds;
/**
* 图片列表可选
*/
private List<String> images;
}

View File

@ -7,44 +7,20 @@ import lombok.Data;
import java.util.List;
/**
* 修改COA审核参数
* 状态0时都可以改状态3时只能改COA报告
*/
@Data
public class QmsCoaReviewUpdateQO {
/**
* 记录ID必传
*/
@NotNull(message = "ID不能为空")
private Long id;
/**
* 物料编码
*/
@NotBlank(message = "物料编码不能为空")
private String materialNo;
/**
* 采购单号
*/
@NotBlank(message = "采购单号不能为空")
private String purchaseNo;
/**
* 批次号
*/
private String batchNo;
/**
* COA报告文件ID列表
*/
@NotEmpty(message = "COA报告不能为空")
private List<Long> coaFileIds;
/**
* 图片列表可选
*/
private List<String> images;
}

View File

@ -22,6 +22,8 @@ public class QmsReturnInspectionTaskResultQO {
*/
private String materialUniqueNo;
private String batchNo;
/**
* 检测开始时间
*/

View File

@ -30,7 +30,7 @@ public class QmsReturnInspectionTaskSearchQO extends PageQO {
/**
* 批次号
*/
private String batchNo;
private Short returnType;
/**
* 检验人姓名

View File

@ -25,6 +25,8 @@ public class QmsReturnInspectionTaskRecordVO {
*/
private String materialUniqueNo;
private String batchNo;
/**
* 是否合格
*/

View File

@ -69,7 +69,7 @@ public class QmsReturnInspectionTaskVO {
private Boolean callbackResult;
private String batchNo;
private Short returnType;
private Long updateUserId;

View File

@ -11,9 +11,6 @@ import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* 退料检测任务
*/
@Getter
@Setter
@ToString
@ -25,119 +22,27 @@ public class QmsReturnInspectionTask implements Serializable {
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Long id;
/**
* 检测单号
*/
private String taskNo;
/**
* 检测标准id
*/
private Long inspectionStandardId;
/**
* 检测方式关联字典项id
*/
private Long testingMethodDictItemId;
/**
* 物料id
*/
private Long materialId;
/**
* 物料类别id
*/
private Long materialCategoryId;
/**
* 送检数量
*/
private Integer inspectionQty;
/**
* 合格数量
*/
private Integer qualifiedQty;
/**
* 不合格数量
*/
private Integer unqualifiedQty;
/**
* 检验状态0=待检1=检验中2=已检
*/
private Short inspectionStatus;
/**
* 检验人id
*/
private Long inspectorId;
/**
* 代办人id
*/
private Long agentId;
/**
* 送检时间
*/
private LocalDateTime submitTime;
/**
* 检验开始时间
*/
private LocalDateTime inspectionStartTime;
/**
* 检验完成时间
*/
private LocalDateTime inspectionFinishTime;
/**
* 要求完成时间
*/
private LocalDateTime requiredFinishTime;
/**
* 是否超期
*/
private Boolean isOverdue;
/**
* 最近更新人id
*/
private Long updateUserId;
/**
* 最近更新人姓名
*/
private String updateUserName;
/**
* 更新时间
*/
private LocalDateTime updateTime;
/**
* 回调结果
*/
private Boolean callbackResult;
/**
* 请求单号第三方唯一编号
*/
private String requestNo;
/**
* 批次号
*/
private String batchNo;
/**
* 转办人id
*/
private Short returnType;
private Long assigneeId;
}

View File

@ -11,9 +11,6 @@ import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* 退料检测记录
*/
@Getter
@Setter
@ToString
@ -25,49 +22,14 @@ public class QmsReturnInspectionTaskRecord implements Serializable {
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Long id;
/**
* 退料检测任务id
*/
private Long taskId;
/**
* 物料唯一码
*/
private String materialUniqueNo;
/**
* 是否合格
*/
private String batchNo;
private Boolean qualified;
/**
* 创建人ID
*/
private Long createUserId;
/**
* 创建人姓名
*/
private String createUserName;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新人ID
*/
private Long updateUserId;
/**
* 更新人姓名
*/
private String updateUserName;
/**
* 更新时间
*/
private LocalDateTime updateTime;
}

View File

@ -1,58 +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.math.BigDecimal;
/**
* 退料检测记录详情
*/
@Getter
@Setter
@ToString
@Accessors(chain = true)
@TableName("qms_return_inspection_task_record_details")
public class QmsReturnInspectionTaskRecordDetails implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Long id;
/**
* 退料检测任务记录id
*/
private Long recordId;
/**
* 检验标准项内容ID
*/
private Long inspectionStandardItemContentId;
/**
* 备注
*/
private String remark;
/**
* 测量值
*/
private BigDecimal measuredValue;
/**
* 是否合格
*/
private Boolean qualified;
/**
* 图片id列表多个逗号分隔
*/
private String imageIds;
}

View File

@ -1,24 +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.QmsReturnInspectionTaskSearchQO;
import com.nflg.wms.common.pojo.qo.QmsReturnInspectionTaskTodoSearchQO;
import com.nflg.wms.common.pojo.vo.QmsReturnInspectionTaskVO;
import com.nflg.wms.repository.entity.QmsReturnInspectionTask;
import org.apache.ibatis.annotations.Param;
/**
* 退料检测任务 Mapper
*/
public interface QmsReturnInspectionTaskMapper extends BaseMapper<QmsReturnInspectionTask> {
IPage<QmsReturnInspectionTaskVO> search(@Param("request") QmsReturnInspectionTaskSearchQO request,
Page<Object> page);
IPage<QmsReturnInspectionTaskVO> todoSearch(@Param("request") QmsReturnInspectionTaskTodoSearchQO request,
Page<Object> page,
@Param("inspectorId") Long inspectorId,
@Param("userId") Long userId);
}

View File

@ -1,10 +0,0 @@
package com.nflg.wms.repository.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nflg.wms.repository.entity.QmsReturnInspectionTaskRecordDetails;
/**
* 退料检测记录详情 Mapper
*/
public interface QmsReturnInspectionTaskRecordDetailsMapper extends BaseMapper<QmsReturnInspectionTaskRecordDetails> {
}

View File

@ -1,10 +0,0 @@
package com.nflg.wms.repository.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nflg.wms.repository.entity.QmsReturnInspectionTaskRecord;
/**
* 退料检测记录 Mapper
*/
public interface QmsReturnInspectionTaskRecordMapper extends BaseMapper<QmsReturnInspectionTaskRecord> {
}

View File

@ -1,10 +0,0 @@
package com.nflg.wms.repository.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nflg.wms.repository.entity.QmsReturnInspectionTaskRecordDetails;
/**
* 退料检测记录详情 服务类
*/
public interface IQmsReturnInspectionTaskRecordDetailsService extends IService<QmsReturnInspectionTaskRecordDetails> {
}

View File

@ -1,10 +0,0 @@
package com.nflg.wms.repository.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nflg.wms.repository.entity.QmsReturnInspectionTaskRecord;
/**
* 退料检测记录 服务类
*/
public interface IQmsReturnInspectionTaskRecordService extends IService<QmsReturnInspectionTaskRecord> {
}

View File

@ -1,18 +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.QmsReturnInspectionTaskSearchQO;
import com.nflg.wms.common.pojo.qo.QmsReturnInspectionTaskTodoSearchQO;
import com.nflg.wms.common.pojo.vo.QmsReturnInspectionTaskVO;
import com.nflg.wms.repository.entity.QmsReturnInspectionTask;
/**
* 退料检测任务 服务类
*/
public interface IQmsReturnInspectionTaskService extends IService<QmsReturnInspectionTask> {
IPage<QmsReturnInspectionTaskVO> search(QmsReturnInspectionTaskSearchQO request);
IPage<QmsReturnInspectionTaskVO> todoSearch(QmsReturnInspectionTaskTodoSearchQO request, Long inspectorId, Long userId);
}

View File

@ -1,6 +1,5 @@
package com.nflg.wms.repository.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -133,7 +132,7 @@ public class QmsCoaReviewServiceImpl extends ServiceImpl<QmsCoaReviewMapper, Qms
.setPurchaseNo(qo.getPurchaseNo())
.setBatchNo(qo.getBatchNo())
.setCoaFile(coaFile)
.setImage(CollUtil.isNotEmpty(qo.getImages()) ? String.join(",", qo.getImages()) : null)
.setImage(null)
.setStatus(0)
.setDeleted(false)
.setCreateBy(operator)
@ -211,17 +210,13 @@ public class QmsCoaReviewServiceImpl extends ServiceImpl<QmsCoaReviewMapper, Qms
}
updater.set(QmsCoaReview::getCoaFile, coaFile);
updater.set(QmsCoaReview::getBatchNo, qo.getBatchNo());
// 修改图片
if (qo.getImages() != null) {
updater.set(QmsCoaReview::getImage, qo.getImages().isEmpty() ? null : String.join(",", qo.getImages()));
}
// 清空旧图片字段统一走 coaFile
updater.set(QmsCoaReview::getImage, null);
} else if (Objects.equals(status, 3)) {
// 状态3时只能改COA报告和图片
// 状态3时只允许修改 COA 文件
updater.set(QmsCoaReview::getCoaFile, coaFile);
// 修改图片
if (qo.getImages() != null) {
updater.set(QmsCoaReview::getImage, qo.getImages().isEmpty() ? null : String.join(",", qo.getImages()));
}
// 清空旧图片字段统一走 coaFile
updater.set(QmsCoaReview::getImage, null);
} else {
throw new NflgException(STATE.BusinessError, "当前状态不允许修改");
}

View File

@ -1,14 +0,0 @@
package com.nflg.wms.repository.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nflg.wms.repository.entity.QmsReturnInspectionTaskRecordDetails;
import com.nflg.wms.repository.mapper.QmsReturnInspectionTaskRecordDetailsMapper;
import com.nflg.wms.repository.service.IQmsReturnInspectionTaskRecordDetailsService;
import org.springframework.stereotype.Service;
/**
* 退料检测记录详情 服务实现类
*/
@Service
public class QmsReturnInspectionTaskRecordDetailsServiceImpl extends ServiceImpl<QmsReturnInspectionTaskRecordDetailsMapper, QmsReturnInspectionTaskRecordDetails> implements IQmsReturnInspectionTaskRecordDetailsService {
}

View File

@ -1,14 +0,0 @@
package com.nflg.wms.repository.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nflg.wms.repository.entity.QmsReturnInspectionTaskRecord;
import com.nflg.wms.repository.mapper.QmsReturnInspectionTaskRecordMapper;
import com.nflg.wms.repository.service.IQmsReturnInspectionTaskRecordService;
import org.springframework.stereotype.Service;
/**
* 退料检测记录 服务实现类
*/
@Service
public class QmsReturnInspectionTaskRecordServiceImpl extends ServiceImpl<QmsReturnInspectionTaskRecordMapper, QmsReturnInspectionTaskRecord> implements IQmsReturnInspectionTaskRecordService {
}

View File

@ -1,29 +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.QmsReturnInspectionTaskSearchQO;
import com.nflg.wms.common.pojo.qo.QmsReturnInspectionTaskTodoSearchQO;
import com.nflg.wms.common.pojo.vo.QmsReturnInspectionTaskVO;
import com.nflg.wms.repository.entity.QmsReturnInspectionTask;
import com.nflg.wms.repository.mapper.QmsReturnInspectionTaskMapper;
import com.nflg.wms.repository.service.IQmsReturnInspectionTaskService;
import org.springframework.stereotype.Service;
/**
* 退料检测任务 服务实现类
*/
@Service
public class QmsReturnInspectionTaskServiceImpl extends ServiceImpl<QmsReturnInspectionTaskMapper, QmsReturnInspectionTask> implements IQmsReturnInspectionTaskService {
@Override
public IPage<QmsReturnInspectionTaskVO> search(QmsReturnInspectionTaskSearchQO request) {
return baseMapper.search(request, new Page<>(request.getPage(), request.getPageSize()));
}
@Override
public IPage<QmsReturnInspectionTaskVO> todoSearch(QmsReturnInspectionTaskTodoSearchQO request, Long inspectorId, Long userId) {
return baseMapper.todoSearch(request, new Page<>(request.getPage(), request.getPageSize()), inspectorId, userId);
}
}

View File

@ -44,7 +44,7 @@
t.required_finish_time,
t.is_overdue,
t.callback_result,
t.batch_no,
t.return_type,
t.update_user_id,
t.update_user_name,
t.update_time
@ -72,8 +72,8 @@
<if test="request.materialNo != null and request.materialNo != ''">
AND m.material_no ILIKE concat('%', #{request.materialNo}, '%')
</if>
<if test="request.batchNo != null and request.batchNo != ''">
AND t.batch_no ILIKE concat('%', #{request.batchNo}, '%')
<if test="request.returnType != null">
AND t.return_type = #{request.returnType}
</if>
<if test="request.inspectorName != null and request.inspectorName != ''">
AND iu.user_name ILIKE concat('%', #{request.inspectorName}, '%')
@ -158,7 +158,7 @@
t.required_finish_time,
t.is_overdue,
t.callback_result,
t.batch_no,
t.return_type,
t.update_user_id,
t.update_user_name,
t.update_time
@ -193,7 +193,6 @@
OR m.drawing_no ILIKE concat('%', #{request.key}, '%')
OR t.task_no ILIKE concat('%', #{request.key}, '%')
OR t.request_no ILIKE concat('%', #{request.key}, '%')
OR t.batch_no ILIKE concat('%', #{request.key}, '%')
)
</if>
</where>