BasfConsignmentService.java 4.03 KB
package com.erry.iclear.dateInterface.service;

import com.erry.iclear.dateInterface.api.request.BasfConsignment;
import com.erry.iclear.dateInterface.api.request.ConsignmentDetail;
import com.erry.iclear.dateInterface.entity.DeclaredInfo;
import org.springframework.stereotype.Service;

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

@Service
public class BasfConsignmentService {

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

                List<ConsignmentDetail> consignmentDetails = new ArrayList<>();
                BasfConsignment basfConsignment = new BasfConsignment();
                for (DeclaredInfo declaredInfo : consignment){
                    if(!declaredInfo.getConsignmentCode().equals(consignmentCode)) {
                        if(consignmentCode != null){
                            basfConsignment.setConsignmentList(consignmentDetails);
                            consignmentDetails = new ArrayList<>();
                            basfConsignmentList.add(basfConsignment);
                            basfConsignment = new BasfConsignment();
                        }
                        consignmentCode = declaredInfo.getConsignmentCode();
                        basfConsignment.setConsignmentCode(declaredInfo.getConsignmentCode());
                        basfConsignment.setConsignmentId(declaredInfo.getConsignmentId());
                        basfConsignment.setConsType(declaredInfo.getConsType());
                        basfConsignment.setOperateUnitName(declaredInfo.getOperateUnitName());
                        basfConsignment.setOperateUnitCode(declaredInfo.getOperateUnitCode());
                        basfConsignment.setOperateSCC(declaredInfo.getTradeCoSCC());
                        basfConsignment.setSender(declaredInfo.getSender());
                        basfConsignment.setShipperCustomsCode(declaredInfo.getOwnerCode());
                        basfConsignment.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);
                }
                basfConsignment.setConsignmentList(consignmentDetails);
                basfConsignmentList.add(basfConsignment);
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        return basfConsignmentList;
    }
}