ARRIVEDMASTERServiceImp.java 5.5 KB
package com.tianbo.analysis.service.imp;

import com.tianbo.analysis.dao.ARRIVEDMASTERMapper;
import com.tianbo.analysis.dao.ARRIVEDSECONDARYMapper;
import com.tianbo.analysis.model.ARRIVEDMASTER;
import com.tianbo.analysis.model.ARRIVEDSECONDARY;
import com.tianbo.analysis.model.CustomReception;
import com.tianbo.analysis.service.ARRIVEDMASTERService;
import com.tianbo.analysis.tools.AWBTools;
import com.tianbo.util.Date.DateUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;

/**
 * @Auther: shenhl
 * @Date: 2019/8/23 15:02
 */
@Service
@Slf4j
public class ARRIVEDMASTERServiceImp implements ARRIVEDMASTERService {


    @Autowired
    ARRIVEDMASTERMapper arrivedmasterMapper;

    @Autowired
    ARRIVEDSECONDARYMapper arrivedsecondaryMapper;


    @Override
    // 货物接收运抵主分单
    public int insertRecept(CustomReception customReception) {

        ShareServiceImp shareServiceImp = new ShareServiceImp();

        // 发送日志 插入
        CoustomAnalysisServiceImp coustomAnalysisServiceImp = new CoustomAnalysisServiceImp();

        // 主单号
        String awbA = customReception.getWayBillMaster();
        String awbH = customReception.getWayBillSecond();
        //回执内容
        String reception = customReception.getResponseText();
        String flightDateStr = customReception.getFlightDate();

        if (!StringUtils.isEmpty(flightDateStr)) {
            Date flightDate = DateUtil.formatByyyyyMMdd(flightDateStr);

            // 设置 接收运抵分单  回执
            ARRIVEDSECONDARY arrivedsecondary = new ARRIVEDSECONDARY();
            arrivedsecondary.setReceiption(reception);

            //设置主单回执、航班号、航班日期
            ARRIVEDMASTER arrivedmaster = new ARRIVEDMASTER();
            arrivedmaster.setReceiptinformation(reception);
            //拆分航班号和承运人
            String[] flightInfo = AWBTools.splitFlight(customReception.getFlightNo());
            arrivedmaster.setFlightno(flightInfo[1]);
            arrivedmaster.setCarrier(flightInfo[0]);
            arrivedmaster.setFlightDate(flightDate);

            // 判断航班号 航班日期  是否为空
            if (flightDate != null && customReception.getFlightNo() != null){
                    //处理主单格式,将海关回执的主单号58019316861,变为580-19316861
                    awbA = AWBTools.awbFormat(awbA);

                    //设置主分单的 主单号
                    arrivedsecondary.setWaybillnomaster(awbA);
                    arrivedmaster.setWaybillnomaster(awbA);


                //有分单号 更新分单回执
                if(awbA!=null && !awbA.isEmpty() && awbH!=null && !awbH.isEmpty()){
                    //取分单号
                    String[] awbhArr = awbH.split("_");
                    String awbh = awbhArr[1];
                    arrivedsecondary.setWaybillnosecondary(awbh);
                    //更新分单回执
                    int i = arrivedsecondaryMapper.updateRECEIPTION(arrivedsecondary);
                    //获取分单autoid
                    List<ARRIVEDSECONDARY> arrivedsecondaryList = arrivedsecondaryMapper.selectAutoIdByawbAawbH(arrivedsecondary);
                    if(!arrivedsecondaryList.isEmpty()){
                        ARRIVEDSECONDARY arrivedSecond = arrivedsecondaryList.get(0);
                        String autoId =  arrivedSecond.getAutoid();
                        //插入sendlog记录表
                        log.info("即将插入日志运单号为:"+awbH+"->autoid="+autoId);
                        int ii = coustomAnalysisServiceImp.insertSendlog("MT3201",reception,autoId);

                        int iii = shareServiceImp.updateMessages(customReception);
                        if (i>0 && ii>0 ){
                            return 1;
                        }
                        if ( iii > 0){
                            return 1;
                        }
                    }
                    return 0;
                }


                if (awbA!=null && awbA.length()>0){
                    //更新主单回执
                    int i = arrivedmasterMapper.updateRECEIPTION(arrivedmaster);
                    //获取分单autoid
                    List<ARRIVEDMASTER> arrivedmasterList = arrivedmasterMapper.selectAutoIdByAwb(arrivedmaster);
                    if(!arrivedmasterList.isEmpty()){
                        ARRIVEDMASTER originMaster = arrivedmasterList.get(0);
                        String autoId = originMaster.getAutoid();

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

                        int iii = shareServiceImp.updateMessages(customReception);

                        if (i>0 && ii>0){
                            return 1;
                        }
                        if ( iii > 0){
                            return 1;
                        }

                    }
                    return 0;
                }
            }else {
                //从发送日志表查找发送MESSAGEID进行二次入库
                return shareServiceImp.share("MT3201", customReception);
            }
        }

        //未进入主分单解析 返回0 失败
        return 0;
    }


}