package cn.iocoder.yudao.module.mes.service.qc.ncr;
|
|
import cn.iocoder.yudao.framework.common.exception.ServiceException;
|
import cn.iocoder.yudao.module.mes.dal.dataobject.qc.ncr.MesQcNcrDO;
|
import cn.iocoder.yudao.module.mes.enums.qc.MesNcrDispositionEnum;
|
import org.springframework.stereotype.Component;
|
|
import java.util.Objects;
|
|
/** 库存隔离和销毁闭环尚未建立前,禁止通过入库伪造完成处置。 */
|
@Component
|
public class MesQcNcrStockClosureGuard {
|
|
public void validateBeforeDispose(Integer disposition) {
|
if (Objects.equals(disposition, MesNcrDispositionEnum.SCRAP.getType())) {
|
throw new ServiceException(400, "报废处置暂不可执行:需先建立不合格品隔离入库、销毁确认及销毁出库闭环,避免重复入库或账实不符");
|
}
|
if (Objects.equals(disposition, MesNcrDispositionEnum.CONCESSION.getType())) {
|
throw new ServiceException(400, "让步放行暂不可执行:需先完成来源单据、原批次和库存的放行闭环,避免重复入库或放行错误批次");
|
}
|
}
|
|
public void validateBeforeClose(MesQcNcrDO ncr) {
|
if (Objects.equals(ncr.getDisposition(), MesNcrDispositionEnum.SCRAP.getType())) {
|
throw new ServiceException(400, "报废处理单暂不可关闭:尚未建立隔离库存的销毁确认和销毁出库闭环,请保留单据等待处理");
|
}
|
if (Objects.equals(ncr.getDisposition(), MesNcrDispositionEnum.CONCESSION.getType())) {
|
throw new ServiceException(400, "让步放行处理单暂不可关闭:尚未完成来源单据、原批次和库存的放行核验,请保留单据等待处理");
|
}
|
}
|
}
|