package com.ruoyi.inspect.aspect;
|
|
import cn.hutool.core.bean.BeanUtil;
|
import com.ruoyi.basic.mapper.IfsInventoryQuantityMapper;
|
import com.ruoyi.basic.pojo.IfsInventoryQuantity;
|
import com.ruoyi.inspect.service.RawMaterialOrderService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.aspectj.lang.JoinPoint;
|
import org.aspectj.lang.annotation.AfterReturning;
|
import org.aspectj.lang.annotation.Aspect;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.context.annotation.Lazy;
|
import org.springframework.stereotype.Component;
|
import org.springframework.transaction.annotation.Isolation;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.Arrays;
|
import java.util.List;
|
import java.util.Objects;
|
|
/**
|
* 内部订单报检后自动执行免检
|
*/
|
@Aspect
|
@Slf4j
|
@Component
|
public class InternalOrderAutoInspectionExemptionAspect {
|
|
@Autowired
|
private IfsInventoryQuantityMapper ifsInventoryQuantityMapper;
|
|
@Lazy
|
@Autowired
|
private RawMaterialOrderService rawMaterialOrderService;
|
|
/**
|
* 内部公司列表
|
*/
|
private final static List<String> internalCompany = Arrays.asList("江苏中天科技股份有限公司(耐丝工厂)","中天耐丝有限公司");
|
|
@AfterReturning(value = "execution(* com.ruoyi.inspect.service.impl.RawMaterialOrderServiceImpl.inspectionReportOne(..))")
|
@Transactional(rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
|
public void doAfterReturning(JoinPoint joinPoint) {
|
try{
|
Object[] args = joinPoint.getArgs();
|
if(Objects.nonNull(args) && args.length>0) {
|
IfsInventoryQuantity ifsInventoryQuantity = BeanUtil.toBean(args[0], IfsInventoryQuantity.class);
|
//查询ifs采购订单信息
|
IfsInventoryQuantity record = ifsInventoryQuantityMapper.selectById(ifsInventoryQuantity.getId());
|
if(internalCompany.contains(record.getSupplierName())){
|
log.info("内部公司报检,自动执行免检,订单号:{}, 供应商:{},订单id:{}", record.getOrderNo(), record.getSupplierName(), record.getId());
|
rawMaterialOrderService.rawOrderRelease(record.getId(), record.getPartDesc());
|
}
|
}
|
}catch (Exception e){
|
log.error("内部公司报检后免检执行异常->{}",e.getMessage());
|
}
|
}
|
|
}
|