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 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()); } } }