BillReleaseCheck.groovy 2.5 KB
package com.sy.groovy

import com.sy.model.GatherInfo
import com.sy.model.LAND_BUSINEESTYPE_LIST_INFO
import com.sy.model.LandBusinessTypeList
import com.sy.service.ResMessageService
import com.sy.service.WeightCheckHandleService
import com.sy.service.impl.GatherInfoHandle
import org.basis.enhance.groovy.entity.ExecuteParams
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.context.ApplicationContext

/**
 * 单证验放
 * 放行验放
 */
class BillReleaseCheck extends Script implements ChannelCheckScript {

    private final Logger logger = LoggerFactory.getLogger(getClass());
    private final String FANGXING=             "有运单未放行";

    /**x21指令判定
    * 传入gatherInfo,三大属性验证,二维码/车牌/过卡重量
     * 车辆备案实体
     * 从redis读取的申请表体实体
     * 适用于进口转关,进口提货业务类型
    */
    Boolean check(ExecuteParams executeParams) {
        try{
            GatherInfo gatherInfo = (GatherInfo) executeParams.get("GatherInfo");
            LandBusinessTypeList landBusinessTypeList = (LandBusinessTypeList) executeParams.get("ChanelFormInfo");
            List<LAND_BUSINEESTYPE_LIST_INFO> listinfos = (List<LAND_BUSINEESTYPE_LIST_INFO>) executeParams.get("ChanelFormBillLists");

            //3.车辆备案验证
            // 调用方法
            ApplicationContext context = getContext();
            // 获取容器中的bean
            GatherInfoHandle gatherInfoHandle = context.getBean(GatherInfoHandle.class);
            //重量校验算法
            ResMessageService resMessageService = context.getBean(ResMessageService.class);

            if (listinfos!=null && !listinfos.isEmpty() && resMessageService.checkManifestRelease(gatherInfo,listinfos)){
                return true;
            }else {
                //有运单未放行
                logger.error("[Release-check]-单证未通过校验:"+FANGXING+landBusinessTypeList.getMasterList());
                gatherInfoHandle.sendBw(gatherInfo,false,FANGXING,landBusinessTypeList,listinfos);
                return false;
            }
        }catch (Exception e){
            e.printStackTrace();
            logger.error("[Release-check-ERROR]:",e);
            return false;
        }
    }

    @Override
    Object run() {
        return null
    }

    // 获取spring容器
    ApplicationContext getContext() {
        // 获取spring IOC容器
        ApplicationContext context = applicationContext;
        return context;
    }
}