diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/transfer/TransferInPluginInitializer.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/transfer/TransferInPluginInitializer.java index e96cdaec..f4f89ef8 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/transfer/TransferInPluginInitializer.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/transfer/TransferInPluginInitializer.java @@ -47,6 +47,7 @@ import java.util.stream.Collectors; /** * 20250303:ofs调拨入库确认单--->U8C调拨入库订单 + * 20250321 tag->李佳妮:ofs数据字典:U8_TRANSFER_CATEGORY/U8调拨出入库类关联关系 RETURN/调拨-退货 出入库公司位置对调,数量为负数。 * 存在多笔入库单 */ public class TransferInPluginInitializer extends PluginBaseEntity { @@ -302,9 +303,24 @@ public class TransferInPluginInitializer extends PluginBaseEntity { String format = ""; String response = ""; String ofsCode = ""; + boolean isReturn = false; + try { //ofs调拨订单号 String ofsRefOrderCode = ofsHeader.getRefOrderCode(); + + ////////////////////////////////////////////////////////////////////////////////ofs调拨订单 + List ofsTranseferOrders = queryOfsTransderOrder(ofsHeader.getRefOrderCode()); + if (ofsTranseferOrders == null || ofsTranseferOrders.size() == 0 || ofsTranseferOrders.size() > 1) { + Assert.state(false, "根据调拨出库单:{},的来源单据号:{},查询OFS调拨订单为空或不唯一。请检查。", ofsCode, ofsHeader.getRefOrderCode()); + } + OFSTranseferOrderSearchResponse.OFSTranseferOrder ofsTranseferOrder = ofsTranseferOrders.get(0); + ////////////////////////////////////////////////////////////////////////////////ofs调拨订单 + //add by zyd 20250321 tag->李佳妮:ofs数据字典:U8_TRANSFER_CATEGORY/U8调拨出入库类关联关系 RETURN/调拨-退货 出入库公司位置对调,数量为负数。 + if ("RETURN".equals(ofsTranseferOrder.getHeader().getOrderType())) { + isReturn = true; + } + //ofs调拨入库确认单单号 ofsCode = ofsHeader.getCode(); //ofs最后修改时间,调入时间 @@ -315,33 +331,50 @@ public class TransferInPluginInitializer extends PluginBaseEntity { GeneralBillVO.Parentvo parentvo = new GeneralBillVO.Parentvo(); //coperatorid 制单人 parentvo.setCoperatorid("tbadmin"); + + //cwarehouseid 仓库 - parentvo.setCwarehouseid(ofsHeader.getFacilityCode()); + if (isReturn) {//需要反转 + parentvo.setCwarehouseid(ofsTranseferOrder.getHeader().getFacilityCode());//出库仓库 + } else { + parentvo.setCwarehouseid(ofsHeader.getFacilityCode());//入库仓库 + } //pk_calbody 库存组织 - String corpCode = queryU8CEntityUtil.queryBdDefDocByPkDefDocList(ofsHeader.getCompanyCode()); + String corpCode = ""; + if (isReturn) {//需要反转 + corpCode = queryU8CEntityUtil.queryBdDefDocByPkDefDocList(ofsTranseferOrder.getHeader().getCompanyCode());//出库公司 + } else { + corpCode = queryU8CEntityUtil.queryBdDefDocByPkDefDocList(ofsHeader.getCompanyCode());//入库公司 + } parentvo.setPk_calbody(corpCode); //pk_corp 公司 parentvo.setPk_corp(corpCode); + + //pk_defdoc19 自定义项19(ofs调拨订单号) parentvo.setVuserdef19(ofsRefOrderCode); //dbilldate 单据日期 parentvo.setDbilldate(format.substring(0, 10)); - ////////////////////////////////////////////////////////////////////////////////ofs调拨订单 - List ofsTranseferOrders = queryOfsTransderOrder(ofsHeader.getRefOrderCode()); - if (ofsTranseferOrders == null || ofsTranseferOrders.size() == 0 || ofsTranseferOrders.size() > 1) { - Assert.state(false, "根据调拨出库单:{},的来源单据号:{},查询OFS调拨订单为空或不唯一。请检查。", ofsCode, ofsHeader.getRefOrderCode()); - } - OFSTranseferOrderSearchResponse.OFSTranseferOrder ofsTranseferOrder = ofsTranseferOrders.get(0); - ////////////////////////////////////////////////////////////////////////////////ofs调拨订单 + //pk_defdoc4 ofs调入店铺 - String inShop = locateShop(ofsTranseferOrder.getHeader().getToCompanyCode()); - if (inShop == null) { - Assert.state(false, "根据调入公司:{},未查询到对应的店铺,请维护(BDDP,调拨公司对应店铺)自定义项档案。", ofsTranseferOrder.getHeader().getCompanyCode()); + if (isReturn) {//需要反转 + String inShop = locateShop(ofsTranseferOrder.getHeader().getCompanyCode()); + if (inShop == null) { + Assert.state(false, "根据调入公司:{},未查询到对应的店铺,请维护(BDDP,调拨公司对应店铺)自定义项档案。", ofsTranseferOrder.getHeader().getCompanyCode()); + } else { + parentvo.setPk_defdoc4(inShop); + } } else { - parentvo.setPk_defdoc4(inShop); + String inShop = locateShop(ofsTranseferOrder.getHeader().getToCompanyCode()); + if (inShop == null) { + Assert.state(false, "根据调入公司:{},未查询到对应的店铺,请维护(BDDP,调拨公司对应店铺)自定义项档案。", ofsTranseferOrder.getHeader().getCompanyCode()); + } else { + parentvo.setPk_defdoc4(inShop); + } } + //U8C调拨出库单主表信息 List icGeneralHEntityList = queryIcGeneralHByVdef19(ofsRefOrderCode); if (icGeneralHEntityList == null) { @@ -366,7 +399,11 @@ public class TransferInPluginInitializer extends PluginBaseEntity { //cinventoryid 存货 childrenvo.setCinventoryid(detail.getSkuCode()); //ninnum 实收数量 - childrenvo.setNinnum(detail.getReceivedQty()); + if (isReturn) {//需要反转 + childrenvo.setNinnum("-" + detail.getReceivedQty()); + } else { + childrenvo.setNinnum(detail.getReceivedQty()); + } //csourcetype 来源单据类型编码 childrenvo.setCsourcetype("4Y"); //vsourcebillcode 来源单据号 diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/transfer/TransferOutPluginInitializer.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/transfer/TransferOutPluginInitializer.java index 19b3b0ba..7194a7d1 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/transfer/TransferOutPluginInitializer.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/transfer/TransferOutPluginInitializer.java @@ -54,6 +54,7 @@ import java.util.concurrent.locks.ReentrantLock; /** * 丽知:OFS调拨出库订单--->U8C调拨订单,自动生成调拨出库单(保存签字) + * 20250321 tag->李佳妮:ofs数据字典:U8_TRANSFER_CATEGORY/U8调拨出入库类关联关系 RETURN/调拨-退货 出入库公司位置对调,数量为负数。 */ public class TransferOutPluginInitializer extends PluginBaseEntity { Logger logger = LoggerFactory.getLogger(TransferOutPluginInitializer.class); @@ -285,6 +286,8 @@ public class TransferOutPluginInitializer extends PluginBaseEntity { String modify = ""; String response = ""; String ofsCode = ""; + + boolean isReturn = false; try { //主表 StockoutOrderSearchResponse.StockoutOrder.StockoutH stockoutH = transferOutOrder.getHeader(); @@ -299,6 +302,11 @@ public class TransferOutPluginInitializer extends PluginBaseEntity { OFSTranseferOrderSearchResponse.OFSTranseferOrder ofsTranseferOrder = ofsTranseferOrders.get(0); ////////////////////////////////////////////////////////////////////////////////ofs调拨订单 + //add by zyd 20250321 tag->李佳妮:ofs数据字典:U8_TRANSFER_CATEGORY/U8调拨出入库类关联关系 RETURN/调拨-退货 出入库公司位置对调,数量为负数。 + if ("RETURN".equals(ofsTranseferOrder.getHeader().getOrderType())) { + isReturn = true; + } + //创建日期,调拨出库创建时间 create = stockoutH.getCreated(); modify = stockoutH.getLastUpdated(); @@ -310,52 +318,99 @@ public class TransferOutPluginInitializer extends PluginBaseEntity { parentvo.setCoperatorid("tbadmin"); //cbiztypeid 业务流程编码 parentvo.setCbiztypeid("to01"); - //coutcbid 调出组织编码 对应OFS->原库存地点公司 - if (ofsTranseferOrder.getHeader().getCompanyCode() == null) { - Assert.state(false,"原库存地点公司为空!,请联系ofs方维护接口及数据库数据。"); + + String corpCode = ""; + String toCorpCode = ""; + + if (isReturn) {//退货的需要反转 + //coutcbid 调出组织编码 对应OFS->原库存地点公司 + if (ofsTranseferOrder.getHeader().getCompanyCode() == null) { + Assert.state(false, "原库存地点公司为空!,请联系ofs方维护接口及数据库数据。"); + } + corpCode = queryU8CEntityUtil.queryBdDefDocByPkDefDocList(ofsTranseferOrder.getHeader().getCompanyCode()); + parentvo.setCincbid(corpCode); + + //coutcorpid 调出公司编码 对应OFS->原库存地点公司 + parentvo.setCincorpid(corpCode); + + //coutwhid 调出仓库编码 对应OFS->原库存地点 + parentvo.setCinwhid(ofsTranseferOrder.getHeader().getFacilityCode()); + + //cincbid 调入组织编码 对应OFS->目标库存地点公司 + if (ofsTranseferOrder.getHeader().getToCompanyCode() == null) { + Assert.state(false, "目标库存地点公司为空!,请联系ofs方维护接口及数据库数据。"); + } + toCorpCode = queryU8CEntityUtil.queryBdDefDocByPkDefDocList(ofsTranseferOrder.getHeader().getToCompanyCode()); + parentvo.setCoutcbid(toCorpCode); + + //cincorpid 调入公司编码 对应OFS->目标库存地点公司 + parentvo.setCoutcorpid(toCorpCode); + + //cinwhid 调入仓库编码 对应OFS->目标库存地点 + parentvo.setCoutwhid(ofsTranseferOrder.getHeader().getToFacilityCode()); + + + //pk_defdoc1 ofs调出店铺 + String outShop = locateShop(ofsTranseferOrder.getHeader().getCompanyCode()); + if (outShop == null) { + Assert.state(false, "根据调出公司:{},未查询到对应的店铺,请维护(BDDP,调拨公司对应店铺)自定义项档案。", ofsTranseferOrder.getHeader().getCompanyCode()); + } else { + parentvo.setPk_defdoc4(outShop); + } + + //pk_defdoc4 ofs调入店铺 + String inShop = locateShop(ofsTranseferOrder.getHeader().getToCompanyCode()); + if (inShop == null) { + Assert.state(false, "根据调入公司:{},未查询到对应的店铺,请维护(BDDP,调拨公司对应店铺)自定义项档案。", ofsTranseferOrder.getHeader().getCompanyCode()); + } else { + parentvo.setPk_defdoc1(inShop); + } + } else {//正常调拨的不需要反转 + //coutcbid 调出组织编码 对应OFS->原库存地点公司 + if (ofsTranseferOrder.getHeader().getCompanyCode() == null) { + Assert.state(false, "原库存地点公司为空!,请联系ofs方维护接口及数据库数据。"); + } + corpCode = queryU8CEntityUtil.queryBdDefDocByPkDefDocList(ofsTranseferOrder.getHeader().getCompanyCode()); + parentvo.setCoutcbid(corpCode); + + //coutcorpid 调出公司编码 对应OFS->原库存地点公司 + parentvo.setCoutcorpid(corpCode); + + //coutwhid 调出仓库编码 对应OFS->原库存地点 + parentvo.setCoutwhid(ofsTranseferOrder.getHeader().getFacilityCode()); + + //cincbid 调入组织编码 对应OFS->目标库存地点公司 + if (ofsTranseferOrder.getHeader().getToCompanyCode() == null) { + Assert.state(false, "目标库存地点公司为空!,请联系ofs方维护接口及数据库数据。"); + } + toCorpCode = queryU8CEntityUtil.queryBdDefDocByPkDefDocList(ofsTranseferOrder.getHeader().getToCompanyCode()); + parentvo.setCincbid(toCorpCode); + + //cincorpid 调入公司编码 对应OFS->目标库存地点公司 + parentvo.setCincorpid(toCorpCode); + + //cinwhid 调入仓库编码 对应OFS->目标库存地点 + parentvo.setCinwhid(ofsTranseferOrder.getHeader().getToFacilityCode()); + + //pk_defdoc1 ofs调出店铺 + String outShop = locateShop(ofsTranseferOrder.getHeader().getCompanyCode()); + if (outShop == null) { + Assert.state(false, "根据调出公司:{},未查询到对应的店铺,请维护(BDDP,调拨公司对应店铺)自定义项档案。", ofsTranseferOrder.getHeader().getCompanyCode()); + } else { + parentvo.setPk_defdoc1(outShop); + } + + //pk_defdoc4 ofs调入店铺 + String inShop = locateShop(ofsTranseferOrder.getHeader().getToCompanyCode()); + if (inShop == null) { + Assert.state(false, "根据调入公司:{},未查询到对应的店铺,请维护(BDDP,调拨公司对应店铺)自定义项档案。", ofsTranseferOrder.getHeader().getCompanyCode()); + } else { + parentvo.setPk_defdoc4(inShop); + } } - String corpCode = queryU8CEntityUtil.queryBdDefDocByPkDefDocList(ofsTranseferOrder.getHeader().getCompanyCode()); - parentvo.setCoutcbid(corpCode); - - //coutcorpid 调出公司编码 对应OFS->原库存地点公司 - parentvo.setCoutcorpid(corpCode); - - //coutwhid 调出仓库编码 对应OFS->原库存地点 - parentvo.setCoutwhid(ofsTranseferOrder.getHeader().getFacilityCode()); - - //cincbid 调入组织编码 对应OFS->目标库存地点公司 - if (ofsTranseferOrder.getHeader().getToCompanyCode() == null) { - Assert.state(false,"目标库存地点公司为空!,请联系ofs方维护接口及数据库数据。"); - } - String toCorpCode = queryU8CEntityUtil.queryBdDefDocByPkDefDocList(ofsTranseferOrder.getHeader().getToCompanyCode()); - parentvo.setCincbid(toCorpCode); - - //cincorpid 调入公司编码 对应OFS->目标库存地点公司 - parentvo.setCincorpid(toCorpCode); - - //cinwhid 调入仓库编码 对应OFS->目标库存地点 - parentvo.setCinwhid(ofsTranseferOrder.getHeader().getToFacilityCode()); - //vnote 备注 parentvo.setVnote(ofsTranseferOrder.getHeader().getNotes()); - //pk_defdoc1 ofs调出店铺 - String outShop = locateShop(ofsTranseferOrder.getHeader().getCompanyCode()); - if (outShop == null) { - Assert.state(false, "根据调出公司:{},未查询到对应的店铺,请维护(BDDP,调拨公司对应店铺)自定义项档案。", ofsTranseferOrder.getHeader().getCompanyCode()); - } else { - //parentvo.setPk_defdoc1(ofsTranseferOrder.getHeader().getStoreCode()); - parentvo.setPk_defdoc1(outShop); - } - - //pk_defdoc4 ofs调入店铺 - String inShop = locateShop(ofsTranseferOrder.getHeader().getToCompanyCode()); - if (inShop == null) { - Assert.state(false, "根据调入公司:{},未查询到对应的店铺,请维护(BDDP,调拨公司对应店铺)自定义项档案。", ofsTranseferOrder.getHeader().getCompanyCode()); - } else { - //parentvo.setPk_defdoc4(ofsTranseferOrder.getHeader().getToStoreCode()); - parentvo.setPk_defdoc4(inShop); - } //vuserdef17 来源系统 parentvo.setVdef17(ProfilesActiveConstant.sourceSystem1); @@ -377,14 +432,18 @@ public class TransferOutPluginInitializer extends PluginBaseEntity { //cinvbasid 存货基本档案 children.setCinvbasid(ofsDetail.getSkuCode()); //nnum 数量 - children.setNnum(BigDecimal.valueOf(Long.parseLong(ofsDetail.getShipQty()))); + if (isReturn) { + children.setNnum(BigDecimal.valueOf(Long.parseLong(ofsDetail.getShipQty())).negate());//退货的取负数 + } else { + children.setNnum(BigDecimal.valueOf(Long.parseLong(ofsDetail.getShipQty()))); + } childrenvo.add(children); //ofs行id // children.setPk_defdoc20(ofsDetail.getId()); children.setVbdef20(ofsDetail.getId()); //同公司,价格不传 - if(corpCode.equals(toCorpCode)){ + if (corpCode.equals(toCorpCode)) { continue; } //nprice 单价(含税单价),取上一次结账的单价 nmny金额 nnotaxmny无税金额 nnotaxprice 无税单价 @@ -418,6 +477,7 @@ public class TransferOutPluginInitializer extends PluginBaseEntity { String jsonStr = JSONUtil.toJsonStr(billVO); mapStr = "{\"billvo\":" + jsonStr + "}"; ZTResult ztResult = pushU8CByApiCode.pushByCode(OverallConstant.getOverAllValue("approveqzCode"), mapStr); +// ZTResult ztResult = pushU8CByApiCode.pushByCode(OverallConstant.getOverAllValue("approveqzCode"), null); //两层判断,一层中台转发,一层u8c返回 if ("false".equals(ztResult.getFlag())) { //转发失败