丽知:调拨订单,区分调拨-退货类型。公司对调,数量负数。
This commit is contained in:
parent
f8bce54427
commit
fc441b4b1f
|
@ -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<OFSTranseferOrderSearchResponse.OFSTranseferOrder> 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<OFSTranseferOrderSearchResponse.OFSTranseferOrder> 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<IcGeneralHEntity> 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 来源单据号
|
||||
|
|
|
@ -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())) {
|
||||
//转发失败
|
||||
|
|
Loading…
Reference in New Issue