Commit fd888712d12b00b6285b7b2913c36288b22c62af
1 parent
dfeb3c10
✨ feat(mes): 更新销售出库单状态流转逻辑,添加 OQC 检验支持
优化销售出库单的状态流转逻辑,新增待检测状态以支持 OQC 检验。根据检验结果自动流转状态,提升出库流程的灵活性和准确性。
Showing
2 changed files
with
19 additions
and
15 deletions
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/qc/ipqc/MesQcIpqcDO.java
| ... | ... | @@ -76,7 +76,7 @@ public class MesQcIpqcDO extends BaseDO { |
| 76 | 76 | * 来源单据行 ID |
| 77 | 77 | * |
| 78 | 78 | * 关联:根据 {@link #sourceDocType} 不同: |
| 79 | - * 1. {@link MesQcSourceDocTypeEnum#PRO_FEEDBACK} 时,暂不使用(预留) | |
| 79 | + * 1. {@link MesQcSourceDocTypeEnum#PRO_FEEDBACK} 时,关联 {@link cn.iocoder.yudao.module.mes.dal.dataobject.wm.productproduce.MesWmProductProduceLineDO#getId()} | |
| 80 | 80 | */ |
| 81 | 81 | private Long sourceLineId; |
| 82 | 82 | /** | ... | ... |
yudao-module-mes/src/main/resources/mapper/qc/pendinginspect/MesQcPendingInspectMapper.xml
| ... | ... | @@ -6,7 +6,7 @@ |
| 6 | 6 | 待检任务查询(UNION ALL 多来源),已实现的来源: |
| 7 | 7 | 1. 到货通知单(IQC):单据状态=PENDING_QC(2),行的 iqc_check_flag=1 且 iqc_id 为空 |
| 8 | 8 | 2. 外协入库单(IQC):单据状态=CONFIRMED(1),行的 iqc_check_flag=1 且 iqc_id 为空 |
| 9 | - 3. 生产报工(IPQC):单据状态=UNCHECK(3) | |
| 9 | + 3. 产品产出行(IPQC):产出行的 quality_status=PENDING(0),通过产出单头→报工关联 | |
| 10 | 10 | 4. 销售出库单(OQC):单据状态=CONFIRMED(1),行的 oqc_check_flag=1 且 oqc_id 为空 |
| 11 | 11 | 5. 生产退料单(RQC):单据状态=CONFIRMED(1),行的 rqc_check_flag=1 且 rqc_id 为空 且 quality_status=0(待检) |
| 12 | 12 | 6. 销售退货单(RQC):单据状态=CONFIRMED(1),行的 rqc_check_flag=1 且 rqc_id 为空 且 quality_status=0(待检) |
| ... | ... | @@ -63,24 +63,28 @@ |
| 63 | 63 | |
| 64 | 64 | UNION ALL |
| 65 | 65 | |
| 66 | - <!-- 3. IPQC 来源:生产报工(状态=待检验) --> | |
| 66 | + <!-- 3. IPQC 来源:产品产出行(quality_status=PENDING) --> | |
| 67 | 67 | SELECT |
| 68 | - f.id AS sourceDocId, | |
| 68 | + pf.id AS sourceDocId, | |
| 69 | 69 | ${@cn.iocoder.yudao.module.mes.enums.MesBizTypeConstants@PRO_FEEDBACK} AS sourceDocType, |
| 70 | - f.code AS sourceDocCode, | |
| 71 | - NULL AS sourceLineId, | |
| 72 | - f.feedback_time AS recordTime, | |
| 70 | + pf.code AS sourceDocCode, | |
| 71 | + ppl.id AS sourceLineId, | |
| 72 | + pf.feedback_time AS recordTime, | |
| 73 | 73 | ${@cn.iocoder.yudao.module.mes.enums.qc.MesQcTypeEnum@IPQC.type} AS qcType, |
| 74 | - f.item_id AS itemId, | |
| 75 | - f.uncheck_quantity AS quantity, | |
| 74 | + ppl.item_id AS itemId, | |
| 75 | + ppl.quantity AS quantity, | |
| 76 | 76 | NULL AS vendorId, |
| 77 | - f.work_order_id AS workOrderId, | |
| 78 | - f.workstation_id AS workstationId, | |
| 79 | - f.task_id AS taskId, | |
| 77 | + pp.work_order_id AS workOrderId, | |
| 78 | + pp.workstation_id AS workstationId, | |
| 79 | + pp.task_id AS taskId, | |
| 80 | 80 | NULL AS clientId |
| 81 | - FROM mes_pro_feedback f | |
| 82 | - WHERE f.status = ${@cn.iocoder.yudao.module.mes.enums.pro.MesProFeedbackStatusEnum@UNCHECK.status} | |
| 83 | - AND f.deleted = 0 | |
| 81 | + FROM mes_wm_product_produce_line ppl | |
| 82 | + JOIN mes_wm_product_produce pp ON ppl.produce_id = pp.id | |
| 83 | + JOIN mes_pro_feedback pf ON pp.feedback_id = pf.id | |
| 84 | + WHERE ppl.quality_status = ${@cn.iocoder.yudao.module.mes.enums.wm.MesWmQualityStatusEnum@PENDING.status} | |
| 85 | + AND ppl.deleted = 0 | |
| 86 | + AND pp.deleted = 0 | |
| 87 | + AND pf.deleted = 0 | |
| 84 | 88 | |
| 85 | 89 | UNION ALL |
| 86 | 90 | ... | ... |