李林
2023-10-07 658d4927d468c47208fd012d9128b09249c07eff
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
74
75
76
77
78
package com.chinaztt.mes.quality.utils;
 
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.chinaztt.mes.basic.entity.WorkstationLocation;
import com.chinaztt.mes.basic.mapper.WorkstationLocationMapper;
import com.chinaztt.mes.common.numgen.NumberGenerator;
import com.chinaztt.mes.quality.dto.ApplyDTO;
import com.chinaztt.mes.quality.dto.ApplyPartDTO;
import com.chinaztt.mes.quality.dto.ReportSampleDTO;
import com.chinaztt.mes.quality.dto.ReportSampleItemDTO;
import com.chinaztt.mes.quality.entity.Apply;
import com.chinaztt.mes.quality.entity.Report;
import com.chinaztt.mes.quality.entity.ReportSample;
import com.chinaztt.mes.quality.mapper.*;
import com.chinaztt.mes.quality.service.ApplyService;
import com.chinaztt.mes.quality.state.result.constant.ResultStateStringValues;
import com.chinaztt.mes.warehouse.util.StockUtils;
import com.chinaztt.ztt.common.oss.OssProperties;
import com.chinaztt.ztt.common.oss.service.OssTemplate;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
 
import java.util.ArrayList;
import java.util.List;
 
/**
 * @Author: cxf
 * @Date: 2021/06/01 16:00
 */
@Service
@AllArgsConstructor
public class SelfJudgmentUtils {
    private ApplyService applyService;
    private ReportSampleMapper reportSampleMapper;
    private ReportSampleItemMapper reportSampleItemMapper;
    private ResultUtils resultUtils;
    private StockUtils stockUtils;
    private WorkstationLocationMapper workstationLocationMapper;
 
    /**
     * 自检合格处理 (自检废弃)
     */
    public void autoMoveStock(ReportSampleDTO reportSampleDTO) {
        if (reportSampleDTO.getIsQualified() != null && reportSampleDTO.getIsQualified()) {
            // 自检合格
            // 1.根据工艺路线判断,当前报工的工序是否最后一道工序
            Boolean isMaster = reportSampleMapper.selectIsMasterRoutingOperationBySystemNo(reportSampleDTO.getSystemNo());
            if (isMaster != null && isMaster == true) {
                // 2.若是,自检通过后,自动生成成品的检测申请
                // 创建质检申请
                ApplyDTO applyDTO = new ApplyDTO();
                applyDTO.setApplyType(Apply.OUTPUT_APPLY);
                applyDTO.setRemark("自检合格,成品报检:" + reportSampleDTO.getOutBatchNo());
                List<ApplyPartDTO> applyPartList = new ArrayList<ApplyPartDTO>();
                ApplyPartDTO applyPartDTO = new ApplyPartDTO();
                applyPartDTO.setSystemNo(reportSampleDTO.getSystemNo());
                applyPartList.add(applyPartDTO);
                applyDTO.setApplyPartList(applyPartList);
                applyService.saveDto(applyDTO);
                reportSampleDTO.setCheckStatus(ResultStateStringValues.TESTING);
                reportSampleDTO.setIsUsed(false);
            } else {
                // 3.否则直接进合格库
                try {
                    Long disqualifiedLocationId = workstationLocationMapper.selectBySystemNo(reportSampleDTO.getSystemNo(), WorkstationLocation.INSPECTION_LOCATION);
                    Long qualifiedLocationId = workstationLocationMapper.selectBySystemNo(reportSampleDTO.getSystemNo(), WorkstationLocation.QUALIFIED_LOCATION);
                    stockUtils.localMove(reportSampleDTO.getPartId(), reportSampleDTO.getSystemNo(), reportSampleDTO.getOutBatchNo(), reportSampleDTO.getQtyArrived(), disqualifiedLocationId, qualifiedLocationId);
                } catch (RuntimeException e) {
                    // 自动移库失败处理
                }
            }
        }
 
    }
 
}