FedexConsignmentService.java 4.1 KB
package com.erry.iclear.dateInterface.service;

import com.erry.iclear.dateInterface.api.request.FedexConsignment;
import com.erry.iclear.dateInterface.api.request.ConsignmentDetail;
import com.erry.iclear.dateInterface.entity.DeclaredInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

@Service
@Slf4j
public class FedexConsignmentService {



    public List<FedexConsignment> fedexConsignmentList(List<DeclaredInfo> consignment){
        List<FedexConsignment> fedexConsignmentList = new ArrayList<>();
        try{
            if(consignment.size()>0){
                String consignmentCode = null;

                List<ConsignmentDetail> consignmentDetails = new ArrayList<>();
                FedexConsignment fedexConsignment = new FedexConsignment();
                for (DeclaredInfo declaredInfo : consignment){
                    if(!declaredInfo.getConsignmentCode().equals(consignmentCode)) {
                        if(consignmentCode != null){
                            fedexConsignment.setConsignmentList(consignmentDetails);
                            consignmentDetails = new ArrayList<>();
                            fedexConsignmentList.add(fedexConsignment);
                            fedexConsignment = new FedexConsignment();
                        }
                        consignmentCode = declaredInfo.getConsignmentCode();
                        fedexConsignment.setConsignmentCode(declaredInfo.getConsignmentCode());
                        fedexConsignment.setConsignmentId(declaredInfo.getConsignmentId());
                        fedexConsignment.setConsType(declaredInfo.getConsType());
                        fedexConsignment.setOperateUnitName(declaredInfo.getOperateUnitName());
                        fedexConsignment.setOperateUnitCode(declaredInfo.getOperateUnitCode());
                        fedexConsignment.setOperateSCC(declaredInfo.getTradeCoSCC());
                        fedexConsignment.setSender(declaredInfo.getSender());
                        fedexConsignment.setShipperCustomsCode(declaredInfo.getOwnerCode());
                        fedexConsignment.setShipperSCC(declaredInfo.getOwnerCodeScc());
                    }
                    ConsignmentDetail consignmentDetail = new ConsignmentDetail();
                    consignmentDetail.setSkuCode(declaredInfo.getSkuCode());
                    consignmentDetail.setSkuName(declaredInfo.getModel().substring(declaredInfo.getModel().indexOf(":")+1,declaredInfo.getModel().indexOf("|")));
                    String[] models = declaredInfo.getModel().split("\\|");
                    String mdoel = "";
                    for(int i = 1; i < models.length; i++){
                        mdoel += models[i].substring(models[i].indexOf(":")+1)+"|";
                    }
                    consignmentDetail.setModel(mdoel);
                    consignmentDetail.setKnockdownNumber(declaredInfo.getKnockdownNumber());
                    consignmentDetail.setKnockdownUnit(declaredInfo.getKnockdownUnitDic().getExt2());
                    consignmentDetail.setQtyLegalFirst(declaredInfo.getQtyLegalFirst());
                    consignmentDetail.setUnitLegalFirst(declaredInfo.getUnitLegalFirstDic().getExt2());
                    consignmentDetail.setQtyLegalSecond(declaredInfo.getQtyLegalSecond());
                    consignmentDetail.setUnitLegalSecond(declaredInfo.getUnitLegalSecondDic() == null ? null : declaredInfo.getUnitLegalSecondDic().getExt2());
                    consignmentDetail.setDeclaredAmount(declaredInfo.getDeclaredAmount());
                    consignmentDetail.setCurrency(declaredInfo.getCurrencyDic().getExt2());
                    consignmentDetail.setDeclaredWeight(declaredInfo.getDeclaredWeight());
                    consignmentDetails.add(consignmentDetail);
                }
                fedexConsignment.setConsignmentList(consignmentDetails);
                fedexConsignmentList.add(fedexConsignment);
            }
        }catch (Exception e){
            log.error(e.getMessage(),e);
        }
        return fedexConsignmentList;
    }
}