fix(sales): 修复销售订单和退货订单的金额计算逻辑- 优化了税率计算方法,确保精度准确

- 修复了邮费金额计算的逻辑错误- 优化了优惠金额分摊的处理逻辑
- 调整了测试代码中的参数
This commit is contained in:
liuy 2024-10-24 19:09:16 +08:00
parent 68e1e47828
commit 5942ccab20
7 changed files with 67 additions and 37 deletions

View File

@ -768,7 +768,7 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity {
//根据存货基础档案编码查询当前存货的税率 //根据存货基础档案编码查询当前存货的税率
BdTaxitemsEntity bdTaxitemsEntity1 = queryBdTaxitems(bdInvbasdocEntity.getInvcode()); BdTaxitemsEntity bdTaxitemsEntity1 = queryBdTaxitems(bdInvbasdocEntity.getInvcode());
String tax = "0." + new BigDecimal(bdTaxitemsEntity1.getTaxratio()).stripTrailingZeros().toPlainString(); String tax = new BigDecimal(bdTaxitemsEntity1.getTaxratio()).divide(new BigDecimal(100), 20, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString();
// 如果是海外的店铺则税率为零 // 如果是海外的店铺则税率为零
String exportVaue = ExportConstant.exportConstant.get(header.getStoreCode()); String exportVaue = ExportConstant.exportConstant.get(header.getStoreCode());
@ -1002,7 +1002,7 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity {
// memberId = "9387"; // memberId = "9387";
Assert.notNull(memberId, "TOB销售订单(OFS)表头会员id不能为空否则无法匹配U8C客商档案"); Assert.notNull(memberId, "TOB销售订单(OFS)表头会员id不能为空否则无法匹配U8C客商档案");
Assert.state(!"".equals(memberId.trim()), "TOB销售订单(OFS)表头会员id不能为空否则无法匹配U8C客商档案"); Assert.state(!"".equals(memberId.trim()), "TOB销售订单(OFS)表头会员id不能为空否则无法匹配U8C客商档案");
//如果没有O单据名称则默认为销售 //如果没有O单据名称则默认为销售
if (header2.getSubOrderType() == null || "".equals(header2.getSubOrderType().trim())) { if (header2.getSubOrderType() == null || "".equals(header2.getSubOrderType().trim())) {
header2.setSubOrderType("SALES"); header2.setSubOrderType("SALES");

View File

@ -867,7 +867,8 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
// BdInvclEntity bdInvclEntity = queryU8CEntityUtil.queryBdInvbasdocByBdInvcl(bdInvbasdocEntity); // BdInvclEntity bdInvclEntity = queryU8CEntityUtil.queryBdInvbasdocByBdInvcl(bdInvbasdocEntity);
// BdCostsubjEntity bdCostsubjEntity = queryU8CEntityUtil.queryBdCostsubj(bdInvclEntity); // BdCostsubjEntity bdCostsubjEntity = queryU8CEntityUtil.queryBdCostsubj(bdInvclEntity);
String tax = "0." + new BigDecimal(bdTaxitemsEntity1.getTaxratio()).stripTrailingZeros().toPlainString(); String tax = new BigDecimal(bdTaxitemsEntity1.getTaxratio()).divide(new BigDecimal(100), 20, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString();
BigDecimal noriginalcurprice = null;//无税单价 BigDecimal noriginalcurprice = null;//无税单价
BigDecimal noriginalcurmny = null;//无税金额 BigDecimal noriginalcurmny = null;//无税金额
BigDecimal noriginalcurtaxprice = null;//含税单价 BigDecimal noriginalcurtaxprice = null;//含税单价
@ -939,12 +940,15 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
} else { } else {
saleorderRequestChildrenDto.setVdef7("0"); saleorderRequestChildrenDto.setVdef7("0");
} }
saleorderRequestChildrenDtoList.add(saleorderRequestChildrenDto);
//判断是否增加邮费这个存货accumulatedPostage //判断是否增加邮费这个存货accumulatedPostage
BigDecimal accumulatedPostage = checkPostageFee(oldValue); BigDecimal accumulatedPostage = checkPostageFee(oldValue);
//测试测试
accumulatedPostage = new BigDecimal("6");
if (accumulatedPostage != null && accumulatedPostage.compareTo(BigDecimal.ZERO) > 0) { if (accumulatedPostage != null && accumulatedPostage.compareTo(BigDecimal.ZERO) > 0) {
//获取平台运维对应的税率 //获取平台运维对应的税率
String tax2 = "0." + new BigDecimal(bdTaxitemsEntity.getTaxratio()).stripTrailingZeros().toPlainString(); String tax2 = new BigDecimal(bdTaxitemsEntity.getTaxratio()).divide(new BigDecimal(100), 20, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString();
BigDecimal noriginalcurprice2 = null;//无税单价 BigDecimal noriginalcurprice2 = null;//无税单价
BigDecimal noriginalcurmny2 = null;//无税金额 BigDecimal noriginalcurmny2 = null;//无税金额
BigDecimal noriginalcurtaxprice2 = null;//含税单价 BigDecimal noriginalcurtaxprice2 = null;//含税单价
@ -953,10 +957,10 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
try { try {
//邮费的汇总金额但是数量永远为1 //邮费的汇总金额但是数量永远为1
noriginalcurtaxprice2 = accumulatedPostage.setScale(2, BigDecimal.ROUND_HALF_UP); noriginalcurtaxprice2 = accumulatedPostage.setScale(2, BigDecimal.ROUND_HALF_UP);
noriginalcurprice2 = noriginalcurtaxprice.divide(new BigDecimal(1).add(new BigDecimal(tax2)), 20, BigDecimal.ROUND_HALF_UP).setScale(4, BigDecimal.ROUND_HALF_UP); noriginalcurprice2 = noriginalcurtaxprice2.divide(new BigDecimal(1).add(new BigDecimal(tax2)), 20, BigDecimal.ROUND_HALF_UP).setScale(4, BigDecimal.ROUND_HALF_UP);
noriginalcurmny2 = noriginalcurprice.multiply(new BigDecimal("1")).setScale(2, BigDecimal.ROUND_HALF_UP); noriginalcurmny2 = noriginalcurprice2.multiply(new BigDecimal("1")).setScale(2, BigDecimal.ROUND_HALF_UP);
noriginalcursummny2 = noriginalcurtaxprice.multiply(new BigDecimal("1")).setScale(2, BigDecimal.ROUND_HALF_UP); noriginalcursummny2 = noriginalcurtaxprice2.multiply(new BigDecimal("1")).setScale(2, BigDecimal.ROUND_HALF_UP);
noriginalcurtaxmny2 = noriginalcursummny.subtract(noriginalcurmny).setScale(2, BigDecimal.ROUND_HALF_UP); noriginalcurtaxmny2 = noriginalcursummny2.subtract(noriginalcurmny2).setScale(2, BigDecimal.ROUND_HALF_UP);
} catch (Exception e) { } catch (Exception e) {
logger.error("邮费TOC金额计算错误", e); logger.error("邮费TOC金额计算错误", e);
Assert.state(false, "邮费TOC金额计算错误原因{}" + e.getMessage()); Assert.state(false, "邮费TOC金额计算错误原因{}" + e.getMessage());
@ -993,7 +997,6 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
saleorderRequestChildrenDto2.setVdef7("0"); saleorderRequestChildrenDto2.setVdef7("0");
saleorderRequestChildrenDtoList.add(saleorderRequestChildrenDto2); saleorderRequestChildrenDtoList.add(saleorderRequestChildrenDto2);
} }
saleorderRequestChildrenDtoList.add(saleorderRequestChildrenDto);
//销售订单单据推送到u8c //销售订单单据推送到u8c
List<SaleorderRequestDto> saleorderRequestDtoList = new ArrayList<>(); List<SaleorderRequestDto> saleorderRequestDtoList = new ArrayList<>();
@ -1080,6 +1083,8 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
if (header != null && header.getCode() != null) { if (header != null && header.getCode() != null) {
code = header.getCode(); code = header.getCode();
} }
//测试
// header.setTradeSuccessAt("2024-10-24 14:46:28");
if (header != null && header.getTradeSuccessAt() != null) { if (header != null && header.getTradeSuccessAt() != null) {
//TOC以出库日期作为业务日期 //TOC以出库日期作为业务日期
String tradeSuccessAt = header.getTradeSuccessAt(); String tradeSuccessAt = header.getTradeSuccessAt();
@ -1805,7 +1810,8 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
// BdInvclEntity bdInvclEntity = queryU8CEntityUtil.queryBdInvbasdocByBdInvcl(bdInvbasdocEntity); // BdInvclEntity bdInvclEntity = queryU8CEntityUtil.queryBdInvbasdocByBdInvcl(bdInvbasdocEntity);
// BdCostsubjEntity bdCostsubjEntity = queryU8CEntityUtil.queryBdCostsubj(bdInvclEntity); // BdCostsubjEntity bdCostsubjEntity = queryU8CEntityUtil.queryBdCostsubj(bdInvclEntity);
String tax = "0." + new BigDecimal(bdTaxitemsEntity1.getTaxratio()).stripTrailingZeros().toPlainString(); String tax = new BigDecimal(bdTaxitemsEntity1.getTaxratio()).divide(new BigDecimal(100), 20, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString();
BigDecimal noriginalcurprice = null;//无税单价 BigDecimal noriginalcurprice = null;//无税单价
BigDecimal noriginalcurmny = null;//无税金额 BigDecimal noriginalcurmny = null;//无税金额
BigDecimal noriginalcurtaxprice = null;//含税单价 BigDecimal noriginalcurtaxprice = null;//含税单价
@ -1881,6 +1887,8 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
//判断是否增加邮费这个存货accumulatedPostage //判断是否增加邮费这个存货accumulatedPostage
BigDecimal accumulatedPostage = checkPostageFee(oldValue); BigDecimal accumulatedPostage = checkPostageFee(oldValue);
//测试
// accumulatedPostage = new BigDecimal("6");
if (accumulatedPostage != null && accumulatedPostage.compareTo(BigDecimal.ZERO) > 0) { if (accumulatedPostage != null && accumulatedPostage.compareTo(BigDecimal.ZERO) > 0) {
//获取平台运维对应的税率 //获取平台运维对应的税率
String tax2 = "0." + new BigDecimal(bdTaxitemsEntity.getTaxratio()).stripTrailingZeros().toPlainString(); String tax2 = "0." + new BigDecimal(bdTaxitemsEntity.getTaxratio()).stripTrailingZeros().toPlainString();
@ -1892,10 +1900,10 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
try { try {
//邮费的汇总金额但是数量永远为1 //邮费的汇总金额但是数量永远为1
noriginalcurtaxprice2 = accumulatedPostage.setScale(2, BigDecimal.ROUND_HALF_UP); noriginalcurtaxprice2 = accumulatedPostage.setScale(2, BigDecimal.ROUND_HALF_UP);
noriginalcurprice2 = noriginalcurtaxprice.divide(new BigDecimal(1).add(new BigDecimal(tax2)), 20, BigDecimal.ROUND_HALF_UP).setScale(4, BigDecimal.ROUND_HALF_UP); noriginalcurprice2 = noriginalcurtaxprice2.divide(new BigDecimal(1).add(new BigDecimal(tax2)), 20, BigDecimal.ROUND_HALF_UP).setScale(4, BigDecimal.ROUND_HALF_UP);
noriginalcurmny2 = noriginalcurprice.multiply(new BigDecimal("1")).setScale(2, BigDecimal.ROUND_HALF_UP); noriginalcurmny2 = noriginalcurprice2.multiply(new BigDecimal("1")).setScale(2, BigDecimal.ROUND_HALF_UP);
noriginalcursummny2 = noriginalcurtaxprice.multiply(new BigDecimal("1")).setScale(2, BigDecimal.ROUND_HALF_UP); noriginalcursummny2 = noriginalcurtaxprice2.multiply(new BigDecimal("1")).setScale(2, BigDecimal.ROUND_HALF_UP);
noriginalcurtaxmny2 = noriginalcursummny.subtract(noriginalcurmny).setScale(2, BigDecimal.ROUND_HALF_UP); noriginalcurtaxmny2 = noriginalcursummny2.subtract(noriginalcurmny2).setScale(2, BigDecimal.ROUND_HALF_UP);
} catch (Exception e) { } catch (Exception e) {
logger.error("邮费TOC金额计算错误", e); logger.error("邮费TOC金额计算错误", e);
Assert.state(false, "邮费TOC金额计算错误原因{}" + e.getMessage()); Assert.state(false, "邮费TOC金额计算错误原因{}" + e.getMessage());
@ -2010,7 +2018,8 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
List<SaleorderRequestChildrenDto> saleorderRequestChildrenDtoList = new ArrayList<>(); List<SaleorderRequestChildrenDto> saleorderRequestChildrenDtoList = new ArrayList<>();
saleorderRequestDto.setChildrenvo(saleorderRequestChildrenDtoList); saleorderRequestDto.setChildrenvo(saleorderRequestChildrenDtoList);
String tax = "0." + new BigDecimal(bdTaxitemsEntity1.getTaxratio()).stripTrailingZeros().toPlainString(); String tax = new BigDecimal(bdTaxitemsEntity1.getTaxratio()).divide(new BigDecimal(100), 20, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString();
BigDecimal noriginalcurprice = null;//无税单价 BigDecimal noriginalcurprice = null;//无税单价
BigDecimal noriginalcurmny = null;//无税金额 BigDecimal noriginalcurmny = null;//无税金额
BigDecimal noriginalcurtaxprice = null;//含税单价 BigDecimal noriginalcurtaxprice = null;//含税单价
@ -2080,9 +2089,11 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
saleorderRequestChildrenDto.setVdef7("0"); saleorderRequestChildrenDto.setVdef7("0");
} }
saleorderRequestChildrenDtoList.add(saleorderRequestChildrenDto); saleorderRequestChildrenDtoList.add(saleorderRequestChildrenDto);
//判断是否增加邮费这个存货accumulatedPostage //判断是否增加邮费这个存货accumulatedPostage
BigDecimal accumulatedPostage = checkPostageFee(oldValue); BigDecimal accumulatedPostage = checkPostageFee(oldValue);
//测试
// accumulatedPostage = new BigDecimal("6");
if (accumulatedPostage != null && accumulatedPostage.compareTo(BigDecimal.ZERO) > 0) { if (accumulatedPostage != null && accumulatedPostage.compareTo(BigDecimal.ZERO) > 0) {
//获取平台运维对应的税率 //获取平台运维对应的税率
String tax2 = "0." + new BigDecimal(bdTaxitemsEntity.getTaxratio()).stripTrailingZeros().toPlainString(); String tax2 = "0." + new BigDecimal(bdTaxitemsEntity.getTaxratio()).stripTrailingZeros().toPlainString();
@ -2094,10 +2105,10 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
try { try {
//邮费的汇总金额但是数量永远为1 //邮费的汇总金额但是数量永远为1
noriginalcurtaxprice2 = accumulatedPostage.setScale(2, BigDecimal.ROUND_HALF_UP); noriginalcurtaxprice2 = accumulatedPostage.setScale(2, BigDecimal.ROUND_HALF_UP);
noriginalcurprice2 = noriginalcurtaxprice.divide(new BigDecimal(1).add(new BigDecimal(tax2)), 20, BigDecimal.ROUND_HALF_UP).setScale(4, BigDecimal.ROUND_HALF_UP); noriginalcurprice2 = noriginalcurtaxprice2.divide(new BigDecimal(1).add(new BigDecimal(tax2)), 20, BigDecimal.ROUND_HALF_UP).setScale(4, BigDecimal.ROUND_HALF_UP);
noriginalcurmny2 = noriginalcurprice.multiply(new BigDecimal("1")).setScale(2, BigDecimal.ROUND_HALF_UP); noriginalcurmny2 = noriginalcurprice2.multiply(new BigDecimal("1")).setScale(2, BigDecimal.ROUND_HALF_UP);
noriginalcursummny2 = noriginalcurtaxprice.multiply(new BigDecimal("1")).setScale(2, BigDecimal.ROUND_HALF_UP); noriginalcursummny2 = noriginalcurtaxprice2.multiply(new BigDecimal("1")).setScale(2, BigDecimal.ROUND_HALF_UP);
noriginalcurtaxmny2 = noriginalcursummny.subtract(noriginalcurmny).setScale(2, BigDecimal.ROUND_HALF_UP); noriginalcurtaxmny2 = noriginalcursummny2.subtract(noriginalcurmny2).setScale(2, BigDecimal.ROUND_HALF_UP);
} catch (Exception e) { } catch (Exception e) {
logger.error("邮费TOC金额计算错误", e); logger.error("邮费TOC金额计算错误", e);
Assert.state(false, "邮费TOC金额计算错误原因{}" + e.getMessage()); Assert.state(false, "邮费TOC金额计算错误原因{}" + e.getMessage());
@ -2134,7 +2145,6 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
saleorderRequestChildrenDto2.setVdef7("0"); saleorderRequestChildrenDto2.setVdef7("0");
saleorderRequestChildrenDtoList.add(saleorderRequestChildrenDto2); saleorderRequestChildrenDtoList.add(saleorderRequestChildrenDto2);
} }
saleorderRequestChildrenDtoList.add(saleorderRequestChildrenDto);
//销售订单单据推送到u8c //销售订单单据推送到u8c
List<SaleorderRequestDto> saleorderRequestDtoList = new ArrayList<>(); List<SaleorderRequestDto> saleorderRequestDtoList = new ArrayList<>();
@ -2894,7 +2904,9 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
com.hzya.frame.ttxofs.dto.ofssalesordersearch.DetailsDto ofsOrderDetail = findOfsOrderDetail(sonDetailsDto); com.hzya.frame.ttxofs.dto.ofssalesordersearch.DetailsDto ofsOrderDetail = findOfsOrderDetail(sonDetailsDto);
if (ofsOrderDetail != null) { if (ofsOrderDetail != null) {
BigDecimal shareTargetFreightDiscounts = ofsOrderDetail.getShareTargetFreightDiscounts(); BigDecimal shareTargetFreightDiscounts = ofsOrderDetail.getShareTargetFreightDiscounts();
shareTargetFreightTotalDiscounts = shareTargetFreightTotalDiscounts.add(shareTargetFreightDiscounts); if (shareTargetFreightDiscounts != null) {
shareTargetFreightTotalDiscounts = shareTargetFreightTotalDiscounts.add(shareTargetFreightDiscounts);
}
} }
} }
} }
@ -3011,7 +3023,7 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
BdInvmandocEntity bdInvmandocEntity = new BdInvmandocEntity(); BdInvmandocEntity bdInvmandocEntity = new BdInvmandocEntity();
bdInvmandocEntity.setPkInvbasdoc(pk_invbasdoc); bdInvmandocEntity.setPkInvbasdoc(pk_invbasdoc);
bdInvmandocEntity.setDataSourceCode(ProfilesActiveConstant.LETS_DATE_SOURCE); bdInvmandocEntity.setDataSourceCode(ProfilesActiveConstant.LETS_DATE_SOURCE);
List<BdInvmandocEntity> bdInvmandocEntity2 = iBdInvmandocDao.queryBdInvmandocByInvcodeList(bdInvmandocEntity); List<BdInvmandocEntity> bdInvmandocEntity2 = iBdInvmandocDao.query(bdInvmandocEntity);
if (bdInvmandocEntity2 == null || bdInvmandocEntity2.size() == 0) { if (bdInvmandocEntity2 == null || bdInvmandocEntity2.size() == 0) {
Assert.state(false, "无法查询到所有公司对应的存货管理档案 存货管理档案主键:{}", pk_invbasdoc); Assert.state(false, "无法查询到所有公司对应的存货管理档案 存货管理档案主键:{}", pk_invbasdoc);
} }

View File

@ -760,7 +760,7 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity {
//取对应的售后订单明细主要是取这个价格 //取对应的售后订单明细主要是取这个价格
RerturnGoodsOrderSearchDetails afterSalesOrder = findAfterSalesOrder(stockinB, ofsRertunOrder1); RerturnGoodsOrderSearchDetails afterSalesOrder = findAfterSalesOrder(stockinB, ofsRertunOrder1);
String tax = "0." + new BigDecimal(bdTaxitemsEntity1.getTaxratio()).stripTrailingZeros().toPlainString(); String tax = new BigDecimal(bdTaxitemsEntity1.getTaxratio()).divide(new BigDecimal(100), 20, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString();
//查询收支项目 //查询收支项目
// BdInvclEntity bdInvclEntity = queryU8CEntityUtil.queryBdInvbasdocByBdInvcl(bdInvbasdocEntity); // BdInvclEntity bdInvclEntity = queryU8CEntityUtil.queryBdInvbasdocByBdInvcl(bdInvbasdocEntity);

View File

@ -679,7 +679,8 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity {
// BdInvclEntity bdInvclEntity = queryU8CEntityUtil.queryBdInvbasdocByBdInvcl(bdInvbasdocEntity); // BdInvclEntity bdInvclEntity = queryU8CEntityUtil.queryBdInvbasdocByBdInvcl(bdInvbasdocEntity);
// BdCostsubjEntity bdCostsubjEntity = queryU8CEntityUtil.queryBdCostsubj(bdInvclEntity); // BdCostsubjEntity bdCostsubjEntity = queryU8CEntityUtil.queryBdCostsubj(bdInvclEntity);
String tax = "0." + new BigDecimal(bdTaxitemsEntity1.getTaxratio()).stripTrailingZeros().toPlainString(); String tax = new BigDecimal(bdTaxitemsEntity1.getTaxratio()).divide(new BigDecimal(100), 20, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString();
BigDecimal noriginalcurprice = null;//无税单价 BigDecimal noriginalcurprice = null;//无税单价
BigDecimal noriginalcurmny = null;//无税金额 BigDecimal noriginalcurmny = null;//无税金额
BigDecimal noriginalcurtaxprice = null;//含税单价 BigDecimal noriginalcurtaxprice = null;//含税单价
@ -891,7 +892,8 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity {
// BdInvclEntity bdInvclEntity = queryU8CEntityUtil.queryBdInvbasdocByBdInvcl(bdInvbasdocEntity); // BdInvclEntity bdInvclEntity = queryU8CEntityUtil.queryBdInvbasdocByBdInvcl(bdInvbasdocEntity);
// BdCostsubjEntity bdCostsubjEntity = queryU8CEntityUtil.queryBdCostsubj(bdInvclEntity); // BdCostsubjEntity bdCostsubjEntity = queryU8CEntityUtil.queryBdCostsubj(bdInvclEntity);
String tax = "0." + new BigDecimal(bdTaxitemsEntity1.getTaxratio()).stripTrailingZeros().toPlainString(); String tax = new BigDecimal(bdTaxitemsEntity1.getTaxratio()).divide(new BigDecimal(100), 20, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString();
BigDecimal noriginalcurprice = null;//无税单价 BigDecimal noriginalcurprice = null;//无税单价
BigDecimal noriginalcurmny = null;//无税金额 BigDecimal noriginalcurmny = null;//无税金额
BigDecimal noriginalcurtaxprice = null;//含税单价 BigDecimal noriginalcurtaxprice = null;//含税单价

View File

@ -161,23 +161,31 @@ public class OfsOrderAfterSalesAmountAllocationUtil {
//原始优惠金额-sum分摊金额 //原始优惠金额-sum分摊金额
BigDecimal subtract = targetPlatformDiscounts.subtract(totalShareTargetPlatformDiscounts); BigDecimal subtract = targetPlatformDiscounts.subtract(totalShareTargetPlatformDiscounts);
BigDecimal shareTargetPlatformDiscounts1 = rerturnGoodsOrderSearchDetails1.getShareTargetPlatformDiscounts(); BigDecimal shareTargetPlatformDiscounts1 = rerturnGoodsOrderSearchDetails1.getShareTargetPlatformDiscounts();
rerturnGoodsOrderSearchDetails1.setShareTargetPlatformDiscounts(shareTargetPlatformDiscounts1.add(subtract)); if (subtract.compareTo(BigDecimal.ZERO) > 0) {
rerturnGoodsOrderSearchDetails1.setShareTargetPlatformDiscounts(shareTargetPlatformDiscounts1.add(subtract));
}
} }
if (!"0".equals(totalShareTargetMerchantDiscounts.stripTrailingZeros().toPlainString()) && rerturnGoodsOrderSearchDetails1.getShareTargetMerchantDiscounts() != null) { if (!"0".equals(totalShareTargetMerchantDiscounts.stripTrailingZeros().toPlainString()) && rerturnGoodsOrderSearchDetails1.getShareTargetMerchantDiscounts() != null) {
//原始优惠金额-sum分摊金额 //原始优惠金额-sum分摊金额
BigDecimal subtract = targetMerchantDiscounts.subtract(totalShareTargetMerchantDiscounts); BigDecimal subtract = targetMerchantDiscounts.subtract(totalShareTargetMerchantDiscounts);
BigDecimal shareTargetPlatformDiscounts1 = rerturnGoodsOrderSearchDetails1.getShareTargetPlatformDiscounts(); BigDecimal shareTargetPlatformDiscounts1 = rerturnGoodsOrderSearchDetails1.getShareTargetMerchantDiscounts();
rerturnGoodsOrderSearchDetails1.setShareTargetPlatformDiscounts(shareTargetPlatformDiscounts1.add(subtract)); if (subtract.compareTo(BigDecimal.ZERO) > 0) {
rerturnGoodsOrderSearchDetails1.setShareTargetMerchantDiscounts(shareTargetPlatformDiscounts1.add(subtract));
}
} }
if (!"0".equals(totalShareTargetExpertDiscounts.stripTrailingZeros().toPlainString()) && rerturnGoodsOrderSearchDetails1.getShareTargetExpertDiscounts() != null) { if (!"0".equals(totalShareTargetExpertDiscounts.stripTrailingZeros().toPlainString()) && rerturnGoodsOrderSearchDetails1.getShareTargetExpertDiscounts() != null) {
BigDecimal subtract = targetExpertDiscounts.subtract(totalShareTargetExpertDiscounts); BigDecimal subtract = targetExpertDiscounts.subtract(totalShareTargetExpertDiscounts);
BigDecimal shareTargetExpertDiscounts1 = rerturnGoodsOrderSearchDetails1.getShareTargetExpertDiscounts(); BigDecimal shareTargetExpertDiscounts1 = rerturnGoodsOrderSearchDetails1.getShareTargetExpertDiscounts();
rerturnGoodsOrderSearchDetails1.setShareTargetExpertDiscounts(shareTargetExpertDiscounts1.add(subtract)); if (subtract.compareTo(BigDecimal.ZERO) > 0) {
rerturnGoodsOrderSearchDetails1.setShareTargetExpertDiscounts(shareTargetExpertDiscounts1.add(subtract));
}
} }
if (!"0".equals(totalShareTargetPayDiscounts.stripTrailingZeros().toPlainString()) && rerturnGoodsOrderSearchDetails1.getShareTargetPayDiscounts() != null) { if (!"0".equals(totalShareTargetPayDiscounts.stripTrailingZeros().toPlainString()) && rerturnGoodsOrderSearchDetails1.getShareTargetPayDiscounts() != null) {
BigDecimal subtract = targetPayDiscounts.subtract(totalShareTargetPayDiscounts); BigDecimal subtract = targetPayDiscounts.subtract(totalShareTargetPayDiscounts);
BigDecimal shareTargetPayDiscounts1 = rerturnGoodsOrderSearchDetails1.getShareTargetPayDiscounts(); BigDecimal shareTargetPayDiscounts1 = rerturnGoodsOrderSearchDetails1.getShareTargetPayDiscounts();
rerturnGoodsOrderSearchDetails1.setShareTargetPayDiscounts(shareTargetPayDiscounts1.add(subtract)); if (subtract.compareTo(BigDecimal.ZERO) > 0) {
rerturnGoodsOrderSearchDetails1.setShareTargetPayDiscounts(shareTargetPayDiscounts1.add(subtract));
}
} }
} }

View File

@ -155,23 +155,31 @@ public class OfsOrderSaleAmountAllocationUtil {
//原始优惠金额-sum分摊金额 //原始优惠金额-sum分摊金额
BigDecimal subtract = targetPlatformDiscounts.subtract(totalShareTargetPlatformDiscounts); BigDecimal subtract = targetPlatformDiscounts.subtract(totalShareTargetPlatformDiscounts);
BigDecimal shareTargetPlatformDiscounts1 = detailsDto.getShareTargetPlatformDiscounts(); BigDecimal shareTargetPlatformDiscounts1 = detailsDto.getShareTargetPlatformDiscounts();
detailsDto.setShareTargetPlatformDiscounts(shareTargetPlatformDiscounts1.add(subtract)); if (subtract.compareTo(BigDecimal.ZERO) > 0) {
detailsDto.setShareTargetPlatformDiscounts(shareTargetPlatformDiscounts1.add(subtract));
}
} }
if (!"0".equals(totalShareTargetMerchantDiscounts.stripTrailingZeros().toPlainString()) && detailsDto.getShareTargetMerchantDiscounts() != null) { if (!"0".equals(totalShareTargetMerchantDiscounts.stripTrailingZeros().toPlainString()) && detailsDto.getShareTargetMerchantDiscounts() != null) {
//原始优惠金额-sum分摊金额 //原始优惠金额-sum分摊金额
BigDecimal subtract = targetMerchantDiscounts.subtract(totalShareTargetMerchantDiscounts); BigDecimal subtract = targetMerchantDiscounts.subtract(totalShareTargetMerchantDiscounts);
BigDecimal shareTargetPlatformDiscounts1 = detailsDto.getShareTargetPlatformDiscounts(); BigDecimal shareTargetPlatformDiscounts1 = detailsDto.getShareTargetMerchantDiscounts();
detailsDto.setShareTargetPlatformDiscounts(shareTargetPlatformDiscounts1.add(subtract)); if (subtract.compareTo(BigDecimal.ZERO) > 0) {
detailsDto.setShareTargetMerchantDiscounts(shareTargetPlatformDiscounts1.add(subtract));
}
} }
if (!"0".equals(totalShareTargetExpertDiscounts.stripTrailingZeros().toPlainString()) && detailsDto.getShareTargetExpertDiscounts() != null) { if (!"0".equals(totalShareTargetExpertDiscounts.stripTrailingZeros().toPlainString()) && detailsDto.getShareTargetExpertDiscounts() != null) {
BigDecimal subtract = targetExpertDiscounts.subtract(totalShareTargetExpertDiscounts); BigDecimal subtract = targetExpertDiscounts.subtract(totalShareTargetExpertDiscounts);
BigDecimal shareTargetExpertDiscounts1 = detailsDto.getShareTargetExpertDiscounts(); BigDecimal shareTargetExpertDiscounts1 = detailsDto.getShareTargetExpertDiscounts();
detailsDto.setShareTargetExpertDiscounts(shareTargetExpertDiscounts1.add(subtract)); if (subtract.compareTo(BigDecimal.ZERO) > 0) {
detailsDto.setShareTargetExpertDiscounts(shareTargetExpertDiscounts1.add(subtract));
}
} }
if (!"0".equals(totalShareTargetPayDiscounts.stripTrailingZeros().toPlainString()) && detailsDto.getShareTargetPayDiscounts() != null) { if (!"0".equals(totalShareTargetPayDiscounts.stripTrailingZeros().toPlainString()) && detailsDto.getShareTargetPayDiscounts() != null) {
BigDecimal subtract = targetPayDiscounts.subtract(totalShareTargetPayDiscounts); BigDecimal subtract = targetPayDiscounts.subtract(totalShareTargetPayDiscounts);
BigDecimal shareTargetPayDiscounts1 = detailsDto.getShareTargetPayDiscounts(); BigDecimal shareTargetPayDiscounts1 = detailsDto.getShareTargetPayDiscounts();
detailsDto.setShareTargetPayDiscounts(shareTargetPayDiscounts1.add(subtract)); if (subtract.compareTo(BigDecimal.ZERO) > 0) {
detailsDto.setShareTargetPayDiscounts(shareTargetPayDiscounts1.add(subtract));
}
} }
} }

View File

@ -98,7 +98,7 @@ class SoSaleOutPluginInitializerToCTest {
try { try {
// soSaleOutPluginInitializerToC.startImplementStockByTime("2024-10-18 00:00:00", "2024-10-18 23:59:59"); // soSaleOutPluginInitializerToC.startImplementStockByTime("2024-10-18 00:00:00", "2024-10-18 23:59:59");
String code = "LETS-SH2024102100026682"; String code = "LETS-SH2024102100026682";
soSaleOutPluginInitializerToC.startImplementStockByCode(code, "stock"); soSaleOutPluginInitializerToC.startImplementStockByCode(code, "tran");
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }