CoustomAnalysisServiceImp.java 5.2 KB
package com.tianbo.analysis.service.imp;

import com.tianbo.analysis.bean.SpringBeanUtitl;
import com.tianbo.analysis.dao.ORIGINMANIFESTMASTERMapper;
import com.tianbo.analysis.dao.OriginmanifestsecondaryMapper;
import com.tianbo.analysis.dao.SENDLOGMapper;
import com.tianbo.analysis.model.ORIGINMANIFESTMASTER;
import com.tianbo.analysis.model.Originmanifestsecondary;
import com.tianbo.analysis.model.SENDLOG;
import com.tianbo.analysis.service.CoustomAnalysisService;
import com.tianbo.analysis.model.NmmsBase;
import com.tianbo.util.Helper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author mrz
 * 原始回执解析
 */
@Service
@Slf4j
public class CoustomAnalysisServiceImp extends NmmsBase implements CoustomAnalysisService {

    @Resource
    SENDLOGMapper sendlogMapper;
    @Resource
    ORIGINMANIFESTMASTERMapper originmanifestmasterMapper;
    @Resource
    OriginmanifestsecondaryMapper originmanifestsecondaryMapper;

    public CoustomAnalysisServiceImp(){
//        //处理多线程时 springboot 无法注入bean的问题
//        if (this.sendlogMapper==null){
//            this.sendlogMapper = SpringBeanUtitl.getBean(SENDLOGMapper.class);
//        }
//        if (this.originmanifestmasterMapper==null){
//            this.originmanifestmasterMapper = SpringBeanUtitl.getBean(ORIGINMANIFESTMASTERMapper.class);
//        }
//        if (this.originmanifestsecondaryMapper==null){
//            this.originmanifestsecondaryMapper = SpringBeanUtitl.getBean(OriginmanifestsecondaryMapper.class);
//        }
    }

    @Override
    public int second() {
        // 设置分单回执
        Originmanifestsecondary originmanifestsecondary = new Originmanifestsecondary();
        originmanifestsecondary.setReceiption(reception);
        //设置主分单的 主单号
        originmanifestsecondary.setWaybillnomaster(awbA);
        //取分单号
        String[] awbhArr = awbH.split("_");
        String awbh = awbhArr[1];
        originmanifestsecondary.setWaybillnosecondary(awbh);
        originmanifestsecondary.setStatus(nmsStatusCode);
        //更新分单回执
        int i = originmanifestsecondaryMapper.updateRECEIPTION(originmanifestsecondary);
        //获取分单autoid
        List<Originmanifestsecondary> originmanifestsecondaryList = originmanifestsecondaryMapper.selectAutoIdByawbAawbH(originmanifestsecondary);
        if(!originmanifestsecondaryList.isEmpty()){
            Originmanifestsecondary originSecond = originmanifestsecondaryList.get(0);
            String autoId =  originSecond.getAutoid();
            //插入sendlog记录表
            log.info("即将插入日志运单号为:"+awbH+"->autoid="+autoId);
            int ii = insertSendlog("MT1201",reception,autoId);

            int iii = shareServiceImp.updateMessages(customReception);
            if (i>0 && ii>0){
                log.info("运单号 {} 原始回执更新成功",awbA);
                return 1;
            }
            if (iii > 0){
                return 1;
            }
        }
        return 0;
    }

    @Override
    public int master() {
        // 设置主单回执、航班号、航班日期
        ORIGINMANIFESTMASTER originmanifestmaster = new ORIGINMANIFESTMASTER();
        originmanifestmaster.setReceiptinformation(reception);
        originmanifestmaster.setFlightno(customReception.getFlightNo());
        originmanifestmaster.setFlightDate(flightDate);
        originmanifestmaster.setWaybillnomaster(awbA);
        originmanifestmaster.setStatus(nmsStatusCode);
        //更新主单回执
        int i = originmanifestmasterMapper.updateRECEIPTION(originmanifestmaster);
        //获取分单autoid
        List<ORIGINMANIFESTMASTER> originmanifestmasterList = originmanifestmasterMapper.selectAutoIdByAwb(originmanifestmaster);
        if(!originmanifestmasterList.isEmpty()){
            ORIGINMANIFESTMASTER originMaster = originmanifestmasterList.get(0);
            String autoId = originMaster.getAutoid();

            //插入sendlog记录表
            log.info("即将插入日志运单号为:"+awbA+"->autoid="+autoId);
            int ii =insertSendlog("MT1201",reception,autoId);

            int iii = shareServiceImp.updateMessages(customReception);
            if (i>0 && ii>0){
                log.info("运单号 {} 原始回执更新成功",awbA);
                return 1;
            }
            if (iii > 0){
                return 1;
            }
        }
        return 0;
    }

    public int insertSendlog(String type,String reception,String autoId){
        SENDLOG sendlog = new SENDLOG();
        sendlog.setAutoid(Helper.getUUID());
        sendlog.setCreatedate(new Date());
        sendlog.setMessageautoid(autoId);
        sendlog.setMessagetype(type);
        sendlog.setReceiption(reception);
        sendlog.setSendpeice(new Long(0));
        sendlog.setSendweight(new BigDecimal(0));


        int i = sendlogMapper.insertSelective(sendlog);
        if (i>0){
            log.info("插入日志成功,插入数据量为:"+i);
        }

        return i;
    }
}