云
3 天以前 87733eb3623593da247c051593d64b8ff9e1d3a4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
package cn.iocoder.yudao.module.mes.service.qc.seedquality;
 
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.mes.controller.admin.qc.seedquality.vo.MesQcSeedQualityPageReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.qc.seedquality.vo.MesQcSeedQualitySubmitReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.qc.seedquality.MesQcSeedQualityDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.qc.seedquality.MesQcSeedQualityIndicatorDO;
 
import java.util.List;
 
public interface MesQcSeedQualityService {
 
    Long submit(MesQcSeedQualitySubmitReqVO reqVO);
 
    java.util.Map<String, Object> resolveScan(String code);
    java.util.Map<String, Object> resolveScan(String code, String scanType);
    java.util.Map<String, Object> resolveScan(String code, String scanType, Integer qcLine);
    java.util.Map<String, Object> submitGroup(cn.iocoder.yudao.module.mes.controller.admin.qc.seedquality.vo.MesQcSeedQualityGroupSubmitReqVO reqVO);
    void retest(Long id, cn.iocoder.yudao.module.mes.controller.admin.qc.seedquality.vo.MesQcSeedQualityRetestReqVO reqVO);
    void retestBatch(cn.iocoder.yudao.module.mes.controller.admin.qc.seedquality.vo.MesQcSeedQualityBatchRetestReqVO reqVO);
    java.util.Map<String, Object> resolveRetestScope(String code, String scanType);
    java.util.Map<String, Object> resolveRetestScope(String code, String scanType, Integer qcLine);
    java.util.Map<String, Object> retestScope(cn.iocoder.yudao.module.mes.controller.admin.qc.seedquality.vo.MesQcSeedQualityScopeRetestReqVO reqVO);
    void processApprove(Long id, boolean approved, String opinion);
    void companyApprove(Long id, boolean approved, String opinion);
    void processApproveBatch(List<Long> ids, boolean approved, String opinion);
    void companyApproveBatch(List<Long> ids, boolean approved, String opinion);
 
    /** 解析经销商退货单的待质检信息 */
    java.util.Map<String, Object> resolveReturnQuality(Long returnSalesId);
    /** 提交经销商退货质检 */
    Long submitReturnQuality(cn.iocoder.yudao.module.mes.controller.admin.qc.seedquality.vo.MesQcSeedReturnQualitySubmitReqVO reqVO);
    /** 经销商退货质检销售部领导审批 */
    void returnApprove(Long id, boolean approved, String opinion);
    /** 管理员在流程定义发布后,对尚未生成 BPM 实例的记录重试发起审批。 */
    void retryBpmProcess(Long id);
 
    /** BPM 回调:本线领导审批完成 */
    void handleLineProcessResult(String processInstanceId, Integer qcLine, String batchCode, boolean approved, String reason);
    /** BPM 回调:公司质检审批完成(businessKey 为生产批次号,历史数据可能为袋码) */
    void handleCompanyProcessResult(String processInstanceId, String businessKey, boolean approved, String reason);
    /** BPM 回调:经销商退货销售部审批完成 */
    void handleReturnProcessResult(String processInstanceId, Long returnSalesId, boolean approved, String reason);
 
    PageResult<MesQcSeedQualityDO> getQualityPage(MesQcSeedQualityPageReqVO reqVO);
 
    /**
     * 按生产批次分组分页查询质检记录汇总,未绑定批次的记录归入空批次组。
     *
     * @param reqVO 查询条件(与明细分页一致)
     * @return 批次分组分页结果
     */
    PageResult<cn.iocoder.yudao.module.mes.controller.admin.qc.seedquality.vo.MesQcSeedQualityBatchRespVO>
            getQualityBatchPage(MesQcSeedQualityPageReqVO reqVO);
 
    /**
     * 根据批次号查询质检记录(按检验时间倒序,取最新),用于公开溯源。
     * 种子质检表未初始化时返回空列表(容错,不影响追溯)。
     *
     * @param batchCode 批次号
     * @return 质检记录列表
     */
    List<MesQcSeedQualityDO> getQualityByBatchCode(String batchCode);
 
    /**
     * 根据质检记录编号查询质检指标列表
     *
     * @param qualityId 质检记录编号
     * @return 质检指标列表
     */
    List<MesQcSeedQualityIndicatorDO> getIndicatorsByQualityId(Long qualityId);
    List<cn.iocoder.yudao.module.mes.dal.dataobject.qc.seedquality.MesQcSeedQualityActionDO> getActions(Long qualityId);
}