提交采购业务流程
This commit is contained in:
parent
571aefd6c5
commit
18f1335aa5
|
@ -1,6 +1,7 @@
|
||||||
package com.hzya.frame.plugin.lets.entity;
|
package com.hzya.frame.plugin.lets.entity;
|
||||||
|
|
||||||
import com.hzya.frame.web.entity.BaseEntity;
|
import com.hzya.frame.web.entity.BaseEntity;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* (BdBusitype)实体类
|
* (BdBusitype)实体类
|
||||||
*
|
*
|
||||||
|
@ -8,30 +9,30 @@ import com.hzya.frame.web.entity.BaseEntity;
|
||||||
* @since 2023-11-21 10:57:24
|
* @since 2023-11-21 10:57:24
|
||||||
*/
|
*/
|
||||||
public class BdBusitypeEntity extends BaseEntity {
|
public class BdBusitypeEntity extends BaseEntity {
|
||||||
|
|
||||||
private String busicode;
|
private String busicode;
|
||||||
private String businame;
|
private String businame;
|
||||||
private Integer busiprop;
|
private Integer busiprop;
|
||||||
private Integer defaultgather;
|
private Integer defaultgather;
|
||||||
private String defstr2;
|
private String defstr2;
|
||||||
private String defstr3;
|
private String defstr3;
|
||||||
private String defstr4;
|
private String defstr4;
|
||||||
private String defstr5;
|
private String defstr5;
|
||||||
private Integer dr;
|
private Integer dr;
|
||||||
private String encapsulate;
|
private String encapsulate;
|
||||||
private String fktype;
|
private String fktype;
|
||||||
private String isdapclassified;
|
private String isdapclassified;
|
||||||
private String isitem;
|
private String isitem;
|
||||||
private String issrqr;
|
private String issrqr;
|
||||||
private String mnecode;
|
private String mnecode;
|
||||||
private String owetype;
|
private String owetype;
|
||||||
private String pkBusitype;
|
private String pkBusitype;
|
||||||
private String pkCorp;
|
private String pkCorp;
|
||||||
private String receipttype;
|
private String receipttype;
|
||||||
private String sktype;
|
private String sktype;
|
||||||
private String ts;
|
private String ts;
|
||||||
private String verifyrule;
|
private String verifyrule;
|
||||||
private String ystype;
|
private String ystype;
|
||||||
|
|
||||||
|
|
||||||
public String getBusicode() {
|
public String getBusicode() {
|
||||||
|
|
|
@ -13,6 +13,7 @@ import com.hzya.frame.plugin.lets.dao.*;
|
||||||
import com.hzya.frame.plugin.lets.entity.*;
|
import com.hzya.frame.plugin.lets.entity.*;
|
||||||
import com.hzya.frame.plugin.lets.ofsvo.QueryOfsSoSaleOutVo;
|
import com.hzya.frame.plugin.lets.ofsvo.QueryOfsSoSaleOutVo;
|
||||||
import com.hzya.frame.plugin.lets.u8cdto.*;
|
import com.hzya.frame.plugin.lets.u8cdto.*;
|
||||||
|
import com.hzya.frame.plugin.lets.util.OfsStandardUtil;
|
||||||
import com.hzya.frame.plugin.lets.util.QueryBdBusitypeUtil;
|
import com.hzya.frame.plugin.lets.util.QueryBdBusitypeUtil;
|
||||||
import com.hzya.frame.plugin.lets.util.RdclUtil;
|
import com.hzya.frame.plugin.lets.util.RdclUtil;
|
||||||
import com.hzya.frame.ttxofs.dto.InterfaceParamDto;
|
import com.hzya.frame.ttxofs.dto.InterfaceParamDto;
|
||||||
|
@ -20,6 +21,12 @@ import com.hzya.frame.ttxofs.dto.ofspoorder.OfsPoOrderBean;
|
||||||
import com.hzya.frame.ttxofs.dto.ofspoorder.OfsPoOrderData;
|
import com.hzya.frame.ttxofs.dto.ofspoorder.OfsPoOrderData;
|
||||||
import com.hzya.frame.ttxofs.dto.ofspoorder.OfsPoOrderDetails;
|
import com.hzya.frame.ttxofs.dto.ofspoorder.OfsPoOrderDetails;
|
||||||
import com.hzya.frame.ttxofs.dto.ofspoorder.OfsPoOrderHeader;
|
import com.hzya.frame.ttxofs.dto.ofspoorder.OfsPoOrderHeader;
|
||||||
|
import com.hzya.frame.ttxofs.dto.ofspurchasereturnorder.PurchaseReturnOrder;
|
||||||
|
import com.hzya.frame.ttxofs.dto.ofspurchasereturnorder.PurchaseReturnOrderDetails;
|
||||||
|
import com.hzya.frame.ttxofs.dto.ofspurchasereturnorder.PurchaseReturnOrderHeader;
|
||||||
|
import com.hzya.frame.ttxofs.dto.ofssaleorderoutsearch.DetailsDto;
|
||||||
|
import com.hzya.frame.ttxofs.dto.ofssaleorderoutsearch.HeaderDetailsDto;
|
||||||
|
import com.hzya.frame.ttxofs.dto.ofssaleorderoutsearch.HeaderDto;
|
||||||
import com.hzya.frame.ttxofs.dto.stock.StockinOrderSearchResponse;
|
import com.hzya.frame.ttxofs.dto.stock.StockinOrderSearchResponse;
|
||||||
import com.hzya.frame.ttxofs.service.OfsUnifiedService;
|
import com.hzya.frame.ttxofs.service.OfsUnifiedService;
|
||||||
import com.hzya.frame.web.entity.JsonResultEntity;
|
import com.hzya.frame.web.entity.JsonResultEntity;
|
||||||
|
@ -77,6 +84,9 @@ public class ProxyPurchaseReturn extends PluginBaseEntity {
|
||||||
@Autowired
|
@Autowired
|
||||||
private RdclUtil rdclUtil;
|
private RdclUtil rdclUtil;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private OfsStandardUtil ofsStandardUtil;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
logger.info(getPluginLabel() + "執行初始化方法initialize()");
|
logger.info(getPluginLabel() + "執行初始化方法initialize()");
|
||||||
|
@ -125,21 +135,22 @@ public class ProxyPurchaseReturn extends PluginBaseEntity {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
try {
|
try {
|
||||||
List<StockinOrderSearchResponse.StockinOrder> returnGoodHeaderDetailsDataDtoArrayList = new ArrayList<>();
|
//OFS采退出库
|
||||||
|
List<HeaderDetailsDto> returnGoodHeaderDetailsDataDtoArrayList = new ArrayList<>();
|
||||||
QueryOfsSoSaleOutVo queryOfsSoSaleOutVo = new QueryOfsSoSaleOutVo();
|
QueryOfsSoSaleOutVo queryOfsSoSaleOutVo = new QueryOfsSoSaleOutVo();
|
||||||
queryOfsSoSaleOutVo.setClosedAt_start(startTime);
|
queryOfsSoSaleOutVo.setClosedAt_start(startTime);
|
||||||
queryOfsSoSaleOutVo.setClosedAt_end(endTime);
|
queryOfsSoSaleOutVo.setClosedAt_end(endTime);
|
||||||
queryOfsSoSaleOutVo.setClientCode("LETS");
|
queryOfsSoSaleOutVo.setClientCode("LETS");
|
||||||
queryOfsSoSaleOutVo.setPageNo(1L);
|
queryOfsSoSaleOutVo.setPageNo(1L);
|
||||||
queryOfsSoSaleOutVo.setPageSize(50L);
|
queryOfsSoSaleOutVo.setPageSize(50L);
|
||||||
queryOfsSoSaleOutVo.setInternalInstructionType("PURCHASE");
|
queryOfsSoSaleOutVo.setInternalInstructionType("PURCHASE_RETURN");
|
||||||
queryOfsSoSaleOutVo.setStatus(900L);
|
queryOfsSoSaleOutVo.setStatus(900L);
|
||||||
queryOfsReturnGoods(queryOfsSoSaleOutVo, returnGoodHeaderDetailsDataDtoArrayList, 1L);
|
ofsStandardUtil.queryOfsSaleOrder(queryOfsSoSaleOutVo, returnGoodHeaderDetailsDataDtoArrayList, 1L, "ofs.shipment.search");
|
||||||
logger.info("数据返回行数:{}", returnGoodHeaderDetailsDataDtoArrayList.size());
|
logger.info("数据返回行数:{}", returnGoodHeaderDetailsDataDtoArrayList.size());
|
||||||
if (returnGoodHeaderDetailsDataDtoArrayList.size() > 0) {
|
if (returnGoodHeaderDetailsDataDtoArrayList.size() > 0) {
|
||||||
getSet(returnGoodHeaderDetailsDataDtoArrayList);
|
getSet(returnGoodHeaderDetailsDataDtoArrayList);
|
||||||
} else {
|
} else {
|
||||||
logger.info("没有查询到任何数据!不需要同步");
|
logger.info("没有查询到任何数据!不需要发起同步逻辑!!");
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error("startImplement方法抛出异常", e);
|
logger.error("startImplement方法抛出异常", e);
|
||||||
|
@ -169,20 +180,20 @@ public class ProxyPurchaseReturn extends PluginBaseEntity {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
try {
|
try {
|
||||||
List<StockinOrderSearchResponse.StockinOrder> returnGoodHeaderDetailsDataDtoArrayList = new ArrayList<>();
|
List<HeaderDetailsDto> returnGoodHeaderDetailsDataDtoArrayList = new ArrayList<>();
|
||||||
QueryOfsSoSaleOutVo queryOfsSoSaleOutVo = new QueryOfsSoSaleOutVo();
|
QueryOfsSoSaleOutVo queryOfsSoSaleOutVo = new QueryOfsSoSaleOutVo();
|
||||||
queryOfsSoSaleOutVo.setClientCode("LETS");
|
queryOfsSoSaleOutVo.setClientCode("LETS");
|
||||||
queryOfsSoSaleOutVo.setPageNo(1L);
|
queryOfsSoSaleOutVo.setPageNo(1L);
|
||||||
queryOfsSoSaleOutVo.setPageSize(50L);
|
queryOfsSoSaleOutVo.setPageSize(50L);
|
||||||
queryOfsSoSaleOutVo.setCode(code);
|
queryOfsSoSaleOutVo.setCode(code);
|
||||||
queryOfsSoSaleOutVo.setInternalInstructionType("PURCHASE");
|
queryOfsSoSaleOutVo.setInternalInstructionType("PURCHASE_RETURN");
|
||||||
queryOfsSoSaleOutVo.setStatus(900L);
|
queryOfsSoSaleOutVo.setStatus(900L);
|
||||||
queryOfsReturnGoods(queryOfsSoSaleOutVo, returnGoodHeaderDetailsDataDtoArrayList, 1L);
|
ofsStandardUtil.queryOfsSaleOrder(queryOfsSoSaleOutVo, returnGoodHeaderDetailsDataDtoArrayList, 1L, "ofs.shipment.search");
|
||||||
logger.info("数据返回行数:{}", returnGoodHeaderDetailsDataDtoArrayList.size());
|
logger.info("数据返回行数:{}", returnGoodHeaderDetailsDataDtoArrayList.size());
|
||||||
if (returnGoodHeaderDetailsDataDtoArrayList.size() > 0) {
|
if (returnGoodHeaderDetailsDataDtoArrayList.size() > 0) {
|
||||||
getSet(returnGoodHeaderDetailsDataDtoArrayList);
|
getSet(returnGoodHeaderDetailsDataDtoArrayList);
|
||||||
} else {
|
} else {
|
||||||
logger.info("没有查询到任何数据!不需要同步");
|
logger.info("没有查询到任何数据!不需要发起同步逻辑!!");
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error("startImplement方法抛出异常", e);
|
logger.error("startImplement方法抛出异常", e);
|
||||||
|
@ -195,7 +206,7 @@ public class ProxyPurchaseReturn extends PluginBaseEntity {
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error("thread.join()异常", e);
|
logger.error("thread.join()异常", e);
|
||||||
}
|
}
|
||||||
String threadNameStrEnd = StrUtil.format("开始(代理品牌采购)OFS采购入库单生成U8C采购订单 售后入库单号:{}", code);
|
String threadNameStrEnd = StrUtil.format("结束(代理品牌采购)OFS采购入库单生成U8C采购订单 售后入库单号:{}", code);
|
||||||
logger.info(threadNameStrEnd);
|
logger.info(threadNameStrEnd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -206,42 +217,42 @@ public class ProxyPurchaseReturn extends PluginBaseEntity {
|
||||||
* @param headerDetailsDtoList 查询结果集
|
* @param headerDetailsDtoList 查询结果集
|
||||||
* @param pageNo 从第pageNo页开始查询
|
* @param pageNo 从第pageNo页开始查询
|
||||||
*/
|
*/
|
||||||
private void queryOfsReturnGoods(QueryOfsSoSaleOutVo queryOfsSoSaleOutVo, List<StockinOrderSearchResponse.StockinOrder> headerDetailsDtoList, Long pageNo) throws Exception {
|
// private void queryOfsReturnGoods(QueryOfsSoSaleOutVo queryOfsSoSaleOutVo, List<StockinOrderSearchResponse.StockinOrder> headerDetailsDtoList, Long pageNo) throws Exception {
|
||||||
Long pageSize = 200L;
|
// Long pageSize = 200L;
|
||||||
queryOfsSoSaleOutVo.setPageNo(pageNo);
|
// queryOfsSoSaleOutVo.setPageNo(pageNo);
|
||||||
queryOfsSoSaleOutVo.setPageSize(pageSize);
|
// queryOfsSoSaleOutVo.setPageSize(pageSize);
|
||||||
|
//
|
||||||
InterfaceParamDto interfaceParamDto = new InterfaceParamDto();
|
// InterfaceParamDto interfaceParamDto = new InterfaceParamDto();
|
||||||
interfaceParamDto.setApi("ofs.receipt.search");
|
// interfaceParamDto.setApi("ofs.receipt.search");
|
||||||
interfaceParamDto.setData(JSON.toJSONString(queryOfsSoSaleOutVo));
|
// interfaceParamDto.setData(JSON.toJSONString(queryOfsSoSaleOutVo));
|
||||||
StockinOrderSearchResponse rertunGoodsRootBean = (StockinOrderSearchResponse) ofsUnifiedService.unified(interfaceParamDto);
|
// StockinOrderSearchResponse rertunGoodsRootBean = (StockinOrderSearchResponse) ofsUnifiedService.unified(interfaceParamDto);
|
||||||
if (rertunGoodsRootBean != null) {
|
// if (rertunGoodsRootBean != null) {
|
||||||
if ("false".equals(rertunGoodsRootBean.getError()) && "0".equals(rertunGoodsRootBean.getCode()) && "Success".equals(rertunGoodsRootBean.getMsg())) {
|
// if ("false".equals(rertunGoodsRootBean.getError()) && "0".equals(rertunGoodsRootBean.getCode()) && "Success".equals(rertunGoodsRootBean.getMsg())) {
|
||||||
List<StockinOrderSearchResponse.StockinOrder> stockinOrderList = rertunGoodsRootBean.getData();
|
// List<StockinOrderSearchResponse.StockinOrder> stockinOrderList = rertunGoodsRootBean.getData();
|
||||||
if (stockinOrderList != null && stockinOrderList.size() > 0) {
|
// if (stockinOrderList != null && stockinOrderList.size() > 0) {
|
||||||
headerDetailsDtoList.addAll(stockinOrderList);
|
// headerDetailsDtoList.addAll(stockinOrderList);
|
||||||
|
//
|
||||||
//TODO OFS没有提供分页字段,等待开发
|
// //TODO OFS没有提供分页字段,等待开发
|
||||||
}
|
// }
|
||||||
} else {
|
// } else {
|
||||||
logger.error("查询失败,失败原因:{}", JSON.toJSON(interfaceParamDto));
|
// logger.error("查询失败,失败原因:{}", JSON.toJSON(interfaceParamDto));
|
||||||
}
|
// }
|
||||||
} else {
|
// } else {
|
||||||
logger.error("rertunGoodsRootBean为空!interfaceParamDto对象的结果集json:{}", JSON.toJSON(interfaceParamDto));
|
// logger.error("rertunGoodsRootBean为空!interfaceParamDto对象的结果集json:{}", JSON.toJSON(interfaceParamDto));
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 环境预配置
|
* 环境预配置
|
||||||
*
|
*
|
||||||
* @param returnGoodHeaderDetailsDataDtoArrayList 采购入库单
|
* @param returnGoodHeaderDetailsDataDtoArrayList 采退出库单
|
||||||
* @author liuyang
|
* @author liuyang
|
||||||
*/
|
*/
|
||||||
private void getSet(List<StockinOrderSearchResponse.StockinOrder> returnGoodHeaderDetailsDataDtoArrayList) throws Exception {
|
private void getSet(List<HeaderDetailsDto> returnGoodHeaderDetailsDataDtoArrayList) throws Exception {
|
||||||
//过滤成功的数据
|
//过滤成功的数据
|
||||||
List<StockinOrderSearchResponse.StockinOrder> stockinOrderList = filterData(returnGoodHeaderDetailsDataDtoArrayList);
|
List<HeaderDetailsDto> headerDetailsDtos = filterData(returnGoodHeaderDetailsDataDtoArrayList);
|
||||||
//执行推送主逻辑
|
//执行推送主逻辑
|
||||||
implement(stockinOrderList);
|
implement(headerDetailsDtos);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -249,8 +260,8 @@ public class ProxyPurchaseReturn extends PluginBaseEntity {
|
||||||
*
|
*
|
||||||
* @author liuyang
|
* @author liuyang
|
||||||
*/
|
*/
|
||||||
private List<StockinOrderSearchResponse.StockinOrder> filterData(List<StockinOrderSearchResponse.StockinOrder> returnGoodHeaderDetailsDataDtoArrayList) {
|
private List<HeaderDetailsDto> filterData(List<HeaderDetailsDto> returnGoodHeaderDetailsDataDtoArrayList) {
|
||||||
List<StockinOrderSearchResponse.StockinOrder> headerDetailsDtoList1 = new ArrayList<>();
|
List<HeaderDetailsDto> headerDetailsDtoList1 = new ArrayList<>();
|
||||||
if (returnGoodHeaderDetailsDataDtoArrayList != null && returnGoodHeaderDetailsDataDtoArrayList.size() > 0) {
|
if (returnGoodHeaderDetailsDataDtoArrayList != null && returnGoodHeaderDetailsDataDtoArrayList.size() > 0) {
|
||||||
//TODO 出库单明细主键,需要O返回,目前没有,已经提需求
|
//TODO 出库单明细主键,需要O返回,目前没有,已经提需求
|
||||||
headerDetailsDtoList1.addAll(returnGoodHeaderDetailsDataDtoArrayList);
|
headerDetailsDtoList1.addAll(returnGoodHeaderDetailsDataDtoArrayList);
|
||||||
|
@ -263,20 +274,20 @@ public class ProxyPurchaseReturn extends PluginBaseEntity {
|
||||||
*
|
*
|
||||||
* @author liuyang
|
* @author liuyang
|
||||||
*/
|
*/
|
||||||
private void implement(List<StockinOrderSearchResponse.StockinOrder> returnGoodHeaderDetailsDataDtoList) throws Exception {
|
private void implement(List<HeaderDetailsDto> headerDetailsDtos) throws Exception {
|
||||||
if (returnGoodHeaderDetailsDataDtoList != null && returnGoodHeaderDetailsDataDtoList.size() > 0) {
|
if (headerDetailsDtos != null && headerDetailsDtos.size() > 0) {
|
||||||
try {
|
try {
|
||||||
// 查询基本档案
|
// 转换基本档案
|
||||||
List<PoOrderSonDto> poOrderSonDtos = queryBasicArchives(returnGoodHeaderDetailsDataDtoList);
|
List<PoOrderRerturnSonDto> poOrderRerturnSonDtos = queryBasicArchives(headerDetailsDtos);
|
||||||
// 代理品牌采购业务流程
|
// 代理品牌采购业务流程
|
||||||
BdBusitypeEntity bdBusitypeEntity = u8cOperationFlow();
|
BdBusitypeEntity bdBusitypeEntity = u8cOperationFlow();
|
||||||
// 查询采购收发类别
|
// 查询采购收发类别
|
||||||
BdRdclEntity bdRdclEntity = rdclUtil.queryRdClObject("102");
|
BdRdclEntity bdRdclEntity = rdclUtil.queryRdClObject("102");
|
||||||
|
|
||||||
if (poOrderSonDtos != null && poOrderSonDtos.size() > 0) {
|
if (poOrderRerturnSonDtos != null && poOrderRerturnSonDtos.size() > 0) {
|
||||||
for (int i = 0; i < poOrderSonDtos.size(); i++) {
|
for (int i = 0; i < poOrderRerturnSonDtos.size(); i++) {
|
||||||
PoOrderSonDto poOrderSonDto = poOrderSonDtos.get(i);
|
PoOrderRerturnSonDto poOrderSonDto = poOrderRerturnSonDtos.get(i);
|
||||||
List<StockinOrderSearchResponse.StockinOrder.StockinB> details = poOrderSonDto.getDetails();
|
List<DetailsDto> details = poOrderSonDto.getDetails();
|
||||||
|
|
||||||
//生成业务日期
|
//生成业务日期
|
||||||
String generateBusinessDate = createGenerateBusinessDate(poOrderSonDto);
|
String generateBusinessDate = createGenerateBusinessDate(poOrderSonDto);
|
||||||
|
@ -289,12 +300,13 @@ public class ProxyPurchaseReturn extends PluginBaseEntity {
|
||||||
BdCalbodyEntity bdCalbodyEntity = poOrderSonDto.getBdCalbodyEntity();//收货库存组织
|
BdCalbodyEntity bdCalbodyEntity = poOrderSonDto.getBdCalbodyEntity();//收货库存组织
|
||||||
BdStordocEntity bdStordocEntity = poOrderSonDto.getBdStordocEntity();//收货仓库
|
BdStordocEntity bdStordocEntity = poOrderSonDto.getBdStordocEntity();//收货仓库
|
||||||
|
|
||||||
OfsPoOrderData ofsPoOrderData = poOrderSonDto.getOfsPoOrderData();//OFS采购订单
|
PurchaseReturnOrder purchaseReturnOrder = poOrderSonDto.getPurchaseReturnOrder();//OFS采退订单
|
||||||
OfsPoOrderHeader ofsPoOrderDataHeader = ofsPoOrderData.getHeader();
|
PurchaseReturnOrderHeader header = purchaseReturnOrder.getHeader();
|
||||||
List<OfsPoOrderDetails> ofsPoOrderDataDetails = ofsPoOrderData.getDetails();
|
List<PurchaseReturnOrderDetails> details1 = purchaseReturnOrder.getDetails();
|
||||||
|
|
||||||
//采购订单表头
|
//采购订单表头
|
||||||
PoOrderParentDto poOrderParentDto = new PoOrderParentDto();
|
PoOrderParentDto poOrderParentDto = new PoOrderParentDto();
|
||||||
|
poOrderParentDto.setBreturn(true);//确认退货
|
||||||
poOrderParentDto.setCbiztype(bdBusitypeEntity.getPkBusitype());//业务流程
|
poOrderParentDto.setCbiztype(bdBusitypeEntity.getPkBusitype());//业务流程
|
||||||
poOrderParentDto.setCdeptid(bdDeptdocEntity.getPkDeptdoc());//采购部门
|
poOrderParentDto.setCdeptid(bdDeptdocEntity.getPkDeptdoc());//采购部门
|
||||||
poOrderParentDto.setCoperator("0001A110000000000U3D");//制单人
|
poOrderParentDto.setCoperator("0001A110000000000U3D");//制单人
|
||||||
|
@ -315,37 +327,37 @@ public class ProxyPurchaseReturn extends PluginBaseEntity {
|
||||||
poOrderParentDto.setVdef20(poOrderSonDto.getId());//原单主键
|
poOrderParentDto.setVdef20(poOrderSonDto.getId());//原单主键
|
||||||
|
|
||||||
//收发类别
|
//收发类别
|
||||||
// poOrderParentDto.setPk_defdoc3(bdRdclEntity.getPkRdcl());
|
poOrderParentDto.setPk_defdoc3(bdRdclEntity.getPkRdcl());
|
||||||
// poOrderParentDto.setVdef3(bdRdclEntity.getRdname());
|
poOrderParentDto.setVdef3(bdRdclEntity.getRdname());
|
||||||
|
|
||||||
//采购订单明细行
|
//采购订单明细行
|
||||||
List<PoOrderChildrenDto> poOrderChildrenDtoList = new ArrayList<>();
|
List<PoOrderChildrenDto> poOrderChildrenDtoList = new ArrayList<>();
|
||||||
|
|
||||||
for (int j = 0; j < details.size(); j++) {
|
for (int j = 0; j < details.size(); j++) {
|
||||||
StockinOrderSearchResponse.StockinOrder.StockinB stockinB = details.get(j);
|
DetailsDto detailsDto = details.get(j);
|
||||||
OfsPoOrderDetails ofsPoOrderDetail = findOfsPoOrderDetail(ofsPoOrderDataDetails, stockinB);
|
PurchaseReturnOrderDetails ofsPoOrderDetail = findOfsPoOrderDetail(details1, detailsDto);
|
||||||
|
|
||||||
//TODO 测试
|
//TODO 测试
|
||||||
stockinB.setReceivedQty("1");
|
detailsDto.setShipQty("1");
|
||||||
ofsPoOrderDetail.setFulfillAmount("10");
|
ofsPoOrderDetail.setFulfillAmount("10");
|
||||||
|
|
||||||
//2024年8月20日 16:02:21 已经和妮姐、万万确认,采购公司和收货公司目前是一致的,暂时不用区分取数逻辑
|
//2024年8月20日 16:02:21 已经和妮姐、万万确认,采购公司和收货公司目前是一致的,暂时不用区分取数逻辑
|
||||||
BdInvmandocEntity bdInvmandocEntity = queryInventoryMan(stockinB, bdCorpEntity.getPkCorp());
|
BdInvmandocEntity bdInvmandocEntity = queryInventoryMan(detailsDto, bdCorpEntity.getPkCorp());
|
||||||
String receivedQty = stockinB.getReceivedQty();//实收数量
|
String receivedQty = detailsDto.getShipQty();//实发数量
|
||||||
String fulfillAmount = ofsPoOrderDetail.getFulfillAmount();//实收累计总金额
|
String fulfillAmount = ofsPoOrderDetail.getFulfillAmount();//实际进价
|
||||||
|
|
||||||
//原币含税单价
|
//原币含税单价
|
||||||
BigDecimal noriginalcurprice = null;
|
BigDecimal noriginalcurprice = null;
|
||||||
try {
|
try {
|
||||||
noriginalcurprice = new BigDecimal(fulfillAmount).divide(new BigDecimal(receivedQty), 20, BigDecimal.ROUND_HALF_UP).setScale(4, BigDecimal.ROUND_HALF_UP);
|
noriginalcurprice = new BigDecimal(fulfillAmount).divide(new BigDecimal(receivedQty), 20, BigDecimal.ROUND_HALF_UP).setScale(4, BigDecimal.ROUND_HALF_UP);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error("计算采购入库单原币含税单价失败", e);
|
logger.error("计算采退出库单原币含税单价失败", e);
|
||||||
Assert.state(false, "计算采购入库单原币含税单价失败 原因:{}", e.getMessage());
|
Assert.state(false, "计算采退出库单原币含税单价失败 原因:{}", e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
PoOrderChildrenDto poOrderChildrenDto = new PoOrderChildrenDto();
|
PoOrderChildrenDto poOrderChildrenDto = new PoOrderChildrenDto();
|
||||||
poOrderChildrenDto.setCmangid(bdInvmandocEntity.getPkInvmandoc());//存货管理id
|
poOrderChildrenDto.setCmangid(bdInvmandocEntity.getPkInvmandoc());//存货管理id
|
||||||
poOrderChildrenDto.setNordernum(receivedQty);//订货数量
|
poOrderChildrenDto.setNordernum("-" + new BigDecimal(receivedQty).stripTrailingZeros().toPlainString());//订货数量
|
||||||
poOrderChildrenDto.setNorgtaxprice(noriginalcurprice.stripTrailingZeros().toPlainString());//原币含税单价
|
poOrderChildrenDto.setNorgtaxprice(noriginalcurprice.stripTrailingZeros().toPlainString());//原币含税单价
|
||||||
poOrderChildrenDto.setPk_arrvcorp(bdCorpEntity.getPkCorp());//收货公司
|
poOrderChildrenDto.setPk_arrvcorp(bdCorpEntity.getPkCorp());//收货公司
|
||||||
poOrderChildrenDto.setPk_arrvstoorg(bdCalbodyEntity.getPkCalbody());//收货库存组织
|
poOrderChildrenDto.setPk_arrvstoorg(bdCalbodyEntity.getPkCalbody());//收货库存组织
|
||||||
|
@ -391,19 +403,20 @@ public class ProxyPurchaseReturn extends PluginBaseEntity {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 档案转换
|
* 档案转换(OFS->U8C)
|
||||||
*
|
*
|
||||||
|
* @param returnGoodHeaderDetailsDataDtoList 采退出库单
|
||||||
* @author liuyang
|
* @author liuyang
|
||||||
*/
|
*/
|
||||||
private List<PoOrderSonDto> queryBasicArchives(List<StockinOrderSearchResponse.StockinOrder> returnGoodHeaderDetailsDataDtoList) {
|
private List<PoOrderRerturnSonDto> queryBasicArchives(List<HeaderDetailsDto> returnGoodHeaderDetailsDataDtoList) {
|
||||||
List<PoOrderSonDto> poOrderSonDtoArrayList = new ArrayList<>();
|
List<PoOrderRerturnSonDto> poOrderSonDtoArrayList = new ArrayList<>();
|
||||||
|
|
||||||
if (returnGoodHeaderDetailsDataDtoList != null && returnGoodHeaderDetailsDataDtoList.size() > 0) {
|
if (returnGoodHeaderDetailsDataDtoList != null && returnGoodHeaderDetailsDataDtoList.size() > 0) {
|
||||||
try {
|
try {
|
||||||
for (int i = 0; i < returnGoodHeaderDetailsDataDtoList.size(); i++) {
|
for (int i = 0; i < returnGoodHeaderDetailsDataDtoList.size(); i++) {
|
||||||
StockinOrderSearchResponse.StockinOrder stockinOrder = returnGoodHeaderDetailsDataDtoList.get(i);
|
HeaderDetailsDto headerDetailsDto = returnGoodHeaderDetailsDataDtoList.get(i);
|
||||||
StockinOrderSearchResponse.StockinOrder.StockinH header = stockinOrder.getHeader();
|
HeaderDto header = headerDetailsDto.getHeader();
|
||||||
List<StockinOrderSearchResponse.StockinOrder.StockinB> details = stockinOrder.getDetails();
|
List<DetailsDto> details = headerDetailsDto.getDetails();
|
||||||
|
|
||||||
//采购公司
|
//采购公司
|
||||||
String companyCode = header.getCompanyCode();
|
String companyCode = header.getCompanyCode();
|
||||||
|
@ -445,11 +458,16 @@ public class ProxyPurchaseReturn extends PluginBaseEntity {
|
||||||
Assert.state(false, "根据采购公司主键:{} 匹配到多个采购组织", bdCorpEntityList.get(0).getPkCorp());
|
Assert.state(false, "根据采购公司主键:{} 匹配到多个采购组织", bdCorpEntityList.get(0).getPkCorp());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//2024年8月22日 15:30:09 如果purchaseReturnOrder为null,那么在queryPurchaseReturnOrder会抛出异常,此处不需要验证purchaseReturnOrder是否为null
|
||||||
|
PurchaseReturnOrder purchaseReturnOrder = queryPurchaseReturnOrder(header.getRefOrderCode());
|
||||||
|
PurchaseReturnOrderHeader header1 = purchaseReturnOrder.getHeader();
|
||||||
|
// List<PurchaseReturnOrderDetails> details1 = purchaseReturnOrder.getDetails();
|
||||||
|
|
||||||
//客商基本档案(供应商类型)
|
//客商基本档案(供应商类型)
|
||||||
//2024年8月20日 14:47:55 丽知商城、OFS 供应商客商档案、传递到U8C的客商,
|
//2024年8月20日 14:47:55 丽知商城、OFS 供应商客商档案、传递到U8C的客商,
|
||||||
//其中自定义项1作为原系统编码,因此统一传到自定义项一,已经和大家确认好了,没有关系的,放心大胆传吧,宝贝
|
//其中自定义项1作为原系统编码,因此统一传到自定义项一,已经和大家确认好了,没有关系的,放心大胆传吧,宝贝
|
||||||
String shipFromCode = header.getShipFromCode();
|
String shipFromCode = header1.getShipFromCode();
|
||||||
Assert.notNull(shipFromCode, "O供应商编码不能为空,没有办法完成业务逻辑,请配置供应商编码");
|
Assert.notNull(shipFromCode, "O供应商编码不能为空,没有办法完成业务逻辑,请配置供应商编码(采退)");
|
||||||
Assert.state(!"".equals(shipFromCode.trim()), "O供应商编码不能为空,没有办法完成业务逻辑,请配置供应商编码!");
|
Assert.state(!"".equals(shipFromCode.trim()), "O供应商编码不能为空,没有办法完成业务逻辑,请配置供应商编码!");
|
||||||
BdCubasdocEntity bdCubasdocEntity = new BdCubasdocEntity();
|
BdCubasdocEntity bdCubasdocEntity = new BdCubasdocEntity();
|
||||||
bdCubasdocEntity.setDataSourceCode("lets_u8c");
|
bdCubasdocEntity.setDataSourceCode("lets_u8c");
|
||||||
|
@ -503,22 +521,19 @@ public class ProxyPurchaseReturn extends PluginBaseEntity {
|
||||||
Assert.state(false, "根据O仓库编码+U8C收货库存组织主键,匹配到U8C仓库多个", facilityCode, bdCalbodyEntities.get(0).getPkCalbody());
|
Assert.state(false, "根据O仓库编码+U8C收货库存组织主键,匹配到U8C仓库多个", facilityCode, bdCalbodyEntities.get(0).getPkCalbody());
|
||||||
}
|
}
|
||||||
|
|
||||||
//查询OFS采购订单
|
PoOrderRerturnSonDto poOrderRerturnSonDto = new PoOrderRerturnSonDto();
|
||||||
OfsPoOrderData ofsPoOrderData = queryOfsPoOrder(header.getRefOrderCode());
|
poOrderRerturnSonDto.setBdCorpEntity(bdCorpEntityList.get(0));
|
||||||
|
poOrderRerturnSonDto.setBdDeptdocEntity(bdDeptdocEntityList.get(0));
|
||||||
|
poOrderRerturnSonDto.setBdPurorgEntity(bdPurorgEntityList.get(0));
|
||||||
|
poOrderRerturnSonDto.setBdCubasdocEntity(bdCubasdocEntityList.get(0));
|
||||||
|
poOrderRerturnSonDto.setBdCumandocEntity(bdCumandocEntityList.get(0));
|
||||||
|
poOrderRerturnSonDto.setBdCalbodyEntity(bdCalbodyEntities.get(0));
|
||||||
|
poOrderRerturnSonDto.setBdStordocEntity(bdStordocEntityList.get(0));
|
||||||
|
poOrderRerturnSonDto.setDetails(details);
|
||||||
|
poOrderRerturnSonDto.setPurchaseReturnOrder(purchaseReturnOrder);
|
||||||
|
|
||||||
PoOrderSonDto poOrderSonDto = new PoOrderSonDto();
|
BeanUtil.copyPropertiesV2(header, poOrderRerturnSonDto);
|
||||||
poOrderSonDto.setBdCorpEntity(bdCorpEntityList.get(0));
|
poOrderSonDtoArrayList.add(poOrderRerturnSonDto);
|
||||||
poOrderSonDto.setBdDeptdocEntity(bdDeptdocEntityList.get(0));
|
|
||||||
poOrderSonDto.setBdPurorgEntity(bdPurorgEntityList.get(0));
|
|
||||||
poOrderSonDto.setBdCubasdocEntity(bdCubasdocEntityList.get(0));
|
|
||||||
poOrderSonDto.setBdCumandocEntity(bdCumandocEntityList.get(0));
|
|
||||||
poOrderSonDto.setOfsPoOrderData(ofsPoOrderData);
|
|
||||||
poOrderSonDto.setBdCalbodyEntity(bdCalbodyEntities.get(0));
|
|
||||||
poOrderSonDto.setBdStordocEntity(bdStordocEntityList.get(0));
|
|
||||||
poOrderSonDto.setDetails(details);
|
|
||||||
|
|
||||||
BeanUtil.copyPropertiesV2(header, poOrderSonDto);
|
|
||||||
poOrderSonDtoArrayList.add(poOrderSonDto);
|
|
||||||
}
|
}
|
||||||
//成功
|
//成功
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
@ -551,7 +566,7 @@ public class ProxyPurchaseReturn extends PluginBaseEntity {
|
||||||
*
|
*
|
||||||
* @author liuyang
|
* @author liuyang
|
||||||
*/
|
*/
|
||||||
private String createGenerateBusinessDate(PoOrderSonDto poOrderSonDto) {
|
private String createGenerateBusinessDate(PoOrderRerturnSonDto poOrderSonDto) {
|
||||||
//TODO 测试
|
//TODO 测试
|
||||||
poOrderSonDto.setShipAt("2024-08-19");
|
poOrderSonDto.setShipAt("2024-08-19");
|
||||||
if (poOrderSonDto != null && poOrderSonDto.getShipAt() != null) {
|
if (poOrderSonDto != null && poOrderSonDto.getShipAt() != null) {
|
||||||
|
@ -565,8 +580,8 @@ public class ProxyPurchaseReturn extends PluginBaseEntity {
|
||||||
}
|
}
|
||||||
return businessFormat;
|
return businessFormat;
|
||||||
} else {
|
} else {
|
||||||
logger.error("生成采购订单入库日期失败,或者shipAt为空! json:{}", JSON.toJSON(poOrderSonDto));
|
logger.error("生成采退出库日期失败,或者shipAt为空! json:{}", JSON.toJSON(poOrderSonDto));
|
||||||
Assert.state(false, "生成采购订单入库日期失败,或者shipAt为空! json:{}", JSON.toJSON(poOrderSonDto));
|
Assert.state(false, "生成采退出库日期失败,或者shipAt为空! json:{}", JSON.toJSON(poOrderSonDto));
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -574,23 +589,23 @@ public class ProxyPurchaseReturn extends PluginBaseEntity {
|
||||||
/**
|
/**
|
||||||
* 查询存货管理档案
|
* 查询存货管理档案
|
||||||
*
|
*
|
||||||
* @param pkCorp 发货公司主键
|
* @param pkCorp 发货公司主键
|
||||||
* @param stockinB 采购入库单明细行
|
* @param detailsDto 采购入库单明细行
|
||||||
* @author liuyang
|
* @author liuyang
|
||||||
*/
|
*/
|
||||||
private BdInvmandocEntity queryInventoryMan(StockinOrderSearchResponse.StockinOrder.StockinB stockinB, String pkCorp) throws Exception {
|
private BdInvmandocEntity queryInventoryMan(DetailsDto detailsDto, String pkCorp) throws Exception {
|
||||||
Assert.notNull(stockinB, "sonDetailsDto不能为空");
|
Assert.notNull(detailsDto, "sonDetailsDto不能为空");
|
||||||
Assert.notNull(stockinB.getSkuCode(), "O存货商家编码不能为空");
|
Assert.notNull(detailsDto.getSkuCode(), "O存货商家编码不能为空");
|
||||||
Assert.notNull(pkCorp, "发货公司主键不能为空");
|
Assert.notNull(pkCorp, "发货公司主键不能为空");
|
||||||
|
|
||||||
BdInvmandocEntity bdInvmandocEntity = new BdInvmandocEntity();
|
BdInvmandocEntity bdInvmandocEntity = new BdInvmandocEntity();
|
||||||
bdInvmandocEntity.setInvcode(stockinB.getSkuCode());
|
bdInvmandocEntity.setInvcode(detailsDto.getSkuCode());
|
||||||
bdInvmandocEntity.setPkCorp(pkCorp);
|
bdInvmandocEntity.setPkCorp(pkCorp);
|
||||||
List<BdInvmandocEntity> bdInvmandocEntity2 = iBdInvmandocDao.queryBdInvmandocByInvcodeList(bdInvmandocEntity);
|
List<BdInvmandocEntity> bdInvmandocEntity2 = iBdInvmandocDao.queryBdInvmandocByInvcodeList(bdInvmandocEntity);
|
||||||
if (bdInvmandocEntity2.size() == 0) {
|
if (bdInvmandocEntity2.size() == 0) {
|
||||||
Assert.state(false, "根据O商家编码:{} U8C发货公司主键:{}没有查询到存货管理档案", stockinB.getSkuCode(), pkCorp);
|
Assert.state(false, "根据O商家编码:{} U8C发货公司主键:{}没有查询到存货管理档案", detailsDto.getSkuCode(), pkCorp);
|
||||||
} else if (bdInvmandocEntity2.size() >= 2) {
|
} else if (bdInvmandocEntity2.size() >= 2) {
|
||||||
Assert.state(false, "根据O商家编码:{} U8C发货公司主键:{}没有查询到存货管理档案", stockinB.getSkuCode(), pkCorp);
|
Assert.state(false, "根据O商家编码:{} U8C发货公司主键:{}没有查询到存货管理档案", detailsDto.getSkuCode(), pkCorp);
|
||||||
}
|
}
|
||||||
return bdInvmandocEntity2.get(0);
|
return bdInvmandocEntity2.get(0);
|
||||||
}
|
}
|
||||||
|
@ -639,26 +654,24 @@ public class ProxyPurchaseReturn extends PluginBaseEntity {
|
||||||
* 应该通过明细行主键匹配,但是只能根据sku匹配目前的实现逻辑
|
* 应该通过明细行主键匹配,但是只能根据sku匹配目前的实现逻辑
|
||||||
* 查找OFS采购订单明细行,主要是为了带出实付金额,通过实付金额/实收数量=含税单价
|
* 查找OFS采购订单明细行,主要是为了带出实付金额,通过实付金额/实收数量=含税单价
|
||||||
*
|
*
|
||||||
* @param ofsPoOrderDataDetails OFS采购订单明细行所有对象
|
* @param ofsPoOrderDataDetails OFS采退订单明细行所有对象
|
||||||
* @param stockinB OFS采购入库单明细行对象
|
* @param detailsDto OFS采退入库单明细行对象
|
||||||
* @author liuyang
|
* @author liuyang
|
||||||
*/
|
*/
|
||||||
private OfsPoOrderDetails findOfsPoOrderDetail(List<OfsPoOrderDetails> ofsPoOrderDataDetails, StockinOrderSearchResponse.StockinOrder.StockinB stockinB) {
|
private PurchaseReturnOrderDetails findOfsPoOrderDetail(List<PurchaseReturnOrderDetails> ofsPoOrderDataDetails, DetailsDto detailsDto) {
|
||||||
if (ofsPoOrderDataDetails != null && ofsPoOrderDataDetails.size() > 0 && stockinB != null) {
|
if (ofsPoOrderDataDetails != null && ofsPoOrderDataDetails.size() > 0 && detailsDto != null) {
|
||||||
// 2024年8月20日 23:33:11 先使用sku验证,然后O接口更新明细id,使用明细id匹配!
|
|
||||||
// 2024年8月20日 23:36:04 使用sku匹配,在某种角度来说是错误的
|
|
||||||
// 2024年8月21日 14:23:02 O接口已经返回明细行主键,根据这个匹配
|
|
||||||
for (int i = 0; i < ofsPoOrderDataDetails.size(); i++) {
|
for (int i = 0; i < ofsPoOrderDataDetails.size(); i++) {
|
||||||
Assert.notNull(ofsPoOrderDataDetails.get(i).getId(), "采购订单明细行主键不能为空!");
|
Assert.notNull(ofsPoOrderDataDetails.get(i).getId(), "采退订单明细行主键不能为空!");
|
||||||
Assert.notNull(stockinB.getRefOrderDetailId(), "采购入库单明细行对应的关联采购订单的明细行主键不能为空!");
|
|
||||||
if (ofsPoOrderDataDetails.get(i).getId().equals(stockinB.getRefOrderDetailId())) {
|
Assert.notNull(detailsDto.getRefOrderDetailId(), "采退出库单明细行对应的关联采退订单的明细行主键不能为空!");
|
||||||
|
if (ofsPoOrderDataDetails.get(i).getId().equals(detailsDto.getRefOrderDetailId())) {
|
||||||
return ofsPoOrderDataDetails.get(0);
|
return ofsPoOrderDataDetails.get(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
logger.error("findOfsPoOrderDetail方法对应的ofsPoOrderDataDetails不能为空!否则业务目标无法完成!");
|
logger.error("findOfsPoOrderDetail方法对应的ofsPoOrderDataDetails不能为空!否则业务目标无法完成!");
|
||||||
}
|
}
|
||||||
Assert.state(false, "无法匹配到采购订单明细行,业务逻辑无法完成,根据sku编码:{}查找,但是在采购订单中无法匹配!", stockinB.getSkuCode());
|
Assert.state(false, "无法匹配到采退订单明细行,业务逻辑无法完成!");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -724,4 +737,25 @@ public class ProxyPurchaseReturn extends PluginBaseEntity {
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询采退订单
|
||||||
|
*
|
||||||
|
* @param code 采退订单号
|
||||||
|
* @author liuyang
|
||||||
|
*/
|
||||||
|
private PurchaseReturnOrder queryPurchaseReturnOrder(String code) throws Exception {
|
||||||
|
List<PurchaseReturnOrder> headerDetailsDtoList = new ArrayList<>();
|
||||||
|
QueryOfsSoSaleOutVo queryOfsSoSaleOutVo = new QueryOfsSoSaleOutVo();
|
||||||
|
queryOfsSoSaleOutVo.setCode(code);
|
||||||
|
queryOfsSoSaleOutVo.setClientCode("LETS");
|
||||||
|
queryOfsSoSaleOutVo.setPageNo(1L);
|
||||||
|
queryOfsSoSaleOutVo.setPageSize(50L);
|
||||||
|
ofsStandardUtil.queryPurchaseReturnOrder(queryOfsSoSaleOutVo, headerDetailsDtoList, 1L, "ofs.purchaseReturnOrder.search");
|
||||||
|
if (headerDetailsDtoList.size() > 0) {
|
||||||
|
return headerDetailsDtoList.get(0);
|
||||||
|
}
|
||||||
|
Assert.state(false, "根据OFS采购订单号:{}无法查询到OFS采购订单信息", code);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -13,6 +13,7 @@ import com.hzya.frame.plugin.lets.dao.*;
|
||||||
import com.hzya.frame.plugin.lets.entity.*;
|
import com.hzya.frame.plugin.lets.entity.*;
|
||||||
import com.hzya.frame.plugin.lets.ofsvo.QueryOfsSoSaleOutVo;
|
import com.hzya.frame.plugin.lets.ofsvo.QueryOfsSoSaleOutVo;
|
||||||
import com.hzya.frame.plugin.lets.u8cdto.*;
|
import com.hzya.frame.plugin.lets.u8cdto.*;
|
||||||
|
import com.hzya.frame.plugin.lets.util.OfsStandardUtil;
|
||||||
import com.hzya.frame.plugin.lets.util.QueryBdBusitypeUtil;
|
import com.hzya.frame.plugin.lets.util.QueryBdBusitypeUtil;
|
||||||
import com.hzya.frame.plugin.lets.util.RdclUtil;
|
import com.hzya.frame.plugin.lets.util.RdclUtil;
|
||||||
import com.hzya.frame.ttxofs.dto.InterfaceParamDto;
|
import com.hzya.frame.ttxofs.dto.InterfaceParamDto;
|
||||||
|
@ -77,6 +78,9 @@ public class ProxyPurchaseWarehous extends PluginBaseEntity {
|
||||||
@Autowired
|
@Autowired
|
||||||
private RdclUtil rdclUtil;
|
private RdclUtil rdclUtil;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private OfsStandardUtil ofsStandardUtil;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
logger.info(getPluginLabel() + "執行初始化方法initialize()");
|
logger.info(getPluginLabel() + "執行初始化方法initialize()");
|
||||||
|
@ -132,10 +136,9 @@ public class ProxyPurchaseWarehous extends PluginBaseEntity {
|
||||||
queryOfsSoSaleOutVo.setClientCode("LETS");
|
queryOfsSoSaleOutVo.setClientCode("LETS");
|
||||||
queryOfsSoSaleOutVo.setPageNo(1L);
|
queryOfsSoSaleOutVo.setPageNo(1L);
|
||||||
queryOfsSoSaleOutVo.setPageSize(50L);
|
queryOfsSoSaleOutVo.setPageSize(50L);
|
||||||
// queryOfsSoSaleOutVo.setCode(code);
|
|
||||||
queryOfsSoSaleOutVo.setInternalInstructionType("PURCHASE");
|
queryOfsSoSaleOutVo.setInternalInstructionType("PURCHASE");
|
||||||
queryOfsSoSaleOutVo.setStatus(900L);
|
queryOfsSoSaleOutVo.setStatus(900L);
|
||||||
queryOfsReturnGoods(queryOfsSoSaleOutVo, returnGoodHeaderDetailsDataDtoArrayList, 1L);
|
ofsStandardUtil.queryOfsReturnGoods(queryOfsSoSaleOutVo, returnGoodHeaderDetailsDataDtoArrayList, 1L, "ofs.receipt.search");
|
||||||
logger.info("数据返回行数:{}", returnGoodHeaderDetailsDataDtoArrayList.size());
|
logger.info("数据返回行数:{}", returnGoodHeaderDetailsDataDtoArrayList.size());
|
||||||
if (returnGoodHeaderDetailsDataDtoArrayList.size() > 0) {
|
if (returnGoodHeaderDetailsDataDtoArrayList.size() > 0) {
|
||||||
getSet(returnGoodHeaderDetailsDataDtoArrayList);
|
getSet(returnGoodHeaderDetailsDataDtoArrayList);
|
||||||
|
@ -163,7 +166,7 @@ public class ProxyPurchaseWarehous extends PluginBaseEntity {
|
||||||
* @author liuyang
|
* @author liuyang
|
||||||
*/
|
*/
|
||||||
public void startImplement(String code) {
|
public void startImplement(String code) {
|
||||||
String threadNameStr = StrUtil.format("(代理品牌采购)OFS采购入库单生成U8C采购订单 售后入库单号", code);
|
String threadNameStr = StrUtil.format("(代理品牌采购)OFS采购入库单生成U8C采购订单 采购入库单号:{}", code);
|
||||||
logger.info(threadNameStr);
|
logger.info(threadNameStr);
|
||||||
|
|
||||||
Thread thread = new Thread(new Runnable() {
|
Thread thread = new Thread(new Runnable() {
|
||||||
|
@ -177,8 +180,8 @@ public class ProxyPurchaseWarehous extends PluginBaseEntity {
|
||||||
queryOfsSoSaleOutVo.setPageSize(50L);
|
queryOfsSoSaleOutVo.setPageSize(50L);
|
||||||
queryOfsSoSaleOutVo.setCode(code);
|
queryOfsSoSaleOutVo.setCode(code);
|
||||||
queryOfsSoSaleOutVo.setInternalInstructionType("PURCHASE");
|
queryOfsSoSaleOutVo.setInternalInstructionType("PURCHASE");
|
||||||
// queryOfsSoSaleOutVo.setStatus(900L);
|
queryOfsSoSaleOutVo.setStatus(900L);
|
||||||
queryOfsReturnGoods(queryOfsSoSaleOutVo, returnGoodHeaderDetailsDataDtoArrayList, 1L);
|
ofsStandardUtil.queryOfsReturnGoods(queryOfsSoSaleOutVo, returnGoodHeaderDetailsDataDtoArrayList, 1L, "ofs.receipt.search");
|
||||||
logger.info("数据返回行数:{}", returnGoodHeaderDetailsDataDtoArrayList.size());
|
logger.info("数据返回行数:{}", returnGoodHeaderDetailsDataDtoArrayList.size());
|
||||||
if (returnGoodHeaderDetailsDataDtoArrayList.size() > 0) {
|
if (returnGoodHeaderDetailsDataDtoArrayList.size() > 0) {
|
||||||
getSet(returnGoodHeaderDetailsDataDtoArrayList);
|
getSet(returnGoodHeaderDetailsDataDtoArrayList);
|
||||||
|
@ -205,30 +208,30 @@ public class ProxyPurchaseWarehous extends PluginBaseEntity {
|
||||||
* @param headerDetailsDtoList 查询结果集
|
* @param headerDetailsDtoList 查询结果集
|
||||||
* @param pageNo 从第pageNo页开始查询
|
* @param pageNo 从第pageNo页开始查询
|
||||||
*/
|
*/
|
||||||
private void queryOfsReturnGoods(QueryOfsSoSaleOutVo queryOfsSoSaleOutVo, List<StockinOrderSearchResponse.StockinOrder> headerDetailsDtoList, Long pageNo) throws Exception {
|
// private void queryOfsReturnGoods(QueryOfsSoSaleOutVo queryOfsSoSaleOutVo, List<StockinOrderSearchResponse.StockinOrder> headerDetailsDtoList, Long pageNo) throws Exception {
|
||||||
Long pageSize = 200L;
|
// Long pageSize = 200L;
|
||||||
queryOfsSoSaleOutVo.setPageNo(pageNo);
|
// queryOfsSoSaleOutVo.setPageNo(pageNo);
|
||||||
queryOfsSoSaleOutVo.setPageSize(pageSize);
|
// queryOfsSoSaleOutVo.setPageSize(pageSize);
|
||||||
|
//
|
||||||
InterfaceParamDto interfaceParamDto = new InterfaceParamDto();
|
// InterfaceParamDto interfaceParamDto = new InterfaceParamDto();
|
||||||
interfaceParamDto.setApi("ofs.receipt.search");
|
// interfaceParamDto.setApi("ofs.receipt.search");
|
||||||
interfaceParamDto.setData(JSON.toJSONString(queryOfsSoSaleOutVo));
|
// interfaceParamDto.setData(JSON.toJSONString(queryOfsSoSaleOutVo));
|
||||||
StockinOrderSearchResponse rertunGoodsRootBean = (StockinOrderSearchResponse) ofsUnifiedService.unified(interfaceParamDto);
|
// StockinOrderSearchResponse rertunGoodsRootBean = (StockinOrderSearchResponse) ofsUnifiedService.unified(interfaceParamDto);
|
||||||
if (rertunGoodsRootBean != null) {
|
// if (rertunGoodsRootBean != null) {
|
||||||
if ("false".equals(rertunGoodsRootBean.getError()) && "0".equals(rertunGoodsRootBean.getCode()) && "Success".equals(rertunGoodsRootBean.getMsg())) {
|
// if ("false".equals(rertunGoodsRootBean.getError()) && "0".equals(rertunGoodsRootBean.getCode()) && "Success".equals(rertunGoodsRootBean.getMsg())) {
|
||||||
List<StockinOrderSearchResponse.StockinOrder> stockinOrderList = rertunGoodsRootBean.getData();
|
// List<StockinOrderSearchResponse.StockinOrder> stockinOrderList = rertunGoodsRootBean.getData();
|
||||||
if (stockinOrderList != null && stockinOrderList.size() > 0) {
|
// if (stockinOrderList != null && stockinOrderList.size() > 0) {
|
||||||
headerDetailsDtoList.addAll(stockinOrderList);
|
// headerDetailsDtoList.addAll(stockinOrderList);
|
||||||
|
//
|
||||||
//TODO OFS没有提供分页字段,等待开发
|
// //TODO OFS没有提供分页字段,等待开发
|
||||||
}
|
// }
|
||||||
} else {
|
// } else {
|
||||||
logger.error("查询失败,失败原因:{}", JSON.toJSON(interfaceParamDto));
|
// logger.error("查询失败,失败原因:{}", JSON.toJSON(interfaceParamDto));
|
||||||
}
|
// }
|
||||||
} else {
|
// } else {
|
||||||
logger.error("rertunGoodsRootBean为空!interfaceParamDto对象的结果集json:{}", JSON.toJSON(interfaceParamDto));
|
// logger.error("rertunGoodsRootBean为空!interfaceParamDto对象的结果集json:{}", JSON.toJSON(interfaceParamDto));
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 环境预配置
|
* 环境预配置
|
||||||
|
@ -314,8 +317,8 @@ public class ProxyPurchaseWarehous extends PluginBaseEntity {
|
||||||
poOrderParentDto.setVdef20(poOrderSonDto.getId());//原单主键
|
poOrderParentDto.setVdef20(poOrderSonDto.getId());//原单主键
|
||||||
|
|
||||||
//收发类别
|
//收发类别
|
||||||
// poOrderParentDto.setPk_defdoc3(bdRdclEntity.getPkRdcl());
|
poOrderParentDto.setPk_defdoc3(bdRdclEntity.getPkRdcl());
|
||||||
// poOrderParentDto.setVdef3(bdRdclEntity.getRdname());
|
poOrderParentDto.setVdef3(bdRdclEntity.getRdname());
|
||||||
|
|
||||||
//采购订单明细行
|
//采购订单明细行
|
||||||
List<PoOrderChildrenDto> poOrderChildrenDtoList = new ArrayList<>();
|
List<PoOrderChildrenDto> poOrderChildrenDtoList = new ArrayList<>();
|
||||||
|
@ -448,8 +451,8 @@ public class ProxyPurchaseWarehous extends PluginBaseEntity {
|
||||||
//2024年8月20日 14:47:55 丽知商城、OFS 供应商客商档案、传递到U8C的客商,
|
//2024年8月20日 14:47:55 丽知商城、OFS 供应商客商档案、传递到U8C的客商,
|
||||||
//其中自定义项1作为原系统编码,因此统一传到自定义项一,已经和大家确认好了,没有关系的,放心大胆传吧,宝贝
|
//其中自定义项1作为原系统编码,因此统一传到自定义项一,已经和大家确认好了,没有关系的,放心大胆传吧,宝贝
|
||||||
String shipFromCode = header.getShipFromCode();
|
String shipFromCode = header.getShipFromCode();
|
||||||
Assert.notNull(shipFromCode, "O供应商编码不能为空,没有办法完成业务逻辑,请配置供应商编码");
|
Assert.notNull(shipFromCode, "O供应商编码不能为空,没有办法完成业务逻辑,请配置供应商编码(采购)");
|
||||||
Assert.state(!"".equals(shipFromCode.trim()), "O供应商编码不能为空,没有办法完成业务逻辑,请配置供应商编码!");
|
Assert.state(!"".equals(shipFromCode.trim()), "O供应商编码不能为空,没有办法完成业务逻辑,请配置供应商编码(采购)!");
|
||||||
BdCubasdocEntity bdCubasdocEntity = new BdCubasdocEntity();
|
BdCubasdocEntity bdCubasdocEntity = new BdCubasdocEntity();
|
||||||
bdCubasdocEntity.setDataSourceCode("lets_u8c");
|
bdCubasdocEntity.setDataSourceCode("lets_u8c");
|
||||||
bdCubasdocEntity.setDr(0L);
|
bdCubasdocEntity.setDr(0L);
|
||||||
|
|
|
@ -16,7 +16,7 @@ public class PoOrderParentDto {
|
||||||
private String bislatest;
|
private String bislatest;
|
||||||
private Boolean bisreplenish;
|
private Boolean bisreplenish;
|
||||||
private String bpubtoec;
|
private String bpubtoec;
|
||||||
private String breturn;
|
private Boolean breturn;
|
||||||
private Boolean bsocooptome;
|
private Boolean bsocooptome;
|
||||||
private String caccountbankid;
|
private String caccountbankid;
|
||||||
private String caccountyear;
|
private String caccountyear;
|
||||||
|
|
|
@ -0,0 +1,71 @@
|
||||||
|
package com.hzya.frame.plugin.lets.u8cdto;
|
||||||
|
|
||||||
|
import com.hzya.frame.plugin.lets.entity.*;
|
||||||
|
//import com.hzya.frame.ttxofs.dto.ofspoorder.OfsPoOrderData;
|
||||||
|
import com.hzya.frame.ttxofs.dto.ofspurchasereturnorder.PurchaseReturnOrder;
|
||||||
|
import com.hzya.frame.ttxofs.dto.ofssaleorderoutsearch.DetailsDto;
|
||||||
|
import com.hzya.frame.ttxofs.dto.ofssaleorderoutsearch.HeaderDto;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author:liuyang
|
||||||
|
* @Package:com.hzya.frame.plugin.lets.u8cdto
|
||||||
|
* @Project:kangarooDataCenterV3
|
||||||
|
* @name:PoOrderSonDto
|
||||||
|
* @Date:2024/8/20 14:51
|
||||||
|
* @Filename:PoOrderSonDto
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class PoOrderRerturnSonDto extends HeaderDto {
|
||||||
|
/**
|
||||||
|
* 采购公司
|
||||||
|
*/
|
||||||
|
private BdCorpEntity bdCorpEntity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 采购部门
|
||||||
|
*/
|
||||||
|
private BdDeptdocEntity bdDeptdocEntity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 采购组织
|
||||||
|
*/
|
||||||
|
private BdPurorgEntity bdPurorgEntity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 客商基本档案-供应商
|
||||||
|
*/
|
||||||
|
private BdCubasdocEntity bdCubasdocEntity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 客商管理档案-供应商
|
||||||
|
*/
|
||||||
|
private BdCumandocEntity bdCumandocEntity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 明细行
|
||||||
|
*/
|
||||||
|
private List<DetailsDto> details;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* OFS采购订单
|
||||||
|
*/
|
||||||
|
// private OfsPoOrderData ofsPoOrderData;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收货库存组织
|
||||||
|
*/
|
||||||
|
private BdCalbodyEntity bdCalbodyEntity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收货仓库
|
||||||
|
*/
|
||||||
|
private BdStordocEntity bdStordocEntity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 采退订单
|
||||||
|
*/
|
||||||
|
private PurchaseReturnOrder purchaseReturnOrder;
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
package com.hzya.frame.plugin.lets.util;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author:liuyang
|
||||||
|
* @Package:com.hzya.frame.plugin.lets.util
|
||||||
|
* @Project:kangarooDataCenterV3
|
||||||
|
* @name:OfsStandardUti
|
||||||
|
* @Date:2024/8/22 15:01
|
||||||
|
* @Filename:OfsStandardUti
|
||||||
|
*/
|
||||||
|
public class OfsStandardUti {
|
||||||
|
}
|
|
@ -4,6 +4,8 @@ import cn.hutool.core.lang.Assert;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.hzya.frame.plugin.lets.ofsvo.QueryOfsSoSaleOutVo;
|
import com.hzya.frame.plugin.lets.ofsvo.QueryOfsSoSaleOutVo;
|
||||||
import com.hzya.frame.ttxofs.dto.InterfaceParamDto;
|
import com.hzya.frame.ttxofs.dto.InterfaceParamDto;
|
||||||
|
import com.hzya.frame.ttxofs.dto.ofspurchasereturnorder.PurchaseReturnOrder;
|
||||||
|
import com.hzya.frame.ttxofs.dto.ofspurchasereturnorder.PurchaseReturnOrderBean;
|
||||||
import com.hzya.frame.ttxofs.dto.ofssaleorderoutsearch.HeaderDetailsDto;
|
import com.hzya.frame.ttxofs.dto.ofssaleorderoutsearch.HeaderDetailsDto;
|
||||||
import com.hzya.frame.ttxofs.dto.ofssaleorderoutsearch.SaleOutReturnMessageDto;
|
import com.hzya.frame.ttxofs.dto.ofssaleorderoutsearch.SaleOutReturnMessageDto;
|
||||||
import com.hzya.frame.ttxofs.dto.stock.StockinOrderSearchResponse;
|
import com.hzya.frame.ttxofs.dto.stock.StockinOrderSearchResponse;
|
||||||
|
@ -111,4 +113,39 @@ public class OfsStandardUtil {
|
||||||
logger.error("rertunGoodsRootBean为空!interfaceParamDto对象的结果集json:{}", JSON.toJSON(interfaceParamDto));
|
logger.error("rertunGoodsRootBean为空!interfaceParamDto对象的结果集json:{}", JSON.toJSON(interfaceParamDto));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* OFS采退订单查询
|
||||||
|
*
|
||||||
|
* @author liuyang
|
||||||
|
*/
|
||||||
|
public void queryPurchaseReturnOrder(QueryOfsSoSaleOutVo queryOfsSoSaleOutVo, List<PurchaseReturnOrder> headerDetailsDtoList, Long pageNo, String api) throws Exception {
|
||||||
|
Assert.notNull(queryOfsSoSaleOutVo, "queryOfsSoSaleOutVo不能为空!");
|
||||||
|
Assert.notNull(headerDetailsDtoList, "headerDetailsDtoList不能为空!");
|
||||||
|
Assert.notNull(pageNo, "pageNo不能为空!");
|
||||||
|
Assert.notNull(api, "api不能为空!");
|
||||||
|
|
||||||
|
Long pageSize = 200L;
|
||||||
|
queryOfsSoSaleOutVo.setPageNo(pageNo);
|
||||||
|
queryOfsSoSaleOutVo.setPageSize(pageSize);
|
||||||
|
|
||||||
|
InterfaceParamDto interfaceParamDto = new InterfaceParamDto();
|
||||||
|
interfaceParamDto.setApi(api);
|
||||||
|
interfaceParamDto.setData(JSON.toJSONString(queryOfsSoSaleOutVo));
|
||||||
|
PurchaseReturnOrderBean purchaseReturnOrderBean = (PurchaseReturnOrderBean) ofsUnifiedService.unified(interfaceParamDto);
|
||||||
|
if (purchaseReturnOrderBean != null) {
|
||||||
|
if ("false".equals(purchaseReturnOrderBean.getError()) && "0".equals(purchaseReturnOrderBean.getCode()) && "Success".equals(purchaseReturnOrderBean.getMsg())) {
|
||||||
|
List<PurchaseReturnOrder> purchaseReturnOrders = purchaseReturnOrderBean.getData();
|
||||||
|
if (purchaseReturnOrders != null && purchaseReturnOrders.size() > 0) {
|
||||||
|
headerDetailsDtoList.addAll(purchaseReturnOrders);
|
||||||
|
|
||||||
|
//TODO OFS没有提供分页字段,等待开发
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
logger.error("查询失败,失败原因:{}", JSON.toJSON(interfaceParamDto));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
logger.error("purchaseReturnOrderBean为空!interfaceParamDto对象的结果集json:{}", JSON.toJSON(interfaceParamDto));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,8 +7,6 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
import org.springframework.test.context.junit4.SpringRunner;
|
import org.springframework.test.context.junit4.SpringRunner;
|
||||||
|
|
||||||
import static org.junit.Assert.*;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author:liuyang
|
* @Author:liuyang
|
||||||
* @Package:com.hzya.frame.plugin.lets.plugin.purchase
|
* @Package:com.hzya.frame.plugin.lets.plugin.purchase
|
||||||
|
@ -27,7 +25,7 @@ public class ProxyPurchaseReturnTest {
|
||||||
@Test
|
@Test
|
||||||
public void startImplement() {
|
public void startImplement() {
|
||||||
try {
|
try {
|
||||||
proxyPurchaseReturn.startImplement("LETS-SH2024082000000006");
|
proxyPurchaseReturn.startImplement("LETS-SH2024082200000006");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
package com.hzya.frame.plugin.lets.util;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson2.JSON;
|
||||||
|
import com.hzya.frame.WebappApplication;
|
||||||
|
import com.hzya.frame.plugin.lets.ofsvo.QueryOfsSoSaleOutVo;
|
||||||
|
import com.hzya.frame.ttxofs.dto.ofspurchasereturnorder.PurchaseReturnOrder;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
import org.springframework.test.context.junit4.SpringRunner;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 测试采退订单
|
||||||
|
*
|
||||||
|
* @Author:liuyang
|
||||||
|
* @Package:com.hzya.frame.plugin.lets.util
|
||||||
|
* @Project:kangarooDataCenterV3
|
||||||
|
* @name:OfsStandardUtilTest
|
||||||
|
* @Date:2024/8/22 15:01
|
||||||
|
* @Filename:OfsStandardUtilTest
|
||||||
|
*/
|
||||||
|
@RunWith(SpringRunner.class)
|
||||||
|
@SpringBootTest(classes = WebappApplication.class)
|
||||||
|
public class OfsStandardUtilTest {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private OfsStandardUtil ofsStandardUtil;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void queryPurchaseReturnOrder() {
|
||||||
|
try {
|
||||||
|
List<PurchaseReturnOrder> headerDetailsDtoList = new ArrayList<>();
|
||||||
|
QueryOfsSoSaleOutVo queryOfsSoSaleOutVo = new QueryOfsSoSaleOutVo();
|
||||||
|
queryOfsSoSaleOutVo.setCode("LETS-PR2024082000000001");
|
||||||
|
queryOfsSoSaleOutVo.setClientCode("LETS");
|
||||||
|
queryOfsSoSaleOutVo.setPageNo(1L);
|
||||||
|
queryOfsSoSaleOutVo.setPageSize(50L);
|
||||||
|
ofsStandardUtil.queryPurchaseReturnOrder(queryOfsSoSaleOutVo, headerDetailsDtoList, 1L, "ofs.purchaseReturnOrder.search");
|
||||||
|
if (headerDetailsDtoList != null && headerDetailsDtoList.size() > 0) {
|
||||||
|
System.out.println(JSON.toJSONString(headerDetailsDtoList));
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -6,6 +6,7 @@ import com.hzya.frame.ttxofs.dto.ofsBaseSearch.OfsShopReturnMessageDto;
|
||||||
import com.hzya.frame.ttxofs.dto.ofsBaseSearch.OfsSupplierReturnMessageDto;
|
import com.hzya.frame.ttxofs.dto.ofsBaseSearch.OfsSupplierReturnMessageDto;
|
||||||
import com.hzya.frame.ttxofs.dto.ofsTransferOrderSearch.OFSTranseferOrderSearchResponse;
|
import com.hzya.frame.ttxofs.dto.ofsTransferOrderSearch.OFSTranseferOrderSearchResponse;
|
||||||
import com.hzya.frame.ttxofs.dto.ofspoorder.OfsPoOrderBean;
|
import com.hzya.frame.ttxofs.dto.ofspoorder.OfsPoOrderBean;
|
||||||
|
import com.hzya.frame.ttxofs.dto.ofspurchasereturnorder.PurchaseReturnOrderBean;
|
||||||
import com.hzya.frame.ttxofs.dto.ofssaleorderoutsearch.SaleOutReturnMessageDto;
|
import com.hzya.frame.ttxofs.dto.ofssaleorderoutsearch.SaleOutReturnMessageDto;
|
||||||
import com.hzya.frame.ttxofs.dto.ofssalesordersearch.SaleOrderMessageDto;
|
import com.hzya.frame.ttxofs.dto.ofssalesordersearch.SaleOrderMessageDto;
|
||||||
import com.hzya.frame.ttxofs.dto.returngoodordersearch.RerturnGoodsOrderSearchJsonRootBean;
|
import com.hzya.frame.ttxofs.dto.returngoodordersearch.RerturnGoodsOrderSearchJsonRootBean;
|
||||||
|
@ -41,7 +42,8 @@ public class ApiDtoCacheMap {
|
||||||
apiDtoCacheMap.put("ofs.inventory.class.search", new OFSSKUClassSearchResponse());//OFS存货分类查询接口
|
apiDtoCacheMap.put("ofs.inventory.class.search", new OFSSKUClassSearchResponse());//OFS存货分类查询接口
|
||||||
|
|
||||||
apiDtoCacheMap.put("ofs.returnOrder.search", new RerturnGoodsOrderSearchJsonRootBean());//售后订单
|
apiDtoCacheMap.put("ofs.returnOrder.search", new RerturnGoodsOrderSearchJsonRootBean());//售后订单
|
||||||
|
|
||||||
apiDtoCacheMap.put("ofs.purchaseOrder.search", new OfsPoOrderBean());//采购订单
|
apiDtoCacheMap.put("ofs.purchaseOrder.search", new OfsPoOrderBean());//采购订单
|
||||||
|
apiDtoCacheMap.put("ofs.purchaseReturnOrder.search", new PurchaseReturnOrderBean());//采退订单
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
package com.hzya.frame.ttxofs.dto.ofspurchasereturnorder;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@lombok.Data
|
||||||
|
public class PurchaseReturnOrder {
|
||||||
|
private PurchaseReturnOrderHeader header;
|
||||||
|
private List<PurchaseReturnOrderDetails> details;
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
package com.hzya.frame.ttxofs.dto.ofspurchasereturnorder;
|
||||||
|
|
||||||
|
import com.hzya.frame.ttxofs.basics.ReturnMessageBasics;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@lombok.Data
|
||||||
|
public class PurchaseReturnOrderBean extends ReturnMessageBasics {
|
||||||
|
private List<PurchaseReturnOrder> data;
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
package com.hzya.frame.ttxofs.dto.ofspurchasereturnorder;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class PurchaseReturnOrderDetails {
|
||||||
|
private String clientCode;
|
||||||
|
private String id;
|
||||||
|
private String companyCode;
|
||||||
|
private String purchaseReturnOrderId;
|
||||||
|
private String purchaseReturnOrderCode;
|
||||||
|
private String sourceLineNum;
|
||||||
|
private String skuCode;
|
||||||
|
private String skuName;
|
||||||
|
private String requestQty;
|
||||||
|
private String openQty;
|
||||||
|
private String fulfillQty;
|
||||||
|
private String quantityUM;
|
||||||
|
private String buyPrice;
|
||||||
|
private String discountPrice;
|
||||||
|
private String discount;
|
||||||
|
private String totalAmount;
|
||||||
|
private String totalWeight;
|
||||||
|
private String totalVolume;
|
||||||
|
private String totalVolumeWeight;
|
||||||
|
private String fulfillAmount;
|
||||||
|
private String fulfillWeight;
|
||||||
|
private String fulfillVolume;
|
||||||
|
private String weightUM;
|
||||||
|
private String volumeUM;
|
||||||
|
private String inventorySts;
|
||||||
|
private String created;
|
||||||
|
private String createdBy;
|
||||||
|
private String lastUpdated;
|
||||||
|
private String lastUpdatedBy;
|
||||||
|
}
|
|
@ -0,0 +1,52 @@
|
||||||
|
package com.hzya.frame.ttxofs.dto.ofspurchasereturnorder;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class PurchaseReturnOrderHeader {
|
||||||
|
private String id;
|
||||||
|
private String clientCode;
|
||||||
|
private String companyCode;
|
||||||
|
private String facilityCode;
|
||||||
|
private String code;
|
||||||
|
private String status;
|
||||||
|
private String refOrderCode;
|
||||||
|
private String refOrderId;
|
||||||
|
private String internalOrderType;
|
||||||
|
private String bizChannel;
|
||||||
|
private String shipFromCode;
|
||||||
|
private String vendorCode;
|
||||||
|
private String vendorName;
|
||||||
|
private String shipToAttentionTo;
|
||||||
|
private String shipToCountry;
|
||||||
|
private String shipToState;
|
||||||
|
private String shipToCity;
|
||||||
|
private String shipToDistrict;
|
||||||
|
private String shipToAddress;
|
||||||
|
private String shipToPostalCode;
|
||||||
|
private String shipToPhone;
|
||||||
|
private String shipToMobile;
|
||||||
|
private String shipToFax;
|
||||||
|
private String shipToEmail;
|
||||||
|
private String totalAmount;
|
||||||
|
private String totalLines;
|
||||||
|
private String totalQty;
|
||||||
|
private String totalWeight;
|
||||||
|
private String totalVolume;
|
||||||
|
private String totalVolumeWeight;
|
||||||
|
private String totalFulfillQty;
|
||||||
|
private String totalFulfillAmount;
|
||||||
|
private String totalFulfillWeight;
|
||||||
|
private String totalFulfillVolume;
|
||||||
|
private String weightUM;
|
||||||
|
private String volumeUM;
|
||||||
|
private String sourcePlatformCode;
|
||||||
|
private String sourceOrderId;
|
||||||
|
private String sourceOrderCode;
|
||||||
|
private String auditBy;
|
||||||
|
private String auditAt;
|
||||||
|
private String created;
|
||||||
|
private String createdBy;
|
||||||
|
private String lastUpdated;
|
||||||
|
private String lastUpdatedBy;
|
||||||
|
}
|
Loading…
Reference in New Issue