refactor(sales): 重构 TOC 售后退款流程- 修改插件名称和标签,增加红字销售订单或应收单功能
- 更新业务流程名称,从 "TOC 售后完成" 改为 "TOC 销售退款" - 优化计算逻辑,支持按实退金额计算 - 新增红字应收单推送接口和相关数据处理方法 - 重构原有的销售订单生成逻辑,适应新的退款流程
This commit is contained in:
parent
fc441b4b1f
commit
b0f2b4fe11
|
@ -97,12 +97,14 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getPluginName() {
|
public String getPluginName() {
|
||||||
return "OFS售后入库单(TOC)生成U8C红字销售订单";
|
// return "OFS售后入库单(TOC)生成U8C红字销售订单";
|
||||||
|
return "OFS售后入库单(TOC)生成U8C红字销售订单或应收单";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getPluginLabel() {
|
public String getPluginLabel() {
|
||||||
return "OFS售后入库单(TOC)生成U8C红字销售订单";
|
// return "OFS售后入库单(TOC)生成U8C红字销售订单";
|
||||||
|
return "OFS售后入库单(TOC)生成U8C红字销售订单或应收单";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -316,9 +318,10 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity {
|
||||||
if (ProfilesActiveConstant.FILTER_COMPANY.contains(header.getCompanyCode().trim())) {
|
if (ProfilesActiveConstant.FILTER_COMPANY.contains(header.getCompanyCode().trim())) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (sceneType.equals("tran") && (header.getClosedAt() == null || "".equals(header.getClosedAt().trim()))) {
|
//2025 年 3 月 20 日 18:25:25 改为生成红字应收单,不过滤先退款后退款的场景
|
||||||
return true;
|
// if (sceneType.equals("tran") && (header.getClosedAt() == null || "".equals(header.getClosedAt().trim()))) {
|
||||||
}
|
// return true;
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -797,7 +800,7 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity {
|
||||||
Boolean isCheckShopChoose = balanceUnitPriceUtil.checkOfsShop(header.getStoreCode());
|
Boolean isCheckShopChoose = balanceUnitPriceUtil.checkOfsShop(header.getStoreCode());
|
||||||
|
|
||||||
//把汇总好的出库单明细行合并成一行
|
//把汇总好的出库单明细行合并成一行
|
||||||
GoodsRertunSonDetailsDto goodsRertunSonDetailsDto = groupMergeDetailedRows(oldValue, isCheckShopChoose);
|
GoodsRertunSonDetailsDto goodsRertunSonDetailsDto = groupMergeDetailedRows(oldValue, isCheckShopChoose, sceneType);
|
||||||
//存货管理档案:取发货公司的存货管理档案
|
//存货管理档案:取发货公司的存货管理档案
|
||||||
BdInvmandocEntity bdInvmandocEntity = oldValue.get(0).getBdInvmandocEntity();
|
BdInvmandocEntity bdInvmandocEntity = oldValue.get(0).getBdInvmandocEntity();
|
||||||
//存货基础档案
|
//存货基础档案
|
||||||
|
@ -1036,51 +1039,71 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity {
|
||||||
String generateBusinessDate = createSuccessFulTradeDate(header);
|
String generateBusinessDate = createSuccessFulTradeDate(header);
|
||||||
|
|
||||||
SaleorderRequestDto saleorderRequestDto = new SaleorderRequestDto();
|
SaleorderRequestDto saleorderRequestDto = new SaleorderRequestDto();
|
||||||
SaleorderRequestParentDto saleorderRequestParentDto = new SaleorderRequestParentDto();
|
// SaleorderRequestParentDto saleorderRequestParentDto = new SaleorderRequestParentDto();
|
||||||
saleorderRequestParentDto.setDbilldate(generateBusinessDate);//单据日期
|
// saleorderRequestParentDto.setDbilldate(generateBusinessDate);//单据日期
|
||||||
saleorderRequestParentDto.setBretinvflag("Y");//退货标记
|
// saleorderRequestParentDto.setBretinvflag("Y");//退货标记
|
||||||
saleorderRequestParentDto.setCbiztype(bdBusitypeEntity.getPkBusitype());//业务流程
|
// saleorderRequestParentDto.setCbiztype(bdBusitypeEntity.getPkBusitype());//业务流程
|
||||||
saleorderRequestParentDto.setCcalbodyid(bdCalbodyEntity.getPkCalbody());//库存组织
|
// saleorderRequestParentDto.setCcalbodyid(bdCalbodyEntity.getPkCalbody());//库存组织
|
||||||
saleorderRequestParentDto.setCcustomerid(bdCumandocEntity.getPkCumandoc());//客户=开票单位=收货单位=表体收货单位=收货单位
|
// saleorderRequestParentDto.setCcustomerid(bdCumandocEntity.getPkCumandoc());//客户=开票单位=收货单位=表体收货单位=收货单位
|
||||||
saleorderRequestParentDto.setCdeptid(bdDeptdocEntity.getPkDeptdoc());//部门
|
// saleorderRequestParentDto.setCdeptid(bdDeptdocEntity.getPkDeptdoc());//部门
|
||||||
saleorderRequestParentDto.setCemployeeid(null);//业务员
|
// saleorderRequestParentDto.setCemployeeid(null);//业务员
|
||||||
saleorderRequestParentDto.setCoperatorid(OverallConstant.getOverAllValue("u8cApiZdrPK"));//制单人
|
// saleorderRequestParentDto.setCoperatorid(OverallConstant.getOverAllValue("u8cApiZdrPK"));//制单人
|
||||||
saleorderRequestParentDto.setCreceiptcorpid(bdCumandocEntity.getPkCumandoc());//开票单位
|
// saleorderRequestParentDto.setCreceiptcorpid(bdCumandocEntity.getPkCumandoc());//开票单位
|
||||||
saleorderRequestParentDto.setCreceiptcustomerid(bdCumandocEntity.getPkCumandoc());//收货单位
|
// saleorderRequestParentDto.setCreceiptcustomerid(bdCumandocEntity.getPkCumandoc());//收货单位
|
||||||
saleorderRequestParentDto.setCsalecorpid(bdSalestruEntity.getCsalestruid());//销售组织
|
// saleorderRequestParentDto.setCsalecorpid(bdSalestruEntity.getCsalestruid());//销售组织
|
||||||
saleorderRequestParentDto.setCwarehouseid(bdStordocEntity.getPkStordoc());//仓库
|
// saleorderRequestParentDto.setCwarehouseid(bdStordocEntity.getPkStordoc());//仓库
|
||||||
saleorderRequestParentDto.setDapprovedate(generateBusinessDate);//审核日期
|
// saleorderRequestParentDto.setDapprovedate(generateBusinessDate);//审核日期
|
||||||
saleorderRequestParentDto.setNdiscountrate("100.000000");//整单折扣
|
// saleorderRequestParentDto.setNdiscountrate("100.000000");//整单折扣
|
||||||
saleorderRequestParentDto.setPk_corp(bdCorpEntity.getPkCorp());//公司id
|
// saleorderRequestParentDto.setPk_corp(bdCorpEntity.getPkCorp());//公司id
|
||||||
//汇总单号=汇总维度
|
// //汇总单号=汇总维度
|
||||||
saleorderRequestParentDto.setVdef18(keyGroup);
|
// saleorderRequestParentDto.setVdef18(keyGroup);
|
||||||
//平台
|
// //平台
|
||||||
saleorderRequestParentDto.setPk_defdoc2(platformArchives.getPkDefdoc());
|
// saleorderRequestParentDto.setPk_defdoc2(platformArchives.getPkDefdoc());
|
||||||
saleorderRequestParentDto.setVdef2(platformArchives.getDocname());
|
// saleorderRequestParentDto.setVdef2(platformArchives.getDocname());
|
||||||
saleorderRequestParentDto.setVdef17(ProfilesActiveConstant.sourceSystem1);//来源系统
|
// saleorderRequestParentDto.setVdef17(ProfilesActiveConstant.sourceSystem1);//来源系统
|
||||||
|
//
|
||||||
|
// //收发类别
|
||||||
|
// saleorderRequestParentDto.setPk_defdoc3(bdRdclEntity.getPkRdcl());
|
||||||
|
// saleorderRequestParentDto.setVdef3(bdRdclEntity.getRdname());
|
||||||
|
//
|
||||||
|
// //2024年8月8日 17:17:58 店铺档案自定义项1,先不传,后续维护好之后再传!
|
||||||
|
// //店铺
|
||||||
|
// saleorderRequestParentDto.setPk_defdoc1(shopArchives.getPkDefdoc());
|
||||||
|
// saleorderRequestParentDto.setVdef1(shopArchives.getDocname());
|
||||||
|
//
|
||||||
|
// //单据红字标识
|
||||||
|
// saleorderRequestParentDto.setPk_defdoc16(OverallConstant.getOverAllValue("u8c自定义项档案-单据红字标识-Y主键"));
|
||||||
|
// saleorderRequestParentDto.setVdef16(OverallConstant.getOverAllValue("u8c自定义项档案-单据红字标识-Y名称"));
|
||||||
|
//
|
||||||
|
// saleorderRequestDto.setParentvo(saleorderRequestParentDto);
|
||||||
|
//改为红字应收单表头
|
||||||
|
//组装应收单表头
|
||||||
|
ArapDjzbVO.Parentt parentVo = new ArapDjzbVO.Parentt();
|
||||||
|
parentVo.setDjrq(generateBusinessDate);//单据日期
|
||||||
|
parentVo.setDwbm(bdCorpEntity.getUnitcode());//公司
|
||||||
|
parentVo.setLrr(OverallConstant.getOverAllValue("u8cApiZdrCode"));//录入人
|
||||||
|
parentVo.setWldx("0");//往来对象标识 固定为:客户
|
||||||
|
parentVo.setDeptid(bdDeptdocEntity.getDeptcode());//部门
|
||||||
|
parentVo.setShr(OverallConstant.getOverAllValue("u8cApiZdrCode"));//审批人
|
||||||
|
parentVo.setShrq(generateBusinessDate);//审核日期
|
||||||
|
parentVo.setDjlxbm("D0");//单据类型编码
|
||||||
|
parentVo.setXslxbm(bdBusitypeEntity.getBusicode());//业务流程
|
||||||
|
parentVo.setFeinvstatus("0");//开票状态
|
||||||
|
parentVo.setHbbm(bdCubasdocEntity.getCustcode());//客商主键
|
||||||
|
parentVo.setZyx1(shopArchives.getDoccode());//店铺档案
|
||||||
|
parentVo.setZyx2(platformArchives.getDoccode());//来源平台
|
||||||
|
parentVo.setZyx3(bdRdclEntity.getRdcode());//收发类别
|
||||||
|
parentVo.setZyx16("1");//单据红字标识
|
||||||
|
parentVo.setZyx17(ProfilesActiveConstant.sourceSystem1);//来源系统
|
||||||
|
parentVo.setZyx18(keyGroup);//汇总维度
|
||||||
|
|
||||||
//收发类别
|
// List<SaleorderRequestChildrenDto> saleorderRequestChildrenDtoList = new ArrayList<>();
|
||||||
saleorderRequestParentDto.setPk_defdoc3(bdRdclEntity.getPkRdcl());
|
// saleorderRequestDto.setChildrenvo(saleorderRequestChildrenDtoList);
|
||||||
saleorderRequestParentDto.setVdef3(bdRdclEntity.getRdname());
|
|
||||||
|
|
||||||
//2024年8月8日 17:17:58 店铺档案自定义项1,先不传,后续维护好之后再传!
|
|
||||||
//店铺
|
|
||||||
saleorderRequestParentDto.setPk_defdoc1(shopArchives.getPkDefdoc());
|
|
||||||
saleorderRequestParentDto.setVdef1(shopArchives.getDocname());
|
|
||||||
|
|
||||||
//单据红字标识
|
|
||||||
saleorderRequestParentDto.setPk_defdoc16(OverallConstant.getOverAllValue("u8c自定义项档案-单据红字标识-Y主键"));
|
|
||||||
saleorderRequestParentDto.setVdef16(OverallConstant.getOverAllValue("u8c自定义项档案-单据红字标识-Y名称"));
|
|
||||||
|
|
||||||
saleorderRequestDto.setParentvo(saleorderRequestParentDto);
|
|
||||||
|
|
||||||
List<SaleorderRequestChildrenDto> saleorderRequestChildrenDtoList = new ArrayList<>();
|
|
||||||
saleorderRequestDto.setChildrenvo(saleorderRequestChildrenDtoList);
|
|
||||||
|
|
||||||
//验证是否为指定的店铺,如果为true,则取结存价
|
//验证是否为指定的店铺,如果为true,则取结存价
|
||||||
Boolean isCheckShopChoose = balanceUnitPriceUtil.checkOfsShop(header.getStoreCode());
|
Boolean isCheckShopChoose = balanceUnitPriceUtil.checkOfsShop(header.getStoreCode());
|
||||||
//把汇总好的出库单明细行合并成一行
|
//把汇总好的出库单明细行合并成一行
|
||||||
GoodsRertunSonDetailsDto goodsRertunSonDetailsDto = groupMergeDetailedRows(oldValue, isCheckShopChoose);
|
GoodsRertunSonDetailsDto goodsRertunSonDetailsDto = groupMergeDetailedRows(oldValue, isCheckShopChoose, sceneType);
|
||||||
|
|
||||||
//存货管理档案:取发货公司的存货管理档案
|
//存货管理档案:取发货公司的存货管理档案
|
||||||
BdInvmandocEntity bdInvmandocEntity = oldValue.get(0).getBdInvmandocEntity();
|
BdInvmandocEntity bdInvmandocEntity = oldValue.get(0).getBdInvmandocEntity();
|
||||||
|
@ -1111,58 +1134,70 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity {
|
||||||
// }
|
// }
|
||||||
|
|
||||||
//判断是否为赠品
|
//判断是否为赠品
|
||||||
Boolean isblargessflag = false;
|
// Boolean isblargessflag = false;
|
||||||
if ("0".equals(goodsRertunSonDetailsDto.getGroupTotalPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString())) {
|
// if ("0".equals(goodsRertunSonDetailsDto.getGroupTotalPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString())) {
|
||||||
isblargessflag = true;
|
// isblargessflag = true;
|
||||||
}
|
// }
|
||||||
|
|
||||||
SaleorderRequestChildrenDto saleorderRequestChildrenDto = new SaleorderRequestChildrenDto();
|
// SaleorderRequestChildrenDto saleorderRequestChildrenDto = new SaleorderRequestChildrenDto();
|
||||||
saleorderRequestChildrenDto.setBlargessflag(isblargessflag);//是否赠品
|
// saleorderRequestChildrenDto.setBlargessflag(isblargessflag);//是否赠品
|
||||||
saleorderRequestChildrenDto.setCadvisecalbodyid(bdCalbodyEntity.getPkCalbody());//发货库存组织
|
// saleorderRequestChildrenDto.setCadvisecalbodyid(bdCalbodyEntity.getPkCalbody());//发货库存组织
|
||||||
saleorderRequestChildrenDto.setCbodywarehouseid(bdStordocEntity.getPkStordoc());//发货仓库
|
// saleorderRequestChildrenDto.setCbodywarehouseid(bdStordocEntity.getPkStordoc());//发货仓库
|
||||||
saleorderRequestChildrenDto.setCconsigncorpid(deliverGoodsCorp.getPkCorp());//发货公司
|
// saleorderRequestChildrenDto.setCconsigncorpid(deliverGoodsCorp.getPkCorp());//发货公司
|
||||||
saleorderRequestChildrenDto.setCcurrencytypeid("00010000000000000001");//币种
|
// saleorderRequestChildrenDto.setCcurrencytypeid("00010000000000000001");//币种
|
||||||
saleorderRequestChildrenDto.setCinventoryid(bdInvmandocEntity.getPkInvmandoc());//存货id
|
// saleorderRequestChildrenDto.setCinventoryid(bdInvmandocEntity.getPkInvmandoc());//存货id
|
||||||
saleorderRequestChildrenDto.setCreceiptcorpid(bdCumandocEntity.getPkCumandoc());//收货单位
|
// saleorderRequestChildrenDto.setCreceiptcorpid(bdCumandocEntity.getPkCumandoc());//收货单位
|
||||||
saleorderRequestChildrenDto.setDconsigndate(generateBusinessDate);//计划发货日期
|
// saleorderRequestChildrenDto.setDconsigndate(generateBusinessDate);//计划发货日期
|
||||||
saleorderRequestChildrenDto.setDdeliverdate(generateBusinessDate);// 要求收货日期
|
// saleorderRequestChildrenDto.setDdeliverdate(generateBusinessDate);// 要求收货日期
|
||||||
saleorderRequestChildrenDto.setNexchangeotobrate("1.00000000");//折本汇率
|
// saleorderRequestChildrenDto.setNexchangeotobrate("1.00000000");//折本汇率
|
||||||
saleorderRequestChildrenDto.setNitemdiscountrate("100.000000");//单品折扣
|
// saleorderRequestChildrenDto.setNitemdiscountrate("100.000000");//单品折扣
|
||||||
saleorderRequestChildrenDto.setNnumber("-" + goodsRertunSonDetailsDto.getGroupShipQty().stripTrailingZeros().toPlainString());//数量
|
// saleorderRequestChildrenDto.setNnumber("-" + goodsRertunSonDetailsDto.getGroupShipQty().stripTrailingZeros().toPlainString());//数量
|
||||||
saleorderRequestChildrenDto.setNoriginalcurdiscountmny("0");//折扣额
|
// saleorderRequestChildrenDto.setNoriginalcurdiscountmny("0");//折扣额
|
||||||
// saleorderRequestChildrenDto.setNoriginalcurmny("-" + noriginalcurmny.stripTrailingZeros().toPlainString());//无税金额
|
//// saleorderRequestChildrenDto.setNoriginalcurmny("-" + noriginalcurmny.stripTrailingZeros().toPlainString());//无税金额
|
||||||
// saleorderRequestChildrenDto.setNoriginalcurnetprice(noriginalcurprice.stripTrailingZeros().toPlainString());//无税净价
|
//// saleorderRequestChildrenDto.setNoriginalcurnetprice(noriginalcurprice.stripTrailingZeros().toPlainString());//无税净价
|
||||||
// saleorderRequestChildrenDto.setNoriginalcurprice(noriginalcurprice.stripTrailingZeros().toPlainString());//无税单价
|
//// saleorderRequestChildrenDto.setNoriginalcurprice(noriginalcurprice.stripTrailingZeros().toPlainString());//无税单价
|
||||||
// saleorderRequestChildrenDto.setNoriginalcursummny("-" + noriginalcursummny.stripTrailingZeros().toPlainString());//价税合计
|
//// saleorderRequestChildrenDto.setNoriginalcursummny("-" + noriginalcursummny.stripTrailingZeros().toPlainString());//价税合计
|
||||||
saleorderRequestChildrenDto.setNoriginalcursummny("-" + goodsRertunSonDetailsDto.getGroupTotalPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString());//价税合计 新逻辑
|
// saleorderRequestChildrenDto.setNoriginalcursummny("-" + goodsRertunSonDetailsDto.getGroupTotalPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString());//价税合计 新逻辑
|
||||||
// saleorderRequestChildrenDto.setNoriginalcurtaxmny("-" + noriginalcurtaxmny.stripTrailingZeros().toPlainString());//税额
|
//// saleorderRequestChildrenDto.setNoriginalcurtaxmny("-" + noriginalcurtaxmny.stripTrailingZeros().toPlainString());//税额
|
||||||
// saleorderRequestChildrenDto.setNoriginalcurtaxnetprice(noriginalcurtaxprice.stripTrailingZeros().toPlainString());//含税净价
|
//// saleorderRequestChildrenDto.setNoriginalcurtaxnetprice(noriginalcurtaxprice.stripTrailingZeros().toPlainString());//含税净价
|
||||||
// saleorderRequestChildrenDto.setNoriginalcurtaxprice(noriginalcurtaxprice.stripTrailingZeros().toPlainString());//含税单价
|
//// saleorderRequestChildrenDto.setNoriginalcurtaxprice(noriginalcurtaxprice.stripTrailingZeros().toPlainString());//含税单价
|
||||||
// saleorderRequestChildrenDto.setNtaxrate(new BigDecimal(bdTaxitemsEntity1.getTaxratio()).stripTrailingZeros().toPlainString());//税率
|
//// saleorderRequestChildrenDto.setNtaxrate(new BigDecimal(bdTaxitemsEntity1.getTaxratio()).stripTrailingZeros().toPlainString());//税率
|
||||||
// saleorderRequestChildrenDto.setVdef2(bdCostsubjEntity.getCostname());//收支项目
|
//// saleorderRequestChildrenDto.setVdef2(bdCostsubjEntity.getCostname());//收支项目
|
||||||
// saleorderRequestChildrenDto.setPk_defdoc2(bdCostsubjEntity.getPkCostsubj());
|
//// saleorderRequestChildrenDto.setPk_defdoc2(bdCostsubjEntity.getPkCostsubj());
|
||||||
//如果优惠金额为0,则传0
|
// //如果优惠金额为0,则传0
|
||||||
if (!"0".equals(goodsRertunSonDetailsDto.getVdef4().stripTrailingZeros().toPlainString())) {
|
// if (!"0".equals(goodsRertunSonDetailsDto.getVdef4().stripTrailingZeros().toPlainString())) {
|
||||||
saleorderRequestChildrenDto.setVdef4("-" + goodsRertunSonDetailsDto.getVdef4().stripTrailingZeros().toPlainString());
|
// saleorderRequestChildrenDto.setVdef4("-" + goodsRertunSonDetailsDto.getVdef4().stripTrailingZeros().toPlainString());
|
||||||
} else {
|
// } else {
|
||||||
saleorderRequestChildrenDto.setVdef4("0");
|
// saleorderRequestChildrenDto.setVdef4("0");
|
||||||
}
|
// }
|
||||||
if (!"0".equals(goodsRertunSonDetailsDto.getVdef5().stripTrailingZeros().toPlainString())) {
|
// if (!"0".equals(goodsRertunSonDetailsDto.getVdef5().stripTrailingZeros().toPlainString())) {
|
||||||
saleorderRequestChildrenDto.setVdef5("-" + goodsRertunSonDetailsDto.getVdef5().stripTrailingZeros().toPlainString());
|
// saleorderRequestChildrenDto.setVdef5("-" + goodsRertunSonDetailsDto.getVdef5().stripTrailingZeros().toPlainString());
|
||||||
} else {
|
// } else {
|
||||||
saleorderRequestChildrenDto.setVdef5("0");
|
// saleorderRequestChildrenDto.setVdef5("0");
|
||||||
}
|
// }
|
||||||
if (!"0".equals(goodsRertunSonDetailsDto.getVdef6().stripTrailingZeros().toPlainString())) {
|
// if (!"0".equals(goodsRertunSonDetailsDto.getVdef6().stripTrailingZeros().toPlainString())) {
|
||||||
saleorderRequestChildrenDto.setVdef6("-" + goodsRertunSonDetailsDto.getVdef6().stripTrailingZeros().toPlainString());
|
// saleorderRequestChildrenDto.setVdef6("-" + goodsRertunSonDetailsDto.getVdef6().stripTrailingZeros().toPlainString());
|
||||||
} else {
|
// } else {
|
||||||
saleorderRequestChildrenDto.setVdef6("0");
|
// saleorderRequestChildrenDto.setVdef6("0");
|
||||||
}
|
// }
|
||||||
if (!"0".equals(goodsRertunSonDetailsDto.getVdef7().stripTrailingZeros().toPlainString())) {
|
// if (!"0".equals(goodsRertunSonDetailsDto.getVdef7().stripTrailingZeros().toPlainString())) {
|
||||||
saleorderRequestChildrenDto.setVdef7("-" + goodsRertunSonDetailsDto.getVdef7().stripTrailingZeros().toPlainString());
|
// saleorderRequestChildrenDto.setVdef7("-" + goodsRertunSonDetailsDto.getVdef7().stripTrailingZeros().toPlainString());
|
||||||
} else {
|
// } else {
|
||||||
saleorderRequestChildrenDto.setVdef7("0");
|
// saleorderRequestChildrenDto.setVdef7("0");
|
||||||
}
|
// }
|
||||||
saleorderRequestChildrenDtoList.add(saleorderRequestChildrenDto);
|
// saleorderRequestChildrenDtoList.add(saleorderRequestChildrenDto);
|
||||||
|
|
||||||
|
//修改为生成红字应收单表体
|
||||||
|
List<ArapDjzbVO.Childrenn> childrennArrayList = new ArrayList<>();
|
||||||
|
ArapDjzbVO.Childrenn arapDjzbVOChildrenn = new ArapDjzbVO.Childrenn();
|
||||||
|
childrennArrayList.add(arapDjzbVOChildrenn);
|
||||||
|
arapDjzbVOChildrenn.setCinventoryid(bdInvbasdocEntity.getInvcode());//存货管理档案
|
||||||
|
arapDjzbVOChildrenn.setJfbbje("-" + goodsRertunSonDetailsDto.getGroupTotalPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString());//借方本币金额
|
||||||
|
arapDjzbVOChildrenn.setJfybje("-" + goodsRertunSonDetailsDto.getGroupTotalPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString());//借方原币金额
|
||||||
|
// arapDjzbVOChildrenn.setJfbbsj("-" + noriginalcurmny.stripTrailingZeros().toPlainString());//借方本币税金
|
||||||
|
// arapDjzbVOChildrenn.setJfybsj("-" + noriginalcurmny.stripTrailingZeros().toPlainString());//借方原币税金
|
||||||
|
// arapDjzbVOChildrenn.setWbfbbje("-" + noriginalcurtaxmny.stripTrailingZeros().toPlainString());//借方本币无税金额
|
||||||
|
// arapDjzbVOChildrenn.setJfybwsje("-" + noriginalcurtaxmny.stripTrailingZeros().toPlainString());//借方原币无税金额
|
||||||
|
|
||||||
//退货没有邮费金额,已经向万万确认
|
//退货没有邮费金额,已经向万万确认
|
||||||
//平台优惠
|
//平台优惠
|
||||||
|
@ -1178,7 +1213,8 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity {
|
||||||
//补充:平台优惠-存货
|
//补充:平台优惠-存货
|
||||||
BigDecimal absAccumulatedPostage = vdef4.abs();
|
BigDecimal absAccumulatedPostage = vdef4.abs();
|
||||||
BigDecimal negativeValue = absAccumulatedPostage.negate();
|
BigDecimal negativeValue = absAccumulatedPostage.negate();
|
||||||
queryAdditionUtil.additional(saleorderRequestChildrenDtoList, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, "-1", bdTaxitemsEntity);
|
// queryAdditionUtil.additional(saleorderRequestChildrenDtoList, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, "-1", bdTaxitemsEntity);
|
||||||
|
queryAdditionUtil.additionalV3(childrennArrayList, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, bdTaxitemsEntity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//达人优惠
|
//达人优惠
|
||||||
|
@ -1194,7 +1230,8 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity {
|
||||||
//补充:达人优惠-存货
|
//补充:达人优惠-存货
|
||||||
BigDecimal absAccumulatedPostage = vdef6.abs();
|
BigDecimal absAccumulatedPostage = vdef6.abs();
|
||||||
BigDecimal negativeValue = absAccumulatedPostage.negate();
|
BigDecimal negativeValue = absAccumulatedPostage.negate();
|
||||||
queryAdditionUtil.additional(saleorderRequestChildrenDtoList, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, "-1", bdTaxitemsEntity);
|
// queryAdditionUtil.additional(saleorderRequestChildrenDtoList, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, "-1", bdTaxitemsEntity);
|
||||||
|
queryAdditionUtil.additionalV3(childrennArrayList, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, bdTaxitemsEntity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//支付优惠
|
//支付优惠
|
||||||
|
@ -1210,27 +1247,48 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity {
|
||||||
//补充:支付优惠-存货
|
//补充:支付优惠-存货
|
||||||
BigDecimal absAccumulatedPostage = vdef5.abs();
|
BigDecimal absAccumulatedPostage = vdef5.abs();
|
||||||
BigDecimal negativeValue = absAccumulatedPostage.negate();
|
BigDecimal negativeValue = absAccumulatedPostage.negate();
|
||||||
queryAdditionUtil.additional(saleorderRequestChildrenDtoList, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, "-1", bdTaxitemsEntity);
|
// queryAdditionUtil.additional(saleorderRequestChildrenDtoList, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, "-1", bdTaxitemsEntity);
|
||||||
|
queryAdditionUtil.additionalV3(childrennArrayList, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, bdTaxitemsEntity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ProfilesActiveConstant.PUSH_SCENE_TYPE_1.equals(pushScenarioType) || ProfilesActiveConstant.PUSH_SCENE_TYPE_2.equals(pushScenarioType)) {
|
if (ProfilesActiveConstant.PUSH_SCENE_TYPE_1.equals(pushScenarioType) || ProfilesActiveConstant.PUSH_SCENE_TYPE_2.equals(pushScenarioType)) {
|
||||||
//推送U8C
|
//推送U8C生成红字应收单
|
||||||
List<SaleorderRequestDto> saleorderRequestDtoList = new ArrayList<>();
|
// List<SaleorderRequestDto> saleorderRequestDtoList = new ArrayList<>();
|
||||||
saleorderRequestDtoList.add(saleorderRequestDto);
|
// saleorderRequestDtoList.add(saleorderRequestDto);
|
||||||
Map<String, List<SaleorderRequestDto>> stringStringMap = new HashMap<>();
|
// Map<String, List<SaleorderRequestDto>> stringStringMap = new HashMap<>();
|
||||||
stringStringMap.put("saleorder", saleorderRequestDtoList);
|
// stringStringMap.put("saleorder", saleorderRequestDtoList);
|
||||||
SoSaleResultRootDto soSaleResultRootDto = sendU8CTOCOrder(JSON.toJSONString(stringStringMap));
|
// SoSaleResultRootDto soSaleResultRootDto = sendU8CTOCOrder(JSON.toJSONString(stringStringMap));
|
||||||
String vreceiptcode = null;
|
// String vreceiptcode = null;
|
||||||
String pk_corp = null;
|
// String pk_corp = null;
|
||||||
String csaleid = null;
|
// String csaleid = null;
|
||||||
if (soSaleResultRootDto != null && soSaleResultRootDto.getParentvo() != null) {
|
// if (soSaleResultRootDto != null && soSaleResultRootDto.getParentvo() != null) {
|
||||||
vreceiptcode = soSaleResultRootDto.getParentvo().getVreceiptcode();
|
// vreceiptcode = soSaleResultRootDto.getParentvo().getVreceiptcode();
|
||||||
pk_corp = soSaleResultRootDto.getParentvo().getPk_corp();
|
// pk_corp = soSaleResultRootDto.getParentvo().getPk_corp();
|
||||||
csaleid = soSaleResultRootDto.getParentvo().getCsaleid();
|
// csaleid = soSaleResultRootDto.getParentvo().getCsaleid();
|
||||||
|
// }
|
||||||
|
// logger.info("TOC销售订单编号:{} 销售订单主键:{} 销售公司:{}", vreceiptcode, csaleid, pk_corp);
|
||||||
|
List<ArapDjzbVO> arapDjzbVOList = new ArrayList<>();
|
||||||
|
ArapDjzbVO arapDjzbVO = new ArapDjzbVO();
|
||||||
|
arapDjzbVO.setParentvo(parentVo);
|
||||||
|
arapDjzbVO.setChildren(childrennArrayList);
|
||||||
|
arapDjzbVOList.add(arapDjzbVO);
|
||||||
|
|
||||||
|
Map<String, List<ArapDjzbVO>> listMap = new HashMap<>();
|
||||||
|
listMap.put("djzbvo", arapDjzbVOList);
|
||||||
|
|
||||||
|
ArapDjzb arapDjzb = sendU8cRedReceivable(JSON.toJSONString(listMap));
|
||||||
|
String djbh = null;
|
||||||
|
String dwbm = null;
|
||||||
|
String vouchid = null;
|
||||||
|
if (arapDjzb != null && arapDjzb.getParentvo() != null) {
|
||||||
|
djbh = arapDjzb.getParentvo().getDjbh();
|
||||||
|
dwbm = arapDjzb.getParentvo().getDwbm();
|
||||||
|
vouchid = arapDjzb.getParentvo().getVouchid();
|
||||||
}
|
}
|
||||||
logger.info("TOC销售订单编号:{} 销售订单主键:{} 销售公司:{}", vreceiptcode, csaleid, pk_corp);
|
logger.info("TOC红字应收单:{} 销售订单主键:{} 销售公司:{}", djbh, vouchid, dwbm);
|
||||||
updateSuccessOrFail2(oldValue, "Y", "success", vreceiptcode, csaleid);
|
|
||||||
|
updateSuccessOrFail2(oldValue, "Y", "success", djbh, vouchid);
|
||||||
} else if (ProfilesActiveConstant.PUSH_SCENE_TYPE_0.equals(pushScenarioType)) {
|
} else if (ProfilesActiveConstant.PUSH_SCENE_TYPE_0.equals(pushScenarioType)) {
|
||||||
//不推送U8C,单据暂存
|
//不推送U8C,单据暂存
|
||||||
String vreceiptcode = "暂存";
|
String vreceiptcode = "暂存";
|
||||||
|
@ -1748,7 +1806,8 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity {
|
||||||
private BdBusitypeEntity u8cOperationFlowV2() throws Exception {
|
private BdBusitypeEntity u8cOperationFlowV2() throws Exception {
|
||||||
//查询业务流程
|
//查询业务流程
|
||||||
//2024年8月6日 11:33:07 具体的业务流程名称,还需要实施提供
|
//2024年8月6日 11:33:07 具体的业务流程名称,还需要实施提供
|
||||||
String processName = "TOC售后完成";
|
// String processName = "TOC售后完成";
|
||||||
|
String processName = "TOC销售退款";
|
||||||
BdBusitypeEntity bdBusitypeEntity = queryBdBusitypeUtil.queryBdBusitype(processName);
|
BdBusitypeEntity bdBusitypeEntity = queryBdBusitypeUtil.queryBdBusitype(processName);
|
||||||
Assert.notNull(bdBusitypeEntity, "根据业务流程名称({})没有查询到业务流程", processName);
|
Assert.notNull(bdBusitypeEntity, "根据业务流程名称({})没有查询到业务流程", processName);
|
||||||
return bdBusitypeEntity;
|
return bdBusitypeEntity;
|
||||||
|
@ -1798,7 +1857,7 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity {
|
||||||
* @param isCheckShopChoose true取建议零售价、false取实付金额
|
* @param isCheckShopChoose true取建议零售价、false取实付金额
|
||||||
* @author liuyang
|
* @author liuyang
|
||||||
*/
|
*/
|
||||||
private GoodsRertunSonDetailsDto groupMergeDetailedRows(List<GoodsRertunSonDetailsDto> sonDetailsDtoList, Boolean isCheckShopChoose) throws Exception {
|
private GoodsRertunSonDetailsDto groupMergeDetailedRows(List<GoodsRertunSonDetailsDto> sonDetailsDtoList, Boolean isCheckShopChoose, String sceneType) throws Exception {
|
||||||
Assert.notNull(sonDetailsDtoList, "sonDetailsDtoList不能为空");
|
Assert.notNull(sonDetailsDtoList, "sonDetailsDtoList不能为空");
|
||||||
Assert.notNull(isCheckShopChoose, "isCheckShopChoose不能为空");
|
Assert.notNull(isCheckShopChoose, "isCheckShopChoose不能为空");
|
||||||
// Assert.notNull(mapList, "mapLists不能为空");
|
// Assert.notNull(mapList, "mapLists不能为空");
|
||||||
|
@ -1828,9 +1887,14 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity {
|
||||||
//取《U8C存货基本档案-参考售价》
|
//取《U8C存货基本档案-参考售价》
|
||||||
totalAmount = getRefsaleprice(bdInvmandocEntity, bdInvbasdocEntity, calculationFormulaStr, goodsRertunSonDetailsDto, header);
|
totalAmount = getRefsaleprice(bdInvmandocEntity, bdInvbasdocEntity, calculationFormulaStr, goodsRertunSonDetailsDto, header);
|
||||||
} else {
|
} else {
|
||||||
//取《O实退》
|
if (sceneType.equals("tran")) {
|
||||||
|
//取《O实退金额》
|
||||||
|
totalAmount = accumulatedDiscountsV2(goodsRertunSonDetailsDto, rerturnGoodsOrderSearchData, calculationFormulaStr);
|
||||||
|
} else {
|
||||||
|
//取《O实退金额/O请求数量*O实收数量》
|
||||||
totalAmount = accumulatedDiscounts(goodsRertunSonDetailsDto, rerturnGoodsOrderSearchData, calculationFormulaStr);
|
totalAmount = accumulatedDiscounts(goodsRertunSonDetailsDto, rerturnGoodsOrderSearchData, calculationFormulaStr);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//取对应的售后订单明细,主要是取这个价格
|
//取对应的售后订单明细,主要是取这个价格
|
||||||
// String totalAmount = getFloorPrice(isCheckShopChoose, bdInvmandocEntity, header, goodsRertunSonDetailsDto, mapList, calculationFormulaStr);
|
// String totalAmount = getFloorPrice(isCheckShopChoose, bdInvmandocEntity, header, goodsRertunSonDetailsDto, mapList, calculationFormulaStr);
|
||||||
|
@ -2950,6 +3014,70 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity {
|
||||||
return totalPayAmount;
|
return totalPayAmount;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累加应收金额=实退金额+达人优惠+支付优惠+平台优惠
|
||||||
|
*
|
||||||
|
* @param goodsRertunSonDetailsDto OFS售后入库单明细行
|
||||||
|
* @param rerturnGoodsOrderSearchData OFS售后订单
|
||||||
|
* @param calculationFormulaStr 计算公式
|
||||||
|
* @author liuyang
|
||||||
|
*/
|
||||||
|
private String accumulatedDiscountsV2(GoodsRertunSonDetailsDto goodsRertunSonDetailsDto, RerturnGoodsOrderSearchData rerturnGoodsOrderSearchData, StringBuffer calculationFormulaStr) throws Exception {
|
||||||
|
Assert.notNull(goodsRertunSonDetailsDto, "goodsRertunSonDetailsDto OFS售后入库单明细行不能为空!");
|
||||||
|
Assert.notNull(rerturnGoodsOrderSearchData, "rerturnGoodsOrderSearchData OFS售后订单不能为空!");
|
||||||
|
Assert.notNull(calculationFormulaStr, "calculationFormulaStr不能为空!");
|
||||||
|
|
||||||
|
//O售后入库单表头
|
||||||
|
StockinOrderSearchResponse.StockinOrder.StockinH header1 = goodsRertunSonDetailsDto.getHeader();
|
||||||
|
|
||||||
|
//O售后订单表头+明细行
|
||||||
|
RerturnGoodsOrderSearchHeader header = rerturnGoodsOrderSearchData.getHeader();
|
||||||
|
List<RerturnGoodsOrderSearchDetails> details = rerturnGoodsOrderSearchData.getDetails();
|
||||||
|
|
||||||
|
//根据「入库单明细」匹配「售后订单明细行」
|
||||||
|
RerturnGoodsOrderSearchDetails targetDetails = null;
|
||||||
|
for (int i = 0; i < details.size(); i++) {
|
||||||
|
RerturnGoodsOrderSearchDetails rerturnGoodsOrderSearchDetails = details.get(i);
|
||||||
|
if (goodsRertunSonDetailsDto.getRefOrderDetailId() != null && rerturnGoodsOrderSearchDetails.getId() != null) {
|
||||||
|
if (rerturnGoodsOrderSearchDetails.getId().equals(goodsRertunSonDetailsDto.getRefOrderDetailId())) {
|
||||||
|
targetDetails = rerturnGoodsOrderSearchDetails;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Assert.notNull(targetDetails, "根据OFS售后入库单细行(refOrderDetailId)无法匹配售后订单明细行", goodsRertunSonDetailsDto.getRefOrderDetailId());
|
||||||
|
|
||||||
|
//售后订单明细行-退货金额
|
||||||
|
String totalAmount = targetDetails.getTotalAmount();//实退金额
|
||||||
|
Assert.notNull(totalAmount, "售后订单:{} 存货明细行:{} 退货金额不能为空!", header.getCode(), targetDetails.getSkuCode());
|
||||||
|
Assert.state(!"".equals(totalAmount), "售后订单:{} 存货明细行:{} 退货金额不能为空!", header.getCode(), targetDetails.getSkuCode());
|
||||||
|
//售后订单明细行-请求数量
|
||||||
|
//实退数量存在可能为0的情况,如果用退货金额/实退数量可能会抛出异常
|
||||||
|
// String requestQty = targetDetails.getRequestQty();//请求数量
|
||||||
|
// Assert.notNull(requestQty, "售后订单:{} 存货明细行:{} 请求数量不能为空!", header.getCode(), targetDetails.getSkuCode());
|
||||||
|
// Assert.state(!"".equals(requestQty), "售后订单:{} 存货明细行:{} 请求数量不能为空!", header.getCode(), targetDetails.getSkuCode());
|
||||||
|
|
||||||
|
//测试
|
||||||
|
// goodsRertunSonDetailsDto.setReceivedQty("1");
|
||||||
|
|
||||||
|
// String receivedQty = goodsRertunSonDetailsDto.getReceivedQty();
|
||||||
|
// Assert.notNull(receivedQty, "售后订单:{} 存货明细行:{} 请求数量不能为空!", header1.getCode(), goodsRertunSonDetailsDto.getId());
|
||||||
|
// Assert.state(!"".equals(receivedQty), header1.getCode(), goodsRertunSonDetailsDto.getId());
|
||||||
|
// if ("0".equals(new BigDecimal(receivedQty).stripTrailingZeros().toPlainString())) {
|
||||||
|
// Assert.state(false, "售后订单:{} 存货明细行:{} 实退数量不能为0!", header1.getCode(), goodsRertunSonDetailsDto.getId());
|
||||||
|
// }
|
||||||
|
//O含税单价=通过退货金额/请求数量
|
||||||
|
// BigDecimal unitPriceIncludingTax = new BigDecimal(totalAmount).divide(new BigDecimal(requestQty), 20, BigDecimal.ROUND_HALF_UP);
|
||||||
|
//实退金额=O含税单价*(O售后入库单)这里保留 4 位小数的用途是便于暴露问题给后续方法,后续方法会变成 2 位小数(0.0034)
|
||||||
|
// BigDecimal actualRefundAmount = unitPriceIncludingTax.multiply(new BigDecimal(receivedQty)).setScale(4, BigDecimal.ROUND_HALF_UP);
|
||||||
|
//出库对应的实退=含税单价(actualRefundAmount)*出库单实退数量
|
||||||
|
// BigDecimal actualRefundAmountBigDecimal = new BigDecimal(receivedQty).multiply(actualRefundAmount).setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||||
|
String format = StrUtil.format("{}", totalAmount);
|
||||||
|
calculationFormulaStr.append(format);
|
||||||
|
|
||||||
|
return totalAmount;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 累加应收金额=实退金额+达人优惠+支付优惠+平台优惠
|
* 累加应收金额=实退金额+达人优惠+支付优惠+平台优惠
|
||||||
*
|
*
|
||||||
|
@ -3265,4 +3393,59 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity {
|
||||||
}
|
}
|
||||||
return filteredList;
|
return filteredList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 2025 年 3 月 13 日 14:08:20
|
||||||
|
* 推送U8红字应收单方法
|
||||||
|
*
|
||||||
|
* @author liuyang
|
||||||
|
*/
|
||||||
|
public ArapDjzb sendU8cRedReceivable(String param) {
|
||||||
|
long startLong = System.currentTimeMillis();
|
||||||
|
logger.info("TOC推送开始,推送参数:" + param + ",U8C_URL:" + OverallConstant.getOverAllValue("u8c_url"));
|
||||||
|
String apiCode = "8000370069";
|
||||||
|
String result = HttpRequest.post(OverallConstant.getOverAllValue("u8c_url")).header("appId", OverallConstant.getOverAllValue("appId"))//头信息,多个头信息多次调用此方法即可
|
||||||
|
.header("usercode", OverallConstant.getOverAllValue("u8cApiUsercodeCode")).header("password", OverallConstant.getOverAllValue("u8cApiPasswordCode")).header("system", OverallConstant.getOverAllValue("u8cApiSystemCode")).header("trantype", OverallConstant.getOverAllValue("u8cApiTrantypeCode")).header("apiCode", apiCode)//头信息,多个头信息多次调用此方法即可
|
||||||
|
.header("publicKey", OverallConstant.getOverAllValue("publicKey"))//头信息,多个头信息多次调用此方法即可
|
||||||
|
.header("secretKey", OverallConstant.getOverAllValue("secretKey"))//头信息,多个头信息多次调用此方法即可
|
||||||
|
.body(param)//表单内容
|
||||||
|
.timeout(600000)//超时,毫秒
|
||||||
|
.execute().body();
|
||||||
|
logger.info("TOC推送结束,返回参数:" + result);
|
||||||
|
long endLong = System.currentTimeMillis();
|
||||||
|
logger.info("TOC接口请求耗时:" + (endLong - startLong));
|
||||||
|
|
||||||
|
JSONObject jsonObject = JSON.parseObject(result);
|
||||||
|
result = String.valueOf(jsonObject.get("attribute"));
|
||||||
|
|
||||||
|
boolean isSuccess = false;
|
||||||
|
ArapDjzb arapDjzb = null;
|
||||||
|
if (result != null && !"".equals(result)) {
|
||||||
|
ReusltStrDto reusltStrDto = JSON.parseObject(result, ReusltStrDto.class);
|
||||||
|
if ("success".equals(reusltStrDto.getStatus())) {
|
||||||
|
arapDjzb = resultDataHandle2(reusltStrDto.getData());
|
||||||
|
isSuccess = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!isSuccess) {
|
||||||
|
Assert.state(false, "TOC无源入库单生成红字应收单失败 接口返回结果:{}", result);
|
||||||
|
}
|
||||||
|
return arapDjzb;
|
||||||
|
}
|
||||||
|
|
||||||
|
private ArapDjzb resultDataHandle2(String resultData) {
|
||||||
|
try {
|
||||||
|
if (resultData != null && !"".equals(resultData)) {
|
||||||
|
if (resultData.contains("[")) {
|
||||||
|
resultData = resultData.substring(1, resultData.length() - 1);
|
||||||
|
}
|
||||||
|
return JSON.parseObject(resultData, ArapDjzb.class);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
logger.error("解析返回参数失败的错误", e);
|
||||||
|
//如果解析失败,记录原因,但是不能影响结果的记录
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
File diff suppressed because it is too large
Load Diff
|
@ -228,4 +228,60 @@ public class QueryAdditionUtil {
|
||||||
}
|
}
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 增加平台运费,优惠金额这些存货一起保存进U8C销售订单
|
||||||
|
*
|
||||||
|
* @param bdInvmandocEntity1 存货管理档案
|
||||||
|
* @param bdInvbasdocEntity1 存货基本档案
|
||||||
|
* @param pushScenarioType 需要推送给U8C红字应收单明细行表体
|
||||||
|
* @param noriginalcursummny 价税合计(只能传金额)
|
||||||
|
* @param bdTaxitemsEntity 存货对应的税率
|
||||||
|
* @author liuyang
|
||||||
|
*/
|
||||||
|
public void additionalV3(List<ArapDjzbVO.Childrenn> pushScenarioType, BdInvmandocEntity bdInvmandocEntity1, BdInvbasdocEntity bdInvbasdocEntity1, BigDecimal noriginalcursummny, BdTaxitemsEntity bdTaxitemsEntity) {
|
||||||
|
Assert.notNull(pushScenarioType, "pushScenarioType不能为空!");
|
||||||
|
Assert.notNull(bdInvmandocEntity1, "bdInvmandocEntity1不能为空");
|
||||||
|
Assert.notNull(bdInvbasdocEntity1, "bdInvbasdocEntity1不能为空");
|
||||||
|
Assert.notNull(noriginalcursummny, "noriginalcursummny不能为空");
|
||||||
|
|
||||||
|
//如果size=0则不正常
|
||||||
|
// if (pushScenarioType.size() > 0) {
|
||||||
|
// ArapDjzbVO.Childrenn childrenn = pushScenarioType.get(0);
|
||||||
|
|
||||||
|
//拷贝SaleorderRequestChildrenDto对象
|
||||||
|
ArapDjzbVO.Childrenn arapDjzbVOChildrenn = new ArapDjzbVO.Childrenn();
|
||||||
|
// BeanUtil.copyPropertiesV2(childrenn, arapDjzbVOChildrenn);
|
||||||
|
|
||||||
|
//修改存货、数量、税率、价税合计、优惠金额设置为0
|
||||||
|
//存货id、存货编码
|
||||||
|
arapDjzbVOChildrenn.setCinventoryid(bdInvbasdocEntity1.getInvcode());
|
||||||
|
|
||||||
|
// String tax = null;//税率
|
||||||
|
// BigDecimal noriginalcurmny = null;//无税金额
|
||||||
|
// BigDecimal noriginalcurtaxmny = null;//税额
|
||||||
|
// try {
|
||||||
|
// tax = new BigDecimal(bdTaxitemsEntity.getTaxratio()).divide(new BigDecimal(100), 20, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString();
|
||||||
|
// noriginalcurmny = noriginalcursummny.divide(new BigDecimal(1).add(new BigDecimal(tax)), 20, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||||
|
// noriginalcurtaxmny = noriginalcursummny.subtract(noriginalcurmny).setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||||
|
// } catch (Exception e) {
|
||||||
|
// logger.error("金额计算失败", e);
|
||||||
|
// Assert.state(false, "金额计算失败 异常:{}", e.getMessage());
|
||||||
|
// }
|
||||||
|
|
||||||
|
//金额计算
|
||||||
|
arapDjzbVOChildrenn.setJfbbje(noriginalcursummny.stripTrailingZeros().toPlainString());//借方本币金额
|
||||||
|
arapDjzbVOChildrenn.setJfybje(noriginalcursummny.stripTrailingZeros().toPlainString());//借方原币金额
|
||||||
|
// arapDjzbVOChildrenn.setJfbbsj(noriginalcurmny.stripTrailingZeros().toPlainString());//借方本币税金
|
||||||
|
// arapDjzbVOChildrenn.setJfybsj(noriginalcurmny.stripTrailingZeros().toPlainString());//借方原币税金
|
||||||
|
// arapDjzbVOChildrenn.setWbfbbje(noriginalcurtaxmny.stripTrailingZeros().toPlainString());//借方本币无税金额
|
||||||
|
// arapDjzbVOChildrenn.setJfybwsje(noriginalcurtaxmny.stripTrailingZeros().toPlainString());//借方原币无税金额
|
||||||
|
|
||||||
|
//2025年2月17日 10:37:37 如果四舍五入保留2位后,如果为0,则不推送U8C,处理0.0033保留2位为0的问题
|
||||||
|
//和李佳妮、还有丽知-山海沟通确定的
|
||||||
|
if (!"0".equals(noriginalcursummny.setScale(2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString())) {
|
||||||
|
pushScenarioType.add(arapDjzbVOChildrenn);
|
||||||
|
}
|
||||||
|
// }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -89,7 +89,7 @@ public class SoSaleOutPluginInitializerToBTest {
|
||||||
|
|
||||||
// soSaleOutPluginInitializerToB.startImplementByStockTime("2024-10-31 14:48:41", "2024-10-31 14:48:41");
|
// soSaleOutPluginInitializerToB.startImplementByStockTime("2024-10-31 14:48:41", "2024-10-31 14:48:41");
|
||||||
|
|
||||||
soSaleOutPluginInitializerToB.startImplementByCode("LETS-SH2025020600020284", "tran");
|
soSaleOutPluginInitializerToB.startImplementByCode("LETS-SH2025031200015584", "stock");
|
||||||
|
|
||||||
|
|
||||||
// soSaleOutPluginInitializerToB.startImplementByStockTime("2024-11-08 19:18:02", "2024-11-08 19:18:02");
|
// soSaleOutPluginInitializerToB.startImplementByStockTime("2024-11-08 19:18:02", "2024-11-08 19:18:02");
|
||||||
|
|
|
@ -36,7 +36,12 @@ public class SoSaleReturnPluginInitializerToCTest {
|
||||||
public void startImplement() {
|
public void startImplement() {
|
||||||
// soSaleReturnPluginInitializerToC.startImplement(null, null);
|
// soSaleReturnPluginInitializerToC.startImplement(null, null);
|
||||||
try {
|
try {
|
||||||
String code = "LETS-RE2025022000001336";
|
//带优惠金额场景
|
||||||
|
// String code = "LETS-RE2025030100000112";
|
||||||
|
// soSaleReturnPluginInitializerToC.startImplementByCode(code, "tran");
|
||||||
|
|
||||||
|
//无优惠金额场景
|
||||||
|
String code = "LETS-RE2025031900000002";
|
||||||
soSaleReturnPluginInitializerToC.startImplementByCode(code, "tran");
|
soSaleReturnPluginInitializerToC.startImplementByCode(code, "tran");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
@ -72,7 +77,7 @@ public class SoSaleReturnPluginInitializerToCTest {
|
||||||
// String s = soSaleReturnPluginInitializerToC.timeJudgment(header2);
|
// String s = soSaleReturnPluginInitializerToC.timeJudgment(header2);
|
||||||
// System.out.println(s);
|
// System.out.println(s);
|
||||||
|
|
||||||
soSaleReturnPluginInitializerToC.u8cOperationFlow();
|
// soSaleReturnPluginInitializerToC.u8cOperationFlow();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue