ManifestSecondServiceImp.java 2.7 KB
package com.tianbo.analysis.service.imp;

import com.tianbo.analysis.dao.OriginmanifestsecondaryMapper;
import com.tianbo.analysis.model.FFMInfo;
import com.tianbo.analysis.model.Originmanifestsecondary;
import com.tianbo.analysis.service.ManifestSecondService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class ManifestSecondServiceImp implements ManifestSecondService {

    @Autowired
    OriginmanifestsecondaryMapper originmanifestsecondaryMapper;

    @Override
    public int setManifestMaster(FFMInfo ffm){

        int i =0;
        String isBatch = ffm.getIsbatch();
        isBatch = (isBatch == null) ? "" : isBatch;

        //未分批的分单 如果已经挂载到主单上就不挂载了,减少数据库操作压力
        if (isBatch.equals("T") || isBatch.equals("S")){

            //从分单表取属于此主单下的分单列表,更新主分单关系
            List<Originmanifestsecondary> list_seondary = originmanifestsecondaryMapper.selectByFWb(ffm.getWaybillnomaster());
            if (list_seondary != null && !list_seondary.isEmpty()){
                for (Originmanifestsecondary manifestsecondary : list_seondary) {

                    //分单的主单autoid
                    String masterAutoId = manifestsecondary.getOriginmanifestmasterautoid();
                    masterAutoId = (masterAutoId == null)? "" : masterAutoId ;

                    //如果分单没挂过主单 开始挂
                    if(masterAutoId.equals("0") || masterAutoId.equals("")){
                        i += setManifestSecondMasterAutoId(ffm,manifestsecondary);
                    }
                }
            }
        }
        //否则是分批标识的 要挂载到最新的航班的主单下
        if (isBatch.equals("D") || isBatch.equals("P") || isBatch.equals("M")){
            List<Originmanifestsecondary> list_seondary = originmanifestsecondaryMapper.selectByFWb(ffm.getWaybillnomaster());
            if (list_seondary != null && !list_seondary.isEmpty()){
                for (Originmanifestsecondary manifestsecondary : list_seondary) {
                     i += setManifestSecondMasterAutoId(ffm,manifestsecondary);
                }
            }
        }

        return i;
    }

    private int setManifestSecondMasterAutoId(FFMInfo ffm,Originmanifestsecondary manifestsecondary){

        Originmanifestsecondary  secondary =  new Originmanifestsecondary();
        secondary.setAutoid(manifestsecondary.getAutoid());
        secondary.setOriginmanifestmasterautoid(ffm.getAutoid());
        secondary.setCustomsstatus(ffm.getCustomsstatus());
        int i =originmanifestsecondaryMapper.updateMasterAutoId(secondary);
        return i;
    }
}