diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/constant/OverallConstant.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/constant/OverallConstant.java index 26d7a156..508f5ab9 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/constant/OverallConstant.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/constant/OverallConstant.java @@ -158,6 +158,9 @@ public class OverallConstant { prodOverAll.put("售后类型标识-TOC无源件-主键", "0001A110000000ADSWWJ"); prodOverAll.put("售后类型标识-TOC无源件-名称", "TOC无源件"); + //售后类型标识-TOC无源件-编码 + prodOverAll.put("售后类型标识-TOC无源件-编码", "02"); + prodOverAll.put("售后类型标识-TOB售后-主键", "0001A110000000AFFT7M"); prodOverAll.put("售后类型标识-TOB售后-名称", "TOB售后"); diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/entity/OnlyAfterSalesBEntity.xml b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/entity/OnlyAfterSalesBEntity.xml index 8f4a8fa1..91b9d05a 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/entity/OnlyAfterSalesBEntity.xml +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/entity/OnlyAfterSalesBEntity.xml @@ -421,10 +421,10 @@ - insert into only_after_sales_b(hid,ofsid,returnOrderId, returnOrderCode, skuCode, skuName, companyCode, clientCode, storeCode, returnType, refundInd, requestQty, fulfillQty, quantityUM, msrPrice, totalWeight, totalVolume, weightUM, volumeUM, totalAmount, sourceLineNum, sourceOrderCode, sourceDiscountPrice, sourcePayAmount, sourceRequestQty, bomType, originalDetailId, reasonCode, reasonDesc,businessType,transactionDate) + insert into only_after_sales_b(hid,ofsid,returnOrderId, returnOrderCode, skuCode, skuName, companyCode, clientCode, storeCode, returnType, refundInd, requestQty, fulfillQty, quantityUM, msrPrice, totalWeight, totalVolume, weightUM, volumeUM, totalAmount, sourceLineNum, sourceOrderCode, sourceDiscountPrice, sourcePayAmount, sourceRequestQty, bomType, originalDetailId, reasonCode, reasonDesc,businessType,transactionDate,def7,def13) values - (#{entity.hid},#{entity.ofsid},#{entity.returnorderid},#{entity.returnordercode},#{entity.skucode},#{entity.skuname},#{entity.companycode},#{entity.clientcode},#{entity.storecode},#{entity.returntype},#{entity.refundind},#{entity.requestqty},#{entity.fulfillqty},#{entity.quantityum},#{entity.msrprice},#{entity.totalweight},#{entity.totalvolume},#{entity.weightum},#{entity.volumeum},#{entity.totalamount},#{entity.sourcelinenum},#{entity.sourceordercode},#{entity.sourcediscountprice},#{entity.sourcepayamount},#{entity.sourcerequestqty},#{entity.bomtype},#{entity.originaldetailid},#{entity.reasoncode},#{entity.reasondesc},#{entity.businessType},#{entity.transactionDate}) + (#{entity.hid},#{entity.ofsid},#{entity.returnorderid},#{entity.returnordercode},#{entity.skucode},#{entity.skuname},#{entity.companycode},#{entity.clientcode},#{entity.storecode},#{entity.returntype},#{entity.refundind},#{entity.requestqty},#{entity.fulfillqty},#{entity.quantityum},#{entity.msrprice},#{entity.totalweight},#{entity.totalvolume},#{entity.weightum},#{entity.volumeum},#{entity.totalamount},#{entity.sourcelinenum},#{entity.sourceordercode},#{entity.sourcediscountprice},#{entity.sourcepayamount},#{entity.sourcerequestqty},#{entity.bomtype},#{entity.originaldetailid},#{entity.reasoncode},#{entity.reasondesc},#{entity.businessType},#{entity.transactionDate},#{entity.def7},#{entity.def13}) on duplicate key update hid = values(hid), @@ -457,7 +457,9 @@ reasonCode = values(reasonCode), reasonDesc = values(reasonDesc), businessType = values(businessType), - transactionDate = values(transactionDate) + transactionDate = values(transactionDate), + def7 = def7, + def13 = def13 @@ -515,10 +517,10 @@ - insert into only_after_sales_b(ofsid,def8,def9,def10,def11,def12,def1,def2,def3,def4,def5,def6,def7) + insert into only_after_sales_b(ofsid,def8,def9,def10,def11,def12,def13,def1,def2,def3,def4,def5,def6,def7) values - (#{entity.ofsid},#{entity.def8},#{entity.def9},#{entity.def10},#{entity.def11},#{entity.def12},#{entity.def1},#{entity.def2},#{entity.def3},#{entity.def4},#{entity.def5},#{entity.def6},#{entity.def7}) + (#{entity.ofsid},#{entity.def8},#{entity.def9},#{entity.def10},#{entity.def11},#{entity.def12},#{entity.def13},#{entity.def1},#{entity.def2},#{entity.def3},#{entity.def4},#{entity.def5},#{entity.def6},#{entity.def7}) on duplicate key update ofsid = values(ofsid), @@ -527,6 +529,7 @@ def10 = values(def10), def11 = values(def11), def12 = values(def12), + def13 = values(def13), def1 = values(def1), def2 = values(def2), def3 = values(def3), diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/ofs/entity/OfsPassiveorderDetailEntity.xml b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/ofs/entity/OfsPassiveorderDetailEntity.xml index 945eb618..21dd89e6 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/ofs/entity/OfsPassiveorderDetailEntity.xml +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/ofs/entity/OfsPassiveorderDetailEntity.xml @@ -264,10 +264,10 @@ - insert into ofs_passiveorder_detail(id,headerId, receiptCode, skuCode, skuName, quantity, inventorySts, created, createdBy, lastUpdated, lastUpdatedBy, businessDate, businessType) + insert into ofs_passiveorder_detail(id,headerId, receiptCode, skuCode, skuName, quantity, inventorySts, created, createdBy, lastUpdated, lastUpdatedBy, businessDate, businessType,def11) values - (#{entity.id},#{entity.headerid},#{entity.receiptcode},#{entity.skucode},#{entity.skuname},#{entity.quantity},#{entity.inventorysts},#{entity.created},#{entity.createdby},#{entity.lastupdated},#{entity.lastupdatedby},#{entity.businessdate},#{entity.businesstype}) + (#{entity.id},#{entity.headerid},#{entity.receiptcode},#{entity.skucode},#{entity.skuname},#{entity.quantity},#{entity.inventorysts},#{entity.created},#{entity.createdby},#{entity.lastupdated},#{entity.lastupdatedby},#{entity.businessdate},#{entity.businesstype},#{entity.def11}) on duplicate key update id = values(id), @@ -282,7 +282,8 @@ lastUpdated = values(lastUpdated), lastUpdatedBy = values(lastUpdatedBy), businessDate = values(businessDate), - businessType = values(businessType) + businessType = values(businessType), + def11 = values(def11) diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/ofs/entity/TocofsReturngoodsDetailedEntity.xml b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/ofs/entity/TocofsReturngoodsDetailedEntity.xml index f3b73fc3..63e4f3a1 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/ofs/entity/TocofsReturngoodsDetailedEntity.xml +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/ofs/entity/TocofsReturngoodsDetailedEntity.xml @@ -847,10 +847,10 @@ - insert into tocofs_returngoods_detailed(id,receiptId, receiptCode, refOrderId, refOrderDetailId, sourceOrderCode, sourceLineNum, clientCode, companyCode, facilityCode, skuCode, skuName, requestQty, receivedQty, openQty, quantityUM, totalWeight, totalVolume, totalVolumeWeight, totalAmount, weightUM, volumeUM, inventorySts, inTransInvId, closed, created, createdBy, lastUpdated, lastUpdatedBy, discountPrice, mainTableId, businessDate, refundedAt, businessType) + insert into tocofs_returngoods_detailed(id,receiptId, receiptCode, refOrderId, refOrderDetailId, sourceOrderCode, sourceLineNum, clientCode, companyCode, facilityCode, skuCode, skuName, requestQty, receivedQty, openQty, quantityUM, totalWeight, totalVolume, totalVolumeWeight, totalAmount, weightUM, volumeUM, inventorySts, inTransInvId, closed, created, createdBy, lastUpdated, lastUpdatedBy, discountPrice, mainTableId, businessDate, refundedAt, businessType,def23,def24) values - (#{entity.id},#{entity.receiptid},#{entity.receiptcode},#{entity.reforderid},#{entity.reforderdetailid},#{entity.sourceordercode},#{entity.sourcelinenum},#{entity.clientcode},#{entity.companycode},#{entity.facilitycode},#{entity.skucode},#{entity.skuname},#{entity.requestqty},#{entity.receivedqty},#{entity.openqty},#{entity.quantityum},#{entity.totalweight},#{entity.totalvolume},#{entity.totalvolumeweight},#{entity.totalamount},#{entity.weightum},#{entity.volumeum},#{entity.inventorysts},#{entity.intransinvid},#{entity.closed},#{entity.created},#{entity.createdby},#{entity.lastupdated},#{entity.lastupdatedby},#{entity.discountprice},#{entity.maintableid},#{entity.businessdate},#{entity.refundedat},#{entity.businesstype}) + (#{entity.id},#{entity.receiptid},#{entity.receiptcode},#{entity.reforderid},#{entity.reforderdetailid},#{entity.sourceordercode},#{entity.sourcelinenum},#{entity.clientcode},#{entity.companycode},#{entity.facilitycode},#{entity.skucode},#{entity.skuname},#{entity.requestqty},#{entity.receivedqty},#{entity.openqty},#{entity.quantityum},#{entity.totalweight},#{entity.totalvolume},#{entity.totalvolumeweight},#{entity.totalamount},#{entity.weightum},#{entity.volumeum},#{entity.inventorysts},#{entity.intransinvid},#{entity.closed},#{entity.created},#{entity.createdby},#{entity.lastupdated},#{entity.lastupdatedby},#{entity.discountprice},#{entity.maintableid},#{entity.businessdate},#{entity.refundedat},#{entity.businesstype},#{entity.def23},#{entity.def24}) on duplicate key update id = values(id), @@ -886,7 +886,9 @@ mainTableId = values(mainTableId), businessDate = values(businessDate), refundedAt = values(refundedAt), - businessType = values(businessType) + businessType = values(businessType), + def23 = values(def23), + def24 = values(def24) diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/PassiveWarehouseReceiptToC.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/PassiveWarehouseReceiptToC.java index 2237ba3a..5ef49ff3 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/PassiveWarehouseReceiptToC.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/PassiveWarehouseReceiptToC.java @@ -1072,226 +1072,233 @@ public class PassiveWarehouseReceiptToC extends PluginBaseEntity { String newState = value.get(0).getNewState();//红字订单推送状态 String def10 = value.get(0).getDef10();//蓝字订单推送状态 -// try { - //生成业务日期 -// String generateBusinessDate = createSuccessFulTradeDate(header); -// String generateBusinessDate = value.get(0).getTargetBusinessDate().substring(0, 10); + // 验证是否为指定的店铺,如果为true,则取结存价 + Boolean isCheckShopChoose = balanceUnitPriceUtil.checkOfsShop(header.getStoreCode()); +// 把汇总好的出库单明细行合并成一行 + PassiveStorageSonDetailsDto2 passiveStorageSonDetailsDto2 = groupMergeDetailedRows2(value, isCheckShopChoose); + BigDecimal groupTotalPayAmount1 = passiveStorageSonDetailsDto2.getGroupTotalPayAmount(); + BigDecimal groupShipQty = passiveStorageSonDetailsDto2.getGroupShipQty(); + //当金额>0,但数量为0时,推送红字应收单 + if (groupTotalPayAmount1 != null && groupShipQty != null && groupTotalPayAmount1.compareTo(BigDecimal.ZERO) > 0 && groupShipQty.compareTo(BigDecimal.ZERO) == 0) { + try { + BdBusitypeEntity bdBusitypeEntity = u8cOperationFlowV4(); +// 生成业务日期 + String generateBusinessDate = value.get(0).getTargetBusinessDate().substring(0, 10); - //组装应收单表头 -// 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.setDef1(shopArchives.getDocname()); -// //来源平台 -// parentVo.setZyx2(platformArchives.getDoccode()); -//// parentVo.setDef2(platformArchives.getDocname()); -// //收发类别 -// parentVo.setZyx3(bdRdclEntity.getRdcode()); -//// parentVo.setDef3(bdRdclEntity.getRdname()); -// //单据红字标识 -// parentVo.setZyx16("1"); -//// parentVo.setDef16(OverallConstant.getOverAllValue("u8c自定义项档案-单据红字标识-Y名称")); -//// parentVo.setZyx19();//自定义项19 OFS单号不传,因为是汇总的 -// parentVo.setZyx17(ProfilesActiveConstant.sourceSystem1);//来源系统 -// parentVo.setZyx18(key); +// 组装应收单表头 + 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.setDef1(shopArchives.getDocname()); + //来源平台 + parentVo.setZyx2(platformArchives.getDoccode()); +// parentVo.setDef2(platformArchives.getDocname()); + //收发类别 + parentVo.setZyx3(bdRdclEntity.getRdcode()); +// parentVo.setDef3(bdRdclEntity.getRdname()); - //验证是否为指定的店铺,如果为true,则取结存价 -// Boolean isCheckShopChoose = balanceUnitPriceUtil.checkOfsShop(header.getStoreCode()); - //把汇总好的出库单明细行合并成一行 -// PassiveStorageSonDetailsDto2 passiveStorageSonDetailsDto2 = groupMergeDetailedRows2(value, isCheckShopChoose); - //存货管理档案:取发货公司的存货管理档案 -// BdInvmandocEntity bdInvmandocEntity = value.get(0).getBdInvmandocEntity(); - //存货基础档案 -// BdInvbasdocEntity bdInvbasdocEntity = value.get(0).getBdInvbasdocEntity(); - //根据存货基础档案编码,查询当前存货的税率 -// BdTaxitemsEntity bdTaxitemsEntity1 = value.get(0).getBdTaxitemsEntity(); + parentVo.setZyx8(OverallConstant.getOverAllValue("售后类型标识-TOC无源件-编码")); + //单据红字标识 + parentVo.setZyx16("1"); +// parentVo.setDef16(OverallConstant.getOverAllValue("u8c自定义项档案-单据红字标识-Y名称")); +// parentVo.setZyx19();//自定义项19 OFS单号不传,因为是汇总的 + parentVo.setZyx17(ProfilesActiveConstant.sourceSystem1);//来源系统 + parentVo.setZyx18(key); - //如果合并后的金额为0,则不传到U8C -// Assert.notNull(passiveStorageSonDetailsDto2.getGroupTotalPayAmount(), "passiveStorageSonDetailsDto.getGroupTotalPayAmount()不能为空!"); -// BigDecimal groupTotalPayAmount = passiveStorageSonDetailsDto2.getGroupTotalPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP); -// if ("0".equals(groupTotalPayAmount.stripTrailingZeros().toPlainString())) { -// continue; -// } +// 存货管理档案:取发货公司的存货管理档案 + BdInvmandocEntity bdInvmandocEntity = value.get(0).getBdInvmandocEntity(); +// 存货基础档案 + BdInvbasdocEntity bdInvbasdocEntity = value.get(0).getBdInvbasdocEntity(); +// 根据存货基础档案编码,查询当前存货的税率 + BdTaxitemsEntity bdTaxitemsEntity1 = value.get(0).getBdTaxitemsEntity(); -// String tax = null;//税率 -// BigDecimal noriginalcurmny = null;//无税金额 -// BigDecimal noriginalcurtaxmny = null;//税额 -// try { -// tax = new BigDecimal(bdTaxitemsEntity1.getTaxratio()).divide(new BigDecimal(100), 20, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString(); -// noriginalcurmny = groupTotalPayAmount.divide(new BigDecimal(1).add(new BigDecimal(tax)), 20, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP); -// noriginalcurtaxmny = groupTotalPayAmount.subtract(noriginalcurmny).setScale(2, BigDecimal.ROUND_HALF_UP); -// } catch (Exception e) { -// logger.error("金额计算失败", e); -// Assert.state(false, "金额计算失败 跑出异常:{}", e.getMessage()); -// } +// 如果合并后的金额为0,则不传到U8C + Assert.notNull(passiveStorageSonDetailsDto2.getGroupTotalPayAmount(), "passiveStorageSonDetailsDto.getGroupTotalPayAmount()不能为空!"); + BigDecimal groupTotalPayAmount = passiveStorageSonDetailsDto2.getGroupTotalPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP); + if ("0".equals(groupTotalPayAmount.stripTrailingZeros().toPlainString())) { + continue; + } - //组装应收单表体 -// List pushScenarioType = new ArrayList<>(); -// ArapDjzbVO.Childrenn arapDjzbVOChildrenn = new ArapDjzbVO.Childrenn(); -// pushScenarioType.add(arapDjzbVOChildrenn); -// arapDjzbVOChildrenn.setCinventoryid(bdInvbasdocEntity.getInvcode());//存货管理档案 -// arapDjzbVOChildrenn.setJfbbje("-" + groupTotalPayAmount.stripTrailingZeros().toPlainString());//借方本币金额 -// arapDjzbVOChildrenn.setJfybje("-" + groupTotalPayAmount.stripTrailingZeros().toPlainString());//借方原币金额 -// arapDjzbVOChildrenn.setJfbbsj("-" + noriginalcurmny.stripTrailingZeros().toPlainString());//借方本币税金 -// arapDjzbVOChildrenn.setJfybsj("-" + noriginalcurmny.stripTrailingZeros().toPlainString());//借方原币税金 -// arapDjzbVOChildrenn.setWbfbbje("-" + noriginalcurtaxmny.stripTrailingZeros().toPlainString());//借方本币无税金额 -// arapDjzbVOChildrenn.setJfybwsje("-" + noriginalcurtaxmny.stripTrailingZeros().toPlainString());//借方原币无税金额 + String tax = null;//税率 + BigDecimal noriginalcurmny = null;//无税金额 + BigDecimal noriginalcurtaxmny = null;//税额 + try { + tax = new BigDecimal(bdTaxitemsEntity1.getTaxratio()).divide(new BigDecimal(100), 20, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString(); + noriginalcurmny = groupTotalPayAmount.divide(new BigDecimal(1).add(new BigDecimal(tax)), 20, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP); + noriginalcurtaxmny = groupTotalPayAmount.subtract(noriginalcurmny).setScale(2, BigDecimal.ROUND_HALF_UP); + } catch (Exception e) { + logger.error("金额计算失败", e); + Assert.state(false, "金额计算失败 跑出异常:{}", e.getMessage()); + } -// //退货没有邮费金额,已经向万万确认 -// //平台优惠 -// if (passiveStorageSonDetailsDto2.getVdef4() != null) { -// BigDecimal vdef4 = passiveStorageSonDetailsDto2.getVdef4(); -// if (vdef4.compareTo(BigDecimal.ZERO) > 0) { -// //发货运费-存货基本档案 -// BdInvbasdocEntity bdInvbasdocEntity1 = mapBdInvbasdocEntity.get("FY01"); -// //存货管理档案 -// BdInvmandocEntity bdInvmandocEntity1 = stringBdInvmandocEntityMap.get(bdInvbasdocEntity1.getInvcode() + deliverGoodsCorp.getPkCorp()); -// //存货对应的税率 -// BdTaxitemsEntity bdTaxitemsEntity = stringBdTaxitemsEntityMap.get("FY01"); -// //补充:平台优惠-存货 -// BigDecimal absAccumulatedPostage = vdef4.abs(); -// BigDecimal negativeValue = absAccumulatedPostage.negate(); -// queryAdditionUtil.additionalV2(pushScenarioType, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, bdTaxitemsEntity); -// } -// } -// //达人优惠 -// if (passiveStorageSonDetailsDto2.getVdef6() != null) { -// BigDecimal vdef6 = passiveStorageSonDetailsDto2.getVdef6(); -// if (vdef6.compareTo(BigDecimal.ZERO) > 0) { -// //发货运费-存货基本档案 -// BdInvbasdocEntity bdInvbasdocEntity1 = mapBdInvbasdocEntity.get("FY02"); -// //存货管理档案 -// BdInvmandocEntity bdInvmandocEntity1 = stringBdInvmandocEntityMap.get(bdInvbasdocEntity1.getInvcode() + deliverGoodsCorp.getPkCorp()); -// //存货对应的税率 -// BdTaxitemsEntity bdTaxitemsEntity = stringBdTaxitemsEntityMap.get("FY02"); -// //补充:达人优惠-存货 -// BigDecimal absAccumulatedPostage = vdef6.abs(); -// BigDecimal negativeValue = absAccumulatedPostage.negate(); -// queryAdditionUtil.additionalV2(pushScenarioType, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, bdTaxitemsEntity); -// } -// } - //支付优惠 -// if (passiveStorageSonDetailsDto2.getVdef5() != null) { -// BigDecimal vdef5 = passiveStorageSonDetailsDto2.getVdef5(); -// if (vdef5.compareTo(BigDecimal.ZERO) > 0) { -// //发货运费-存货基本档案 -// BdInvbasdocEntity bdInvbasdocEntity1 = mapBdInvbasdocEntity.get("FY04"); -// //存货管理档案 -// BdInvmandocEntity bdInvmandocEntity1 = stringBdInvmandocEntityMap.get(bdInvbasdocEntity1.getInvcode() + deliverGoodsCorp.getPkCorp()); -// //存货对应的税率 -// BdTaxitemsEntity bdTaxitemsEntity = stringBdTaxitemsEntityMap.get("FY04"); -// //补充:支付优惠-存货 -// BigDecimal absAccumulatedPostage = vdef5.abs(); -// BigDecimal negativeValue = absAccumulatedPostage.negate(); -// queryAdditionUtil.additionalV2(pushScenarioType, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, bdTaxitemsEntity); -// } -// } +// 组装应收单表体 + List pushScenarioType = new ArrayList<>(); + ArapDjzbVO.Childrenn arapDjzbVOChildrenn = new ArapDjzbVO.Childrenn(); + pushScenarioType.add(arapDjzbVOChildrenn); + arapDjzbVOChildrenn.setCinventoryid(bdInvbasdocEntity.getInvcode());//存货管理档案 + arapDjzbVOChildrenn.setJfbbje("-" + groupTotalPayAmount.stripTrailingZeros().toPlainString());//借方本币金额 + arapDjzbVOChildrenn.setJfybje("-" + groupTotalPayAmount.stripTrailingZeros().toPlainString());//借方原币金额 + arapDjzbVOChildrenn.setJfbbsj("-" + noriginalcurmny.stripTrailingZeros().toPlainString());//借方本币税金 + arapDjzbVOChildrenn.setJfybsj("-" + noriginalcurmny.stripTrailingZeros().toPlainString());//借方原币税金 + arapDjzbVOChildrenn.setWbfbbje("-" + noriginalcurtaxmny.stripTrailingZeros().toPlainString());//借方本币无税金额 + arapDjzbVOChildrenn.setJfybwsje("-" + noriginalcurtaxmny.stripTrailingZeros().toPlainString());//借方原币无税金额 - //推送U8C -// List arapDjzbVOList = new ArrayList<>(); -// ArapDjzbVO arapDjzbVO = new ArapDjzbVO(); -// arapDjzbVO.setParentvo(parentVo); -// arapDjzbVO.setChildren(pushScenarioType); -// arapDjzbVOList.add(arapDjzbVO); -// -// Map> 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红字应收单:{} 应收单主键:{} 销售公司:{}", djbh, vouchid, dwbm); - //生成业务日期 + //退货没有邮费金额,已经向万万确认 + //平台优惠 + if (passiveStorageSonDetailsDto2.getVdef4() != null) { + BigDecimal vdef4 = passiveStorageSonDetailsDto2.getVdef4(); + if (vdef4.compareTo(BigDecimal.ZERO) > 0) { + //发货运费-存货基本档案 + BdInvbasdocEntity bdInvbasdocEntity1 = mapBdInvbasdocEntity.get("FY01"); + //存货管理档案 + BdInvmandocEntity bdInvmandocEntity1 = stringBdInvmandocEntityMap.get(bdInvbasdocEntity1.getInvcode() + deliverGoodsCorp.getPkCorp()); + //存货对应的税率 + BdTaxitemsEntity bdTaxitemsEntity = stringBdTaxitemsEntityMap.get("FY01"); + //补充:平台优惠-存货 + BigDecimal absAccumulatedPostage = vdef4.abs(); + BigDecimal negativeValue = absAccumulatedPostage.negate(); + queryAdditionUtil.additionalV2(pushScenarioType, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, bdTaxitemsEntity); + } + } + //达人优惠 + if (passiveStorageSonDetailsDto2.getVdef6() != null) { + BigDecimal vdef6 = passiveStorageSonDetailsDto2.getVdef6(); + if (vdef6.compareTo(BigDecimal.ZERO) > 0) { + //发货运费-存货基本档案 + BdInvbasdocEntity bdInvbasdocEntity1 = mapBdInvbasdocEntity.get("FY02"); + //存货管理档案 + BdInvmandocEntity bdInvmandocEntity1 = stringBdInvmandocEntityMap.get(bdInvbasdocEntity1.getInvcode() + deliverGoodsCorp.getPkCorp()); + //存货对应的税率 + BdTaxitemsEntity bdTaxitemsEntity = stringBdTaxitemsEntityMap.get("FY02"); + //补充:达人优惠-存货 + BigDecimal absAccumulatedPostage = vdef6.abs(); + BigDecimal negativeValue = absAccumulatedPostage.negate(); + queryAdditionUtil.additionalV2(pushScenarioType, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, bdTaxitemsEntity); + } + } +// 支付优惠 + if (passiveStorageSonDetailsDto2.getVdef5() != null) { + BigDecimal vdef5 = passiveStorageSonDetailsDto2.getVdef5(); + if (vdef5.compareTo(BigDecimal.ZERO) > 0) { + //发货运费-存货基本档案 + BdInvbasdocEntity bdInvbasdocEntity1 = mapBdInvbasdocEntity.get("FY04"); + //存货管理档案 + BdInvmandocEntity bdInvmandocEntity1 = stringBdInvmandocEntityMap.get(bdInvbasdocEntity1.getInvcode() + deliverGoodsCorp.getPkCorp()); + //存货对应的税率 + BdTaxitemsEntity bdTaxitemsEntity = stringBdTaxitemsEntityMap.get("FY04"); + //补充:支付优惠-存货 + BigDecimal absAccumulatedPostage = vdef5.abs(); + BigDecimal negativeValue = absAccumulatedPostage.negate(); + queryAdditionUtil.additionalV2(pushScenarioType, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, bdTaxitemsEntity); + } + } +// 推送U8C + List arapDjzbVOList = new ArrayList<>(); + ArapDjzbVO arapDjzbVO = new ArapDjzbVO(); + arapDjzbVO.setParentvo(parentVo); + arapDjzbVO.setChildren(pushScenarioType); + arapDjzbVOList.add(arapDjzbVO); -// updateSuccessOrFail3(value, "Y", "success", djbh, vouchid); -// } catch (Exception e) { -// logger.error("TOC红字应收单转换成U8C对象过程中、或者单据推送到U8C出现异常!", e); -// //记录失败 -// String message = e.getMessage(); -// if (message == null) { -// message = "未知错误"; -// } -// updateSuccessOrFail3(value, "N", message, null, null); -// } + Map> 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红字应收单:{} 应收单主键:{} 销售公司:{}", djbh, vouchid, dwbm); +// 记录同步状态 + updateSuccessOrFail3(value, "Y", "success", djbh, vouchid, value.get(0).getStorageTimeStamp()); + } catch (Exception e) { + logger.error("TOC红字应收单转换成U8C对象过程中、或者单据推送到U8C出现异常!", e); + //记录失败 + String message = e.getMessage(); + if (message == null) { + message = "未知错误"; + } + updateSuccessOrFail3(value, "N", message, null, null, value.get(0).getStorageTimeStamp()); + } + } - try { - String generateBusinessDate = value.get(0).getTargetBusinessDate().substring(0, 10); + //当金额大于或者等于0,数量大于0推送销售订单 + if (groupTotalPayAmount1 != null && groupShipQty != null && groupTotalPayAmount1.compareTo(BigDecimal.ZERO) >= 0 && groupShipQty.compareTo(BigDecimal.ZERO) > 0) { + try { + String generateBusinessDate = value.get(0).getTargetBusinessDate().substring(0, 10); - SaleorderRequestDto saleorderRequestDto = new SaleorderRequestDto(); - SaleorderRequestParentDto saleorderRequestParentDto = new SaleorderRequestParentDto(); - saleorderRequestParentDto.setDbilldate(generateBusinessDate);//单据日期 - saleorderRequestParentDto.setBretinvflag("Y");//退货标记 - saleorderRequestParentDto.setCbiztype(bdBusitypeEntity1.getPkBusitype());//业务流程 - saleorderRequestParentDto.setCcalbodyid(bdCalbodyEntity.getPkCalbody());//库存组织 - saleorderRequestParentDto.setCcustomerid(bdCumandocEntity.getPkCumandoc());//客户=开票单位=收货单位=表体收货单位=收货单位 - saleorderRequestParentDto.setCdeptid(bdDeptdocEntity.getPkDeptdoc());//部门 - saleorderRequestParentDto.setCemployeeid(null);//业务员 - saleorderRequestParentDto.setCoperatorid(OverallConstant.getOverAllValue("u8cApiZdrPK"));//制单人 - saleorderRequestParentDto.setCreceiptcorpid(bdCumandocEntity.getPkCumandoc());//开票单位 - saleorderRequestParentDto.setCreceiptcustomerid(bdCumandocEntity.getPkCumandoc());//收货单位 - saleorderRequestParentDto.setCsalecorpid(bdSalestruEntity.getCsalestruid());//销售组织 - saleorderRequestParentDto.setCwarehouseid(bdStordocEntity.getPkStordoc());//仓库 - saleorderRequestParentDto.setDapprovedate(generateBusinessDate);//审核日期 - saleorderRequestParentDto.setNdiscountrate("100.000000");//整单折扣 - saleorderRequestParentDto.setPk_corp(bdCorpEntity.getPkCorp());//公司id - //汇总单号=汇总维度 - saleorderRequestParentDto.setVdef18(key); - //平台 - saleorderRequestParentDto.setPk_defdoc2(platformArchives.getPkDefdoc()); - saleorderRequestParentDto.setVdef2(platformArchives.getDocname()); - saleorderRequestParentDto.setVdef17(ProfilesActiveConstant.sourceSystem1);//来源系统 + SaleorderRequestDto saleorderRequestDto = new SaleorderRequestDto(); + SaleorderRequestParentDto saleorderRequestParentDto = new SaleorderRequestParentDto(); + saleorderRequestParentDto.setDbilldate(generateBusinessDate);//单据日期 + saleorderRequestParentDto.setBretinvflag("Y");//退货标记 + saleorderRequestParentDto.setCbiztype(bdBusitypeEntity1.getPkBusitype());//业务流程 + saleorderRequestParentDto.setCcalbodyid(bdCalbodyEntity.getPkCalbody());//库存组织 + saleorderRequestParentDto.setCcustomerid(bdCumandocEntity.getPkCumandoc());//客户=开票单位=收货单位=表体收货单位=收货单位 + saleorderRequestParentDto.setCdeptid(bdDeptdocEntity.getPkDeptdoc());//部门 + saleorderRequestParentDto.setCemployeeid(null);//业务员 + saleorderRequestParentDto.setCoperatorid(OverallConstant.getOverAllValue("u8cApiZdrPK"));//制单人 + saleorderRequestParentDto.setCreceiptcorpid(bdCumandocEntity.getPkCumandoc());//开票单位 + saleorderRequestParentDto.setCreceiptcustomerid(bdCumandocEntity.getPkCumandoc());//收货单位 + saleorderRequestParentDto.setCsalecorpid(bdSalestruEntity.getCsalestruid());//销售组织 + saleorderRequestParentDto.setCwarehouseid(bdStordocEntity.getPkStordoc());//仓库 + saleorderRequestParentDto.setDapprovedate(generateBusinessDate);//审核日期 + saleorderRequestParentDto.setNdiscountrate("100.000000");//整单折扣 + saleorderRequestParentDto.setPk_corp(bdCorpEntity.getPkCorp());//公司id + //汇总单号=汇总维度 + saleorderRequestParentDto.setVdef18(key); + //平台 + saleorderRequestParentDto.setPk_defdoc2(platformArchives.getPkDefdoc()); + saleorderRequestParentDto.setVdef2(platformArchives.getDocname()); + saleorderRequestParentDto.setVdef17(ProfilesActiveConstant.sourceSystem1);//来源系统 - //收发类别 - saleorderRequestParentDto.setPk_defdoc3(bdRdclEntity.getPkRdcl()); - saleorderRequestParentDto.setVdef3(bdRdclEntity.getRdname()); + //收发类别 + 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()); + //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名称")); + //单据红字标识 + saleorderRequestParentDto.setPk_defdoc16(OverallConstant.getOverAllValue("u8c自定义项档案-单据红字标识-Y主键")); + saleorderRequestParentDto.setVdef16(OverallConstant.getOverAllValue("u8c自定义项档案-单据红字标识-Y名称")); - //售后类型标识 - saleorderRequestParentDto.setPk_defdoc8(OverallConstant.getOverAllValue("售后类型标识-TOC无源件-主键")); - saleorderRequestParentDto.setVdef8(OverallConstant.getOverAllValue("售后类型标识-TOC无源件-名称")); + //售后类型标识 + saleorderRequestParentDto.setPk_defdoc8(OverallConstant.getOverAllValue("售后类型标识-TOC无源件-主键")); + saleorderRequestParentDto.setVdef8(OverallConstant.getOverAllValue("售后类型标识-TOC无源件-名称")); - saleorderRequestDto.setParentvo(saleorderRequestParentDto); + saleorderRequestDto.setParentvo(saleorderRequestParentDto); - List saleorderRequestChildrenDtoList = new ArrayList<>(); - saleorderRequestDto.setChildrenvo(saleorderRequestChildrenDtoList); + List saleorderRequestChildrenDtoList = new ArrayList<>(); + saleorderRequestDto.setChildrenvo(saleorderRequestChildrenDtoList); - //验证是否为指定的店铺,如果为true,则取结存价 - Boolean isCheckShopChoose = balanceUnitPriceUtil.checkOfsShop(header.getStoreCode()); - //把汇总好的出库单明细行合并成一行 - PassiveStorageSonDetailsDto2 passiveStorageSonDetailsDto2 = groupMergeDetailedRows2(value, isCheckShopChoose); + //验证是否为指定的店铺,如果为true,则取结存价 +// Boolean isCheckShopChoose = balanceUnitPriceUtil.checkOfsShop(header.getStoreCode()); + //把汇总好的出库单明细行合并成一行 +// PassiveStorageSonDetailsDto2 passiveStorageSonDetailsDto2 = groupMergeDetailedRows2(value, isCheckShopChoose); - //存货管理档案:取发货公司的存货管理档案 - BdInvmandocEntity bdInvmandocEntity = value.get(0).getBdInvmandocEntity(); - //存货基础档案 - BdInvbasdocEntity bdInvbasdocEntity = value.get(0).getBdInvbasdocEntity(); - //根据存货基础档案编码,查询当前存货的税率 - BdTaxitemsEntity bdTaxitemsEntity1 = value.get(0).getBdTaxitemsEntity(); - //查询收支项目 + //存货管理档案:取发货公司的存货管理档案 + BdInvmandocEntity bdInvmandocEntity = value.get(0).getBdInvmandocEntity(); + //存货基础档案 + BdInvbasdocEntity bdInvbasdocEntity = value.get(0).getBdInvbasdocEntity(); + //根据存货基础档案编码,查询当前存货的税率 + BdTaxitemsEntity bdTaxitemsEntity1 = value.get(0).getBdTaxitemsEntity(); + //查询收支项目 // BdInvclEntity bdInvclEntity = queryU8CEntityUtil.queryBdInvbasdocByBdInvcl(bdInvbasdocEntity); // BdCostsubjEntity bdCostsubjEntity = queryU8CEntityUtil.queryBdCostsubj(bdInvclEntity); @@ -1314,189 +1321,189 @@ public class PassiveWarehouseReceiptToC extends PluginBaseEntity { // } // 判断是否为赠品 - Boolean isblargessflag = false; - if ("0".equals(passiveStorageSonDetailsDto2.getGroupTotalPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString())) { - isblargessflag = true; - } + Boolean isblargessflag = false; + if ("0".equals(passiveStorageSonDetailsDto2.getGroupTotalPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString())) { + isblargessflag = true; + } - //合并后如果数量为0,则过滤掉 - if ("0".equals(passiveStorageSonDetailsDto2.getGroupShipQty().stripTrailingZeros().toPlainString())) { - continue; - } + //合并后如果数量为0,则过滤掉 + if ("0".equals(passiveStorageSonDetailsDto2.getGroupShipQty().stripTrailingZeros().toPlainString())) { + continue; + } - SaleorderRequestChildrenDto saleorderRequestChildrenDto = new SaleorderRequestChildrenDto(); - saleorderRequestChildrenDto.setBlargessflag(isblargessflag);//是否赠品 - saleorderRequestChildrenDto.setCadvisecalbodyid(bdCalbodyEntity.getPkCalbody());//发货库存组织 - saleorderRequestChildrenDto.setCbodywarehouseid(bdStordocEntity.getPkStordoc());//发货仓库 - saleorderRequestChildrenDto.setCconsigncorpid(deliverGoodsCorp.getPkCorp());//发货公司 - saleorderRequestChildrenDto.setCcurrencytypeid("00010000000000000001");//币种 - saleorderRequestChildrenDto.setCinventoryid(bdInvmandocEntity.getPkInvmandoc());//存货id - saleorderRequestChildrenDto.setCreceiptcorpid(bdCumandocEntity.getPkCumandoc());//收货单位 - saleorderRequestChildrenDto.setDconsigndate(generateBusinessDate);//计划发货日期 - saleorderRequestChildrenDto.setDdeliverdate(generateBusinessDate);// 要求收货日期 - saleorderRequestChildrenDto.setNexchangeotobrate("1.00000000");//折本汇率 - saleorderRequestChildrenDto.setNitemdiscountrate("100.000000");//单品折扣 - saleorderRequestChildrenDto.setNnumber("-" + passiveStorageSonDetailsDto2.getGroupShipQty().stripTrailingZeros().toPlainString());//数量 - saleorderRequestChildrenDto.setNoriginalcurdiscountmny("0");//折扣额 + SaleorderRequestChildrenDto saleorderRequestChildrenDto = new SaleorderRequestChildrenDto(); + saleorderRequestChildrenDto.setBlargessflag(isblargessflag);//是否赠品 + saleorderRequestChildrenDto.setCadvisecalbodyid(bdCalbodyEntity.getPkCalbody());//发货库存组织 + saleorderRequestChildrenDto.setCbodywarehouseid(bdStordocEntity.getPkStordoc());//发货仓库 + saleorderRequestChildrenDto.setCconsigncorpid(deliverGoodsCorp.getPkCorp());//发货公司 + saleorderRequestChildrenDto.setCcurrencytypeid("00010000000000000001");//币种 + saleorderRequestChildrenDto.setCinventoryid(bdInvmandocEntity.getPkInvmandoc());//存货id + saleorderRequestChildrenDto.setCreceiptcorpid(bdCumandocEntity.getPkCumandoc());//收货单位 + saleorderRequestChildrenDto.setDconsigndate(generateBusinessDate);//计划发货日期 + saleorderRequestChildrenDto.setDdeliverdate(generateBusinessDate);// 要求收货日期 + saleorderRequestChildrenDto.setNexchangeotobrate("1.00000000");//折本汇率 + saleorderRequestChildrenDto.setNitemdiscountrate("100.000000");//单品折扣 + saleorderRequestChildrenDto.setNnumber("-" + passiveStorageSonDetailsDto2.getGroupShipQty().stripTrailingZeros().toPlainString());//数量 + saleorderRequestChildrenDto.setNoriginalcurdiscountmny("0");//折扣额 // saleorderRequestChildrenDto.setNoriginalcurmny("-" + noriginalcurmny.stripTrailingZeros().toPlainString());//无税金额 // saleorderRequestChildrenDto.setNoriginalcurnetprice(noriginalcurprice.stripTrailingZeros().toPlainString());//无税净价 // saleorderRequestChildrenDto.setNoriginalcurprice(noriginalcurprice.stripTrailingZeros().toPlainString());//无税单价 // saleorderRequestChildrenDto.setNoriginalcursummny("-" + noriginalcursummny.stripTrailingZeros().toPlainString());//价税合计 - if (isblargessflag) { - saleorderRequestChildrenDto.setNoriginalcursummny("0"); - } else { - saleorderRequestChildrenDto.setNoriginalcursummny("-" + passiveStorageSonDetailsDto2.getGroupTotalPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString());//价税合计 - } + if (isblargessflag) { + saleorderRequestChildrenDto.setNoriginalcursummny("0"); + } else { + saleorderRequestChildrenDto.setNoriginalcursummny("-" + passiveStorageSonDetailsDto2.getGroupTotalPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString());//价税合计 + } // saleorderRequestChildrenDto.setNoriginalcurtaxmny("-" + noriginalcurtaxmny.stripTrailingZeros().toPlainString());//税额 // saleorderRequestChildrenDto.setNoriginalcurtaxnetprice(noriginalcurtaxprice.stripTrailingZeros().toPlainString());//含税净价 // saleorderRequestChildrenDto.setNoriginalcurtaxprice(noriginalcurtaxprice.stripTrailingZeros().toPlainString());//含税单价 // saleorderRequestChildrenDto.setNtaxrate(new BigDecimal(bdTaxitemsEntity1.getTaxratio()).stripTrailingZeros().toPlainString());//税率 // saleorderRequestChildrenDto.setVdef2(bdCostsubjEntity.getCostname());//收支项目 // saleorderRequestChildrenDto.setPk_defdoc2(bdCostsubjEntity.getPkCostsubj()); - //如果优惠金额为0,则传0 - if (!"0".equals(passiveStorageSonDetailsDto2.getVdef4().stripTrailingZeros().toPlainString())) { - saleorderRequestChildrenDto.setVdef4("-" + passiveStorageSonDetailsDto2.getVdef4().stripTrailingZeros().toPlainString()); - } else { - saleorderRequestChildrenDto.setVdef4("0"); - } - if (!"0".equals(passiveStorageSonDetailsDto2.getVdef5().stripTrailingZeros().toPlainString())) { - saleorderRequestChildrenDto.setVdef5("-" + passiveStorageSonDetailsDto2.getVdef5().stripTrailingZeros().toPlainString()); - } else { - saleorderRequestChildrenDto.setVdef5("0"); - } - if (!"0".equals(passiveStorageSonDetailsDto2.getVdef6().stripTrailingZeros().toPlainString())) { - saleorderRequestChildrenDto.setVdef6("-" + passiveStorageSonDetailsDto2.getVdef6().stripTrailingZeros().toPlainString()); - } else { - saleorderRequestChildrenDto.setVdef6("0"); - } - if (!"0".equals(passiveStorageSonDetailsDto2.getVdef7().stripTrailingZeros().toPlainString())) { - saleorderRequestChildrenDto.setVdef7("-" + passiveStorageSonDetailsDto2.getVdef7().stripTrailingZeros().toPlainString()); - } else { - saleorderRequestChildrenDto.setVdef7("0"); - } - saleorderRequestChildrenDtoList.add(saleorderRequestChildrenDto); + //如果优惠金额为0,则传0 + if (!"0".equals(passiveStorageSonDetailsDto2.getVdef4().stripTrailingZeros().toPlainString())) { + saleorderRequestChildrenDto.setVdef4("-" + passiveStorageSonDetailsDto2.getVdef4().stripTrailingZeros().toPlainString()); + } else { + saleorderRequestChildrenDto.setVdef4("0"); + } + if (!"0".equals(passiveStorageSonDetailsDto2.getVdef5().stripTrailingZeros().toPlainString())) { + saleorderRequestChildrenDto.setVdef5("-" + passiveStorageSonDetailsDto2.getVdef5().stripTrailingZeros().toPlainString()); + } else { + saleorderRequestChildrenDto.setVdef5("0"); + } + if (!"0".equals(passiveStorageSonDetailsDto2.getVdef6().stripTrailingZeros().toPlainString())) { + saleorderRequestChildrenDto.setVdef6("-" + passiveStorageSonDetailsDto2.getVdef6().stripTrailingZeros().toPlainString()); + } else { + saleorderRequestChildrenDto.setVdef6("0"); + } + if (!"0".equals(passiveStorageSonDetailsDto2.getVdef7().stripTrailingZeros().toPlainString())) { + saleorderRequestChildrenDto.setVdef7("-" + passiveStorageSonDetailsDto2.getVdef7().stripTrailingZeros().toPlainString()); + } else { + saleorderRequestChildrenDto.setVdef7("0"); + } + saleorderRequestChildrenDtoList.add(saleorderRequestChildrenDto); - //如果合并后的金额为0,则不传到U8C - Assert.notNull(passiveStorageSonDetailsDto2.getGroupTotalPayAmount(), "goodsRertunSonDetailsDto.getGroupTotalPayAmount()不能为空!"); + //如果合并后的金额为0,则不传到U8C + Assert.notNull(passiveStorageSonDetailsDto2.getGroupTotalPayAmount(), "goodsRertunSonDetailsDto.getGroupTotalPayAmount()不能为空!"); // BigDecimal groupTotalPayAmount = passiveStorageSonDetailsDto2.getGroupTotalPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP); // if ("0".equals(groupTotalPayAmount.stripTrailingZeros().toPlainString())) { // continue; // } - //退货没有邮费金额,已经向万万确认 - //平台优惠 - if (passiveStorageSonDetailsDto2.getVdef4() != null) { - BigDecimal vdef4 = passiveStorageSonDetailsDto2.getVdef4(); - if (vdef4.compareTo(BigDecimal.ZERO) > 0) { - //发货运费-存货基本档案 - BdInvbasdocEntity bdInvbasdocEntity1 = mapBdInvbasdocEntity.get("FY01"); - //存货管理档案 - BdInvmandocEntity bdInvmandocEntity1 = stringBdInvmandocEntityMap.get(bdInvbasdocEntity1.getInvcode() + deliverGoodsCorp.getPkCorp()); - //存货对应的税率 - BdTaxitemsEntity bdTaxitemsEntity = stringBdTaxitemsEntityMap.get("FY01"); - //补充:平台优惠-存货 - BigDecimal absAccumulatedPostage = vdef4.abs(); - BigDecimal negativeValue = absAccumulatedPostage.negate(); - queryAdditionUtil.additional(saleorderRequestChildrenDtoList, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, "-1", bdTaxitemsEntity); - } - } - //达人优惠 - if (passiveStorageSonDetailsDto2.getVdef6() != null) { - BigDecimal vdef6 = passiveStorageSonDetailsDto2.getVdef6(); - if (vdef6.compareTo(BigDecimal.ZERO) > 0) { - //发货运费-存货基本档案 - BdInvbasdocEntity bdInvbasdocEntity1 = mapBdInvbasdocEntity.get("FY02"); - //存货管理档案 - BdInvmandocEntity bdInvmandocEntity1 = stringBdInvmandocEntityMap.get(bdInvbasdocEntity1.getInvcode() + deliverGoodsCorp.getPkCorp()); - //存货对应的税率 - BdTaxitemsEntity bdTaxitemsEntity = stringBdTaxitemsEntityMap.get("FY02"); - //补充:达人优惠-存货 - BigDecimal absAccumulatedPostage = vdef6.abs(); - BigDecimal negativeValue = absAccumulatedPostage.negate(); - queryAdditionUtil.additional(saleorderRequestChildrenDtoList, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, "-1", bdTaxitemsEntity); - } - } - //支付优惠 - if (passiveStorageSonDetailsDto2.getVdef5() != null) { - BigDecimal vdef5 = passiveStorageSonDetailsDto2.getVdef5(); - if (vdef5.compareTo(BigDecimal.ZERO) > 0) { - //发货运费-存货基本档案 - BdInvbasdocEntity bdInvbasdocEntity1 = mapBdInvbasdocEntity.get("FY04"); - //存货管理档案 - BdInvmandocEntity bdInvmandocEntity1 = stringBdInvmandocEntityMap.get(bdInvbasdocEntity1.getInvcode() + deliverGoodsCorp.getPkCorp()); - //存货对应的税率 - BdTaxitemsEntity bdTaxitemsEntity = stringBdTaxitemsEntityMap.get("FY04"); - //补充:支付优惠-存货 - BigDecimal absAccumulatedPostage = vdef5.abs(); - BigDecimal negativeValue = absAccumulatedPostage.negate();// 符号取反(转为负数) - queryAdditionUtil.additional(saleorderRequestChildrenDtoList, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, "-1", bdTaxitemsEntity); - } - } - - boolean oneSuccess = false; - if (!"Y".equals(newState)) { - //推送U8C红字销售订单,如果推送失败,抛出异常,那么就会外围的try catch捕获,代码不会往下执行 - - List saleorderRequestDtoList = new ArrayList<>(); - saleorderRequestDtoList.add(saleorderRequestDto); - Map> stringStringMap = new HashMap<>(); - stringStringMap.put("saleorder", saleorderRequestDtoList); - SoSaleResultRootDto soSaleResultRootDto = sendU8CTOCOrder(JSON.toJSONString(stringStringMap)); - String vreceiptcode = null; - String pk_corp = null; - String csaleid = null; - if (soSaleResultRootDto != null && soSaleResultRootDto.getParentvo() != null) { - vreceiptcode = soSaleResultRootDto.getParentvo().getVreceiptcode(); - pk_corp = soSaleResultRootDto.getParentvo().getPk_corp(); - csaleid = soSaleResultRootDto.getParentvo().getCsaleid(); - } - logger.info("TOC红字销售订单编号:{} 销售订单主键:{} 销售公司:{}", vreceiptcode, csaleid, pk_corp); - updateSuccessOrFail3(value, "Y", "success", vreceiptcode, csaleid, value.get(0).getStorageTimeStamp()); - oneSuccess = true; - } else { - oneSuccess = true; - } - - //判断关联时间与交易成功时间,推送u8c生成蓝字销售订单,仅满足情况二的条件才生成这张蓝字销售订单 - try { - if (!"Y".equals(def10) && oneSuccess && "2".equals(value.get(0).getStorageTimeStamp())) { - SaleorderRequestDto saleorderRequestDto1 = transformRedSalesOrderToBlueSalesOrder(saleorderRequestDto, bdBusitypeEntity2); - - List saleorderRequestDtoList2 = new ArrayList<>(); - saleorderRequestDtoList2.add(saleorderRequestDto1); - Map> stringStringMap2 = new HashMap<>(); - stringStringMap2.put("saleorder", saleorderRequestDtoList2); - SoSaleResultRootDto soSaleResultRootDto2 = sendU8CTOCOrder(JSON.toJSONString(stringStringMap2)); - - String vreceiptcode2 = null; - String pk_corp2 = null; - String csaleid2 = null; - if (soSaleResultRootDto2 != null && soSaleResultRootDto2.getParentvo() != null) { - vreceiptcode2 = soSaleResultRootDto2.getParentvo().getVreceiptcode(); - pk_corp2 = soSaleResultRootDto2.getParentvo().getPk_corp(); - csaleid2 = soSaleResultRootDto2.getParentvo().getCsaleid(); + //退货没有邮费金额,已经向万万确认 + //平台优惠 + if (passiveStorageSonDetailsDto2.getVdef4() != null) { + BigDecimal vdef4 = passiveStorageSonDetailsDto2.getVdef4(); + if (vdef4.compareTo(BigDecimal.ZERO) > 0) { + //发货运费-存货基本档案 + BdInvbasdocEntity bdInvbasdocEntity1 = mapBdInvbasdocEntity.get("FY01"); + //存货管理档案 + BdInvmandocEntity bdInvmandocEntity1 = stringBdInvmandocEntityMap.get(bdInvbasdocEntity1.getInvcode() + deliverGoodsCorp.getPkCorp()); + //存货对应的税率 + BdTaxitemsEntity bdTaxitemsEntity = stringBdTaxitemsEntityMap.get("FY01"); + //补充:平台优惠-存货 + BigDecimal absAccumulatedPostage = vdef4.abs(); + BigDecimal negativeValue = absAccumulatedPostage.negate(); + queryAdditionUtil.additional(saleorderRequestChildrenDtoList, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, "-1", bdTaxitemsEntity); } + } + //达人优惠 + if (passiveStorageSonDetailsDto2.getVdef6() != null) { + BigDecimal vdef6 = passiveStorageSonDetailsDto2.getVdef6(); + if (vdef6.compareTo(BigDecimal.ZERO) > 0) { + //发货运费-存货基本档案 + BdInvbasdocEntity bdInvbasdocEntity1 = mapBdInvbasdocEntity.get("FY02"); + //存货管理档案 + BdInvmandocEntity bdInvmandocEntity1 = stringBdInvmandocEntityMap.get(bdInvbasdocEntity1.getInvcode() + deliverGoodsCorp.getPkCorp()); + //存货对应的税率 + BdTaxitemsEntity bdTaxitemsEntity = stringBdTaxitemsEntityMap.get("FY02"); + //补充:达人优惠-存货 + BigDecimal absAccumulatedPostage = vdef6.abs(); + BigDecimal negativeValue = absAccumulatedPostage.negate(); + queryAdditionUtil.additional(saleorderRequestChildrenDtoList, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, "-1", bdTaxitemsEntity); + } + } + //支付优惠 + if (passiveStorageSonDetailsDto2.getVdef5() != null) { + BigDecimal vdef5 = passiveStorageSonDetailsDto2.getVdef5(); + if (vdef5.compareTo(BigDecimal.ZERO) > 0) { + //发货运费-存货基本档案 + BdInvbasdocEntity bdInvbasdocEntity1 = mapBdInvbasdocEntity.get("FY04"); + //存货管理档案 + BdInvmandocEntity bdInvmandocEntity1 = stringBdInvmandocEntityMap.get(bdInvbasdocEntity1.getInvcode() + deliverGoodsCorp.getPkCorp()); + //存货对应的税率 + BdTaxitemsEntity bdTaxitemsEntity = stringBdTaxitemsEntityMap.get("FY04"); + //补充:支付优惠-存货 + BigDecimal absAccumulatedPostage = vdef5.abs(); + BigDecimal negativeValue = absAccumulatedPostage.negate();// 符号取反(转为负数) + queryAdditionUtil.additional(saleorderRequestChildrenDtoList, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, "-1", bdTaxitemsEntity); + } + } - logger.info("TOC蓝字销售订单编号:{} 销售订单主键:{} 销售公司:{}", vreceiptcode2, csaleid2, pk_corp2); - updateSuccessOrFail4(value, "Y", "success", vreceiptcode2, csaleid2, value.get(0).getStorageTimeStamp()); + boolean oneSuccess = false; + if (!"Y".equals(newState)) { + //推送U8C红字销售订单,如果推送失败,抛出异常,那么就会外围的try catch捕获,代码不会往下执行 + List saleorderRequestDtoList = new ArrayList<>(); + saleorderRequestDtoList.add(saleorderRequestDto); + Map> stringStringMap = new HashMap<>(); + stringStringMap.put("saleorder", saleorderRequestDtoList); + SoSaleResultRootDto soSaleResultRootDto = sendU8CTOCOrder(JSON.toJSONString(stringStringMap)); + String vreceiptcode = null; + String pk_corp = null; + String csaleid = null; + if (soSaleResultRootDto != null && soSaleResultRootDto.getParentvo() != null) { + vreceiptcode = soSaleResultRootDto.getParentvo().getVreceiptcode(); + pk_corp = soSaleResultRootDto.getParentvo().getPk_corp(); + csaleid = soSaleResultRootDto.getParentvo().getCsaleid(); + } + logger.info("TOC红字销售订单编号:{} 销售订单主键:{} 销售公司:{}", vreceiptcode, csaleid, pk_corp); + updateSuccessOrFail3(value, "Y", "success", vreceiptcode, csaleid, value.get(0).getStorageTimeStamp()); + oneSuccess = true; + } else { + oneSuccess = true; + } + + //判断关联时间与交易成功时间,推送u8c生成蓝字销售订单,仅满足情况二的条件才生成这张蓝字销售订单 + try { + if (!"Y".equals(def10) && oneSuccess && "2".equals(value.get(0).getStorageTimeStamp())) { + SaleorderRequestDto saleorderRequestDto1 = transformRedSalesOrderToBlueSalesOrder(saleorderRequestDto, bdBusitypeEntity2); + + List saleorderRequestDtoList2 = new ArrayList<>(); + saleorderRequestDtoList2.add(saleorderRequestDto1); + Map> stringStringMap2 = new HashMap<>(); + stringStringMap2.put("saleorder", saleorderRequestDtoList2); + SoSaleResultRootDto soSaleResultRootDto2 = sendU8CTOCOrder(JSON.toJSONString(stringStringMap2)); + + String vreceiptcode2 = null; + String pk_corp2 = null; + String csaleid2 = null; + if (soSaleResultRootDto2 != null && soSaleResultRootDto2.getParentvo() != null) { + vreceiptcode2 = soSaleResultRootDto2.getParentvo().getVreceiptcode(); + pk_corp2 = soSaleResultRootDto2.getParentvo().getPk_corp(); + csaleid2 = soSaleResultRootDto2.getParentvo().getCsaleid(); + } + + logger.info("TOC蓝字销售订单编号:{} 销售订单主键:{} 销售公司:{}", vreceiptcode2, csaleid2, pk_corp2); + updateSuccessOrFail4(value, "Y", "success", vreceiptcode2, csaleid2, value.get(0).getStorageTimeStamp()); + } + } catch (Exception e) { + //记录蓝字销售订单异常失败 + logger.error("推送蓝字销售订单抛出异常!", e); + String message = e.getMessage(); + if (message == null) { + message = "未知错误"; + } + updateSuccessOrFail4(value, "N", message, null, null, value.get(0).getStorageTimeStamp()); } } catch (Exception e) { - //记录蓝字销售订单异常失败 - logger.error("推送蓝字销售订单抛出异常!", e); + //记录红字销售订单异常失败 + logger.error("TOC退货业务转换成U8C对象过程中、或者单据推送到U8C出现异常!", e); String message = e.getMessage(); if (message == null) { message = "未知错误"; } - updateSuccessOrFail4(value, "N", message, null, null, value.get(0).getStorageTimeStamp()); + updateSuccessOrFail3(value, "N", message, null, null, value.get(0).getStorageTimeStamp()); } - } catch (Exception e) { - //记录红字销售订单异常失败 - logger.error("TOC退货业务转换成U8C对象过程中、或者单据推送到U8C出现异常!", e); - String message = e.getMessage(); - if (message == null) { - message = "未知错误"; - } - updateSuccessOrFail3(value, "N", message, null, null, value.get(0).getStorageTimeStamp()); } } } else { @@ -2537,6 +2544,20 @@ public class PassiveWarehouseReceiptToC extends PluginBaseEntity { return bdBusitypeEntity; } + /** + * 2025年8月15日15:58:55 查询U8C业务流程 + * + * @author liuyang + */ + private BdBusitypeEntity u8cOperationFlowV4() throws Exception { + //查询业务流程 + //2024年8月6日 11:33:07 具体的业务流程名称,还需要实施提供 + String processName = "TOC销售退款"; + BdBusitypeEntity bdBusitypeEntity = queryBdBusitypeUtil.queryBdBusitype(processName); + Assert.notNull(bdBusitypeEntity, "根据业务流程名称({})没有查询到业务流程", processName); + return bdBusitypeEntity; + } + /** * 检查参数是否为空 * 2024年8月6日 11:40:19 保险的做法,最好还是验证一下 @@ -2911,6 +2932,16 @@ public class PassiveWarehouseReceiptToC extends PluginBaseEntity { if (header.getRelatedAt() != null) { ofsPassiveorderDetailEntity.setBusinessdate(header.getRelatedAt()); } + //交易成功时间 + HeaderDetailsDto headerDetailsDto = header.getHeaderDetailsDto(); + if (headerDetailsDto != null && headerDetailsDto.getHeader() != null) { + HeaderDto header1 = headerDetailsDto.getHeader(); + String tradeSuccessAt = header1.getTradeSuccessAt(); + if (tradeSuccessAt != null) { + ofsPassiveorderDetailEntity.setDef11(tradeSuccessAt); + } + } + //业务类型 ofsPassiveorderDetailEntity.setBusinesstype("TOC_ORDER"); } @@ -2949,6 +2980,19 @@ public class PassiveWarehouseReceiptToC extends PluginBaseEntity { String relatedAt = header2.getRelatedAt(); DateTime relatedAtDate = DateUtil.parse(relatedAt); + HeaderDetailsDto headerDetailsDto1 = header.getHeaderDetailsDto(); + if (headerDetailsDto1 != null && headerDetailsDto1.getHeader() != null) { + HeaderDto header3 = headerDetailsDto1.getHeader(); + if (header3.getTradeSuccessAt() != null) { + ofsPassiveorderDetailEntity.setDef13(header3.getTradeSuccessAt()); + } + } + + String storageTimeStamp = header.getStorageTimeStamp(); + if (storageTimeStamp != null) { + ofsPassiveorderDetailEntity.setDef7(storageTimeStamp); + } + //售后订单-退款时间 // String refundedAt = header.getRefundedAt(); // DateTime refundedAtDate = DateUtil.parse(refundedAt); @@ -3463,10 +3507,19 @@ public class PassiveWarehouseReceiptToC extends PluginBaseEntity { for (int i = 0; i < sonDetailsDtoList.size(); i++) { PassiveStorageSonDetailsDto passiveStorageSonDetailsDto = sonDetailsDtoList.get(i); + String tradeSuccessAt = null; + PassiveStorageResponse.Header header = passiveStorageSonDetailsDto.getHeader(); + if (header != null && header.getHeaderDetailsDto() != null) { + HeaderDetailsDto headerDetailsDto = header.getHeaderDetailsDto(); + HeaderDto header1 = headerDetailsDto.getHeader(); + tradeSuccessAt = header1.getTradeSuccessAt(); + } + OfsPassiveorderDetailEntity ofsPassiveorderDetailEntity = new OfsPassiveorderDetailEntity(); ofsPassiveorderDetailEntity.setId(passiveStorageSonDetailsDto.getId()); //2025年8月7日15:51:21 不需要这个字段,保存原始底表的mysql会处理这个字段 // ofsPassiveorderDetailEntity.setTransactionDate(passiveStorageSonDetailsDto.getRefundedAt()); + ofsPassiveorderDetailEntity.setDef11(tradeSuccessAt); ofsPassiveorderDetailEntity.setNewpushdate(getNewDateStr()); ofsPassiveorderDetailEntity.setNewtransmitinfo(finalNewTransmitInfo); ofsPassiveorderDetailEntity.setNewstate(newstate); @@ -3677,9 +3730,19 @@ public class PassiveWarehouseReceiptToC extends PluginBaseEntity { List onlyAfterSalesBEntityArrayList = new ArrayList<>(); for (int i = 0; i < value.size(); i++) { PassiveStorageSonDetailsDto2 passiveStorageSonDetailsDto2 = value.get(i); + String tradeSuccessAt = null; + RerturnGoodsOrderSearchHeader rerturnGoodsOrderSearchHeader = passiveStorageSonDetailsDto2.getRerturnGoodsOrderSearchHeader(); + if (rerturnGoodsOrderSearchHeader != null) { + HeaderDetailsDto headerDetailsDto = rerturnGoodsOrderSearchHeader.getHeaderDetailsDto(); + if (headerDetailsDto != null) { + HeaderDto header = headerDetailsDto.getHeader(); + tradeSuccessAt = header.getTradeSuccessAt(); + } + } OnlyAfterSalesBEntity ofsPassiveorderDetailEntity = new OnlyAfterSalesBEntity(); ofsPassiveorderDetailEntity.setOfsid(passiveStorageSonDetailsDto2.getId()); + ofsPassiveorderDetailEntity.setDef13(tradeSuccessAt); ofsPassiveorderDetailEntity.setDef8(getNewDateStr()); ofsPassiveorderDetailEntity.setDef9(finalNewTransmitInfo); diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToC.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToC.java index 884f9106..f5fb7932 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToC.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToC.java @@ -1004,7 +1004,7 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { pk_corp = soSaleResultRootDto.getParentvo().getPk_corp(); csaleid = soSaleResultRootDto.getParentvo().getCsaleid(); } - logger.info("TOC销售订单编号:{} 主键:{} 销售公司:{}", vreceiptcode, csaleid, pk_corp); + logger.info("TOC销售订单编号:{} 主键:{} 销售公司:{} 公司:{}", vreceiptcode, csaleid, pk_corp, bdCorpEntity.getUnitname()); updateSuccessOrFail1(oldValue, "Y", "success", vreceiptcode, csaleid); } else if (ProfilesActiveConstant.PUSH_SCENE_TYPE_0.equals(pushScenarioType)) { //选择暂存等待下次发起 @@ -1095,55 +1095,217 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { String newstate4 = oldValue.get(0).getNewstate4(); String def15 = oldValue.get(0).getDef15(); - try { + //验证是否为指定的店铺,如果为true,则取结存价 + Boolean isCheckShopChoose = balanceUnitPriceUtil.checkOfsShop(header.getStoreCode()); + //把汇总好的出库单明细行合并成一行 + GoodsRertunSonDetailsDto goodsRertunSonDetailsDto = groupMergeDetailedRows(oldValue, isCheckShopChoose, sceneType); + Assert.notNull(goodsRertunSonDetailsDto, "合并明细行失败!"); + BigDecimal groupShipQty = goodsRertunSonDetailsDto.getGroupShipQty(); + BigDecimal groupTotalPayAmount = goodsRertunSonDetailsDto.getGroupTotalPayAmount(); + + //当金额>0,但数量为0时,推送红字应收单 + if (groupTotalPayAmount != null && groupShipQty != null && groupTotalPayAmount.compareTo(BigDecimal.ZERO) > 0 && groupShipQty.compareTo(BigDecimal.ZERO) == 0) { + try { + BdBusitypeEntity bdBusitypeEntity = u8cOperationFlowV4(); + //生成业务日期 + String generateBusinessDate = createSuccessFulTradeDate(header); + + //红字应收单表头 + 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);//汇总维度 + + //验证是否为指定的店铺,如果为true,则取结存价 +// Boolean isCheckShopChoose = balanceUnitPriceUtil.checkOfsShop(header.getStoreCode()); + //把汇总好的出库单明细行合并成一行 +// GoodsRertunSonDetailsDto goodsRertunSonDetailsDto = groupMergeDetailedRows(oldValue, isCheckShopChoose, sceneType); + + //存货管理档案:取发货公司的存货管理档案 + BdInvmandocEntity bdInvmandocEntity = oldValue.get(0).getBdInvmandocEntity(); + //存货基础档案 + BdInvbasdocEntity bdInvbasdocEntity = oldValue.get(0).getBdInvbasdocEntity(); + //根据存货基础档案编码,查询当前存货的税率 + BdTaxitemsEntity bdTaxitemsEntity1 = oldValue.get(0).getBdTaxitemsEntity(); + + //如果合并后的金额为0,则不传到U8C + Assert.notNull(goodsRertunSonDetailsDto.getGroupTotalPayAmount(), "goodsRertunSonDetailsDto.getGroupTotalPayAmount()不能为空!"); + BigDecimal groupTotalPayAmount2 = goodsRertunSonDetailsDto.getGroupTotalPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP); + if ("0".equals(groupTotalPayAmount2.stripTrailingZeros().toPlainString())) { + continue; + } + + //修改为生成红字应收单表体 + List childrennArrayList = new ArrayList<>(); + ArapDjzbVO.Childrenn arapDjzbVOChildrenn = new ArapDjzbVO.Childrenn(); + childrennArrayList.add(arapDjzbVOChildrenn); + arapDjzbVOChildrenn.setCinventoryid(bdInvbasdocEntity.getInvcode());//存货管理档案 + arapDjzbVOChildrenn.setJfbbje("-" + groupTotalPayAmount2.stripTrailingZeros().toPlainString());//借方本币金额 + arapDjzbVOChildrenn.setJfybje("-" + groupTotalPayAmount2.stripTrailingZeros().toPlainString());//借方原币金额 +// arapDjzbVOChildrenn.setJfbbsj("-" + noriginalcurmny.stripTrailingZeros().toPlainString());//借方本币税金 +// arapDjzbVOChildrenn.setJfybsj("-" + noriginalcurmny.stripTrailingZeros().toPlainString());//借方原币税金 +// arapDjzbVOChildrenn.setWbfbbje("-" + noriginalcurtaxmny.stripTrailingZeros().toPlainString());//借方本币无税金额 +// arapDjzbVOChildrenn.setJfybwsje("-" + noriginalcurtaxmny.stripTrailingZeros().toPlainString());//借方原币无税金额 + + //退货没有邮费金额,已经向万万确认 + //平台优惠 + if (goodsRertunSonDetailsDto.getVdef4() != null) { + BigDecimal vdef4 = goodsRertunSonDetailsDto.getVdef4(); + if (vdef4.compareTo(BigDecimal.ZERO) > 0) { + //发货运费-存货基本档案 + BdInvbasdocEntity bdInvbasdocEntity1 = mapBdInvbasdocEntity.get("FY01"); + //存货管理档案 + BdInvmandocEntity bdInvmandocEntity1 = stringBdInvmandocEntityMap.get(bdInvbasdocEntity1.getInvcode() + deliverGoodsCorp.getPkCorp()); + //存货对应的税率 + BdTaxitemsEntity bdTaxitemsEntity = stringBdTaxitemsEntityMap.get("FY01"); + //补充:平台优惠-存货 + BigDecimal absAccumulatedPostage = vdef4.abs(); + BigDecimal negativeValue = absAccumulatedPostage.negate(); + queryAdditionUtil.additionalV3(childrennArrayList, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, bdTaxitemsEntity); + } + } + //达人优惠 + if (goodsRertunSonDetailsDto.getVdef6() != null) { + BigDecimal vdef6 = goodsRertunSonDetailsDto.getVdef6(); + if (vdef6.compareTo(BigDecimal.ZERO) > 0) { + //发货运费-存货基本档案 + BdInvbasdocEntity bdInvbasdocEntity1 = mapBdInvbasdocEntity.get("FY02"); + //存货管理档案 + BdInvmandocEntity bdInvmandocEntity1 = stringBdInvmandocEntityMap.get(bdInvbasdocEntity1.getInvcode() + deliverGoodsCorp.getPkCorp()); + //存货对应的税率 + BdTaxitemsEntity bdTaxitemsEntity = stringBdTaxitemsEntityMap.get("FY02"); + //补充:达人优惠-存货 + BigDecimal absAccumulatedPostage = vdef6.abs(); + BigDecimal negativeValue = absAccumulatedPostage.negate(); + queryAdditionUtil.additionalV3(childrennArrayList, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, bdTaxitemsEntity); + } + } + //支付优惠 + if (goodsRertunSonDetailsDto.getVdef5() != null) { + BigDecimal vdef5 = goodsRertunSonDetailsDto.getVdef5(); + if (vdef5.compareTo(BigDecimal.ZERO) > 0) { + //发货运费-存货基本档案 + BdInvbasdocEntity bdInvbasdocEntity1 = mapBdInvbasdocEntity.get("FY04"); + //存货管理档案 + BdInvmandocEntity bdInvmandocEntity1 = stringBdInvmandocEntityMap.get(bdInvbasdocEntity1.getInvcode() + deliverGoodsCorp.getPkCorp()); + //存货对应的税率 + BdTaxitemsEntity bdTaxitemsEntity = stringBdTaxitemsEntityMap.get("FY04"); + //补充:支付优惠-存货 + BigDecimal absAccumulatedPostage = vdef5.abs(); + BigDecimal negativeValue = absAccumulatedPostage.negate(); + queryAdditionUtil.additionalV3(childrennArrayList, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, bdTaxitemsEntity); + } + } + + if (ProfilesActiveConstant.PUSH_SCENE_TYPE_1.equals(pushScenarioType) || ProfilesActiveConstant.PUSH_SCENE_TYPE_2.equals(pushScenarioType)) { + //推送U8C生成红字应收单 + List arapDjzbVOList = new ArrayList<>(); + ArapDjzbVO arapDjzbVO = new ArapDjzbVO(); + arapDjzbVO.setParentvo(parentVo); + arapDjzbVO.setChildren(childrennArrayList); + arapDjzbVOList.add(arapDjzbVO); + + Map> 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红字应收单:{} 销售订单主键:{} 销售公司:{} 公司:{}", djbh, vouchid, dwbm, bdCorpEntity.getUnitname()); + + updateSuccessOrFail2(oldValue, "Y", "success", djbh, vouchid, oldValue.get(0).getStorageTimeStamp()); + } else if (ProfilesActiveConstant.PUSH_SCENE_TYPE_0.equals(pushScenarioType)) { + //不推送U8C,单据暂存 + String vreceiptcode = "暂存"; + String csaleid = "暂存"; + String newstate = "S"; + String newTransmitInfo = "暂存"; + updateSuccessOrFail2(oldValue, newstate, newTransmitInfo, vreceiptcode, csaleid, oldValue.get(0).getStorageTimeStamp()); + } else { + Assert.state(false, "未知的场景类型 pushScenarioType={}", pushScenarioType); + } + } catch (Exception e) { + logger.error("TOC退货业务转换成U8C对象过程中、或者单据推送到U8C出现异常!", e); + //记录失败 + String message = e.getMessage(); + if (message == null) { + message = "未知错误"; + } + updateSuccessOrFail2(oldValue, "N", message, null, null, oldValue.get(0).getStorageTimeStamp()); + } + } + + //当金额大于或者等于0,数量大于0推送销售订单 + if (groupShipQty != null && groupTotalPayAmount != null && groupTotalPayAmount.compareTo(BigDecimal.ZERO) >= 0 && groupShipQty.compareTo(BigDecimal.ZERO) > 0) { + try { // checkArchives(oldValue.get(0)); - //生成业务日期 - String generateBusinessDate = createSuccessFulTradeDate(header); + //生成业务日期 + String generateBusinessDate = createSuccessFulTradeDate(header); - SaleorderRequestDto saleorderRequestDto = new SaleorderRequestDto(); - SaleorderRequestParentDto saleorderRequestParentDto = new SaleorderRequestParentDto(); - saleorderRequestParentDto.setDbilldate(generateBusinessDate);//单据日期 - saleorderRequestParentDto.setBretinvflag("Y");//退货标记 - saleorderRequestParentDto.setCbiztype(bdBusitypeEntity1.getPkBusitype());//业务流程 - saleorderRequestParentDto.setCcalbodyid(bdCalbodyEntity.getPkCalbody());//库存组织 - saleorderRequestParentDto.setCcustomerid(bdCumandocEntity.getPkCumandoc());//客户=开票单位=收货单位=表体收货单位=收货单位 - saleorderRequestParentDto.setCdeptid(bdDeptdocEntity.getPkDeptdoc());//部门 - saleorderRequestParentDto.setCemployeeid(null);//业务员 - saleorderRequestParentDto.setCoperatorid(OverallConstant.getOverAllValue("u8cApiZdrPK"));//制单人 - saleorderRequestParentDto.setCreceiptcorpid(bdCumandocEntity.getPkCumandoc());//开票单位 - saleorderRequestParentDto.setCreceiptcustomerid(bdCumandocEntity.getPkCumandoc());//收货单位 - saleorderRequestParentDto.setCsalecorpid(bdSalestruEntity.getCsalestruid());//销售组织 - saleorderRequestParentDto.setCwarehouseid(bdStordocEntity.getPkStordoc());//仓库 - saleorderRequestParentDto.setDapprovedate(generateBusinessDate);//审核日期 - saleorderRequestParentDto.setNdiscountrate("100.000000");//整单折扣 - saleorderRequestParentDto.setPk_corp(bdCorpEntity.getPkCorp());//公司id - //汇总单号=汇总维度 - saleorderRequestParentDto.setVdef18(keyGroup); - //平台 - saleorderRequestParentDto.setPk_defdoc2(platformArchives.getPkDefdoc()); - saleorderRequestParentDto.setVdef2(platformArchives.getDocname()); - saleorderRequestParentDto.setVdef17(ProfilesActiveConstant.sourceSystem1);//来源系统 + SaleorderRequestDto saleorderRequestDto = new SaleorderRequestDto(); + SaleorderRequestParentDto saleorderRequestParentDto = new SaleorderRequestParentDto(); + saleorderRequestParentDto.setDbilldate(generateBusinessDate);//单据日期 + saleorderRequestParentDto.setBretinvflag("Y");//退货标记 + saleorderRequestParentDto.setCbiztype(bdBusitypeEntity1.getPkBusitype());//业务流程 + saleorderRequestParentDto.setCcalbodyid(bdCalbodyEntity.getPkCalbody());//库存组织 + saleorderRequestParentDto.setCcustomerid(bdCumandocEntity.getPkCumandoc());//客户=开票单位=收货单位=表体收货单位=收货单位 + saleorderRequestParentDto.setCdeptid(bdDeptdocEntity.getPkDeptdoc());//部门 + saleorderRequestParentDto.setCemployeeid(null);//业务员 + saleorderRequestParentDto.setCoperatorid(OverallConstant.getOverAllValue("u8cApiZdrPK"));//制单人 + saleorderRequestParentDto.setCreceiptcorpid(bdCumandocEntity.getPkCumandoc());//开票单位 + saleorderRequestParentDto.setCreceiptcustomerid(bdCumandocEntity.getPkCumandoc());//收货单位 + saleorderRequestParentDto.setCsalecorpid(bdSalestruEntity.getCsalestruid());//销售组织 + saleorderRequestParentDto.setCwarehouseid(bdStordocEntity.getPkStordoc());//仓库 + saleorderRequestParentDto.setDapprovedate(generateBusinessDate);//审核日期 + saleorderRequestParentDto.setNdiscountrate("100.000000");//整单折扣 + saleorderRequestParentDto.setPk_corp(bdCorpEntity.getPkCorp());//公司id + //汇总单号=汇总维度 + saleorderRequestParentDto.setVdef18(keyGroup); + //平台 + saleorderRequestParentDto.setPk_defdoc2(platformArchives.getPkDefdoc()); + saleorderRequestParentDto.setVdef2(platformArchives.getDocname()); + saleorderRequestParentDto.setVdef17(ProfilesActiveConstant.sourceSystem1);//来源系统 - //收发类别 - saleorderRequestParentDto.setPk_defdoc3(bdRdclEntity.getPkRdcl()); - saleorderRequestParentDto.setVdef3(bdRdclEntity.getRdname()); + //收发类别 + 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()); + //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名称")); + //单据红字标识 + saleorderRequestParentDto.setPk_defdoc16(OverallConstant.getOverAllValue("u8c自定义项档案-单据红字标识-Y主键")); + saleorderRequestParentDto.setVdef16(OverallConstant.getOverAllValue("u8c自定义项档案-单据红字标识-Y名称")); - //售后类型标识 - saleorderRequestParentDto.setPk_defdoc8(OverallConstant.getOverAllValue("售后类型标识-TOC售后-主键")); - saleorderRequestParentDto.setVdef8(OverallConstant.getOverAllValue("售后类型标识-TOC售后-名称")); + //售后类型标识 + saleorderRequestParentDto.setPk_defdoc8(OverallConstant.getOverAllValue("售后类型标识-TOC售后-主键")); + saleorderRequestParentDto.setVdef8(OverallConstant.getOverAllValue("售后类型标识-TOC售后-名称")); - saleorderRequestDto.setParentvo(saleorderRequestParentDto); - //改为红字应收单表头 - //组装应收单表头 + saleorderRequestDto.setParentvo(saleorderRequestParentDto); + //改为红字应收单表头 + //组装应收单表头 // ArapDjzbVO.Parentt parentVo = new ArapDjzbVO.Parentt(); // parentVo.setDjrq(generateBusinessDate);//单据日期 // parentVo.setDwbm(bdCorpEntity.getUnitcode());//公司 @@ -1163,28 +1325,23 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { // parentVo.setZyx17(ProfilesActiveConstant.sourceSystem1);//来源系统 // parentVo.setZyx18(keyGroup);//汇总维度 - List saleorderRequestChildrenDtoList = new ArrayList<>(); - saleorderRequestDto.setChildrenvo(saleorderRequestChildrenDtoList); + List saleorderRequestChildrenDtoList = new ArrayList<>(); + saleorderRequestDto.setChildrenvo(saleorderRequestChildrenDtoList); - //验证是否为指定的店铺,如果为true,则取结存价 - Boolean isCheckShopChoose = balanceUnitPriceUtil.checkOfsShop(header.getStoreCode()); - //把汇总好的出库单明细行合并成一行 - GoodsRertunSonDetailsDto goodsRertunSonDetailsDto = groupMergeDetailedRows(oldValue, isCheckShopChoose, sceneType); - - //存货管理档案:取发货公司的存货管理档案 - BdInvmandocEntity bdInvmandocEntity = oldValue.get(0).getBdInvmandocEntity(); - //存货基础档案 - BdInvbasdocEntity bdInvbasdocEntity = oldValue.get(0).getBdInvbasdocEntity(); - //根据存货基础档案编码,查询当前存货的税率 - BdTaxitemsEntity bdTaxitemsEntity1 = oldValue.get(0).getBdTaxitemsEntity(); - //查询收支项目 + //存货管理档案:取发货公司的存货管理档案 + BdInvmandocEntity bdInvmandocEntity = oldValue.get(0).getBdInvmandocEntity(); + //存货基础档案 + BdInvbasdocEntity bdInvbasdocEntity = oldValue.get(0).getBdInvbasdocEntity(); + //根据存货基础档案编码,查询当前存货的税率 + BdTaxitemsEntity bdTaxitemsEntity1 = oldValue.get(0).getBdTaxitemsEntity(); + //查询收支项目 // BdInvclEntity bdInvclEntity = queryU8CEntityUtil.queryBdInvbasdocByBdInvcl(bdInvbasdocEntity); // BdCostsubjEntity bdCostsubjEntity = queryU8CEntityUtil.queryBdCostsubj(bdInvclEntity); - //合并后如果数量为0,则过滤掉 - if ("0".equals(goodsRertunSonDetailsDto.getGroupShipQty().stripTrailingZeros().toPlainString())) { - continue; - } + //合并后如果数量为0,则过滤掉 + if ("0".equals(goodsRertunSonDetailsDto.getGroupShipQty().stripTrailingZeros().toPlainString())) { + continue; + } // String tax = new BigDecimal(bdTaxitemsEntity1.getTaxratio()).divide(new BigDecimal(100), 20, BigDecimal.ROUND_HALF_UP).setScale(2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString(); @@ -1205,67 +1362,67 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { // } // 判断是否为赠品 - Boolean isblargessflag = false; - if ("0".equals(goodsRertunSonDetailsDto.getGroupTotalPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString())) { - isblargessflag = true; - } + Boolean isblargessflag = false; + if ("0".equals(goodsRertunSonDetailsDto.getGroupTotalPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString())) { + isblargessflag = true; + } - SaleorderRequestChildrenDto saleorderRequestChildrenDto = new SaleorderRequestChildrenDto(); - saleorderRequestChildrenDto.setBlargessflag(isblargessflag);//是否赠品 - saleorderRequestChildrenDto.setCadvisecalbodyid(bdCalbodyEntity.getPkCalbody());//发货库存组织 - saleorderRequestChildrenDto.setCbodywarehouseid(bdStordocEntity.getPkStordoc());//发货仓库 - saleorderRequestChildrenDto.setCconsigncorpid(deliverGoodsCorp.getPkCorp());//发货公司 - saleorderRequestChildrenDto.setCcurrencytypeid("00010000000000000001");//币种 - saleorderRequestChildrenDto.setCinventoryid(bdInvmandocEntity.getPkInvmandoc());//存货id - saleorderRequestChildrenDto.setCreceiptcorpid(bdCumandocEntity.getPkCumandoc());//收货单位 - saleorderRequestChildrenDto.setDconsigndate(generateBusinessDate);//计划发货日期 - saleorderRequestChildrenDto.setDdeliverdate(generateBusinessDate);// 要求收货日期 - saleorderRequestChildrenDto.setNexchangeotobrate("1.00000000");//折本汇率 - saleorderRequestChildrenDto.setNitemdiscountrate("100.000000");//单品折扣 - saleorderRequestChildrenDto.setNnumber("-" + goodsRertunSonDetailsDto.getGroupShipQty().stripTrailingZeros().toPlainString());//数量 - saleorderRequestChildrenDto.setNoriginalcurdiscountmny("0");//折扣额 + SaleorderRequestChildrenDto saleorderRequestChildrenDto = new SaleorderRequestChildrenDto(); + saleorderRequestChildrenDto.setBlargessflag(isblargessflag);//是否赠品 + saleorderRequestChildrenDto.setCadvisecalbodyid(bdCalbodyEntity.getPkCalbody());//发货库存组织 + saleorderRequestChildrenDto.setCbodywarehouseid(bdStordocEntity.getPkStordoc());//发货仓库 + saleorderRequestChildrenDto.setCconsigncorpid(deliverGoodsCorp.getPkCorp());//发货公司 + saleorderRequestChildrenDto.setCcurrencytypeid("00010000000000000001");//币种 + saleorderRequestChildrenDto.setCinventoryid(bdInvmandocEntity.getPkInvmandoc());//存货id + saleorderRequestChildrenDto.setCreceiptcorpid(bdCumandocEntity.getPkCumandoc());//收货单位 + saleorderRequestChildrenDto.setDconsigndate(generateBusinessDate);//计划发货日期 + saleorderRequestChildrenDto.setDdeliverdate(generateBusinessDate);// 要求收货日期 + saleorderRequestChildrenDto.setNexchangeotobrate("1.00000000");//折本汇率 + saleorderRequestChildrenDto.setNitemdiscountrate("100.000000");//单品折扣 + saleorderRequestChildrenDto.setNnumber("-" + goodsRertunSonDetailsDto.getGroupShipQty().stripTrailingZeros().toPlainString());//数量 + saleorderRequestChildrenDto.setNoriginalcurdiscountmny("0");//折扣额 // saleorderRequestChildrenDto.setNoriginalcurmny("-" + noriginalcurmny.stripTrailingZeros().toPlainString());//无税金额 // saleorderRequestChildrenDto.setNoriginalcurnetprice(noriginalcurprice.stripTrailingZeros().toPlainString());//无税净价 // saleorderRequestChildrenDto.setNoriginalcurprice(noriginalcurprice.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.setNoriginalcurtaxnetprice(noriginalcurtaxprice.stripTrailingZeros().toPlainString());//含税净价 // saleorderRequestChildrenDto.setNoriginalcurtaxprice(noriginalcurtaxprice.stripTrailingZeros().toPlainString());//含税单价 // saleorderRequestChildrenDto.setNtaxrate(new BigDecimal(bdTaxitemsEntity1.getTaxratio()).stripTrailingZeros().toPlainString());//税率 // saleorderRequestChildrenDto.setVdef2(bdCostsubjEntity.getCostname());//收支项目 // saleorderRequestChildrenDto.setPk_defdoc2(bdCostsubjEntity.getPkCostsubj()); - //如果优惠金额为0,则传0 - if (!"0".equals(goodsRertunSonDetailsDto.getVdef4().stripTrailingZeros().toPlainString())) { - saleorderRequestChildrenDto.setVdef4("-" + goodsRertunSonDetailsDto.getVdef4().stripTrailingZeros().toPlainString()); - } else { - saleorderRequestChildrenDto.setVdef4("0"); - } - if (!"0".equals(goodsRertunSonDetailsDto.getVdef5().stripTrailingZeros().toPlainString())) { - saleorderRequestChildrenDto.setVdef5("-" + goodsRertunSonDetailsDto.getVdef5().stripTrailingZeros().toPlainString()); - } else { - saleorderRequestChildrenDto.setVdef5("0"); - } - if (!"0".equals(goodsRertunSonDetailsDto.getVdef6().stripTrailingZeros().toPlainString())) { - saleorderRequestChildrenDto.setVdef6("-" + goodsRertunSonDetailsDto.getVdef6().stripTrailingZeros().toPlainString()); - } else { - saleorderRequestChildrenDto.setVdef6("0"); - } - if (!"0".equals(goodsRertunSonDetailsDto.getVdef7().stripTrailingZeros().toPlainString())) { - saleorderRequestChildrenDto.setVdef7("-" + goodsRertunSonDetailsDto.getVdef7().stripTrailingZeros().toPlainString()); - } else { - saleorderRequestChildrenDto.setVdef7("0"); - } - saleorderRequestChildrenDtoList.add(saleorderRequestChildrenDto); + //如果优惠金额为0,则传0 + if (!"0".equals(goodsRertunSonDetailsDto.getVdef4().stripTrailingZeros().toPlainString())) { + saleorderRequestChildrenDto.setVdef4("-" + goodsRertunSonDetailsDto.getVdef4().stripTrailingZeros().toPlainString()); + } else { + saleorderRequestChildrenDto.setVdef4("0"); + } + if (!"0".equals(goodsRertunSonDetailsDto.getVdef5().stripTrailingZeros().toPlainString())) { + saleorderRequestChildrenDto.setVdef5("-" + goodsRertunSonDetailsDto.getVdef5().stripTrailingZeros().toPlainString()); + } else { + saleorderRequestChildrenDto.setVdef5("0"); + } + if (!"0".equals(goodsRertunSonDetailsDto.getVdef6().stripTrailingZeros().toPlainString())) { + saleorderRequestChildrenDto.setVdef6("-" + goodsRertunSonDetailsDto.getVdef6().stripTrailingZeros().toPlainString()); + } else { + saleorderRequestChildrenDto.setVdef6("0"); + } + if (!"0".equals(goodsRertunSonDetailsDto.getVdef7().stripTrailingZeros().toPlainString())) { + saleorderRequestChildrenDto.setVdef7("-" + goodsRertunSonDetailsDto.getVdef7().stripTrailingZeros().toPlainString()); + } else { + saleorderRequestChildrenDto.setVdef7("0"); + } + saleorderRequestChildrenDtoList.add(saleorderRequestChildrenDto); - //如果合并后的金额为0,则不传到U8C + //如果合并后的金额为0,则不传到U8C // Assert.notNull(goodsRertunSonDetailsDto.getGroupTotalPayAmount(), "goodsRertunSonDetailsDto.getGroupTotalPayAmount()不能为空!"); // BigDecimal groupTotalPayAmount = goodsRertunSonDetailsDto.getGroupTotalPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP); // if ("0".equals(groupTotalPayAmount.stripTrailingZeros().toPlainString())) { // continue; // } - //修改为生成红字应收单表体 + //修改为生成红字应收单表体 // List childrennArrayList = new ArrayList<>(); // ArapDjzbVO.Childrenn arapDjzbVOChildrenn = new ArapDjzbVO.Childrenn(); // childrennArrayList.add(arapDjzbVOChildrenn); @@ -1277,82 +1434,82 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { // arapDjzbVOChildrenn.setWbfbbje("-" + noriginalcurtaxmny.stripTrailingZeros().toPlainString());//借方本币无税金额 // arapDjzbVOChildrenn.setJfybwsje("-" + noriginalcurtaxmny.stripTrailingZeros().toPlainString());//借方原币无税金额 - //退货没有邮费金额,已经向万万确认 - //所有业务商家优惠都不传 - //平台优惠 - if (goodsRertunSonDetailsDto.getVdef4() != null) { - BigDecimal vdef4 = goodsRertunSonDetailsDto.getVdef4(); - if (vdef4.compareTo(BigDecimal.ZERO) > 0) { - //发货运费-存货基本档案 - BdInvbasdocEntity bdInvbasdocEntity1 = mapBdInvbasdocEntity.get("FY01"); - //存货管理档案 - BdInvmandocEntity bdInvmandocEntity1 = stringBdInvmandocEntityMap.get(bdInvbasdocEntity1.getInvcode() + deliverGoodsCorp.getPkCorp()); - //存货对应的税率 - BdTaxitemsEntity bdTaxitemsEntity = stringBdTaxitemsEntityMap.get("FY01"); - //补充:平台优惠-存货 - BigDecimal absAccumulatedPostage = vdef4.abs(); - BigDecimal negativeValue = absAccumulatedPostage.negate(); - queryAdditionUtil.additional(saleorderRequestChildrenDtoList, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, "-1", bdTaxitemsEntity); + //退货没有邮费金额,已经向万万确认 + //所有业务商家优惠都不传 + //平台优惠 + if (goodsRertunSonDetailsDto.getVdef4() != null) { + BigDecimal vdef4 = goodsRertunSonDetailsDto.getVdef4(); + if (vdef4.compareTo(BigDecimal.ZERO) > 0) { + //发货运费-存货基本档案 + BdInvbasdocEntity bdInvbasdocEntity1 = mapBdInvbasdocEntity.get("FY01"); + //存货管理档案 + BdInvmandocEntity bdInvmandocEntity1 = stringBdInvmandocEntityMap.get(bdInvbasdocEntity1.getInvcode() + deliverGoodsCorp.getPkCorp()); + //存货对应的税率 + BdTaxitemsEntity bdTaxitemsEntity = stringBdTaxitemsEntityMap.get("FY01"); + //补充:平台优惠-存货 + BigDecimal absAccumulatedPostage = vdef4.abs(); + BigDecimal negativeValue = absAccumulatedPostage.negate(); + queryAdditionUtil.additional(saleorderRequestChildrenDtoList, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, "-1", bdTaxitemsEntity); // queryAdditionUtil.additionalV3(childrennArrayList, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, bdTaxitemsEntity); - } - } - //达人优惠 - if (goodsRertunSonDetailsDto.getVdef6() != null) { - BigDecimal vdef6 = goodsRertunSonDetailsDto.getVdef6(); - if (vdef6.compareTo(BigDecimal.ZERO) > 0) { - //发货运费-存货基本档案 - BdInvbasdocEntity bdInvbasdocEntity1 = mapBdInvbasdocEntity.get("FY02"); - //存货管理档案 - BdInvmandocEntity bdInvmandocEntity1 = stringBdInvmandocEntityMap.get(bdInvbasdocEntity1.getInvcode() + deliverGoodsCorp.getPkCorp()); - //存货对应的税率 - BdTaxitemsEntity bdTaxitemsEntity = stringBdTaxitemsEntityMap.get("FY02"); - //补充:达人优惠-存货 - BigDecimal absAccumulatedPostage = vdef6.abs(); - BigDecimal negativeValue = absAccumulatedPostage.negate(); - queryAdditionUtil.additional(saleorderRequestChildrenDtoList, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, "-1", bdTaxitemsEntity); -// queryAdditionUtil.additionalV3(childrennArrayList, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, bdTaxitemsEntity); - } - } - //支付优惠 - if (goodsRertunSonDetailsDto.getVdef5() != null) { - BigDecimal vdef5 = goodsRertunSonDetailsDto.getVdef5(); - if (vdef5.compareTo(BigDecimal.ZERO) > 0) { - //发货运费-存货基本档案 - BdInvbasdocEntity bdInvbasdocEntity1 = mapBdInvbasdocEntity.get("FY04"); - //存货管理档案 - BdInvmandocEntity bdInvmandocEntity1 = stringBdInvmandocEntityMap.get(bdInvbasdocEntity1.getInvcode() + deliverGoodsCorp.getPkCorp()); - //存货对应的税率 - BdTaxitemsEntity bdTaxitemsEntity = stringBdTaxitemsEntityMap.get("FY04"); - //补充:支付优惠-存货 - BigDecimal absAccumulatedPostage = vdef5.abs(); - BigDecimal negativeValue = absAccumulatedPostage.negate();// 符号取反(转为负数) - queryAdditionUtil.additional(saleorderRequestChildrenDtoList, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, "-1", bdTaxitemsEntity); -// queryAdditionUtil.additionalV3(childrennArrayList, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, bdTaxitemsEntity); - } - } - - boolean oneSuccess = false; - if (!"Y".equals(newstate4)) { - if (ProfilesActiveConstant.PUSH_SCENE_TYPE_1.equals(pushScenarioType) || ProfilesActiveConstant.PUSH_SCENE_TYPE_2.equals(pushScenarioType)) { - //推送U8C红字销售订单,如果推送失败,抛出异常,那么就会外围的try catch捕获,代码不会往下执行 - List saleorderRequestDtoList = new ArrayList<>(); - saleorderRequestDtoList.add(saleorderRequestDto); - Map> stringStringMap = new HashMap<>(); - stringStringMap.put("saleorder", saleorderRequestDtoList); - SoSaleResultRootDto soSaleResultRootDto = sendU8CTOCOrder(JSON.toJSONString(stringStringMap)); - String vreceiptcode = null; - String pk_corp = null; - String csaleid = null; - if (soSaleResultRootDto != null && soSaleResultRootDto.getParentvo() != null) { - vreceiptcode = soSaleResultRootDto.getParentvo().getVreceiptcode(); - pk_corp = soSaleResultRootDto.getParentvo().getPk_corp(); - csaleid = soSaleResultRootDto.getParentvo().getCsaleid(); } - logger.info("TOC红字销售订单编号:{} 销售订单主键:{} 销售公司:{}", vreceiptcode, csaleid, pk_corp); - updateSuccessOrFail2(oldValue, "Y", "success", vreceiptcode, csaleid, oldValue.get(0).getStorageTimeStamp()); - oneSuccess = true; + } + //达人优惠 + if (goodsRertunSonDetailsDto.getVdef6() != null) { + BigDecimal vdef6 = goodsRertunSonDetailsDto.getVdef6(); + if (vdef6.compareTo(BigDecimal.ZERO) > 0) { + //发货运费-存货基本档案 + BdInvbasdocEntity bdInvbasdocEntity1 = mapBdInvbasdocEntity.get("FY02"); + //存货管理档案 + BdInvmandocEntity bdInvmandocEntity1 = stringBdInvmandocEntityMap.get(bdInvbasdocEntity1.getInvcode() + deliverGoodsCorp.getPkCorp()); + //存货对应的税率 + BdTaxitemsEntity bdTaxitemsEntity = stringBdTaxitemsEntityMap.get("FY02"); + //补充:达人优惠-存货 + BigDecimal absAccumulatedPostage = vdef6.abs(); + BigDecimal negativeValue = absAccumulatedPostage.negate(); + queryAdditionUtil.additional(saleorderRequestChildrenDtoList, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, "-1", bdTaxitemsEntity); +// queryAdditionUtil.additionalV3(childrennArrayList, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, bdTaxitemsEntity); + } + } + //支付优惠 + if (goodsRertunSonDetailsDto.getVdef5() != null) { + BigDecimal vdef5 = goodsRertunSonDetailsDto.getVdef5(); + if (vdef5.compareTo(BigDecimal.ZERO) > 0) { + //发货运费-存货基本档案 + BdInvbasdocEntity bdInvbasdocEntity1 = mapBdInvbasdocEntity.get("FY04"); + //存货管理档案 + BdInvmandocEntity bdInvmandocEntity1 = stringBdInvmandocEntityMap.get(bdInvbasdocEntity1.getInvcode() + deliverGoodsCorp.getPkCorp()); + //存货对应的税率 + BdTaxitemsEntity bdTaxitemsEntity = stringBdTaxitemsEntityMap.get("FY04"); + //补充:支付优惠-存货 + BigDecimal absAccumulatedPostage = vdef5.abs(); + BigDecimal negativeValue = absAccumulatedPostage.negate();// 符号取反(转为负数) + queryAdditionUtil.additional(saleorderRequestChildrenDtoList, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, "-1", bdTaxitemsEntity); +// queryAdditionUtil.additionalV3(childrennArrayList, bdInvmandocEntity1, bdInvbasdocEntity1, negativeValue, bdTaxitemsEntity); + } + } - //推送第一笔红字销售订单 + boolean oneSuccess = false; + if (!"Y".equals(newstate4)) { + if (ProfilesActiveConstant.PUSH_SCENE_TYPE_1.equals(pushScenarioType) || ProfilesActiveConstant.PUSH_SCENE_TYPE_2.equals(pushScenarioType)) { + //推送U8C红字销售订单,如果推送失败,抛出异常,那么就会外围的try catch捕获,代码不会往下执行 + List saleorderRequestDtoList = new ArrayList<>(); + saleorderRequestDtoList.add(saleorderRequestDto); + Map> stringStringMap = new HashMap<>(); + stringStringMap.put("saleorder", saleorderRequestDtoList); + SoSaleResultRootDto soSaleResultRootDto = sendU8CTOCOrder(JSON.toJSONString(stringStringMap)); + String vreceiptcode = null; + String pk_corp = null; + String csaleid = null; + if (soSaleResultRootDto != null && soSaleResultRootDto.getParentvo() != null) { + vreceiptcode = soSaleResultRootDto.getParentvo().getVreceiptcode(); + pk_corp = soSaleResultRootDto.getParentvo().getPk_corp(); + csaleid = soSaleResultRootDto.getParentvo().getCsaleid(); + } + logger.info("TOC红字销售订单编号:{} 销售订单主键:{} 销售公司:{} 公司:{}", vreceiptcode, csaleid, pk_corp, bdCorpEntity.getUnitname()); + updateSuccessOrFail2(oldValue, "Y", "success", vreceiptcode, csaleid, oldValue.get(0).getStorageTimeStamp()); + oneSuccess = true; + + //推送第一笔红字销售订单 // List arapDjzbVOList = new ArrayList<>(); // ArapDjzbVO arapDjzbVO = new ArapDjzbVO(); // arapDjzbVO.setParentvo(parentVo); @@ -1372,74 +1529,75 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { // vouchid = arapDjzb.getParentvo().getVouchid(); // } // logger.info("TOC红字应收单:{} 销售订单主键:{} 销售公司:{}", djbh, vouchid, dwbm); - } else if (ProfilesActiveConstant.PUSH_SCENE_TYPE_0.equals(pushScenarioType)) { - //不推送U8C,单据暂存 - String vreceiptcode = "暂存"; - String csaleid = "暂存"; - String newstate = "S"; - String newTransmitInfo = "暂存"; - updateSuccessOrFail2(oldValue, newstate, newTransmitInfo, vreceiptcode, csaleid, oldValue.get(0).getStorageTimeStamp()); - oneSuccess = true; - } else { - Assert.state(false, "未知的场景类型 pushScenarioType={}", pushScenarioType); - } - } else { - oneSuccess = true; - } - - //判断入库时间(关单时间)与交易成功时间,推送u8c生成蓝字销售订单,仅满足情况二的条件才生成这张蓝字销售订单 - try { - if (!"Y".equals(def15) && oneSuccess && "2".equals(oldValue.get(0).getStorageTimeStamp())) { - if (ProfilesActiveConstant.PUSH_SCENE_TYPE_1.equals(pushScenarioType) || ProfilesActiveConstant.PUSH_SCENE_TYPE_2.equals(pushScenarioType)) { - if ("2".equals(oldValue.get(0).getStorageTimeStamp())) { - SaleorderRequestDto saleorderRequestDto1 = transformRedSalesOrderToBlueSalesOrder(saleorderRequestDto, bdBusitypeEntity2); - - List saleorderRequestDtoList2 = new ArrayList<>(); - saleorderRequestDtoList2.add(saleorderRequestDto1); - Map> stringStringMap2 = new HashMap<>(); - stringStringMap2.put("saleorder", saleorderRequestDtoList2); - SoSaleResultRootDto soSaleResultRootDto2 = sendU8CTOCOrder(JSON.toJSONString(stringStringMap2)); - - String vreceiptcode2 = null; - String pk_corp2 = null; - String csaleid2 = null; - if (soSaleResultRootDto2 != null && soSaleResultRootDto2.getParentvo() != null) { - vreceiptcode2 = soSaleResultRootDto2.getParentvo().getVreceiptcode(); - pk_corp2 = soSaleResultRootDto2.getParentvo().getPk_corp(); - csaleid2 = soSaleResultRootDto2.getParentvo().getCsaleid(); - } - - logger.info("TOC蓝字销售订单编号:{} 销售订单主键:{} 销售公司:{}", vreceiptcode2, csaleid2, pk_corp2); - updateSuccessOrFail3(oldValue, "Y", "success", vreceiptcode2, csaleid2, oldValue.get(0).getStorageTimeStamp()); - } } else if (ProfilesActiveConstant.PUSH_SCENE_TYPE_0.equals(pushScenarioType)) { //不推送U8C,单据暂存 String vreceiptcode = "暂存"; String csaleid = "暂存"; String newstate = "S"; String newTransmitInfo = "暂存"; - updateSuccessOrFail3(oldValue, newstate, newTransmitInfo, vreceiptcode, csaleid, oldValue.get(0).getStorageTimeStamp()); + updateSuccessOrFail2(oldValue, newstate, newTransmitInfo, vreceiptcode, csaleid, oldValue.get(0).getStorageTimeStamp()); + oneSuccess = true; } else { Assert.state(false, "未知的场景类型 pushScenarioType={}", pushScenarioType); } + } else { + oneSuccess = true; + } + + //判断入库时间(关单时间)与交易成功时间,推送u8c生成蓝字销售订单,仅满足情况二的条件才生成这张蓝字销售订单 + try { + if (!"Y".equals(def15) && oneSuccess && "2".equals(oldValue.get(0).getStorageTimeStamp())) { + if (ProfilesActiveConstant.PUSH_SCENE_TYPE_1.equals(pushScenarioType) || ProfilesActiveConstant.PUSH_SCENE_TYPE_2.equals(pushScenarioType)) { + if ("2".equals(oldValue.get(0).getStorageTimeStamp())) { + SaleorderRequestDto saleorderRequestDto1 = transformRedSalesOrderToBlueSalesOrder(saleorderRequestDto, bdBusitypeEntity2); + + List saleorderRequestDtoList2 = new ArrayList<>(); + saleorderRequestDtoList2.add(saleorderRequestDto1); + Map> stringStringMap2 = new HashMap<>(); + stringStringMap2.put("saleorder", saleorderRequestDtoList2); + SoSaleResultRootDto soSaleResultRootDto2 = sendU8CTOCOrder(JSON.toJSONString(stringStringMap2)); + + String vreceiptcode2 = null; + String pk_corp2 = null; + String csaleid2 = null; + if (soSaleResultRootDto2 != null && soSaleResultRootDto2.getParentvo() != null) { + vreceiptcode2 = soSaleResultRootDto2.getParentvo().getVreceiptcode(); + pk_corp2 = soSaleResultRootDto2.getParentvo().getPk_corp(); + csaleid2 = soSaleResultRootDto2.getParentvo().getCsaleid(); + } + + logger.info("TOC蓝字销售订单编号:{} 销售订单主键:{} 销售公司:{}", vreceiptcode2, csaleid2, pk_corp2); + updateSuccessOrFail3(oldValue, "Y", "success", vreceiptcode2, csaleid2, oldValue.get(0).getStorageTimeStamp()); + } + } else if (ProfilesActiveConstant.PUSH_SCENE_TYPE_0.equals(pushScenarioType)) { + //不推送U8C,单据暂存 + String vreceiptcode = "暂存"; + String csaleid = "暂存"; + String newstate = "S"; + String newTransmitInfo = "暂存"; + updateSuccessOrFail3(oldValue, newstate, newTransmitInfo, vreceiptcode, csaleid, oldValue.get(0).getStorageTimeStamp()); + } else { + Assert.state(false, "未知的场景类型 pushScenarioType={}", pushScenarioType); + } + } + } catch (Exception e) { + //记录蓝字销售订单异常失败 + logger.error("推送蓝字销售订单抛出异常!", e); + String message = e.getMessage(); + if (message == null) { + message = "未知错误"; + } + updateSuccessOrFail3(oldValue, "N", message, null, null, oldValue.get(0).getStorageTimeStamp()); } } catch (Exception e) { - //记录蓝字销售订单异常失败 - logger.error("推送蓝字销售订单抛出异常!", e); + //记录红字销售订单异常失败 + logger.error("TOC退货业务转换成U8C对象过程中、或者单据推送到U8C出现异常!", e); String message = e.getMessage(); if (message == null) { message = "未知错误"; } - updateSuccessOrFail3(oldValue, "N", message, null, null, oldValue.get(0).getStorageTimeStamp()); + updateSuccessOrFail2(oldValue, "N", message, null, null, oldValue.get(0).getStorageTimeStamp()); } - } catch (Exception e) { - //记录红字销售订单异常失败 - logger.error("TOC退货业务转换成U8C对象过程中、或者单据推送到U8C出现异常!", e); - String message = e.getMessage(); - if (message == null) { - message = "未知错误"; - } - updateSuccessOrFail2(oldValue, "N", message, null, null, oldValue.get(0).getStorageTimeStamp()); } } } else { @@ -1656,6 +1814,8 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { // StockinOrderSearchResponse.StockinOrder.StockinB stockinB = details2.get(i); // stockinB.setReceivedQty(stockinB.getRequestQty()); // } +// headerDetailsDtos.get(0).getHeader().setTradeSuccessAt("2025-08-18 17:20:00"); + markTimeInMorningEvening(returnGoodHeaderDetailsDataDtoList1); if ("stock".equals(sceneType)) { returnGoodHeaderDetailsDataDtoList1 = filtrationTransactionSuccessTime(returnGoodHeaderDetailsDataDtoList1); @@ -2085,6 +2245,20 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { // return bdBusitypeEntity; // } + /** + * 2025年8月15日15:58:55 查询U8C业务流程 + * + * @author liuyang + */ + private BdBusitypeEntity u8cOperationFlowV4() throws Exception { + //查询业务流程 + //2024年8月6日 11:33:07 具体的业务流程名称,还需要实施提供 + String processName = "TOC销售退款"; + BdBusitypeEntity bdBusitypeEntity = queryBdBusitypeUtil.queryBdBusitype(processName); + Assert.notNull(bdBusitypeEntity, "根据业务流程名称({})没有查询到业务流程", processName); + return bdBusitypeEntity; + } + /** * 检查参数是否为空 * 2024年8月6日 11:40:19 保险的做法,最好还是验证一下 @@ -2182,6 +2356,9 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { //测试 // goodsRertunSonDetailsDto.setReceivedQty("1"); + //2025年8月18日16:13:12 如果 + + Assert.notNull(totalAmount, "实退金额不能为空 明细行主键:{}", goodsRertunSonDetailsDto.getId()); Assert.notNull(goodsRertunSonDetailsDto.getReceivedQty(), "实收数量不能为空 明细行主键:{}", goodsRertunSonDetailsDto.getId()); @@ -2325,6 +2502,20 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { // if (returnGoodSearchHeaderDto.getRefundedAt() != null) { // tocofsReturngoodsDetailedEntity.setRefundedat(returnGoodSearchHeaderDto.getRefundedAt()); // } + com.hzya.frame.ttxofs.dto.ofssalesordersearch.HeaderDetailsDto headerDetailsDto = returnGoodSearchHeaderDto.getHeaderDetailsDto(); + if (headerDetailsDto != null && headerDetailsDto.getHeader() != null) { + com.hzya.frame.ttxofs.dto.ofssalesordersearch.HeaderDto header = headerDetailsDto.getHeader(); + if (header != null && header.getTradeSuccessAt() != null) { + tocofsReturngoodsDetailedEntity.setDef23(header.getTradeSuccessAt()); + } + } + + //入库类型标记 + String storageTimeStamp = returnGoodSearchHeaderDto.getStorageTimeStamp(); + if (storageTimeStamp != null && !"".equals(storageTimeStamp)) { + tocofsReturngoodsDetailedEntity.setDef24(storageTimeStamp); + } + //业务类型 tocofsReturngoodsDetailedEntity.setBusinesstype("TOC_RETURN"); } @@ -2667,6 +2858,7 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { com.hzya.frame.ttxofs.dto.ofssalesordersearch.HeaderDto header2 = headerDetailsDto.getHeader(); tradeSuccessAt = header2.getTradeSuccessAt(); } +// tradeSuccessAt = "2025-08-18 17:13:35"; //如果报错内容太长了,则仅保留500个长度 if (newTransmitInfo != null && !"".equals(newTransmitInfo.trim()) && newTransmitInfo.length() >= 400) { @@ -2793,6 +2985,7 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { tocofsReturngoodsDetailedEntity.setNewsystemprimary3(newsystemprimary); } tocofsReturngoodsDetailedEntity.setDef23(tradeSuccessAt); + tocofsReturngoodsDetailedEntity.setDef24(goodsRertunSonDetailsDto.getStorageTimeStamp()); tocofsReturngoodsDetailedEntityArrayList.add(tocofsReturngoodsDetailedEntity); } diff --git a/buildpackage/src/main/resources/application-lets.yml b/buildpackage/src/main/resources/application-lets.yml index 6107e8de..c0a6e855 100644 --- a/buildpackage/src/main/resources/application-lets.yml +++ b/buildpackage/src/main/resources/application-lets.yml @@ -15,6 +15,9 @@ spring: url: jdbc:mysql://ufidahz.com.cn:9014/businesscenter?useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowLoadLocalInfile=false&autoReconnect=true&failOverReadOnly=false&connectTimeout=600000000&socketTimeout=600000000&autoReconnectForPools=true&keepAlive=true username: root password: bd993088e8a7c3dc5f44441617f9b4bf + #url: jdbc:mysql://127.0.0.1:3307/businesscenter?useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowLoadLocalInfile=false&autoReconnect=true&failOverReadOnly=false&connectTimeout=600000000&socketTimeout=600000000&autoReconnectForPools=true&keepAlive=true + #username: root + #password: a0d71920b8d3e5cf376fcecc2a23012f driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置 savefile: # 文件保存路径 diff --git a/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/sales/PassiveWarehouseReceiptToCTest.java b/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/sales/PassiveWarehouseReceiptToCTest.java index 9250780a..7d1463ec 100644 --- a/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/sales/PassiveWarehouseReceiptToCTest.java +++ b/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/sales/PassiveWarehouseReceiptToCTest.java @@ -37,7 +37,7 @@ public class PassiveWarehouseReceiptToCTest { //情况二 // passiveWarehouseReceiptToC.startImplementByCode("RH20250731000423", "tran"); //情况三 - passiveWarehouseReceiptToC.startImplementByCode("RH20250722000231", "stock"); + passiveWarehouseReceiptToC.startImplementByCode("RH20250731000613", "tran"); // passiveWarehouseReceiptToC.startImplementByCode("RH20250723000754", "tran"); } catch (Exception e) { e.printStackTrace(); diff --git a/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToCTest.java b/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToCTest.java index c95b193c..f7f8deb3 100644 --- a/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToCTest.java +++ b/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToCTest.java @@ -69,7 +69,14 @@ public class SoSaleReturnPluginInitializerToCTest { try { // soSaleReturnPluginInitializerToC.startImplementByTradeTime("2025-04-28 00:00:00", "2025-04-28 23:59:59", "0"); - soSaleReturnPluginInitializerToC.startImplementByCode("LETS-RE2025072800003381", "tran"); + //满足红字应收单 +// soSaleReturnPluginInitializerToC.startImplementByCode("LETS-RE2025072200001324", "tran"); + //情况一 + soSaleReturnPluginInitializerToC.startImplementByCode("LETS-RE2025072900000460", "stock"); + //情况二 +// soSaleReturnPluginInitializerToC.startImplementByCode("LETS-RE2025072800000594", "tran"); + //情况三 +// soSaleReturnPluginInitializerToC.startImplementByCode("LETS-RE2025080200002257", "tran"); // soSaleReturnPluginInitializerToC.startImplementStockByTime("2025-01-31 00:00:00", "2025-01-31 23:59:59", "0");