diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java index 3ac6e8c32..e14d29749 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java @@ -10,53 +10,52 @@ package com.xdadan.erp.emis.service.impl; -import java.awt.image.BufferedImage; -import java.io.*; -import java.math.BigDecimal; -import java.net.URLEncoder; -import java.text.DecimalFormat; -import java.util.*; + import cn.hutool.core.collection.CollectionUtil; + import com.alibaba.fastjson.JSONObject; + import com.deepoove.poi.XWPFTemplate; + import com.deepoove.poi.config.Configure; + import com.deepoove.poi.data.PictureType; + 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 cn.hutool.core.lang.Snowflake; -import cn.hutool.core.util.IdUtil; -import com.alibaba.fastjson.JSONObject; -import com.deepoove.poi.XWPFTemplate; -import com.deepoove.poi.config.Configure; -import com.deepoove.poi.data.PictureType; -import com.deepoove.poi.data.Pictures; -import com.deepoove.poi.plugin.table.LoopRowTableRenderPolicy; -import com.fasterxml.jackson.annotation.JsonFormat; -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; + import javax.servlet.http.HttpServletResponse; + import java.awt.image.BufferedImage; + import java.io.ByteArrayInputStream; + import java.io.ByteArrayOutputStream; + import java.io.InputStream; + import java.io.OutputStream; + import java.math.BigDecimal; + import java.net.URLEncoder; + import java.text.DecimalFormat; + import java.util.*; /** * 运单列表Service业务层处理 @@ -1520,6 +1519,35 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb EmisTransLine emisTransLine = getTransLineByCode(emisWaybillSave.getTransLineType()); emisWaybillSave.setMeterType(emisTransLine.getMeterRate()); + // 计算标准运费 + List 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()); emisWaybillSave.setTimeType(emisTransProduct.getAgingDesc()); @@ -1528,6 +1556,8 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb emisWaybillSave.setSendDate(new Date()); } + + // 开单当天不算时效 Date estDate = getEstimateDate( emisWaybillSave.getSendDate(),emisWaybillSave.getProductType(), @@ -1567,30 +1597,7 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb // 公共计算部分 calcWayBillCommonInfo(emisWaybillSave,true); - // 计算标准运费 - List 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);