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 applyPartList = new ArrayList(); 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) { // 自动移库失败处理 } } } } }