Browse Source

2026-10-21

iqc,对于抽检,如果不合格的情况下,其实不允许“挑选使用”
对于全检,不良处置不能“拒收退回“、”返工返修“、”让步接收“
master
fengyuan_yang 3 weeks ago
parent
commit
1b36c4966f
  1. 2
      src/main/java/com/heai/modules/pms/mapper/QcMapper.java
  2. 23
      src/main/java/com/heai/modules/pms/service/Impl/QcServiceImpl.java
  3. 16
      src/main/resources/mapper/pms/QcMapper.xml

2
src/main/java/com/heai/modules/pms/mapper/QcMapper.java

@ -381,6 +381,8 @@ public interface QcMapper {
IPage<QcFAIRecordData> qcIQCInspectionSearch(Page<QcFAIRecordData> qcFAIRecordDataPage,@Param("query") QcFAIRecordData data);
String selectIqcInspectCode(QcFAIRecordData data);
List<QcFAIRecordData> iqcDetailSearch(QcFAIRecordData data);
List<SubDetailValues> selectIQCSubDetailedRecord(SubDetailValues data);

23
src/main/java/com/heai/modules/pms/service/Impl/QcServiceImpl.java

@ -5025,6 +5025,7 @@ public class QcServiceImpl implements QcService {
@Override
@Transactional
public void saveIQCDetailedRecord(QcFAIRecordData data) {
assertIqcDisposalAllowed(data);
if ("1".equals(data.getType())) { // 应用
data.setState("待检验");
} else { // 保存
@ -5146,6 +5147,27 @@ public class QcServiceImpl implements QcService {
return count;
}
/**
* 抽检(InspectCode 不是 F)不合格时不能挑选使用;全检(InspectCode = F)不能拒收退回、返工返修、让步接收。
*/
private void assertIqcDisposalAllowed(QcFAIRecordData data) {
if (data == null || StringUtils.isBlank(data.getDisposalMeasures())) {
return;
}
String disposal = data.getDisposalMeasures().trim();
String inspectCode = StringUtils.trimToEmpty(qcMapper.selectIqcInspectCode(data));
boolean fullInspect = "F".equalsIgnoreCase(inspectCode);
if (fullInspect) {
if ("拒收退回".equals(disposal) || "返工返修".equals(disposal) || "让步接收".equals(disposal)) {
throw new RuntimeException("全检任务不允许选择处置措施:" + disposal);
}
return;
}
if ("不合格".equals(data.getInspectionResult()) && "挑选使用".equals(disposal)) {
throw new RuntimeException("抽检任务检验结论为不合格时,不允许选择挑选使用");
}
}
/**
* 审核
**/
@ -5155,6 +5177,7 @@ public class QcServiceImpl implements QcService {
SysUserEntity currentUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal();
boolean triggerMachineInspect = Boolean.TRUE.equals(data.getTriggerMachineInspect());
for (QcFAIRecordData recordData : data.getSubmitList()) {
assertIqcDisposalAllowed(recordData);
// 修改主记录标识为已提交
qcMapper.updateIQCMasterSubmitFlag(recordData);
// 修改明细记录标识为已提交

16
src/main/resources/mapper/pms/QcMapper.xml

@ -3338,11 +3338,13 @@
a.ref_info2,
a.ref_info3,
a.ref_info4,
a.ref_info5
a.ref_info5,
prd.InspectCode as inspectCode
FROM qc_iqc_record as a
left join part as d on a.site = d.site and a.bu_no = d.sourceBu and a.part_no = d.partNo
left join view_Supplier as s on a.site = s.site and a.supplier_no = s.SupplierID
left join sys_user as u on a.inspector_no = u.username
left join POReceiptDetail as prd on a.site = prd.site and a.receipt_no = prd.ReceiptNo and CONVERT(varchar(50), a.receipt_item_no) = CONVERT(varchar(50), prd.ItemNo)
<where>
<if test="query.site != null and query.site != ''">
AND a.site = #{query.site}
@ -3415,6 +3417,18 @@
END, a.create_date desc
</select>
<select id="selectIqcInspectCode" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="java.lang.String">
SELECT TOP 1 prd.InspectCode
FROM qc_iqc_record a
LEFT JOIN POReceiptDetail prd
ON a.site = prd.site
AND a.receipt_no = prd.ReceiptNo
AND CONVERT(varchar(50), a.receipt_item_no) = CONVERT(varchar(50), prd.ItemNo)
WHERE a.site = #{site}
AND a.bu_no = #{buNo}
AND a.inspection_no = #{inspectionNo}
</select>
<!-- IQC明细记录查询 -->
<select id="iqcDetailSearch" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.QcFAIRecordData">
SELECT

Loading…
Cancel
Save