BasfService.java 3.77 KB
package com.erry.iclear.dateInterface.service;

import com.erry.iclear.dateInterface.api.request.*;
import com.erry.iclear.dateInterface.repository.BasfMawbRepository;
import com.erry.iclear.dateInterface.util.NumberUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

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

/**
 * @author Administrator
 */
@Service
@Slf4j
public class BasfService {
    @Autowired
    private BasfMawbRepository basfMawbRepository;

    /**
     * 保存主单Request --basfc
     * @param basfc
     */
    public BasfMawb saveMawbBasf(Basfc basfc){
        BasfMawb result=null;
        try{
            log.info("saveMawb start>>>>>>>>>>>");
            //运单头部信息
            BasfMawb basfMawb = new BasfMawb();
            basfMawb.setAppId(basfc.getAppId());
            basfMawb.setMsgId(basfc.getMsgId());
            basfMawb.setConsignmentCodeId(basfc.getConsignmentId());
            basfMawb.setType(basfc.getConsType());
            //TODO 记录时为同一张表,用 '-->' 记录具体存放字段(方便查看,以免误解)
            //运单号-->提单号
            basfMawb.setBillNo(basfc.getConsignmentCode());
            //经营单位 --> 消费使用/生产销售单位名称
            basfMawb.setOwnerName(basfc.getOperateUnitName());
            //经营单位海关编码 --> 消费使用/生产销售单位代码
            basfMawb.setOwnerCode(basfc.getOperateUnitCode());
            //经营单位社会信用证代码 --> 消费使用/生产销售单位单位统一编码
            basfMawb.setOwnerCodeScc(basfc.getOperateSCC());
            //发件人 --> 境内收发货人名称
            basfMawb.setTradeName(basfc.getSender());
            //发件人海关编码 --> 境内收发货人编号
            basfMawb.setTradeCode(basfc.getShipperCustomsCode());
            //发件人社会信用证代码 --> 生产核销单位统一信用代码---报关形式类型
            basfMawb.setTradeCodeScc(basfc.getShipperSCC());

            basfMawb.setEANNo(basfc.getEANNo());
            //明细
            List<MawbDetail> mawbDetailList = new ArrayList<>();
            if (basfc.getBasfcDetailList().size()>0){
                for (BasfcDetail basfcDetail : basfc.getBasfcDetailList()){
                    MawbDetail mawbDetail = new MawbDetail();
                    mawbDetail.setDetailId(basfcDetail.getConsignmentDetailId());
                    mawbDetail.setGmodel(basfcDetail.getModel());
                    mawbDetail.setCodeTS(basfcDetail.getSkuCode());
                    mawbDetail.setGname(basfcDetail.getSkuName());
                    mawbDetail.setGqty(basfcDetail.getKnockdownNumber());
                    mawbDetail.setGunit(basfcDetail.getKnockdownUnit());
                    mawbDetail.setFirstUnit(basfcDetail.getUnitLegalFirst());
                    mawbDetail.setFirstQty(NumberUtils.bigDecimalToIntger(basfcDetail.getQtyLegalFirst()));
                    mawbDetail.setSecondQty(NumberUtils.bigDecimalToIntger(basfcDetail.getQtyLegalSecond()));
                    mawbDetail.setSecondUnit(basfcDetail.getUnitLegalSecond());
                    mawbDetail.setDeclTotal(basfcDetail.getDeclaredAmount());
                    mawbDetail.setTradeCurr(basfcDetail.getCurrency());
                    mawbDetail.setDeclaredWeight(basfcDetail.getDeclaredWeight());
                    mawbDetailList.add(mawbDetail);
                }
            }
            basfMawb.setMawbDetailList(mawbDetailList);
            result = basfMawbRepository.save(basfMawb);
            log.info("saveMawb end>>>>>>>>>>>");
        }catch (Exception e){
            log.error("saveMawb() error:"+e.getMessage());
        }
        return result;
    }
}