md
This commit is contained in:
parent
eb33722b48
commit
f39dec00b8
@ -10,53 +10,52 @@
|
|||||||
|
|
||||||
package com.xdadan.erp.emis.service.impl;
|
package com.xdadan.erp.emis.service.impl;
|
||||||
|
|
||||||
import java.awt.image.BufferedImage;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import java.io.*;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import java.math.BigDecimal;
|
import com.deepoove.poi.XWPFTemplate;
|
||||||
import java.net.URLEncoder;
|
import com.deepoove.poi.config.Configure;
|
||||||
import java.text.DecimalFormat;
|
import com.deepoove.poi.data.PictureType;
|
||||||
import java.util.*;
|
import com.deepoove.poi.data.Pictures;
|
||||||
|
import com.deepoove.poi.plugin.table.LoopRowTableRenderPolicy;
|
||||||
|
import com.googlecode.aviator.AviatorEvaluator;
|
||||||
|
import com.xdadan.erp.common.core.domain.entity.SysUser;
|
||||||
|
import com.xdadan.erp.common.core.redis.RedissonService;
|
||||||
|
import com.xdadan.erp.common.utils.BarcodeUtils;
|
||||||
|
import com.xdadan.erp.common.utils.DateUtils;
|
||||||
|
import com.xdadan.erp.common.utils.DictUtils;
|
||||||
|
import com.xdadan.erp.common.utils.SecurityUtils;
|
||||||
|
import com.xdadan.erp.emis.domain.*;
|
||||||
|
import com.xdadan.erp.emis.domain.enumtype.*;
|
||||||
|
import com.xdadan.erp.emis.domain.exception.EmisBizError;
|
||||||
|
import com.xdadan.erp.emis.domain.vo.WaybillOrder;
|
||||||
|
import com.xdadan.erp.emis.domain.vo.scan.ScanInfo;
|
||||||
|
import com.xdadan.erp.emis.mapper.*;
|
||||||
|
import com.xdadan.erp.emis.service.EmisBaseService;
|
||||||
|
import com.xdadan.erp.emis.service.IEmisElectronicSitePagService;
|
||||||
|
import com.xdadan.erp.emis.service.IEmisTmsScanRecordService;
|
||||||
|
import com.xdadan.erp.emis.service.IEmisWaybillService;
|
||||||
|
import com.xdadan.erp.emis.service.warehouse.DocUtils;
|
||||||
|
import com.xdadan.erp.emis.utils.WaybillHelper;
|
||||||
|
import com.xdadan.erp.emis.utils.sensitive.Convert;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.io.IOUtils;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.core.io.ClassPathResource;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import cn.hutool.core.lang.Snowflake;
|
import java.awt.image.BufferedImage;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import java.io.ByteArrayInputStream;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import java.io.ByteArrayOutputStream;
|
||||||
import com.deepoove.poi.XWPFTemplate;
|
import java.io.InputStream;
|
||||||
import com.deepoove.poi.config.Configure;
|
import java.io.OutputStream;
|
||||||
import com.deepoove.poi.data.PictureType;
|
import java.math.BigDecimal;
|
||||||
import com.deepoove.poi.data.Pictures;
|
import java.net.URLEncoder;
|
||||||
import com.deepoove.poi.plugin.table.LoopRowTableRenderPolicy;
|
import java.text.DecimalFormat;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import java.util.*;
|
||||||
import com.googlecode.aviator.AviatorEvaluator;
|
|
||||||
import com.xdadan.erp.common.annotation.audit.DataAuditFilter;
|
|
||||||
import com.xdadan.erp.common.core.domain.AjaxResult;
|
|
||||||
import com.xdadan.erp.common.core.domain.entity.SysUser;
|
|
||||||
import com.xdadan.erp.common.core.redis.RedissonService;
|
|
||||||
import com.xdadan.erp.common.utils.BarcodeUtils;
|
|
||||||
import com.xdadan.erp.common.utils.DateUtils;
|
|
||||||
import com.xdadan.erp.common.utils.DictUtils;
|
|
||||||
import com.xdadan.erp.common.utils.SecurityUtils;
|
|
||||||
import com.xdadan.erp.emis.domain.*;
|
|
||||||
import com.xdadan.erp.emis.domain.enumtype.*;
|
|
||||||
import com.xdadan.erp.emis.domain.exception.EmisBizError;
|
|
||||||
import com.xdadan.erp.emis.domain.vo.*;
|
|
||||||
import com.xdadan.erp.emis.domain.vo.scan.ScanInfo;
|
|
||||||
import com.xdadan.erp.emis.mapper.*;
|
|
||||||
import com.xdadan.erp.emis.service.*;
|
|
||||||
import com.xdadan.erp.emis.service.warehouse.DocUtils;
|
|
||||||
import com.xdadan.erp.emis.utils.WaybillHelper;
|
|
||||||
import com.xdadan.erp.emis.utils.sensitive.Convert;
|
|
||||||
import com.xdadan.erp.system.service.ISysUserService;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.apache.commons.io.IOUtils;
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.core.io.ClassPathResource;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
import org.springframework.util.CollectionUtils;
|
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 运单列表Service业务层处理
|
* 运单列表Service业务层处理
|
||||||
@ -1520,6 +1519,35 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb
|
|||||||
EmisTransLine emisTransLine = getTransLineByCode(emisWaybillSave.getTransLineType());
|
EmisTransLine emisTransLine = getTransLineByCode(emisWaybillSave.getTransLineType());
|
||||||
emisWaybillSave.setMeterType(emisTransLine.getMeterRate());
|
emisWaybillSave.setMeterType(emisTransLine.getMeterRate());
|
||||||
|
|
||||||
|
// 计算标准运费
|
||||||
|
List<EmisWaybillFeeitem> feeitemList=emisWaybillSave.getFeeitemList();
|
||||||
|
BigDecimal totalRealFee = BigDecimal.ZERO;
|
||||||
|
if(!CollectionUtils.isEmpty(feeitemList)){
|
||||||
|
for (EmisWaybillFeeitem feeItem:feeitemList) {
|
||||||
|
|
||||||
|
BigDecimal realFee = feeItem.getFee();
|
||||||
|
// 汇率计算
|
||||||
|
if( !StringUtils.isEmpty(feeItem.getCurrency()) ){
|
||||||
|
EmisExchangeRate emisExchangeRate=emisExchangeRateMapper.getValidExchangeRate(feeItem.getCurrency(),"CNY");
|
||||||
|
|
||||||
|
if(emisExchangeRate!=null){
|
||||||
|
BigDecimal rate=BigDecimal.valueOf(Double.valueOf(emisExchangeRate.getRate()));
|
||||||
|
realFee=realFee.multiply(rate);
|
||||||
|
realFee=realFee.setScale(2,BigDecimal.ROUND_HALF_UP);
|
||||||
|
}
|
||||||
|
// 汇率查不到的情况就不计算
|
||||||
|
else{
|
||||||
|
// realFee=BigDecimal.ZERO;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
totalRealFee=totalRealFee.add(realFee);
|
||||||
|
}
|
||||||
|
|
||||||
|
totalRealFee=totalRealFee.setScale(2,BigDecimal.ROUND_HALF_UP);
|
||||||
|
emisWaybillSave.setRealFee(totalRealFee);
|
||||||
|
}
|
||||||
|
|
||||||
// 时效
|
// 时效
|
||||||
EmisTransProduct emisTransProduct = getTransProductByCode(emisWaybillSave.getProductType());
|
EmisTransProduct emisTransProduct = getTransProductByCode(emisWaybillSave.getProductType());
|
||||||
emisWaybillSave.setTimeType(emisTransProduct.getAgingDesc());
|
emisWaybillSave.setTimeType(emisTransProduct.getAgingDesc());
|
||||||
@ -1528,6 +1556,8 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb
|
|||||||
emisWaybillSave.setSendDate(new Date());
|
emisWaybillSave.setSendDate(new Date());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 开单当天不算时效
|
// 开单当天不算时效
|
||||||
Date estDate = getEstimateDate(
|
Date estDate = getEstimateDate(
|
||||||
emisWaybillSave.getSendDate(),emisWaybillSave.getProductType(),
|
emisWaybillSave.getSendDate(),emisWaybillSave.getProductType(),
|
||||||
@ -1567,30 +1597,7 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb
|
|||||||
// 公共计算部分
|
// 公共计算部分
|
||||||
calcWayBillCommonInfo(emisWaybillSave,true);
|
calcWayBillCommonInfo(emisWaybillSave,true);
|
||||||
|
|
||||||
// 计算标准运费
|
|
||||||
List<EmisWaybillFeeitem> feeitemList=emisWaybillSave.getFeeitemList();
|
|
||||||
BigDecimal totalRealFee = BigDecimal.ZERO;
|
|
||||||
if(!CollectionUtils.isEmpty(feeitemList)){
|
|
||||||
for (EmisWaybillFeeitem feeItem:feeitemList) {
|
|
||||||
|
|
||||||
BigDecimal realFee = feeItem.getFee();
|
|
||||||
|
|
||||||
// 汇率计算
|
|
||||||
if( !StringUtils.isEmpty(feeItem.getCurrency()) ){
|
|
||||||
EmisExchangeRate emisExchangeRate=emisExchangeRateMapper.getValidExchangeRate(feeItem.getCurrency(),"CNY");
|
|
||||||
if(emisExchangeRate!=null){
|
|
||||||
BigDecimal rate=BigDecimal.valueOf(Double.valueOf(emisExchangeRate.getRate()));
|
|
||||||
realFee=realFee.multiply(rate);
|
|
||||||
realFee=realFee.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
totalRealFee=totalRealFee.add(realFee);
|
|
||||||
}
|
|
||||||
|
|
||||||
totalRealFee=totalRealFee.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
||||||
emisWaybillSave.setRealFee(totalRealFee);
|
|
||||||
}
|
|
||||||
|
|
||||||
//补齐数据
|
//补齐数据
|
||||||
emisWaybillMapper.insertEmisWaybill(emisWaybillSave);
|
emisWaybillMapper.insertEmisWaybill(emisWaybillSave);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user