TALLYMASTERServiceImp.java 3.8 KB
package com.tianbo.analysis.service.imp;

import com.tianbo.analysis.dao.TALLYMASTERMapper;
import com.tianbo.analysis.dao.TALLYSECONDARYMapper;
import com.tianbo.analysis.model.TALLYMASTER;
import com.tianbo.analysis.model.TALLYSECONDARY;
import com.tianbo.analysis.model.NmmsBase;
import com.tianbo.analysis.service.TALLYMASTERService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 进出港理货回执解析入库
 * @Auther: shenhl
 * @Date: 2019/8/23 17:17
 */

@Service
@Slf4j
@Async
public class TALLYMASTERServiceImp extends NmmsBase implements TALLYMASTERService{

    @Autowired
    TALLYMASTERMapper tallymasterMapper;

    @Autowired
    TALLYSECONDARYMapper tallysecondaryMapper;

    /**
     * 入库主单回执信息
     * @return 成功返回1,失败返回0。
     */
    @Override
    public int master(){
        String mt = customReception.getMessageType();
        //设置进出港理货回执、航班号、航班日期
        TALLYMASTER tallymaster = new TALLYMASTER();
        tallymaster.setWaybillnomaster(awbA);
        tallymaster.setReceiptinformation(reception);
        tallymaster.setFlightno(customReception.getFlightNo());
        tallymaster.setFlightdate(flightDate);
        tallymaster.setTalltype(mt);
        tallymaster.setStatus(nmsStatusCode);
        //更新主单回执
        int i = tallymasterMapper.updateRECEIPTION(tallymaster);
        //获取主单autoid
        List<TALLYMASTER> arrivedmasterList = tallymasterMapper.selectAutoIdByAwb(tallymaster);
        if(!arrivedmasterList.isEmpty()){
            TALLYMASTER originMaster = arrivedmasterList.get(0);
            String autoId = originMaster.getAutoid();

            int ii =coustomAnalysisServiceImp.insertSendlog(mt,reception,autoId);

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

    /**
     * 入库分单回执信息
     * @return 成功返回1,失败返回0。
     */
    @Override
    public int second(){
        TALLYSECONDARY tallysecondary = new TALLYSECONDARY();
        tallysecondary.setReceiptinformation(reception);
        tallysecondary.setStatus(nmsStatusCode);
        //设置主分单的 主单号
        tallysecondary.setWaybillnomaster(awbA);
        log.info("开始解析主单的{}分单{}",awbA,awbH);
        //取分单号
        String[] awbhArr = awbH.split("_");
        String awbh = awbhArr[1];
        tallysecondary.setWaybillnosecondary(awbh);
        //更新分单回执
        int i = tallysecondaryMapper.updateRECEIPTION(tallysecondary);
        //获取分单autoid
        List<TALLYSECONDARY> tallysecondaryList = tallysecondaryMapper.selectAutoIdByawbAawbH(tallysecondary);

        if(!tallysecondaryList.isEmpty()){
            TALLYSECONDARY arrivedSecond = tallysecondaryList.get(0);
            String autoId =  arrivedSecond.getAutoid();
            //插入sendlog记录表
            log.info("即将插入理货分单回执,运单号为:{},autoid:{}",awbH,autoId);
            int ii = coustomAnalysisServiceImp.insertSendlog(customReception.getMessageType(),reception,autoId);

            //通过messageid适配发送日志表并更新
            int iii = shareServiceImp.updateMessages(customReception);
            if (i>0 && ii>0){
                log.info("运单号 {} 理货回执更新成功",awbH);
                return 1;
            }
            if (iii > 0){
                return 1;
            }

        }
        return 0;
    }
}