|
|
@ -14,6 +14,7 @@ import org.dromara.qms.domain.QcInspectionMain;
|
|
|
|
import org.dromara.qms.domain.QcInspectionType;
|
|
|
|
import org.dromara.qms.domain.QcInspectionType;
|
|
|
|
import org.dromara.qms.domain.bo.QcInspectionMainBo;
|
|
|
|
import org.dromara.qms.domain.bo.QcInspectionMainBo;
|
|
|
|
import org.dromara.qms.domain.bo.QcInspectionResultBo;
|
|
|
|
import org.dromara.qms.domain.bo.QcInspectionResultBo;
|
|
|
|
|
|
|
|
import org.dromara.qms.domain.vo.QcInspectionMainVo;
|
|
|
|
import org.dromara.qms.domain.vo.QcInspectionResultVo;
|
|
|
|
import org.dromara.qms.domain.vo.QcInspectionResultVo;
|
|
|
|
import org.dromara.qms.service.IQcInspectionResultService;
|
|
|
|
import org.dromara.qms.service.IQcInspectionResultService;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
@ -619,7 +620,7 @@ public class QcUnqualifiedReviewServiceImpl implements IQcUnqualifiedReviewServi
|
|
|
|
.leftJoin(QcInspectionMain.class, QcInspectionMain::getInspectionId, QcUnqualifiedReview::getInspectionId)
|
|
|
|
.leftJoin(QcInspectionMain.class, QcInspectionMain::getInspectionId, QcUnqualifiedReview::getInspectionId)
|
|
|
|
//关联检测类型
|
|
|
|
//关联检测类型
|
|
|
|
.select(QcInspectionType::getTypeName, QcInspectionType::getQcInspectionType, QcInspectionType::getTypeCode, QcInspectionType::getQcInspectionType)
|
|
|
|
.select(QcInspectionType::getTypeName, QcInspectionType::getQcInspectionType, QcInspectionType::getTypeCode, QcInspectionType::getQcInspectionType)
|
|
|
|
.leftJoin(QcInspectionType.class, QcInspectionType::getTypeId, QcInspectionMain::getTypeId)
|
|
|
|
.leftJoin(QcInspectionType.class, QcInspectionType::getTypeId, QcUnqualifiedReview::getTypeId)
|
|
|
|
|
|
|
|
|
|
|
|
.eq(bo.getReviewId() != null, QcUnqualifiedReview::getReviewId, bo.getReviewId())
|
|
|
|
.eq(bo.getReviewId() != null, QcUnqualifiedReview::getReviewId, bo.getReviewId())
|
|
|
|
.eq(StringUtils.isNotBlank(bo.getUnqualifiedNo()), QcUnqualifiedReview::getUnqualifiedNo, bo.getUnqualifiedNo())
|
|
|
|
.eq(StringUtils.isNotBlank(bo.getUnqualifiedNo()), QcUnqualifiedReview::getUnqualifiedNo, bo.getUnqualifiedNo())
|
|
|
@ -690,4 +691,57 @@ public class QcUnqualifiedReviewServiceImpl implements IQcUnqualifiedReviewServi
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return baseMapper.deleteByIds(ids) > 0;
|
|
|
|
return baseMapper.deleteByIds(ids) > 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public Boolean autoGenerateUnqualifiedReview(QcInspectionMainVo inspectionVo, List<QcInspectionResultVo> inspectionResults) {
|
|
|
|
|
|
|
|
// 检查是否有不合格项
|
|
|
|
|
|
|
|
boolean hasUnqualified = inspectionResults.stream()
|
|
|
|
|
|
|
|
.anyMatch(result -> Long.valueOf(1).equals(result.getDetectResult()));
|
|
|
|
|
|
|
|
if (!hasUnqualified) {
|
|
|
|
|
|
|
|
log.info("无不合格项,无需生成评审记录: inspectionId={}", inspectionVo.getInspectionId());
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
QcUnqualifiedReviewBo bo = new QcUnqualifiedReviewBo();
|
|
|
|
|
|
|
|
bo.setInspectionId(inspectionVo.getInspectionId());
|
|
|
|
|
|
|
|
// bo.setTypeId(inspectionVo.getTypeId());
|
|
|
|
|
|
|
|
bo.setMaterialCode(inspectionVo.getMaterialCode());
|
|
|
|
|
|
|
|
bo.setMaterialName(inspectionVo.getMaterialName());
|
|
|
|
|
|
|
|
bo.setProcessName(inspectionVo.getProcessName());
|
|
|
|
|
|
|
|
bo.setWorkOrder(inspectionVo.getProductionOrder());
|
|
|
|
|
|
|
|
bo.setBatchNo(inspectionVo.getBatchNo());
|
|
|
|
|
|
|
|
bo.setInspectorResult(inspectionVo.getResult().toString());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 生成唯一的不合格编号
|
|
|
|
|
|
|
|
String unqualifiedNo = generateUnqualifiedNo();
|
|
|
|
|
|
|
|
bo.setUnqualifiedNo(unqualifiedNo);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 设置默认值
|
|
|
|
|
|
|
|
bo.setReviewResult(null); // 待评审
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Boolean inserted = insertByBo(bo);
|
|
|
|
|
|
|
|
if (inserted) {
|
|
|
|
|
|
|
|
log.info("不合格品评审记录生成成功: reviewId={}, unqualifiedNo={}", bo.getReviewId(), unqualifiedNo);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
log.error("不合格品评审记录生成失败: inspectionId={}", inspectionVo.getInspectionId());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return inserted;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 生成唯一的不合格编号
|
|
|
|
|
|
|
|
* 格式: UNQ-yyyyMMdd-XXXX (XXXX为4位序列号)
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
private String generateUnqualifiedNo() {
|
|
|
|
|
|
|
|
LocalDate today = LocalDate.now();
|
|
|
|
|
|
|
|
String prefix = "UNQ-" + today.format(DateTimeFormatter.ofPattern("yyyyMMdd")) + "-";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 查询当天已生成的记录数
|
|
|
|
|
|
|
|
long count = baseMapper.selectCount(Wrappers.<QcUnqualifiedReview>lambdaQuery()
|
|
|
|
|
|
|
|
.likeRight(QcUnqualifiedReview::getUnqualifiedNo, prefix));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 生成序列号
|
|
|
|
|
|
|
|
String seq = String.format("%04d", count + 1);
|
|
|
|
|
|
|
|
return prefix + seq;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|