From a984bb1ce259b35cc03549c842b09f5a3d4c96fb Mon Sep 17 00:00:00 2001 From: liuy <37787198+LiuyCodes@users.noreply.github.com> Date: Fri, 16 Aug 2024 16:27:22 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../frame/plugin/lets/constant/ProfilesActiveConstant.java | 4 ++++ .../lets/plugin/sales/SoSaleReturnPluginInitializerToB.java | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/constant/ProfilesActiveConstant.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/constant/ProfilesActiveConstant.java index 86f933a9..8ac51f6b 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/constant/ProfilesActiveConstant.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/constant/ProfilesActiveConstant.java @@ -27,4 +27,8 @@ public class ProfilesActiveConstant { public static final String U8C_URL = "http://127.0.0.1:9999/kangarooDataCenterV3/entranceController/externalCallInterface"; public static final String OFS_URL_TEST = "http://39.98.58.229/api/edi/ofs/in"; + public static final String SUPPLIER = "'1','3'"; + + public static final String CUSTOMER = "'0','2'"; + } diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToB.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToB.java index 0f54635b..b049160d 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToB.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToB.java @@ -569,6 +569,7 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity { bdCumandocEntity1.setDr(0L); bdCumandocEntity1.setPkCorp(bdCorpEntityList.get(0).getPkCorp()); bdCumandocEntity1.setPkCubasdoc(bdCubasdocEntityList.get(0).getPkCubasdoc()); + bdCumandocEntity1.setCustflags(ProfilesActiveConstant.CUSTOMER); List bdCumandocEntityList = iBdCumandocDao.query(bdCumandocEntity1); //查找平台 @@ -732,7 +733,7 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity { } else if (bdInvbasdocEntity2.size() >= 2) { Assert.state(false, "根据存货管理档案主键{}和公司档案主键{}没有查询到U8C基础档案", pkInvmandoc, pkCorp); } - return bdInvbasdocEntity; + return bdInvbasdocEntity2.get(0); } /** @@ -822,7 +823,7 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity { if (tocofsReturngoodsDetailedEntity != null && returnGoodSearchHeaderDto != null) { tocofsReturngoodsDetailedEntity.setPrimaryKey(returnGoodSearchHeaderDto.getId());//主表主键 tocofsReturngoodsDetailedEntity.setBusinessDate(returnGoodSearchHeaderDto.getCheckInFrom());//业务日期 - tocofsReturngoodsDetailedEntity.setBusinessType("TOC_RETURN");//业务类型 + tocofsReturngoodsDetailedEntity.setBusinessType("TOB_RETURN");//业务类型 } } } \ No newline at end of file From d827760a5c4538c2d9bdf5f4d161dd3207f286ab Mon Sep 17 00:00:00 2001 From: liuy <37787198+LiuyCodes@users.noreply.github.com> Date: Mon, 19 Aug 2024 14:55:15 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E6=8F=90=E4=BA=A4TOB=E9=80=80=E8=B4=A7?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SoSaleReturnPluginInitializerToB.java | 117 ++++++++++++++++-- .../SoSaleReturnPluginInitializerToC.java | 2 +- .../SoSaleReturnPluginInitializerToBTest.java | 12 ++ 3 files changed, 123 insertions(+), 8 deletions(-) diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToB.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToB.java index b049160d..1c2ce890 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToB.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToB.java @@ -24,6 +24,10 @@ import com.hzya.frame.plugin.lets.util.DateStrUtil; import com.hzya.frame.plugin.lets.util.QueryBdBusitypeUtil; import com.hzya.frame.split.SplitListByCountUtil; import com.hzya.frame.ttxofs.dto.InterfaceParamDto; +import com.hzya.frame.ttxofs.dto.ofssalesordersearch.HeaderDto; +import com.hzya.frame.ttxofs.dto.ofssalesordersearch.SaleOrderMessageDto; +import com.hzya.frame.ttxofs.dto.returngoodordersearch.RerturnGoodsOrderSearchData; +import com.hzya.frame.ttxofs.dto.returngoodordersearch.RerturnGoodsOrderSearchJsonRootBean; import com.hzya.frame.ttxofs.dto.returngoodsearch.RertunGoodsRootBean; import com.hzya.frame.ttxofs.dto.returngoodsearch.ReturnGoodHeaderDetailsDataDto; import com.hzya.frame.ttxofs.dto.returngoodsearch.ReturnGoodSearchDetailsDto; @@ -31,6 +35,7 @@ import com.hzya.frame.ttxofs.dto.returngoodsearch.ReturnGoodSearchHeaderDto; import com.hzya.frame.ttxofs.dto.stock.StockinOrderSearchResponse; import com.hzya.frame.ttxofs.service.OfsUnifiedService; import com.hzya.frame.web.entity.JsonResultEntity; +import lombok.Data; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -153,15 +158,15 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity { List returnGoodHeaderDetailsDataDtoArrayList = new ArrayList<>(); QueryOfsSoSaleOutVo queryOfsSoSaleOutVo = new QueryOfsSoSaleOutVo(); - queryOfsSoSaleOutVo.setClosedAt_start("2024-07-16 16:44:00"); - queryOfsSoSaleOutVo.setClosedAt_end("2024-07-16 16:44:02"); +// queryOfsSoSaleOutVo.setClosedAt_start("2024-07-16 16:44:00"); +// queryOfsSoSaleOutVo.setClosedAt_end("2024-07-16 16:44:02"); queryOfsSoSaleOutVo.setClientCode("LETS"); // queryOfsSoSaleOutVo.setInternalInstructionType("SALES"); - queryOfsSoSaleOutVo.setCompanyCode("SHLZ"); - // queryOfsSoSaleOutVo.setStatus(900L); +// queryOfsSoSaleOutVo.setCompanyCode("SHLZ"); +// queryOfsSoSaleOutVo.setStatus(900L); queryOfsSoSaleOutVo.setPageNo(1L); queryOfsSoSaleOutVo.setPageSize(50L); -// queryOfsSoSaleOutVo.setCode("LETS-RE2024071600000001"); + queryOfsSoSaleOutVo.setCode("LETS-RE2024070800000001"); queryOfsReturnGoods(queryOfsSoSaleOutVo, returnGoodHeaderDetailsDataDtoArrayList, 1L); logger.info("数据返回行数:{}", returnGoodHeaderDetailsDataDtoArrayList.size()); if (returnGoodHeaderDetailsDataDtoArrayList.size() > 0) { @@ -486,6 +491,16 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity { StockinOrderSearchResponse.StockinOrder.StockinH header = stockinOrder.getHeader(); List details = stockinOrder.getDetails(); + //通过售后订单,查询销售订单 + SaleOrderMessageDto saleOrderMessageDto = queryAfterSalesOrder(header); + if (saleOrderMessageDto == null) { + Assert.state(false, "没有匹配到售后订单,系统业务无法完成"); + } + HeaderDto header1 = saleOrderMessageDto.getData().get(0).getHeader(); + String memberId = header1.getMemberId(); + Assert.notNull(memberId, "TOB销售订单(OFS)表头会员id不能为空,否则无法匹配U8C客商档案!"); + Assert.state(!"".equals(memberId.trim()), "TOB销售订单(OFS)表头会员id不能为空,否则无法匹配U8C客商档案!"); + // 销售公司、发货公司 String companyCode = header.getCompanyCode(); Assert.notNull(companyCode, "O表头公司不能为空"); @@ -556,12 +571,17 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity { } //客商基本档案 - String custName = "天猫intoyou旗舰店-自营"; +// String custName = "天猫intoyou旗舰店-自营"; BdCubasdocEntity bdCubasdocEntity = new BdCubasdocEntity(); bdCubasdocEntity.setDataSourceCode("lets_u8c"); bdCubasdocEntity.setDr(0L); - bdCubasdocEntity.setCustname(custName); + bdCubasdocEntity.setDef1(memberId); List bdCubasdocEntityList = iBdCubasdocDao.query(bdCubasdocEntity); + if (bdCubasdocEntityList == null || bdCubasdocEntityList.size() == 0) { + Assert.state(false, "根据OFS会员id{},无法查询到U8C客商基本档案", memberId); + } else if (bdCubasdocEntityList.size() >= 2) { + Assert.state(false, "根据OFS会员id{},无法查询到U8C客商基本档案", memberId); + } //客商管理档案 BdCumandocEntity bdCumandocEntity1 = new BdCumandocEntity(); @@ -571,6 +591,9 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity { bdCumandocEntity1.setPkCubasdoc(bdCubasdocEntityList.get(0).getPkCubasdoc()); bdCumandocEntity1.setCustflags(ProfilesActiveConstant.CUSTOMER); List bdCumandocEntityList = iBdCumandocDao.query(bdCumandocEntity1); + if (bdCumandocEntityList == null || bdCumandocEntityList.size() == 0) { + Assert.state(false, "根据客商基本档案主键{},没有办法查询到客商管理档案", bdCubasdocEntityList.get(0).getPkCubasdoc()); + } //查找平台 String platformZdyId = "0001A210000000000JUD"; @@ -826,4 +849,84 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity { tocofsReturngoodsDetailedEntity.setBusinessType("TOB_RETURN");//业务类型 } } + + /** + * 根据售后订单号,查询售后订单 + * + * @param refOrderCode 售后订单号 + * @author liuyang + */ + public RerturnGoodsOrderSearchData getOfsRertunOrder(String refOrderCode) throws Exception { + Long pageSize = 200L; + Long pageNo = 1L; + + QueryOfsSoSaleOutVo queryOfsSoSaleOutVo = new QueryOfsSoSaleOutVo(); + queryOfsSoSaleOutVo.setPageNo(pageNo); + queryOfsSoSaleOutVo.setPageSize(pageSize); + queryOfsSoSaleOutVo.setCode(refOrderCode); + + InterfaceParamDto interfaceParamDto = new InterfaceParamDto(); + interfaceParamDto.setApi("ofs.returnOrder.search"); + interfaceParamDto.setData(JSON.toJSONString(queryOfsSoSaleOutVo)); + RerturnGoodsOrderSearchJsonRootBean rerturnGoodsOrderSearchJsonRootBean = (RerturnGoodsOrderSearchJsonRootBean) ofsUnifiedService.unified(interfaceParamDto); + if (rerturnGoodsOrderSearchJsonRootBean != null) { + if ("false".equals(rerturnGoodsOrderSearchJsonRootBean.getError()) && "0".equals(rerturnGoodsOrderSearchJsonRootBean.getCode()) && "Success".equals(rerturnGoodsOrderSearchJsonRootBean.getMsg())) { + List data = rerturnGoodsOrderSearchJsonRootBean.getData(); + if (data != null && data.size() > 0) { + return data.get(0); + } + } else { + logger.error("查询售后订单失败,接口返回结果:{}", JSON.toJSON(rerturnGoodsOrderSearchJsonRootBean)); + } + } else { + logger.error("rerturnGoodsOrderSearchJsonRootBean为空(返回结果为空),查询入参条件:{}!", JSON.toJSON(queryOfsSoSaleOutVo)); + } + Assert.state(false, "根据售后订单号:{} 没有查询到OFS售后订单", refOrderCode); + return null; + } + + /** + * 查询OFS销售订单 + * + * @param code OFS销售订单编码 + * @author liuyang + */ + public SaleOrderMessageDto getOfsOrder(String code) throws Exception { + Long pageSize = 200L; + Long pageNo = 1L; + + QueryOfsSoSaleOutVo queryOfsSoSaleOutVo = new QueryOfsSoSaleOutVo(); + queryOfsSoSaleOutVo.setPageNo(pageNo); + queryOfsSoSaleOutVo.setPageSize(pageSize); + queryOfsSoSaleOutVo.setCode(code); + + InterfaceParamDto interfaceParamDto = new InterfaceParamDto(); + interfaceParamDto.setApi("ofs.salesOrder.search"); + interfaceParamDto.setData(JSON.toJSONString(queryOfsSoSaleOutVo)); + SaleOrderMessageDto saleOrderMessageDto = (SaleOrderMessageDto) ofsUnifiedService.unified(interfaceParamDto); + return saleOrderMessageDto; + } + + /** + * 查询售后订单 + * + * @author liuyang + */ + private SaleOrderMessageDto queryAfterSalesOrder(StockinOrderSearchResponse.StockinOrder.StockinH header) throws Exception { + if (header != null) { + //根据售后入库单、查询售后订单 + RerturnGoodsOrderSearchData ofsRertunOrder = getOfsRertunOrder(header.getRefOrderCode()); + if (ofsRertunOrder == null || ofsRertunOrder.getHeader() == null || ofsRertunOrder.getDetails() == null) { + Assert.state(false, "根据OFS售后订单编码{},无法查询到售后订单信息!", header.getRefOrderCode()); + } + SaleOrderMessageDto ofsOrder = getOfsOrder(ofsRertunOrder.getHeader().getRefOrderCode()); + if (ofsOrder == null) { + Assert.state(false, "根据OFS销售订单编码{},无法查询到销售订单信息!", ofsRertunOrder.getHeader().getRefOrderCode()); + } + return ofsOrder; + } else { + logger.error("queryAfterSalesOrder方法入参为null(header为null!)"); + } + return null; + } } \ No newline at end of file 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 64bfeb77..79ac60c9 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 @@ -127,7 +127,7 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { queryOfsSoSaleOutVo.setCreated_end("2024-07-16 15:35:37"); queryOfsSoSaleOutVo.setClientCode("LETS"); // queryOfsSoSaleOutVo.setInternalInstructionType("SALES"); - queryOfsSoSaleOutVo.setCompanyCode("SHLZ"); +// queryOfsSoSaleOutVo.setCompanyCode("SHLZ"); // queryOfsSoSaleOutVo.setStatus(900L); queryOfsSoSaleOutVo.setPageNo(1L); queryOfsSoSaleOutVo.setPageSize(50L); diff --git a/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToBTest.java b/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToBTest.java index 7c6109e3..6b1ce1f6 100644 --- a/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToBTest.java +++ b/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToBTest.java @@ -1,6 +1,7 @@ package com.hzya.frame.plugin.lets.plugin.sales; import com.hzya.frame.WebappApplication; +import com.hzya.frame.plugin.lets.ofsvo.QueryOfsSoSaleOutVo; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -32,4 +33,15 @@ public class SoSaleReturnPluginInitializerToBTest { e.printStackTrace(); } } + +// @Test +// public void startImplement2() { +// try { +// QueryOfsSoSaleOutVo queryOfsSoSaleOutVo = new QueryOfsSoSaleOutVo(); +// queryOfsSoSaleOutVo.setClientCode("LETS"); +// soSaleReturnPluginInitializerToB.getOfsRertunOrder(queryOfsSoSaleOutVo); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } } \ No newline at end of file From 49198c1bef2592c881dd1d2e553149e2ee0fabfa Mon Sep 17 00:00:00 2001 From: zhengyf Date: Mon, 19 Aug 2024 18:43:58 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E4=B8=BD=E7=9F=A5=EF=BC=9A=E6=96=B0?= =?UTF-8?q?=E5=A2=9Eofs=E8=B0=83=E6=8B=A8=E5=87=BA=E5=BA=93=E5=8D=95?= =?UTF-8?q?=E6=8E=A8=E9=80=81u8c=E8=B0=83=E6=8B=A8=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=EF=BC=88=E6=B5=81=E7=A8=8B=E8=87=AA=E5=8A=A8=E5=87=BA=E5=BA=93?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/lets/constant/OverallConstant.java | 1 + .../TransferOutPluginInitializer.java | 310 ++++++- .../transfer/TransferPluginInitializer.java | 800 +++++++++--------- .../plugin/lets/util/pushData/Attribute.java | 2 + .../plugin/lets/spring/spring-lets-plugin.xml | 4 +- .../plugin/lets/plugin/base/BaseTest.java | 3 +- .../lets/plugin/transfer/TransferTest.java | 26 +- .../OFSTranseferOrderSearchResponse.java | 2 + 8 files changed, 719 insertions(+), 429 deletions(-) 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 93e5d458..6bfc5495 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 @@ -38,6 +38,7 @@ public class OverallConstant { prodOverPublic.put("bdinvclUnseal", "/u8cloud/api/uapbd/invbasdoc/unseal");//存货基本档案取消封存 prodOverPublic.put("bdinvclAllot", "/u8cloud/api/uapbd/invbasdoc/assign");//存货基本档案自动分配 //调拨 + prodOverPublic.put("approveqzCode", "8000370009");//调拨订单保存即审批 prodOverPublic.put("approveqz", "/u8cloud/api/to/transorder/saveapprove");//调拨订单保存即审批 //其他出入库 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 6cfff34c..5d30cd72 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 @@ -2,30 +2,50 @@ package com.hzya.frame.plugin.lets.plugin.transfer; import cn.hutool.core.date.DateField; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.lang.Assert; +import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.hzya.frame.base.PluginBaseEntity; +import com.hzya.frame.plugin.lets.constant.OverallConstant; +import com.hzya.frame.plugin.lets.constant.ProfilesActiveConstant; import com.hzya.frame.plugin.lets.ofsvo.QueryOfsStockinOrderRequestVO; import com.hzya.frame.plugin.lets.ofsvo.QueryOfsStockoutOrderRequestVO; +import com.hzya.frame.plugin.lets.ofsvo.QueryOfsTransferOrderRequestVO; +import com.hzya.frame.plugin.lets.u8cdto.BillVO; +import com.hzya.frame.plugin.lets.u8cdto.GeneralBillVO_4IDto; +import com.hzya.frame.plugin.lets.u8cdto.ReusltStrDto; import com.hzya.frame.plugin.lets.util.PushDataByU8cUtil; import com.hzya.frame.plugin.lets.util.SaveOrUpdateBusinessLogUtil; +import com.hzya.frame.plugin.lets.util.pushData.Attribute; +import com.hzya.frame.plugin.lets.util.pushData.PushU8CByApiCode; +import com.hzya.frame.plugin.lets.util.pushData.ZTResult; import com.hzya.frame.sysnew.integtationTaskLivingDetails.dao.IIntegrationTaskLivingDetailsDao; +import com.hzya.frame.sysnew.integtationTaskLivingDetails.entity.IntegrationTaskLivingDetailsEntity; import com.hzya.frame.ttxofs.dto.InterfaceParamDto; +import com.hzya.frame.ttxofs.dto.ofsTransferOrderSearch.OFSTranseferOrderSearchResponse; +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.ofssaleorderoutsearch.SaleOutReturnMessageDto; import com.hzya.frame.ttxofs.dto.stock.StockinOrderSearchResponse; import com.hzya.frame.ttxofs.dto.stock.StockoutOrderSearchResponse; import com.hzya.frame.ttxofs.service.OfsUnifiedService; import com.hzya.frame.web.entity.JsonResultEntity; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.concurrent.locks.ReentrantLock; /** - * 丽知:OFS调拨出库订单--->U8C调拨出库单(保存签字) + * 丽知:OFS调拨出库订单--->U8C调拨订单,自动生成调拨出库单(保存签字) */ public class TransferOutPluginInitializer extends PluginBaseEntity { Logger logger = LoggerFactory.getLogger(TransferOutPluginInitializer.class); @@ -49,12 +69,12 @@ public class TransferOutPluginInitializer extends PluginBaseEntity { @Override public String getPluginName() { - return "丽知:OFS调拨出库订单--->U8C调拨出库单(保存签字)"; + return "丽知:OFS调拨出库订单--->U8C调拨订单,自动生成调拨出库单(保存签字)"; } @Override public String getPluginLabel() { - return "丽知:OFS调拨出库订单--->U8C调拨出库单(保存签字)"; + return "丽知:OFS调拨出库订单--->U8C调拨订单,自动生成调拨出库单(保存签字)"; } @Override @@ -67,6 +87,8 @@ public class TransferOutPluginInitializer extends PluginBaseEntity { @Autowired private PushDataByU8cUtil pushDataByU8cUtil; @Autowired + private PushU8CByApiCode pushU8CByApiCode; + @Autowired private SaveOrUpdateBusinessLogUtil saveOrUpdateBusinessLogUtil; @Autowired @@ -106,28 +128,33 @@ public class TransferOutPluginInitializer extends PluginBaseEntity { } catch (Exception e) { - logger.error("丽知:OFS调拨出库订单--->U8C调拨出库单(保存签字),start()方法报错:", e); + logger.error("丽知:OFS调拨出库订单--->U8C调拨订单,自动生成调拨出库单(保存签字),start()方法报错:", e); } } /** * 按单号 */ - public void start(String stockinNo) { + public void start(String stockoutNo) { try { QueryOfsStockoutOrderRequestVO queryOfsStockoutOrderRequestVO = new QueryOfsStockoutOrderRequestVO(); - queryOfsStockoutOrderRequestVO.setCode(stockinNo); + queryOfsStockoutOrderRequestVO.setCode(stockoutNo); // queryOfsStockoutOrderRequestVO.setCompanyCode("SHXM"); // queryOfsStockoutOrderRequestVO.setStatus("900");//状态 500待同步 510已同步 700收货中 900入库完成 911作废 100订单池 200暂挂 400待合单 410待出库单出库 queryOfsStockoutOrderRequestVO.setPageNo(1L); queryOfsStockoutOrderRequestVO.setPageSize(500L); - List data = queryOfsStockoutOrder(queryOfsStockoutOrderRequestVO); - System.out.println(data); + List transferOutOrder = queryOfsStockoutOrder(queryOfsStockoutOrderRequestVO); + System.out.println(transferOutOrder); + + //过滤成功日志 + List filterTransferOutOrders = filterData(transferOutOrder); + + //推送U8C + implement(filterTransferOutOrders); } catch (Exception e) { - logger.error("丽知:OFS调拨出库订单--->U8C调拨出库单(保存签字),start(String goodsName)方法报错:", e); + logger.error("丽知:OFS调拨出库订单--->U8C调拨订单,自动生成调拨出库单(保存签字),start(String goodsName)方法报错:", e); } - } /** @@ -151,22 +178,279 @@ public class TransferOutPluginInitializer extends PluginBaseEntity { System.out.println(data); } catch (Exception e) { - logger.error("丽知:OFS调拨出库订单--->U8C调拨出库单(保存签字),start(String startTime, String endTime)方法报错:", e); + logger.error("丽知:OFS调拨出库订单--->U8C调拨订单,自动生成调拨出库单(保存签字),start(String startTime, String endTime)方法报错:", e); } } + /** + * 过滤成功日志 + */ + public List filterData(List transferOutOrder) { + List filterTransferOutOrders = new ArrayList<>(); + for (StockoutOrderSearchResponse.StockoutOrder stockoutOrder : transferOutOrder) { + StockoutOrderSearchResponse.StockoutOrder.StockoutH header = stockoutOrder.getHeader(); + String rootAppPk = header.getCode(); + boolean isExis = true; + IntegrationTaskLivingDetailsEntity integrationTaskLivingDetailsEntity = new IntegrationTaskLivingDetailsEntity(); + integrationTaskLivingDetailsEntity.setRootAppPk(rootAppPk); + integrationTaskLivingDetailsEntity.setNewState(ProfilesActiveConstant.LOG_STATUS_Y); + integrationTaskLivingDetailsEntity.setPluginId(getPluginId()); + List integrationTaskLivingDetailsEntities = iIntegrationTaskLivingDetailsDao.query(integrationTaskLivingDetailsEntity); + if (integrationTaskLivingDetailsEntities == null || integrationTaskLivingDetailsEntities.size() == 0) { + isExis = false; + } + if (!isExis) { + filterTransferOutOrders.add(stockoutOrder); + } + } + return filterTransferOutOrders; + } + + /** + * ofs调拨出库单推送U8C调拨订单,自动生成调拨出库单(保存签字) + * + * @param filterTransferOutOrders + */ + public void implement(List filterTransferOutOrders) { + for (StockoutOrderSearchResponse.StockoutOrder transferOutOrder : filterTransferOutOrders) { + System.out.println(transferOutOrder); + BillVO billVO = new BillVO(); + + String mapStr = ""; + String format = ""; + String response = ""; + String ofsCode = ""; + try { + //主表 + StockoutOrderSearchResponse.StockoutOrder.StockoutH stockoutH = transferOutOrder.getHeader(); + BillVO.Parentvo parentvo = new BillVO.Parentvo(); + ofsCode = stockoutH.getCode(); + + + ////////////////////////////////////////////////////////////////////////////////ofs调拨订单 + List ofsTranseferOrders = queryOfsTransderOrder(stockoutH.getSourceOrderCode()); + if(ofsTranseferOrders==null||ofsTranseferOrders.size()==0||ofsTranseferOrders.size()>1){ + Assert.state(false,"根据调拨出库单:{},的来源单据号:{},查询OFS调拨订单为空或不唯一。请检查。",ofsCode,stockoutH.getSourceOrderCode()); + } + OFSTranseferOrderSearchResponse.OFSTranseferOrder ofsTranseferOrder = ofsTranseferOrders.get(0); + System.out.println(ofsTranseferOrder); + ////////////////////////////////////////////////////////////////////////////////ofs调拨订单 + + + //创建日期 + String created = stockoutH.getCreated(); + format = created; + //dbilldate 单据日期 + parentvo.setDbilldate(format); + //dauditdate 审批日期 + parentvo.setDauditdate(format); + //coperatorid 制单人 + parentvo.setCoperatorid("tbadmin"); + //cbiztypeid 业务流程编码 + parentvo.setCbiztypeid("to01"); + //coutcbid 调出组织编码 对应OFS->原库存地点公司 + parentvo.setCoutcbid(ofsTranseferOrder.getHeader().getCompanyCode()); + + //coutcorpid 调出公司编码 对应OFS->原库存地点公司 + parentvo.setCoutcorpid(ofsTranseferOrder.getHeader().getCompanyCode()); + + //coutwhid 调出仓库编码 对应OFS->原库存地点 + parentvo.setCoutwhid(ofsTranseferOrder.getHeader().getFacilityCode()); + + //cincbid 调入组织编码 对应OFS->目标库存地点公司 + parentvo.setCincbid(ofsTranseferOrder.getHeader().getToCompanyCode()); + + //cincorpid 调入公司编码 对应OFS->目标库存地点公司 + parentvo.setCincorpid(ofsTranseferOrder.getHeader().getToCompanyCode()); + + //cinwhid 调入仓库编码 对应OFS->目标库存地点 + parentvo.setCinwhid(ofsTranseferOrder.getHeader().getToFacilityCode()); + + //vnote 备注 + parentvo.setVnote(ofsTranseferOrder.getHeader().getNotes()); + + //pk_defdoc19 + parentvo.setPk_defdoc19(StringUtils.substring(ofsTranseferOrder.getHeader().getCode(),5)); + + //子表 + List ofsDetails = ofsTranseferOrder.getDetails(); + List childrenvo = new ArrayList<>(); + for (OFSTranseferOrderSearchResponse.OFSTranseferOrder.OFSTranseferB ofsDetail : ofsDetails) { + System.out.println(ofsDetail); + BillVO.Childrenvo children = new BillVO.Childrenvo(); + //表体 + //cinvbasid 存货基本档案 + children.setCinvbasid(ofsDetail.getSkuCode()); + //nnum 数量 + children.setNnum(BigDecimal.valueOf(ofsDetail.getShipQty())); + childrenvo.add(children); + } + billVO.setParentvo(parentvo); + billVO.setChildrenvo(childrenvo); + String jsonStr = JSONUtil.toJsonStr(billVO); + mapStr = "{\"billvo\":"+jsonStr+"}"; + ZTResult ztResult = pushU8CByApiCode.pushByCode(OverallConstant.getOverAllValue("approveqzCode"), mapStr); + System.out.println(ztResult); + //两层判断,一层中台转发,一层u8c返回 + if ("false".equals(ztResult.getFlag())) { + //转发失败 + Assert.state(false, "丽知:OFS调拨出库订单--->U8C调拨订单,自动生成调拨出库单(保存签字).中台转发失败,失败原因:{}", ztResult.getMsg()); + } + Attribute attribute = ztResult.getAttribute(); + System.out.println(attribute); + boolean isSuccess = false; + String vbillcode = ""; + if ("success".equals(attribute.getStatus())) { + isSuccess = true; + String data = attribute.getData(); + BillVO resBillVO = resultDataHandle(data); + System.out.println(resBillVO); + vbillcode = resBillVO.getParentvo().getVcode(); + } + if (!isSuccess) { + Assert.state(false, "推送U8C--> 丽知:OFS调整出库--->U8C其它出库 失败 接口返回结果:{} 接口入参:{}", response, mapStr); + } + + //成功 + IntegrationTaskLivingDetailsEntity integrationTaskLivingDetailsEntity = new IntegrationTaskLivingDetailsEntity(); + integrationTaskLivingDetailsEntity.setNewState(ProfilesActiveConstant.LOG_STATUS_Y); + integrationTaskLivingDetailsEntity.setRootAppNewData(mapStr); + integrationTaskLivingDetailsEntity.setNewTransmitInfo(response); + integrationTaskLivingDetailsEntity.setNewPushDate(new Date()); + integrationTaskLivingDetailsEntity.setBusinessDate(format); + integrationTaskLivingDetailsEntity.setRootAppPk(ofsCode); + integrationTaskLivingDetailsEntity.setRootAppBill(ofsCode); + integrationTaskLivingDetailsEntity.setDef1(vbillcode);//u8c调拨订单号 + integrationTaskLivingDetailsEntity.setPluginId(getPluginId()); + saveOrUpdateBusinessLogUtil.saveOrUpdate(integrationTaskLivingDetailsEntity); + + + } catch (Exception e) { + e.printStackTrace(); + logger.error("推送U8C,丽知:OFS调拨出库订单--->U8C调拨订单,自动生成调拨出库单(保存签字)失败,失败原因:" + e); + + //失败 + ReusltStrDto reusltStrDto = JSON.parseObject(response, ReusltStrDto.class); + String ErrMessage = "推送U8C,丽知:OFS调整出库--->U8C其它出库失败,失败原因:" + reusltStrDto.getErrormsg(); + + IntegrationTaskLivingDetailsEntity integrationTaskLivingDetailsEntity = new IntegrationTaskLivingDetailsEntity(); + integrationTaskLivingDetailsEntity.setNewState(ProfilesActiveConstant.LOG_STATUS_N); + integrationTaskLivingDetailsEntity.setRootAppNewData(mapStr); + integrationTaskLivingDetailsEntity.setNewTransmitInfo(ErrMessage); + integrationTaskLivingDetailsEntity.setNewPushDate(new Date()); + integrationTaskLivingDetailsEntity.setBusinessDate(format); + integrationTaskLivingDetailsEntity.setRootAppPk(ofsCode); + integrationTaskLivingDetailsEntity.setRootAppBill(ofsCode);//u8c其他出库单号 + integrationTaskLivingDetailsEntity.setPluginId(getPluginId()); + saveOrUpdateBusinessLogUtil.saveOrUpdate(integrationTaskLivingDetailsEntity); + + } + } + + } + + + /** + * ofs调拨出库单查询 + * + * @param queryOfsStockoutOrderRequestVO + * @return + * @throws Exception + */ public List queryOfsStockoutOrder(QueryOfsStockoutOrderRequestVO queryOfsStockoutOrderRequestVO) throws Exception { InterfaceParamDto interfaceParamDto = new InterfaceParamDto(); interfaceParamDto.setApi("ofs.shipment.search"); queryOfsStockoutOrderRequestVO.setInternalInstructionType("TRANSFER");//入库单类型 SALES销售 EXCHANGE换货 REISSUE补发RETURN销退 PURCHASE采购 PURCHASE_RETURN采退 TRANSFER调拨 WORK_ORDER加工 OTHER其他 ADJUST调整 EXCHANGE换货 queryOfsStockoutOrderRequestVO.setClientCode("LETS"); interfaceParamDto.setData(JSON.toJSONString(queryOfsStockoutOrderRequestVO)); - StockoutOrderSearchResponse stockoutOrderSearchResponse = (StockoutOrderSearchResponse) ofsUnifiedService.unified(interfaceParamDto); + SaleOutReturnMessageDto saleOutReturnMessageDto = (SaleOutReturnMessageDto) ofsUnifiedService.unified(interfaceParamDto); + System.out.println(saleOutReturnMessageDto); + StockoutOrderSearchResponse stockoutOrderSearchResponse = SaleOutReturnMessageDto2StockoutOrderSearchResponse(saleOutReturnMessageDto); System.out.println(stockoutOrderSearchResponse); - if(stockoutOrderSearchResponse.getData()==null||stockoutOrderSearchResponse.getData().size()==0){ + if (stockoutOrderSearchResponse.getData() == null || stockoutOrderSearchResponse.getData().size() == 0) { return null; } return stockoutOrderSearchResponse.getData(); } + + /** + * 根据调拨订单号查询ofs调拨订单 + * + * @param transferNo + * @throws Exception + */ + public List queryOfsTransderOrder(String transferNo) throws Exception { + QueryOfsTransferOrderRequestVO queryOfsTransferOrderRequestVO = new QueryOfsTransferOrderRequestVO(); +// queryOfsTransferOrderRequestVO.setStatus("100");//状态 100订单池 200待出库 300已出库 400待入库 900已入库 250出库中 450入库中 + queryOfsTransferOrderRequestVO.setCode(transferNo); + queryOfsTransferOrderRequestVO.setPageNo(1L); + queryOfsTransferOrderRequestVO.setPageSize(500L); + + InterfaceParamDto interfaceParamDto = new InterfaceParamDto(); + interfaceParamDto.setApi("ofs.transferOrder.search"); + queryOfsTransferOrderRequestVO.setClientCode("LETS"); + interfaceParamDto.setData(JSON.toJSONString(queryOfsTransferOrderRequestVO)); + OFSTranseferOrderSearchResponse ofsTranseferOrderSearchResponse = (OFSTranseferOrderSearchResponse) ofsUnifiedService.unified(interfaceParamDto); + System.out.println(ofsTranseferOrderSearchResponse); + if (ofsTranseferOrderSearchResponse.getData().size() == 0) { + return null; + } else { + List data = ofsTranseferOrderSearchResponse.getData(); + return data; + } + } + + /** + * 只是命名不一样,为了方便区分,顾转换为stockout + * + * @param saleOutReturnMessageDto + * @return + */ + public StockoutOrderSearchResponse SaleOutReturnMessageDto2StockoutOrderSearchResponse(SaleOutReturnMessageDto saleOutReturnMessageDto) { + StockoutOrderSearchResponse stockoutOrderSearchResponse = new StockoutOrderSearchResponse(); + List data = new ArrayList<>(); + BeanUtils.copyProperties(saleOutReturnMessageDto, stockoutOrderSearchResponse); + for (HeaderDetailsDto saleOutData : saleOutReturnMessageDto.getData()) { + HeaderDto saleOutHeader = saleOutData.getHeader(); + StockoutOrderSearchResponse.StockoutOrder stockoutOrder = new StockoutOrderSearchResponse.StockoutOrder(); + StockoutOrderSearchResponse.StockoutOrder.StockoutH stockoutH = new StockoutOrderSearchResponse.StockoutOrder.StockoutH(); + List stockoutBList = new ArrayList<>(); + for (DetailsDto saleOutDetail : saleOutData.getDetails()) { + StockoutOrderSearchResponse.StockoutOrder.StockoutB stockoutB = new StockoutOrderSearchResponse.StockoutOrder.StockoutB(); + BeanUtils.copyProperties(saleOutDetail, stockoutB); + stockoutBList.add(stockoutB); + } + //创建时间,修改时间,创建人,修改人,赋给表头 + StockoutOrderSearchResponse.StockoutOrder.StockoutB stockoutB = stockoutBList.get(0); + stockoutH.setCreated(stockoutB.getCreated()); + stockoutH.setCreatedBy(stockoutB.getCreatedBy()); + stockoutH.setLastUpdated(stockoutB.getLastUpdated()); + stockoutH.setLastUpdatedBy(stockoutB.getLastUpdatedBy()); + + BeanUtils.copyProperties(saleOutHeader, stockoutH); + stockoutOrder.setHeader(stockoutH); + stockoutOrder.setDetails(stockoutBList); + data.add(stockoutOrder); + } + stockoutOrderSearchResponse.setData(data); + System.out.println(stockoutOrderSearchResponse); + return stockoutOrderSearchResponse; + } + + private BillVO resultDataHandle(String resultData) { + try { + if (resultData != null && !"".equals(resultData)) { + if (resultData.contains("[")) { + resultData = resultData.substring(1, resultData.length() - 1); + } + return JSON.parseObject(resultData, BillVO.class); + } + } catch (Exception e) { + e.printStackTrace(); + logger.error("解析返回参数失败的错误", e); + //如果解析失败,记录原因,但是不能影响结果的记录 + } + return null; + } } diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/transfer/TransferPluginInitializer.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/transfer/TransferPluginInitializer.java index 7cbafda1..ec51f839 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/transfer/TransferPluginInitializer.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/transfer/TransferPluginInitializer.java @@ -1,400 +1,400 @@ -package com.hzya.frame.plugin.lets.plugin.transfer; - -import cn.hutool.core.date.DateField; -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.lang.Assert; -import cn.hutool.json.JSONArray; -import cn.hutool.json.JSONUtil; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -import com.hzya.frame.base.PluginBaseEntity; -import com.hzya.frame.plugin.lets.constant.OverallConstant; -import com.hzya.frame.plugin.lets.constant.ProfilesActiveConstant; -import com.hzya.frame.plugin.lets.ofsvo.QueryOfsTransferOrderRequestVO; -import com.hzya.frame.plugin.lets.u8cdto.BillVO; -import com.hzya.frame.plugin.lets.u8cdto.ReusltStrDto; -import com.hzya.frame.plugin.lets.u8cdto.SoSaleResultRootDto; -import com.hzya.frame.plugin.lets.util.PushDataByU8cUtil; -import com.hzya.frame.plugin.lets.util.SaveOrUpdateBusinessLogUtil; -import com.hzya.frame.sysnew.integtationTaskLivingDetails.dao.IIntegrationTaskLivingDetailsDao; -import com.hzya.frame.sysnew.integtationTaskLivingDetails.entity.IntegrationTaskLivingDetailsEntity; -import com.hzya.frame.ttxofs.basics.ReturnMessageBasics; -import com.hzya.frame.ttxofs.dto.InterfaceParamDto; -import com.hzya.frame.ttxofs.dto.ofsTransferOrderSearch.OFSTranseferOrderSearchResponse; -import com.hzya.frame.ttxofs.service.OfsUnifiedService; -import com.hzya.frame.ttxofs.util.UrlTransUtil; -import com.hzya.frame.web.entity.JsonResultEntity; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClients; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; - -import java.math.BigDecimal; -import java.util.*; -import java.util.concurrent.locks.ReentrantLock; - -/** - * OFS->U8C调拨订单 新增,修改,删除 - * add by zyd 20240802 - */ -public class TransferPluginInitializer extends PluginBaseEntity { - - Logger logger = LoggerFactory.getLogger(TransferPluginInitializer.class); - - private static final ReentrantLock LOCK = new ReentrantLock(true); - - @Override - public void initialize() { - logger.info(getPluginLabel() + "執行初始化方法initialize()"); - } - - @Override - public void destroy() { - logger.info(getPluginLabel() + "執行銷毀方法destroy()"); - } - - @Override - public String getPluginId() { - return "com.hzya.frame.plugin.lets.plugin.transfer.TransferPluginInitializer"; - } - - @Override - public String getPluginName() { - return "丽知:OFS调拨订单--->U8C调拨订单(保存及签字)"; - } - - @Override - public String getPluginLabel() { - return "丽知:OFS调拨订单--->U8C调拨订单(保存及签字)"; - } - - @Override - public String getPluginType() { - return "1"; - } - - @Autowired - private IIntegrationTaskLivingDetailsDao iIntegrationTaskLivingDetailsDao; - @Autowired - private PushDataByU8cUtil pushDataByU8cUtil; - @Autowired - private SaveOrUpdateBusinessLogUtil saveOrUpdateBusinessLogUtil; - - @Autowired - private OfsUnifiedService ofsUnifiedService; - - @Override - public JsonResultEntity executeBusiness(JSONObject requestJson) throws Exception { - return null; - } - - - /** - * 默认推送 - */ - public void start() { - try { - //获取当前时间 - Date currentDate = new Date(); - Date startTime = DateUtil.offset(currentDate, DateField.MINUTE, -10); - Date endTime = DateUtil.offset(currentDate, DateField.MINUTE, -2); - String startTimeStr = DateUtil.format(startTime, "yyyy-MM-dd HH:mm:ss"); - String endTimeStr = DateUtil.format(endTime, "yyyy-MM-dd HH:mm:ss"); - - QueryOfsTransferOrderRequestVO queryOfsTransferOrderRequestVO = new QueryOfsTransferOrderRequestVO(); - queryOfsTransferOrderRequestVO.setCreated_start(startTimeStr); - queryOfsTransferOrderRequestVO.setCreated_end(endTimeStr); - queryOfsTransferOrderRequestVO.setCompanyCode("SHXM");//U8c&ofs对接群:好的,我跟技术聊了,就按照这个方 式来,赋值就按照赋值的货主来查,不赋值就查所有的货主数据 -// queryOfsTransferOrderRequestVO.setStatus("900");//状态 100订单池 200待出库 300已出库 400待入库 900已入库 250出库中 450入库中 - queryOfsTransferOrderRequestVO.setPageNo(1L); - queryOfsTransferOrderRequestVO.setPageSize(50L); - List ofsTranseferOrders = queryOfsTransderOrder(queryOfsTransferOrderRequestVO); - if (ofsTranseferOrders == null || ofsTranseferOrders.size() == 0) { - return; - } - System.out.println(ofsTranseferOrders); - //过滤日志 - List filterOfsTranseferOrders = filterData(ofsTranseferOrders); - if (filterOfsTranseferOrders.size() == 0) { - return; - } - - //推送 - implement(filterOfsTranseferOrders); - - - } catch (Exception e) { - logger.error("丽知:OFS调拨订单--->U8C调拨订单(保存及签字),start()方法报错:", e); - } - } - - /** - * 按调拨订单号 - */ - public void start(String transeferNo) { - try { - QueryOfsTransferOrderRequestVO queryOfsTransferOrderRequestVO = new QueryOfsTransferOrderRequestVO(); - queryOfsTransferOrderRequestVO.setCompanyCode("SHXM");//U8c&ofs对接群:好的,我跟技术聊了,就按照这个方式来,赋值就按照赋值的货主来查,不赋值就查所有的货主数据 -// queryOfsTransferOrderRequestVO.setStatus("100");//状态 100订单池 200待出库 300已出库 400待入库 900已入库 250出库中 450入库中 - queryOfsTransferOrderRequestVO.setCode(transeferNo); - - queryOfsTransferOrderRequestVO.setCreated_start("2024-08-08 00:00:00"); - queryOfsTransferOrderRequestVO.setCreated_end("2024-08-12 23:59:59"); - - queryOfsTransferOrderRequestVO.setPageNo(1L); - queryOfsTransferOrderRequestVO.setPageSize(500L); - List ofsTranseferOrders = queryOfsTransderOrder(queryOfsTransferOrderRequestVO); - if (ofsTranseferOrders == null || ofsTranseferOrders.size() == 0) { - Assert.state(false, "中台:查询OFS调拨订单:{},不存在,请检查OFS调拨订单号。", transeferNo); - } - - //过滤日志 - List filterOfsTranseferOrders = filterData(ofsTranseferOrders); - if (filterOfsTranseferOrders.size() == 0) { - Assert.state(false, "中台:查询OFS调拨订单:{},过滤成功日志时已被过滤,请勿重新推送。", transeferNo); - } - - //推送 - implement(filterOfsTranseferOrders); - - } catch (Exception e) { - logger.error("丽知:OFS调拨订单--->U8C调拨订单(保存及签字),start(String transeferNo)方法报错:", e); - } - - } - - /** - * 按时间区间 - */ - public void start(String startTime, String endTime) { - try { - Date business_start = DateUtil.parse(startTime); - Date business_end = DateUtil.parse(endTime); - String start = DateUtil.format(business_start, "yyyy-MM-dd") + " 00:00:00`"; - String end = DateUtil.format(business_end, "yyyy-MM-dd") + " 23:59:59"; - QueryOfsTransferOrderRequestVO queryOfsTransferOrderRequestVO = new QueryOfsTransferOrderRequestVO(); - queryOfsTransferOrderRequestVO.setCreated_start(start); - queryOfsTransferOrderRequestVO.setCreated_end(end); - queryOfsTransferOrderRequestVO.setCompanyCode("SHXM");//U8c&ofs对接群:好的,我跟技术聊了,就按照这个方 式来,赋值就按照赋值的货主来查,不赋值就查所有的货主数据 -// queryOfsTransferOrderRequestVO.setStatus("900");//状态 100订单池 200待出库 300已出库 400待入库 900已入库 250出库中 450入库中 - queryOfsTransferOrderRequestVO.setPageNo(1L); - queryOfsTransferOrderRequestVO.setPageSize(50L); - List ofsTranseferOrders = queryOfsTransderOrder(queryOfsTransferOrderRequestVO); - if (ofsTranseferOrders == null || ofsTranseferOrders.size() == 0) { - Assert.state(false, "中台:查询OFS调拨订单,按日期:{} - {},未查询OFS调拨订单。", startTime,endTime); - } - //过滤日志 - List filterOfsTranseferOrders = filterData(ofsTranseferOrders); - if (filterOfsTranseferOrders.size() == 0) { - Assert.state(false, "中台:查询OFS调拨订单,按日期:{} - {},已被推送,请查询OFS调拨订单。", startTime,endTime); - } - - //推送 - implement(filterOfsTranseferOrders); - - - } catch (Exception e) { - logger.error("丽知:OFS调拨订单--->U8C调拨订单(保存及签字),start(String startTime, String endTime)方法报错:", e); - } - } - - - /** - * 过滤成功日志 - * - * @param ofsTranseferOrders - * @return - */ - public List filterData(List ofsTranseferOrders) { - List filterOfsTranseferOrders = new ArrayList<>(); - for (OFSTranseferOrderSearchResponse.OFSTranseferOrder ofsTranseferOrder : ofsTranseferOrders) { - OFSTranseferOrderSearchResponse.OFSTranseferOrder.OFSTranseferH header = ofsTranseferOrder.getHeader(); - //OFS调拨订单号 - String rootAppPk = header.getCode(); - boolean isExis = true; - IntegrationTaskLivingDetailsEntity integrationTaskLivingDetailsEntity = new IntegrationTaskLivingDetailsEntity(); - integrationTaskLivingDetailsEntity.setRootAppPk(rootAppPk); - integrationTaskLivingDetailsEntity.setNewState(ProfilesActiveConstant.LOG_STATUS_Y); - integrationTaskLivingDetailsEntity.setPluginId(getPluginId()); - List integrationTaskLivingDetailsEntities = iIntegrationTaskLivingDetailsDao.query(integrationTaskLivingDetailsEntity); - if (integrationTaskLivingDetailsEntities == null || integrationTaskLivingDetailsEntities.size() == 0) { - isExis = false; - } - if (!isExis) { - filterOfsTranseferOrders.add(ofsTranseferOrder); - } - } - return filterOfsTranseferOrders; - } - - /** - * 推送u8c调拨订单 - * - * @param filterOfsTranseferOrders - */ - public void implement(List filterOfsTranseferOrders) { - for (OFSTranseferOrderSearchResponse.OFSTranseferOrder ofsTranseferOrder : filterOfsTranseferOrders) { - BillVO billVO = new BillVO(); - - String mapStr = ""; - String format=""; - String response=""; - String ofsCode=""; - try { - - //主表 - OFSTranseferOrderSearchResponse.OFSTranseferOrder.OFSTranseferH ofsHeader = ofsTranseferOrder.getHeader(); - BillVO.Parentvo parentvo = new BillVO.Parentvo(); - - ofsCode=ofsHeader.getCode(); - - //创建日期 - Date created = ofsHeader.getCreated(); - format = DateUtil.format(created, "yyyy-MM-dd HH:mm:ss"); - - //dbilldate 单据日期 - parentvo.setDbilldate(format); - //dauditdate 审批日期 - parentvo.setDauditdate(format); - //coperatorid 制单人 - parentvo.setCoperatorid("tbadmin"); - - //cbiztypeid 业务流程编码 - parentvo.setCbiztypeid("to01"); - - //coutcbid 调出组织编码 对应OFS->原库存地点公司 - parentvo.setCoutcbid(ofsHeader.getCompanyCode()); - parentvo.setCoutcbid("SHLZ"); - - //coutcorpid 调出公司编码 对应OFS->原库存地点公司 - parentvo.setCoutcorpid(ofsHeader.getCompanyCode()); - parentvo.setCoutcorpid("SHLZ"); - - //coutwhid 调出仓库编码 对应OFS->原库存地点 - parentvo.setCoutwhid(ofsHeader.getFacilityCode()); - parentvo.setCoutwhid("01"); - - //cincbid 调入组织编码 对应OFS->目标库存地点公司 - parentvo.setCincbid("SHXM"); - - //cincorpid 调入公司编码 对应OFS->目标库存地点公司 - parentvo.setCincorpid("SHXM"); - - //cinwhid 调入仓库编码 对应OFS->目标库存地点 - parentvo.setCinwhid("01"); - - //vnote 备注 - parentvo.setVnote(ofsHeader.getNotes()); - - - - //子表 - List ofsDetails = ofsTranseferOrder.getDetails(); - List childrenvo = new ArrayList<>(); - for (OFSTranseferOrderSearchResponse.OFSTranseferOrder.OFSTranseferB ofsDetail : ofsDetails) { - System.out.println(ofsDetail); - BillVO.Childrenvo children = new BillVO.Childrenvo(); - //表体 - //cinvbasid 存货基本档案 - children.setCinvbasid(ofsDetail.getSkuCode()); - children.setCinvbasid("6973391730617"); - //nnum 数量 - children.setNnum(BigDecimal.valueOf(ofsDetail.getShipQty())); - childrenvo.add(children); - } - billVO.setParentvo(parentvo); - billVO.setChildrenvo(childrenvo); - String jsonStr = JSONUtil.toJsonStr(billVO); - mapStr = "{\"billvo\":"+jsonStr+"}"; - response = pushDataByU8cUtil.pushU8CByCode(OverallConstant.getOverAllValue("approveqz"), mapStr); - System.out.println(response); - boolean isSuccess = false; - String vcode=""; - if (response != null && !"".equals(response)) { - ReusltStrDto reusltStrDto = JSON.parseObject(response, ReusltStrDto.class); - if ("success".equals(reusltStrDto.getStatus())) { - isSuccess = true; - String data = reusltStrDto.getData(); - BillVO billVO1 = resultDataHandle(data); - System.out.println(billVO1); - vcode = billVO1.getParentvo().getVcode(); - } - } - if (!isSuccess) { - Assert.state(false, "推送U8C--> 丽知:OFS调拨订单--->U8C调拨订单(保存及签字) 失败 接口返回结果:{} 接口入参:{}", response, jsonStr); - } - - //成功 - IntegrationTaskLivingDetailsEntity integrationTaskLivingDetailsEntity = new IntegrationTaskLivingDetailsEntity(); - integrationTaskLivingDetailsEntity.setNewState(ProfilesActiveConstant.LOG_STATUS_Y); - integrationTaskLivingDetailsEntity.setRootAppNewData(mapStr); - integrationTaskLivingDetailsEntity.setNewTransmitInfo(response); - integrationTaskLivingDetailsEntity.setNewPushDate(new Date()); - integrationTaskLivingDetailsEntity.setBusinessDate(format); - integrationTaskLivingDetailsEntity.setRootAppPk(ofsCode); - integrationTaskLivingDetailsEntity.setRootAppBill(vcode);//u8c调拨订单号 - integrationTaskLivingDetailsEntity.setPluginId(getPluginId()); - saveOrUpdateBusinessLogUtil.saveOrUpdate(integrationTaskLivingDetailsEntity); - - - } catch (Exception e) { - e.printStackTrace(); - logger.error("丽知:OFS调拨订单--->U8C调拨订单(保存及签字)失败,失败原因:" + e); - - //失败 - IntegrationTaskLivingDetailsEntity integrationTaskLivingDetailsEntity = new IntegrationTaskLivingDetailsEntity(); - integrationTaskLivingDetailsEntity.setNewState(ProfilesActiveConstant.LOG_STATUS_N); - integrationTaskLivingDetailsEntity.setRootAppNewData(mapStr); - integrationTaskLivingDetailsEntity.setNewTransmitInfo(response); - integrationTaskLivingDetailsEntity.setNewPushDate(new Date()); - integrationTaskLivingDetailsEntity.setBusinessDate(format); - integrationTaskLivingDetailsEntity.setRootAppPk(ofsCode); - integrationTaskLivingDetailsEntity.setRootAppBill(null);//u8c调拨订单号 - integrationTaskLivingDetailsEntity.setPluginId(getPluginId()); - saveOrUpdateBusinessLogUtil.saveOrUpdate(integrationTaskLivingDetailsEntity); - } - - } - - } - - - /** - * 开始与结束时间必须小于或等于7天 - * - * @param queryOfsTransferOrderRequestVO - * @throws Exception - */ - public List queryOfsTransderOrder(QueryOfsTransferOrderRequestVO queryOfsTransferOrderRequestVO) throws Exception { - - InterfaceParamDto interfaceParamDto = new InterfaceParamDto(); - interfaceParamDto.setApi("ofs.transferOrder.search"); - queryOfsTransferOrderRequestVO.setClientCode("LETS"); - interfaceParamDto.setData(JSON.toJSONString(queryOfsTransferOrderRequestVO)); - OFSTranseferOrderSearchResponse ofsTranseferOrderSearchResponse = (OFSTranseferOrderSearchResponse) ofsUnifiedService.unified(interfaceParamDto); - System.out.println(ofsTranseferOrderSearchResponse); - if (ofsTranseferOrderSearchResponse.getData().size() == 0) { - return null; - } else { - List data = ofsTranseferOrderSearchResponse.getData(); - return data; - } - } - private BillVO resultDataHandle(String resultData) { - try { - if (resultData != null && !"".equals(resultData)) { - if (resultData.contains("[")) { - resultData = resultData.substring(1, resultData.length() - 1); - } - return JSON.parseObject(resultData, BillVO.class); - } - } catch (Exception e) { - e.printStackTrace(); - logger.error("解析返回参数失败的错误", e); - //如果解析失败,记录原因,但是不能影响结果的记录 - } - return null; - } - -} +//package com.hzya.frame.plugin.lets.plugin.transfer; +// +//import cn.hutool.core.date.DateField; +//import cn.hutool.core.date.DateUtil; +//import cn.hutool.core.lang.Assert; +//import cn.hutool.json.JSONArray; +//import cn.hutool.json.JSONUtil; +//import com.alibaba.fastjson.JSON; +//import com.alibaba.fastjson.JSONObject; +//import com.hzya.frame.base.PluginBaseEntity; +//import com.hzya.frame.plugin.lets.constant.OverallConstant; +//import com.hzya.frame.plugin.lets.constant.ProfilesActiveConstant; +//import com.hzya.frame.plugin.lets.ofsvo.QueryOfsTransferOrderRequestVO; +//import com.hzya.frame.plugin.lets.u8cdto.BillVO; +//import com.hzya.frame.plugin.lets.u8cdto.ReusltStrDto; +//import com.hzya.frame.plugin.lets.u8cdto.SoSaleResultRootDto; +//import com.hzya.frame.plugin.lets.util.PushDataByU8cUtil; +//import com.hzya.frame.plugin.lets.util.SaveOrUpdateBusinessLogUtil; +//import com.hzya.frame.sysnew.integtationTaskLivingDetails.dao.IIntegrationTaskLivingDetailsDao; +//import com.hzya.frame.sysnew.integtationTaskLivingDetails.entity.IntegrationTaskLivingDetailsEntity; +//import com.hzya.frame.ttxofs.basics.ReturnMessageBasics; +//import com.hzya.frame.ttxofs.dto.InterfaceParamDto; +//import com.hzya.frame.ttxofs.dto.ofsTransferOrderSearch.OFSTranseferOrderSearchResponse; +//import com.hzya.frame.ttxofs.service.OfsUnifiedService; +//import com.hzya.frame.ttxofs.util.UrlTransUtil; +//import com.hzya.frame.web.entity.JsonResultEntity; +//import org.apache.http.impl.client.CloseableHttpClient; +//import org.apache.http.impl.client.HttpClients; +//import org.slf4j.Logger; +//import org.slf4j.LoggerFactory; +//import org.springframework.beans.factory.annotation.Autowired; +// +//import java.math.BigDecimal; +//import java.util.*; +//import java.util.concurrent.locks.ReentrantLock; +// +///** +// * OFS->U8C调拨订单 新增,修改,删除 +// * add by zyd 20240802 +// */ +//public class TransferPluginInitializer extends PluginBaseEntity { +// +// Logger logger = LoggerFactory.getLogger(TransferPluginInitializer.class); +// +// private static final ReentrantLock LOCK = new ReentrantLock(true); +// +// @Override +// public void initialize() { +// logger.info(getPluginLabel() + "執行初始化方法initialize()"); +// } +// +// @Override +// public void destroy() { +// logger.info(getPluginLabel() + "執行銷毀方法destroy()"); +// } +// +// @Override +// public String getPluginId() { +// return "com.hzya.frame.plugin.lets.plugin.transfer.TransferPluginInitializer"; +// } +// +// @Override +// public String getPluginName() { +// return "丽知:OFS调拨订单--->U8C调拨订单(保存及签字)"; +// } +// +// @Override +// public String getPluginLabel() { +// return "丽知:OFS调拨订单--->U8C调拨订单(保存及签字)"; +// } +// +// @Override +// public String getPluginType() { +// return "1"; +// } +// +// @Autowired +// private IIntegrationTaskLivingDetailsDao iIntegrationTaskLivingDetailsDao; +// @Autowired +// private PushDataByU8cUtil pushDataByU8cUtil; +// @Autowired +// private SaveOrUpdateBusinessLogUtil saveOrUpdateBusinessLogUtil; +// +// @Autowired +// private OfsUnifiedService ofsUnifiedService; +// +// @Override +// public JsonResultEntity executeBusiness(JSONObject requestJson) throws Exception { +// return null; +// } +// +// +// /** +// * 默认推送 +// */ +// public void start() { +// try { +// //获取当前时间 +// Date currentDate = new Date(); +// Date startTime = DateUtil.offset(currentDate, DateField.MINUTE, -10); +// Date endTime = DateUtil.offset(currentDate, DateField.MINUTE, -2); +// String startTimeStr = DateUtil.format(startTime, "yyyy-MM-dd HH:mm:ss"); +// String endTimeStr = DateUtil.format(endTime, "yyyy-MM-dd HH:mm:ss"); +// +// QueryOfsTransferOrderRequestVO queryOfsTransferOrderRequestVO = new QueryOfsTransferOrderRequestVO(); +// queryOfsTransferOrderRequestVO.setCreated_start(startTimeStr); +// queryOfsTransferOrderRequestVO.setCreated_end(endTimeStr); +// queryOfsTransferOrderRequestVO.setCompanyCode("SHXM");//U8c&ofs对接群:好的,我跟技术聊了,就按照这个方 式来,赋值就按照赋值的货主来查,不赋值就查所有的货主数据 +//// queryOfsTransferOrderRequestVO.setStatus("900");//状态 100订单池 200待出库 300已出库 400待入库 900已入库 250出库中 450入库中 +// queryOfsTransferOrderRequestVO.setPageNo(1L); +// queryOfsTransferOrderRequestVO.setPageSize(50L); +// List ofsTranseferOrders = queryOfsTransderOrder(queryOfsTransferOrderRequestVO); +// if (ofsTranseferOrders == null || ofsTranseferOrders.size() == 0) { +// return; +// } +// System.out.println(ofsTranseferOrders); +// //过滤日志 +// List filterOfsTranseferOrders = filterData(ofsTranseferOrders); +// if (filterOfsTranseferOrders.size() == 0) { +// return; +// } +// +// //推送 +// implement(filterOfsTranseferOrders); +// +// +// } catch (Exception e) { +// logger.error("丽知:OFS调拨订单--->U8C调拨订单(保存及签字),start()方法报错:", e); +// } +// } +// +// /** +// * 按调拨订单号 +// */ +// public void start(String transeferNo) { +// try { +// QueryOfsTransferOrderRequestVO queryOfsTransferOrderRequestVO = new QueryOfsTransferOrderRequestVO(); +// queryOfsTransferOrderRequestVO.setCompanyCode("SHXM");//U8c&ofs对接群:好的,我跟技术聊了,就按照这个方式来,赋值就按照赋值的货主来查,不赋值就查所有的货主数据 +//// queryOfsTransferOrderRequestVO.setStatus("100");//状态 100订单池 200待出库 300已出库 400待入库 900已入库 250出库中 450入库中 +// queryOfsTransferOrderRequestVO.setCode(transeferNo); +// +// queryOfsTransferOrderRequestVO.setCreated_start("2024-08-08 00:00:00"); +// queryOfsTransferOrderRequestVO.setCreated_end("2024-08-12 23:59:59"); +// +// queryOfsTransferOrderRequestVO.setPageNo(1L); +// queryOfsTransferOrderRequestVO.setPageSize(500L); +// List ofsTranseferOrders = queryOfsTransderOrder(queryOfsTransferOrderRequestVO); +// if (ofsTranseferOrders == null || ofsTranseferOrders.size() == 0) { +// Assert.state(false, "中台:查询OFS调拨订单:{},不存在,请检查OFS调拨订单号。", transeferNo); +// } +// +// //过滤日志 +// List filterOfsTranseferOrders = filterData(ofsTranseferOrders); +// if (filterOfsTranseferOrders.size() == 0) { +// Assert.state(false, "中台:查询OFS调拨订单:{},过滤成功日志时已被过滤,请勿重新推送。", transeferNo); +// } +// +// //推送 +// implement(filterOfsTranseferOrders); +// +// } catch (Exception e) { +// logger.error("丽知:OFS调拨订单--->U8C调拨订单(保存及签字),start(String transeferNo)方法报错:", e); +// } +// +// } +// +// /** +// * 按时间区间 +// */ +// public void start(String startTime, String endTime) { +// try { +// Date business_start = DateUtil.parse(startTime); +// Date business_end = DateUtil.parse(endTime); +// String start = DateUtil.format(business_start, "yyyy-MM-dd") + " 00:00:00`"; +// String end = DateUtil.format(business_end, "yyyy-MM-dd") + " 23:59:59"; +// QueryOfsTransferOrderRequestVO queryOfsTransferOrderRequestVO = new QueryOfsTransferOrderRequestVO(); +// queryOfsTransferOrderRequestVO.setCreated_start(start); +// queryOfsTransferOrderRequestVO.setCreated_end(end); +// queryOfsTransferOrderRequestVO.setCompanyCode("SHXM");//U8c&ofs对接群:好的,我跟技术聊了,就按照这个方 式来,赋值就按照赋值的货主来查,不赋值就查所有的货主数据 +//// queryOfsTransferOrderRequestVO.setStatus("900");//状态 100订单池 200待出库 300已出库 400待入库 900已入库 250出库中 450入库中 +// queryOfsTransferOrderRequestVO.setPageNo(1L); +// queryOfsTransferOrderRequestVO.setPageSize(50L); +// List ofsTranseferOrders = queryOfsTransderOrder(queryOfsTransferOrderRequestVO); +// if (ofsTranseferOrders == null || ofsTranseferOrders.size() == 0) { +// Assert.state(false, "中台:查询OFS调拨订单,按日期:{} - {},未查询OFS调拨订单。", startTime,endTime); +// } +// //过滤日志 +// List filterOfsTranseferOrders = filterData(ofsTranseferOrders); +// if (filterOfsTranseferOrders.size() == 0) { +// Assert.state(false, "中台:查询OFS调拨订单,按日期:{} - {},已被推送,请查询OFS调拨订单。", startTime,endTime); +// } +// +// //推送 +// implement(filterOfsTranseferOrders); +// +// +// } catch (Exception e) { +// logger.error("丽知:OFS调拨订单--->U8C调拨订单(保存及签字),start(String startTime, String endTime)方法报错:", e); +// } +// } +// +// +// /** +// * 过滤成功日志 +// * +// * @param ofsTranseferOrders +// * @return +// */ +// public List filterData(List ofsTranseferOrders) { +// List filterOfsTranseferOrders = new ArrayList<>(); +// for (OFSTranseferOrderSearchResponse.OFSTranseferOrder ofsTranseferOrder : ofsTranseferOrders) { +// OFSTranseferOrderSearchResponse.OFSTranseferOrder.OFSTranseferH header = ofsTranseferOrder.getHeader(); +// //OFS调拨订单号 +// String rootAppPk = header.getCode(); +// boolean isExis = true; +// IntegrationTaskLivingDetailsEntity integrationTaskLivingDetailsEntity = new IntegrationTaskLivingDetailsEntity(); +// integrationTaskLivingDetailsEntity.setRootAppPk(rootAppPk); +// integrationTaskLivingDetailsEntity.setNewState(ProfilesActiveConstant.LOG_STATUS_Y); +// integrationTaskLivingDetailsEntity.setPluginId(getPluginId()); +// List integrationTaskLivingDetailsEntities = iIntegrationTaskLivingDetailsDao.query(integrationTaskLivingDetailsEntity); +// if (integrationTaskLivingDetailsEntities == null || integrationTaskLivingDetailsEntities.size() == 0) { +// isExis = false; +// } +// if (!isExis) { +// filterOfsTranseferOrders.add(ofsTranseferOrder); +// } +// } +// return filterOfsTranseferOrders; +// } +// +// /** +// * 推送u8c调拨订单 +// * +// * @param filterOfsTranseferOrders +// */ +// public void implement(List filterOfsTranseferOrders) { +// for (OFSTranseferOrderSearchResponse.OFSTranseferOrder ofsTranseferOrder : filterOfsTranseferOrders) { +// BillVO billVO = new BillVO(); +// +// String mapStr = ""; +// String format=""; +// String response=""; +// String ofsCode=""; +// try { +// +// //主表 +// OFSTranseferOrderSearchResponse.OFSTranseferOrder.OFSTranseferH ofsHeader = ofsTranseferOrder.getHeader(); +// BillVO.Parentvo parentvo = new BillVO.Parentvo(); +// +// ofsCode=ofsHeader.getCode(); +// +// //创建日期 +// Date created = ofsHeader.getCreated(); +// format = DateUtil.format(created, "yyyy-MM-dd HH:mm:ss"); +// +// //dbilldate 单据日期 +// parentvo.setDbilldate(format); +// //dauditdate 审批日期 +// parentvo.setDauditdate(format); +// //coperatorid 制单人 +// parentvo.setCoperatorid("tbadmin"); +// +// //cbiztypeid 业务流程编码 +// parentvo.setCbiztypeid("to01"); +// +// //coutcbid 调出组织编码 对应OFS->原库存地点公司 +// parentvo.setCoutcbid(ofsHeader.getCompanyCode()); +// parentvo.setCoutcbid("SHLZ"); +// +// //coutcorpid 调出公司编码 对应OFS->原库存地点公司 +// parentvo.setCoutcorpid(ofsHeader.getCompanyCode()); +// parentvo.setCoutcorpid("SHLZ"); +// +// //coutwhid 调出仓库编码 对应OFS->原库存地点 +// parentvo.setCoutwhid(ofsHeader.getFacilityCode()); +// parentvo.setCoutwhid("01"); +// +// //cincbid 调入组织编码 对应OFS->目标库存地点公司 +// parentvo.setCincbid("SHXM"); +// +// //cincorpid 调入公司编码 对应OFS->目标库存地点公司 +// parentvo.setCincorpid("SHXM"); +// +// //cinwhid 调入仓库编码 对应OFS->目标库存地点 +// parentvo.setCinwhid("01"); +// +// //vnote 备注 +// parentvo.setVnote(ofsHeader.getNotes()); +// +// +// +// //子表 +// List ofsDetails = ofsTranseferOrder.getDetails(); +// List childrenvo = new ArrayList<>(); +// for (OFSTranseferOrderSearchResponse.OFSTranseferOrder.OFSTranseferB ofsDetail : ofsDetails) { +// System.out.println(ofsDetail); +// BillVO.Childrenvo children = new BillVO.Childrenvo(); +// //表体 +// //cinvbasid 存货基本档案 +// children.setCinvbasid(ofsDetail.getSkuCode()); +// children.setCinvbasid("6973391730617"); +// //nnum 数量 +// children.setNnum(BigDecimal.valueOf(ofsDetail.getShipQty())); +// childrenvo.add(children); +// } +// billVO.setParentvo(parentvo); +// billVO.setChildrenvo(childrenvo); +// String jsonStr = JSONUtil.toJsonStr(billVO); +// mapStr = "{\"billvo\":"+jsonStr+"}"; +// response = pushDataByU8cUtil.pushU8CByCode(OverallConstant.getOverAllValue("approveqz"), mapStr); +// System.out.println(response); +// boolean isSuccess = false; +// String vcode=""; +// if (response != null && !"".equals(response)) { +// ReusltStrDto reusltStrDto = JSON.parseObject(response, ReusltStrDto.class); +// if ("success".equals(reusltStrDto.getStatus())) { +// isSuccess = true; +// String data = reusltStrDto.getData(); +// BillVO billVO1 = resultDataHandle(data); +// System.out.println(billVO1); +// vcode = billVO1.getParentvo().getVcode(); +// } +// } +// if (!isSuccess) { +// Assert.state(false, "推送U8C--> 丽知:OFS调拨订单--->U8C调拨订单(保存及签字) 失败 接口返回结果:{} 接口入参:{}", response, jsonStr); +// } +// +// //成功 +// IntegrationTaskLivingDetailsEntity integrationTaskLivingDetailsEntity = new IntegrationTaskLivingDetailsEntity(); +// integrationTaskLivingDetailsEntity.setNewState(ProfilesActiveConstant.LOG_STATUS_Y); +// integrationTaskLivingDetailsEntity.setRootAppNewData(mapStr); +// integrationTaskLivingDetailsEntity.setNewTransmitInfo(response); +// integrationTaskLivingDetailsEntity.setNewPushDate(new Date()); +// integrationTaskLivingDetailsEntity.setBusinessDate(format); +// integrationTaskLivingDetailsEntity.setRootAppPk(ofsCode); +// integrationTaskLivingDetailsEntity.setRootAppBill(vcode);//u8c调拨订单号 +// integrationTaskLivingDetailsEntity.setPluginId(getPluginId()); +// saveOrUpdateBusinessLogUtil.saveOrUpdate(integrationTaskLivingDetailsEntity); +// +// +// } catch (Exception e) { +// e.printStackTrace(); +// logger.error("丽知:OFS调拨订单--->U8C调拨订单(保存及签字)失败,失败原因:" + e); +// +// //失败 +// IntegrationTaskLivingDetailsEntity integrationTaskLivingDetailsEntity = new IntegrationTaskLivingDetailsEntity(); +// integrationTaskLivingDetailsEntity.setNewState(ProfilesActiveConstant.LOG_STATUS_N); +// integrationTaskLivingDetailsEntity.setRootAppNewData(mapStr); +// integrationTaskLivingDetailsEntity.setNewTransmitInfo(response); +// integrationTaskLivingDetailsEntity.setNewPushDate(new Date()); +// integrationTaskLivingDetailsEntity.setBusinessDate(format); +// integrationTaskLivingDetailsEntity.setRootAppPk(ofsCode); +// integrationTaskLivingDetailsEntity.setRootAppBill(null);//u8c调拨订单号 +// integrationTaskLivingDetailsEntity.setPluginId(getPluginId()); +// saveOrUpdateBusinessLogUtil.saveOrUpdate(integrationTaskLivingDetailsEntity); +// } +// +// } +// +// } +// +// +// /** +// * 开始与结束时间必须小于或等于7天 +// * +// * @param queryOfsTransferOrderRequestVO +// * @throws Exception +// */ +// public List queryOfsTransderOrder(QueryOfsTransferOrderRequestVO queryOfsTransferOrderRequestVO) throws Exception { +// +// InterfaceParamDto interfaceParamDto = new InterfaceParamDto(); +// interfaceParamDto.setApi("ofs.transferOrder.search"); +// queryOfsTransferOrderRequestVO.setClientCode("LETS"); +// interfaceParamDto.setData(JSON.toJSONString(queryOfsTransferOrderRequestVO)); +// OFSTranseferOrderSearchResponse ofsTranseferOrderSearchResponse = (OFSTranseferOrderSearchResponse) ofsUnifiedService.unified(interfaceParamDto); +// System.out.println(ofsTranseferOrderSearchResponse); +// if (ofsTranseferOrderSearchResponse.getData().size() == 0) { +// return null; +// } else { +// List data = ofsTranseferOrderSearchResponse.getData(); +// return data; +// } +// } +// private BillVO resultDataHandle(String resultData) { +// try { +// if (resultData != null && !"".equals(resultData)) { +// if (resultData.contains("[")) { +// resultData = resultData.substring(1, resultData.length() - 1); +// } +// return JSON.parseObject(resultData, BillVO.class); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// logger.error("解析返回参数失败的错误", e); +// //如果解析失败,记录原因,但是不能影响结果的记录 +// } +// return null; +// } +// +//} diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/util/pushData/Attribute.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/util/pushData/Attribute.java index fca42d35..6f46d0c4 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/util/pushData/Attribute.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/util/pushData/Attribute.java @@ -14,4 +14,6 @@ public class Attribute { private String status; private String taskNumber; private String data; + private String errorcode; + private String errormsg; } diff --git a/buildpackage/src/main/resources/cfgHome/plugin/lets/spring/spring-lets-plugin.xml b/buildpackage/src/main/resources/cfgHome/plugin/lets/spring/spring-lets-plugin.xml index 7dafe73b..90f3143c 100644 --- a/buildpackage/src/main/resources/cfgHome/plugin/lets/spring/spring-lets-plugin.xml +++ b/buildpackage/src/main/resources/cfgHome/plugin/lets/spring/spring-lets-plugin.xml @@ -14,9 +14,9 @@ - - + + diff --git a/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/base/BaseTest.java b/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/base/BaseTest.java index 5a609be5..939c830d 100644 --- a/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/base/BaseTest.java +++ b/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/base/BaseTest.java @@ -26,7 +26,8 @@ public class BaseTest { ////////////////////////////////////////////////////////////////////////////////////SKU自动分配 @Test public void t10(){ - goodsAutoAllotPluginInitializer.start("0001A210000000000U4C"); +// goodsAutoAllotPluginInitializer.start("0001A210000000000U4C"); + goodsAutoAllotPluginInitializer.start("SKU001"); } ////////////////////////////////////////////////////////////////////////////////////SKU分类 @Test diff --git a/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/transfer/TransferTest.java b/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/transfer/TransferTest.java index c1d42771..bb9bcc84 100644 --- a/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/transfer/TransferTest.java +++ b/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/transfer/TransferTest.java @@ -12,8 +12,8 @@ import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest(classes = WebappApplication.class) public class TransferTest { - @Autowired - private TransferPluginInitializer transferPluginInitializer; +// @Autowired +// private TransferPluginInitializer transferPluginInitializer; @Autowired private TransferInPluginInitializer transferInPluginInitializer; @@ -25,14 +25,14 @@ public class TransferTest { private AdjustOutPluginInitializer adjustOutPluginInitializer; ////////////////////////////////////////////////////////////////////////////////////调拨订单 - @Test - public void t00(){ - transferPluginInitializer.start(); - } - @Test - public void t01(){ - transferPluginInitializer.start("LETS-TH2024080800000002"); - } +// @Test +// public void t00(){ +// transferPluginInitializer.start(); +// } +// @Test +// public void t01(){ +// transferPluginInitializer.start("LETS-TH2024080800000002"); +// } @@ -40,7 +40,7 @@ public class TransferTest { @Test public void t10(){ - transferOutPluginInitializer.start(); + transferOutPluginInitializer.start("LETS-SH2024081400000001"); } @Test @@ -55,7 +55,7 @@ public class TransferTest { } @Test public void t21(){ - transferInPluginInitializer.start("LETS-RE2024080800000002"); + transferInPluginInitializer.start("LETS-RE2024081900000002"); } @@ -68,7 +68,7 @@ public class TransferTest { } @Test public void t31(){ - adjustInPluginInitializer.start("LETS-AH2024081300000003"); + adjustInPluginInitializer.start("LETS-RE2024081900000003"); } @Test public void t32(){ diff --git a/service/src/main/java/com/hzya/frame/ttxofs/dto/ofsTransferOrderSearch/OFSTranseferOrderSearchResponse.java b/service/src/main/java/com/hzya/frame/ttxofs/dto/ofsTransferOrderSearch/OFSTranseferOrderSearchResponse.java index 1d66ad52..e5f4be1f 100644 --- a/service/src/main/java/com/hzya/frame/ttxofs/dto/ofsTransferOrderSearch/OFSTranseferOrderSearchResponse.java +++ b/service/src/main/java/com/hzya/frame/ttxofs/dto/ofsTransferOrderSearch/OFSTranseferOrderSearchResponse.java @@ -24,6 +24,8 @@ public class OFSTranseferOrderSearchResponse extends ReturnMessageBasics { private String companyCode; /** 库存地点编码 */ private String facilityCode; + /** 目标货主编码 */ + private String toCompanyCode; /** 目标库存地点编码 */ private String toFacilityCode; /** 订单编码 */ From a7a30efd9e5981c87a82ba37d7c449be1c7255cb Mon Sep 17 00:00:00 2001 From: zhengyf Date: Mon, 19 Aug 2024 18:48:22 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E4=B8=BD=E7=9F=A5=EF=BC=9A=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=EF=BC=9A=E5=AD=98=E8=B4=A7=E6=A1=A3=E6=A1=88=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=88=86=E9=85=8D=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/GoodsAutoAllotPluginInitializer.java | 13 +++++++------ .../frame/plugin/lets/u8cdto/GoodsAutoAllotVO.java | 2 ++ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/base/GoodsAutoAllotPluginInitializer.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/base/GoodsAutoAllotPluginInitializer.java index 32783c70..00de6d4b 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/base/GoodsAutoAllotPluginInitializer.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/base/GoodsAutoAllotPluginInitializer.java @@ -121,21 +121,22 @@ public class GoodsAutoAllotPluginInitializer extends PluginBaseEntity { } /** - * 按存货基本档案主键 + * 按存货基本档案code */ - public void start(String pkInvbasdoc) { + public void start(String invcode) { try { BdInvbasdocEntity bdInvbasdocEntity = new BdInvbasdocEntity(); - bdInvbasdocEntity.setPkInvbasdoc(pkInvbasdoc); +// bdInvbasdocEntity.setPkInvbasdoc(invcode); + bdInvbasdocEntity.setInvcode(invcode); bdInvbasdocEntity.setDataSourceCode(ProfilesActiveConstant.LETS_DATE_SOURCE); List bdInvbasdocEntityList = bdInvbasdocDao.query(bdInvbasdocEntity); if (bdInvbasdocEntityList.size() == 0) { - Assert.state(false, "U8C->存货基本档案自动分配全公司,存货基本档案主键:{},不存在。", pkInvbasdoc); + Assert.state(false, "U8C->存货基本档案自动分配全公司,存货基本档案编码:{},不存在。", invcode); } //过滤日志 List filterInvbasdocList = filter(bdInvbasdocEntityList); if (filterInvbasdocList.size() == 0 || filterInvbasdocList == null) { - Assert.state(false, "U8C->存货基本档案自动分配全公司,存货基本档案主键:{},已被分配,请检查。", pkInvbasdoc); + Assert.state(false, "U8C->存货基本档案自动分配全公司,存货基本档案编码:{},已被分配,请检查。", invcode); } //推送:自动分配 implement(filterInvbasdocList); @@ -185,7 +186,7 @@ public class GoodsAutoAllotPluginInitializer extends PluginBaseEntity { public List filter(List bdInvbasdocEntityList) { List filterInvbasdocList = new ArrayList<>(); for (BdInvbasdocEntity bdInvbasdocEntity : bdInvbasdocEntityList) { - String rootAppPk = bdInvbasdocEntity.getPkInvbasdoc(); + String rootAppPk = bdInvbasdocEntity.getInvcode(); boolean isExis = true; IntegrationTaskLivingDetailsEntity integrationTaskLivingDetailsEntity = new IntegrationTaskLivingDetailsEntity(); integrationTaskLivingDetailsEntity.setRootAppPk(rootAppPk); diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/u8cdto/GoodsAutoAllotVO.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/u8cdto/GoodsAutoAllotVO.java index c17f4717..22bae442 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/u8cdto/GoodsAutoAllotVO.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/u8cdto/GoodsAutoAllotVO.java @@ -6,4 +6,6 @@ import lombok.Data; public class GoodsAutoAllotVO { private String pk_invbasdoc; private String pk_corp="all"; + private String pk_measdoc="all"; + private String proBilltemplet="BD100812100000000001"; } From 46add5367787cfde5a874c3c87ec21e2c34fe8f7 Mon Sep 17 00:00:00 2001 From: zhengyf Date: Mon, 19 Aug 2024 18:48:43 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E4=B8=BD=E7=9F=A5=EF=BC=9A=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=EF=BC=9A=E4=B8=AD=E5=8F=B0=E8=BD=AC=E5=8F=91http?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lets/util/pushData/PushU8CByApiCode.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/util/pushData/PushU8CByApiCode.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/util/pushData/PushU8CByApiCode.java index dd869fc8..37082550 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/util/pushData/PushU8CByApiCode.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/util/pushData/PushU8CByApiCode.java @@ -56,6 +56,13 @@ public class PushU8CByApiCode { httpPost.setHeader("apicode", apicode); //data httpPost.setEntity(new StringEntity(data, "UTF-8")); + // 配置请求的超时设置 + RequestConfig requestConfig = RequestConfig.custom() + .setConnectTimeout(600000) // 连接超时时间: 600秒 + .setConnectionRequestTimeout(600000) // 请求超时时间: 600秒 + .setSocketTimeout(600000) // 数据读取超时时间: 600秒 + .build(); + httpPost.setConfig(requestConfig); CloseableHttpResponse response = httpclient.execute(httpPost); HttpEntity entity = response.getEntity(); @@ -96,6 +103,14 @@ public class PushU8CByApiCode { httpPost.setHeader("apicode", apicode); //data httpPost.setEntity(new StringEntity(data, "UTF-8")); + + // 配置请求的超时设置 + RequestConfig requestConfig = RequestConfig.custom() + .setConnectTimeout(600000) // 连接超时时间: 600秒 + .setConnectionRequestTimeout(600000) // 请求超时时间: 600秒 + .setSocketTimeout(600000) // 数据读取超时时间: 600秒 + .build(); + httpPost.setConfig(requestConfig); CloseableHttpResponse response = httpclient.execute(httpPost); HttpEntity entity = response.getEntity(); String result = EntityUtils.toString(entity); From d7f0d1dddc479378b2a4f2e58c44c947bf5ae8e6 Mon Sep 17 00:00:00 2001 From: liuy <37787198+LiuyCodes@users.noreply.github.com> Date: Mon, 19 Aug 2024 23:29:47 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E6=8F=90=E4=BA=A4TOB=E3=80=81TOC=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lets/constant/ProfilesActiveConstant.java | 3 + .../lets/ofsvo/QueryOfsSoSaleOutVo.java | 3 + .../purchase/ProxyPurchaseWarehous.java | 115 ++++++++++ .../sales/SoSaleOutPluginInitializerToB.java | 115 ++++++++-- .../sales/SoSaleOutPluginInitializerToC.java | 84 +++++-- .../SoSaleReturnPluginInitializerToB.java | 205 ++++++++---------- .../SoSaleReturnPluginInitializerToC.java | 90 +++++++- .../plugin/lets/queryvo/StartAndEndVo.java | 121 +++++++++++ .../lets/u8cdto/OrderOutTobHeaderDto.java | 2 +- .../plugin/lets/u8cdto/OrderToBHeaderDto.java | 6 + .../plugin/lets/util/AfterSalesOrderUtil.java | 116 ++++++++++ .../plugin/lets/util/OffsetTimeTime.java | 39 ++++ .../plugin/lets/util/ShopTobOrToCUtil.java | 51 +++++ .../SoSaleReturnPluginInitializerToBTest.java | 3 +- .../lets/util/ShopTobOrToCUtilTest.java | 38 ++++ .../frame/ttxofs/basics/ApiDtoCacheMap.java | 5 +- .../ttxofs/basics/ReturnMessageBasics.java | 38 +--- .../dto/ofssalesordersearch/HeaderDto.java | 11 + .../RerturnGoodsOrderSearchData.java | 15 ++ .../RerturnGoodsOrderSearchDetails.java | 45 ++++ .../RerturnGoodsOrderSearchHeader.java | 66 ++++++ .../RerturnGoodsOrderSearchJsonRootBean.java | 18 ++ .../ReturnGoodHeaderDetailsDataDto.java | 1 + 23 files changed, 994 insertions(+), 196 deletions(-) create mode 100644 buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/purchase/ProxyPurchaseWarehous.java create mode 100644 buildpackage/src/main/java/com/hzya/frame/plugin/lets/queryvo/StartAndEndVo.java create mode 100644 buildpackage/src/main/java/com/hzya/frame/plugin/lets/util/AfterSalesOrderUtil.java create mode 100644 buildpackage/src/main/java/com/hzya/frame/plugin/lets/util/OffsetTimeTime.java create mode 100644 buildpackage/src/main/java/com/hzya/frame/plugin/lets/util/ShopTobOrToCUtil.java create mode 100644 buildpackage/src/test/java/com/hzya/frame/plugin/lets/util/ShopTobOrToCUtilTest.java create mode 100755 service/src/main/java/com/hzya/frame/ttxofs/dto/returngoodordersearch/RerturnGoodsOrderSearchData.java create mode 100755 service/src/main/java/com/hzya/frame/ttxofs/dto/returngoodordersearch/RerturnGoodsOrderSearchDetails.java create mode 100755 service/src/main/java/com/hzya/frame/ttxofs/dto/returngoodordersearch/RerturnGoodsOrderSearchHeader.java create mode 100755 service/src/main/java/com/hzya/frame/ttxofs/dto/returngoodordersearch/RerturnGoodsOrderSearchJsonRootBean.java diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/constant/ProfilesActiveConstant.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/constant/ProfilesActiveConstant.java index 8ac51f6b..ab1dbabe 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/constant/ProfilesActiveConstant.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/constant/ProfilesActiveConstant.java @@ -31,4 +31,7 @@ public class ProfilesActiveConstant { public static final String CUSTOMER = "'0','2'"; + public static final String sourceSystem1 = "OFS订单系统"; + + public static final String sourceSystem2 = "丽知商城"; } diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/ofsvo/QueryOfsSoSaleOutVo.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/ofsvo/QueryOfsSoSaleOutVo.java index 4fce0f74..68d3d2f9 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/ofsvo/QueryOfsSoSaleOutVo.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/ofsvo/QueryOfsSoSaleOutVo.java @@ -38,4 +38,7 @@ public class QueryOfsSoSaleOutVo { private String closedAt_start; private String closedAt_end; + + private String storeCode; + } diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/purchase/ProxyPurchaseWarehous.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/purchase/ProxyPurchaseWarehous.java new file mode 100644 index 00000000..02ca0b59 --- /dev/null +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/purchase/ProxyPurchaseWarehous.java @@ -0,0 +1,115 @@ +//package com.hzya.frame.plugin.lets.plugin.purchase; +// +//import cn.hutool.core.util.StrUtil; +//import com.alibaba.fastjson.JSONObject; +//import com.hzya.frame.base.PluginBaseEntity; +//import com.hzya.frame.plugin.lets.ofsvo.QueryOfsSoSaleOutVo; +//import com.hzya.frame.plugin.lets.plugin.sales.SoSaleOutPluginInitializerToB; +//import com.hzya.frame.plugin.lets.resultvo.CalculateDateVo; +//import com.hzya.frame.plugin.lets.util.DateStrUtil; +//import com.hzya.frame.ttxofs.dto.ofssaleorderoutsearch.HeaderDetailsDto; +//import com.hzya.frame.web.entity.JsonResultEntity; +//import org.slf4j.Logger; +//import org.slf4j.LoggerFactory; +// +//import java.util.ArrayList; +//import java.util.List; +// +///** +// * 代理品牌采购业务:(代理品牌采购)OFS采购入库单生成U8C采购订单 +// * +// * @Author:liuyang +// * @Package:com.hzya.frame.plugin.lets.plugin.purchase +// * @Project:kangarooDataCenterV3 +// * @name:ProxyPurchase +// * @Date:2024/8/19 18:01 +// * @Filename:ProxyPurchase +// */ +//public class ProxyPurchaseWarehous extends PluginBaseEntity { +// +// Logger logger = LoggerFactory.getLogger(ProxyPurchaseWarehous.class); +// +// @Override +// public void initialize() { +// logger.info(getPluginLabel() + "執行初始化方法initialize()"); +// } +// +// @Override +// public void destroy() { +// logger.info(getPluginLabel() + "執行銷毀方法destroy()"); +// } +// +// @Override +// public String getPluginId() { +// return "com.hzya.frame.plugin.lets.plugin.purchase.ProxyPurchaseWarehous"; +// } +// +// @Override +// public String getPluginName() { +// return "OFS采购入库单生成U8C采购订单(代理品牌)"; +// } +// +// @Override +// public String getPluginLabel() { +// return "OFS采购入库单生成U8C采购订单(代理品牌)"; +// } +// +// @Override +// public String getPluginType() { +// return "3"; +// } +// +// @Override +// public JsonResultEntity executeBusiness(JSONObject requestJson) throws Exception { +// return null; +// } +// +// /** +// * 根据指定时间范围拉取 +// * +// * @author liuyang +// */ +// public void startImplement(String startTime, String endTime) { +// String threadNameStr = StrUtil.format("(代理品牌采购)OFS采购入库单生成U8C采购订单 开始时间:{} 结束时间:{}", dateStr, summaryOrderNumber); +// logger.info(threadNameStr); +// +// Thread thread = new Thread(new Runnable() { +// @Override +// public void run() { +// try { +// CalculateDateVo calculateDateVo = DateStrUtil.calculateCalculateEntireDayPeriod(dateStr); +// String tobShop = shopTobOrToCUtil.getCommaShop("TOB"); +// +// List headerDetailsDtoList = new ArrayList<>(); +// QueryOfsSoSaleOutVo queryOfsSoSaleOutVo = new QueryOfsSoSaleOutVo(); +// queryOfsSoSaleOutVo.setShipAt_start(calculateDateVo.getStart_time()); +// queryOfsSoSaleOutVo.setShipAt_end(calculateDateVo.getEnd_time()); +// queryOfsSoSaleOutVo.setClientCode("LETS"); +// queryOfsSoSaleOutVo.setInternalInstructionType("SALES"); +//// queryOfsSoSaleOutVo.setCompanyCode("SHLZ"); +// queryOfsSoSaleOutVo.setStatus(900L); +// queryOfsSoSaleOutVo.setPageNo(1L); +// queryOfsSoSaleOutVo.setPageSize(50L); +// queryOfsSoSaleOutVo.setStoreCode(tobShop); +//// queryOfsSoSaleOutVo.setCode("LETS-SH2024010200000004"); +// queryOfsSaleOrder(queryOfsSoSaleOutVo, headerDetailsDtoList, 1L); +// logger.info("数据返回行数:{}", headerDetailsDtoList.size()); +// if (headerDetailsDtoList.size() > 0) { +// getSet(headerDetailsDtoList); +// } else { +// logger.info("没有查询到任何数据!不需要同步"); +// } +// } catch (Exception e) { +// logger.error("startImplement方法抛出异常", e); +// } +// } +// }, threadNameStr); +// thread.start(); +// try { +// thread.join(); +// } catch (Exception e) { +// logger.error("thread.join()异常", e); +// } +// } +// +//} \ No newline at end of file diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToB.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToB.java index 762dcfc8..9b24ce62 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToB.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToB.java @@ -20,9 +20,7 @@ import com.hzya.frame.plugin.lets.ofs.service.ITocofsSaleoutService; import com.hzya.frame.plugin.lets.ofsvo.QueryOfsSoSaleOutVo; import com.hzya.frame.plugin.lets.resultvo.CalculateDateVo; import com.hzya.frame.plugin.lets.u8cdto.*; -import com.hzya.frame.plugin.lets.util.DateStrUtil; -import com.hzya.frame.plugin.lets.util.QueryBdBusitypeUtil; -import com.hzya.frame.plugin.lets.util.TocOrderBasicArchivesCacheUtil; +import com.hzya.frame.plugin.lets.util.*; import com.hzya.frame.split.SplitListByCountUtil; import com.hzya.frame.ttxofs.dto.InterfaceParamDto; import com.hzya.frame.ttxofs.dto.ofssaleorderoutsearch.DetailsDto; @@ -131,6 +129,12 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity { @Autowired private IBdInvmandocDao iBdInvmandocDao; + @Autowired + private AfterSalesOrderUtil afterSalesOrderUtil; + + @Autowired + private ShopTobOrToCUtil shopTobOrToCUtil; + /** * 按指定时间拉取 * @@ -144,29 +148,25 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity { @Override public void run() { try { - // TODO 注意过滤TOB店铺 CalculateDateVo calculateDateVo = DateStrUtil.calculateCalculateEntireDayPeriod(dateStr); + String tobShop = shopTobOrToCUtil.getCommaShop("TOB"); List headerDetailsDtoList = new ArrayList<>(); QueryOfsSoSaleOutVo queryOfsSoSaleOutVo = new QueryOfsSoSaleOutVo(); - queryOfsSoSaleOutVo.setShipAt_start("2024-07-05 16:38:00"); - queryOfsSoSaleOutVo.setShipAt_end("2024-07-05 16:50:30"); + queryOfsSoSaleOutVo.setShipAt_start(calculateDateVo.getStart_time()); + queryOfsSoSaleOutVo.setShipAt_end(calculateDateVo.getEnd_time()); queryOfsSoSaleOutVo.setClientCode("LETS"); queryOfsSoSaleOutVo.setInternalInstructionType("SALES"); // queryOfsSoSaleOutVo.setCompanyCode("SHLZ"); queryOfsSoSaleOutVo.setStatus(900L); queryOfsSoSaleOutVo.setPageNo(1L); queryOfsSoSaleOutVo.setPageSize(50L); + queryOfsSoSaleOutVo.setStoreCode(tobShop); // queryOfsSoSaleOutVo.setCode("LETS-SH2024010200000004"); queryOfsSaleOrder(queryOfsSoSaleOutVo, headerDetailsDtoList, 1L); logger.info("数据返回行数:{}", headerDetailsDtoList.size()); if (headerDetailsDtoList.size() > 0) { - //保存到mysql - batchInsert(headerDetailsDtoList); - //过滤成功的数据 - List headerDetailsDtos = filterData(headerDetailsDtoList); - //执行推送主逻辑 - implement(headerDetailsDtos); + getSet(headerDetailsDtoList); } else { logger.info("没有查询到任何数据!不需要同步"); } @@ -183,6 +183,60 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity { } } + + /** + * 根据出库单单号拉取 + * + * @author liuyang + */ + public void startImplement(String date) { + String threadNameStr = StrUtil.format("OFS销售出库(TOB)同步U8C销售订单 出库单单号:{}", date); + logger.info(threadNameStr); + + Thread thread = new Thread(new Runnable() { + @Override + public void run() { + try { + String tobShop = shopTobOrToCUtil.getCommaShop("TOB"); + + List headerDetailsDtoList = new ArrayList<>(); + QueryOfsSoSaleOutVo queryOfsSoSaleOutVo = new QueryOfsSoSaleOutVo(); + queryOfsSoSaleOutVo.setClientCode("LETS"); + queryOfsSoSaleOutVo.setInternalInstructionType("SALES"); + queryOfsSoSaleOutVo.setStatus(900L); + queryOfsSoSaleOutVo.setPageNo(1L); + queryOfsSoSaleOutVo.setPageSize(50L); + queryOfsSoSaleOutVo.setStoreCode(tobShop); + queryOfsSoSaleOutVo.setCode(date); + queryOfsSaleOrder(queryOfsSoSaleOutVo, headerDetailsDtoList, 1L); + logger.info("根据根据号拉群:数据返回行数:{}", headerDetailsDtoList.size()); + if (headerDetailsDtoList.size() > 0) { + getSet(headerDetailsDtoList); + } else { + logger.info("没有查询到任何数据!不需要同步"); + } + } catch (Exception e) { + logger.error("startImplement方法抛出异常", e); + } + } + }, threadNameStr); + thread.start(); + try { + thread.join(); + } catch (Exception e) { + logger.error("thread.join()异常", e); + } + } + + private void getSet(List headerDetailsDtoList) throws Exception { + //保存到mysql + batchInsert(headerDetailsDtoList); + //过滤成功的数据 + List headerDetailsDtos = filterData(headerDetailsDtoList); + //执行推送主逻辑 + implement(headerDetailsDtos); + } + /** * 过滤掉成功的数据 * @@ -506,6 +560,23 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity { HeaderDto header = headerDetailsDto.getHeader(); List details = headerDetailsDto.getDetails(); + //根据销售出库单,查询得到销售订单 + SaleOrderMessageDto saleOrderMessageDto = null; + try { + saleOrderMessageDto = afterSalesOrderUtil.getOfsOrder(header.getRefOrderCode()); + } catch (Exception e) { + logger.error("查询销售订单错误,失败原因:{}", e.getMessage()); + Assert.state(false, "查询销售订单错误,失败原因:{}", e.getMessage()); + } + + if (saleOrderMessageDto == null) { + Assert.state(false, "没有匹配到售后订单,系统业务无法完成"); + } + com.hzya.frame.ttxofs.dto.ofssalesordersearch.HeaderDto header1 = saleOrderMessageDto.getData().get(0).getHeader(); + String memberId = header1.getMemberId(); + Assert.notNull(memberId, "TOB销售订单(OFS)表头会员id不能为空,否则无法匹配U8C客商档案!"); + Assert.state(!"".equals(memberId.trim()), "TOB销售订单(OFS)表头会员id不能为空,否则无法匹配U8C客商档案!"); + // 销售公司、发货公司 String companyCode = header.getCompanyCode(); Assert.notNull(companyCode, "O表头公司不能为空"); @@ -577,24 +648,32 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity { //客商基本档案 //查询OFS对应的销售订单,得到会员id - QueryOfsSoSaleOutVo queryOfsSoSaleOutVo = new QueryOfsSoSaleOutVo(); +// QueryOfsSoSaleOutVo queryOfsSoSaleOutVo = new QueryOfsSoSaleOutVo(); // queryOfsSoSaleOutVo.setCode(); - SaleOrderMessageDto ofsOrder = getOfsOrder(queryOfsSoSaleOutVo, 1L); +// SaleOrderMessageDto ofsOrder = getOfsOrder(queryOfsSoSaleOutVo, 1L); - String custName = "天猫intoyou旗舰店-自营"; +// String custName = "天猫intoyou旗舰店-自营"; BdCubasdocEntity bdCubasdocEntity = new BdCubasdocEntity(); bdCubasdocEntity.setDataSourceCode("lets_u8c"); bdCubasdocEntity.setDr(0L); - bdCubasdocEntity.setCustname(custName); + bdCubasdocEntity.setDef1(memberId); List bdCubasdocEntityList = iBdCubasdocDao.query(bdCubasdocEntity); + if (bdCubasdocEntityList == null || bdCubasdocEntityList.size() == 0) { + Assert.state(false, "根据OFS会员id{},无法查询到U8C客商基本档案", memberId); + } else if (bdCubasdocEntityList.size() >= 2) { + Assert.state(false, "根据OFS会员id{},查询到U8C多个客商基本档案", memberId); + } //客商管理档案 BdCumandocEntity bdCumandocEntity1 = new BdCumandocEntity(); bdCumandocEntity1.setDataSourceCode("lets_u8c"); bdCumandocEntity1.setDr(0L); bdCumandocEntity1.setPkCorp(bdCorpEntityList.get(0).getPkCorp()); -// bdCumandocEntity1.setPkCubasdoc(bdCubasdocEntityList.get(0).getPkCubasdoc()); + bdCumandocEntity1.setCustflags(ProfilesActiveConstant.CUSTOMER); List bdCumandocEntityList = iBdCumandocDao.query(bdCumandocEntity1); + if (bdCumandocEntityList == null || bdCumandocEntityList.size() == 0) { + Assert.state(false, "根据客商基本档案主键{},没有办法查询到客商管理档案", bdCubasdocEntityList.get(0).getPkCubasdoc()); + } //查找平台 String platformZdyId = "0001A210000000000JUD"; @@ -637,7 +716,7 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity { orderOutTobHeaderDto.setDeliverGoodsCorp(bdCorpEntityList.get(0)); orderOutTobHeaderDto.setPlatformArchives(bdDefdocEntityList.get(0)); orderOutTobHeaderDto.setShopArchives(bdDefdocEntityList2.get(0)); - orderOutTobHeaderDto.setOfsOrder(ofsOrder); + orderOutTobHeaderDto.setSaleOrderMessageDto(saleOrderMessageDto); orderOutTobHeaderDto.setHeader(header); orderOutTobHeaderDto.setDetails(details); diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToC.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToC.java index f9125f9d..3469c208 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToC.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToC.java @@ -18,6 +18,7 @@ import com.hzya.frame.plugin.lets.ofs.service.ITocofsSaleoutService; import com.hzya.frame.plugin.lets.ofsvo.QueryOfsSoSaleOutVo; import com.hzya.frame.plugin.lets.resultvo.CalculateDateVo; import com.hzya.frame.plugin.lets.u8cdto.*; +import com.hzya.frame.plugin.lets.util.ShopTobOrToCUtil; import com.hzya.frame.plugin.lets.util.TocOrderBasicArchivesCacheUtil; import com.hzya.frame.plugin.lets.util.DateStrUtil; import com.hzya.frame.plugin.lets.util.QueryBdBusitypeUtil; @@ -27,7 +28,6 @@ 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.ofssaleorderoutsearch.SaleOutReturnMessageDto; -import com.hzya.frame.ttxofs.dto.ofssalesordersearch.SaleOrderMessageDto; import com.hzya.frame.ttxofs.service.OfsUnifiedService; import com.hzya.frame.web.entity.JsonResultEntity; import org.slf4j.Logger; @@ -92,9 +92,6 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity { @Autowired private TocOrderBasicArchivesCacheUtil basicArchivesCacheUtil; - @Autowired - private ITocofsSaleoutService iTocofsSaleoutService; - @Autowired private ITocofsSaleoutDao iTocofsSaleoutDao; @@ -108,6 +105,9 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity { private static final String ADD = "+"; + @Autowired + private ShopTobOrToCUtil shopTobOrToCUtil; + /** * 按指定时间拉取 * @@ -122,29 +122,24 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity { public void run() { LOCK.lock(); try { - // TODO 注意过滤TOC店铺 CalculateDateVo calculateDateVo = DateStrUtil.calculateCalculateEntireDayPeriod(dateStr); + String tobShop = shopTobOrToCUtil.getCommaShop("TOC"); List headerDetailsDtoList = new ArrayList<>(); QueryOfsSoSaleOutVo queryOfsSoSaleOutVo = new QueryOfsSoSaleOutVo(); - queryOfsSoSaleOutVo.setShipAt_start("2024-07-05 16:38:00"); - queryOfsSoSaleOutVo.setShipAt_end("2024-07-05 16:50:30"); + queryOfsSoSaleOutVo.setShipAt_start(calculateDateVo.getStart_time()); + queryOfsSoSaleOutVo.setShipAt_end(calculateDateVo.getEnd_time()); queryOfsSoSaleOutVo.setClientCode("LETS"); queryOfsSoSaleOutVo.setInternalInstructionType("SALES"); -// queryOfsSoSaleOutVo.setCompanyCode("SHLZ"); queryOfsSoSaleOutVo.setStatus(900L); queryOfsSoSaleOutVo.setPageNo(1L); queryOfsSoSaleOutVo.setPageSize(50L); + queryOfsSoSaleOutVo.setStoreCode(tobShop); // queryOfsSoSaleOutVo.setCode("LETS-SH2024070500000003"); queryOfsSaleOrder(queryOfsSoSaleOutVo, headerDetailsDtoList, 1L); logger.info("数据返回行数:{}", headerDetailsDtoList.size()); if (headerDetailsDtoList.size() > 0) { - //保存到mysql - batchInsert(headerDetailsDtoList); - //过滤成功的数据 - List headerDetailsDtos = filterData(headerDetailsDtoList); - //执行推送主逻辑 - implement(headerDetailsDtos); + getSet(headerDetailsDtoList); } else { logger.info("没有查询到任何数据!不需要同步"); } @@ -168,6 +163,67 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity { } } + /** + * 按指定时间拉取 + * + * @author liuyang + */ + public void startImplement(String code) { + String threadNameStr = StrUtil.format("OFS销售出库(TOC)同步U8C销售订单 出库单单据号:{}", code); + logger.info(threadNameStr); + + Thread thread = new Thread(new Runnable() { + @Override + public void run() { + LOCK.lock(); + try { + String tobShop = shopTobOrToCUtil.getCommaShop("TOC"); + + List headerDetailsDtoList = new ArrayList<>(); + QueryOfsSoSaleOutVo queryOfsSoSaleOutVo = new QueryOfsSoSaleOutVo(); + queryOfsSoSaleOutVo.setClientCode("LETS"); + queryOfsSoSaleOutVo.setInternalInstructionType("SALES"); + queryOfsSoSaleOutVo.setStatus(900L); + queryOfsSoSaleOutVo.setPageNo(1L); + queryOfsSoSaleOutVo.setPageSize(50L); + queryOfsSoSaleOutVo.setStoreCode(tobShop); + queryOfsSoSaleOutVo.setCode(code); + queryOfsSaleOrder(queryOfsSoSaleOutVo, headerDetailsDtoList, 1L); + logger.info("数据返回行数:{}", headerDetailsDtoList.size()); + if (headerDetailsDtoList.size() > 0) { + getSet(headerDetailsDtoList); + } else { + logger.info("没有查询到任何数据!不需要同步"); + } + } catch (Exception e) { + logger.error("startImplement方法抛出异常", e); + } finally { + try { + basicArchivesCacheUtil.clearCache(); + } catch (Exception e) { + logger.info("清理档案缓存失败", e); + } + LOCK.unlock(); + } + } + }, threadNameStr); + thread.start(); + try { + thread.join(); + } catch (Exception e) { + logger.error("thread.join()异常", e); + } + } + + private void getSet(List headerDetailsDtoList) throws Exception { + //保存到mysql + batchInsert(headerDetailsDtoList); + //过滤成功的数据 + List headerDetailsDtos = filterData(headerDetailsDtoList); + //执行推送主逻辑 + implement(headerDetailsDtos); + } + /** * 过滤掉成功的数据 * diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToB.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToB.java index 1c2ce890..6b60de3f 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToB.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToB.java @@ -14,28 +14,20 @@ import com.hzya.frame.plugin.lets.dao.*; import com.hzya.frame.plugin.lets.entity.*; import com.hzya.frame.plugin.lets.ofs.dao.ITocofsReturngoodsDao; import com.hzya.frame.plugin.lets.ofs.dao.ITocofsReturngoodsDetailedDao; -import com.hzya.frame.plugin.lets.ofs.dao.ITocofsSaleoutDetailedDao; import com.hzya.frame.plugin.lets.ofs.entity.TocofsReturngoodsDetailedEntity; import com.hzya.frame.plugin.lets.ofs.entity.TocofsReturngoodsEntity; import com.hzya.frame.plugin.lets.ofsvo.QueryOfsSoSaleOutVo; +import com.hzya.frame.plugin.lets.queryvo.StartAndEndVo; import com.hzya.frame.plugin.lets.resultvo.CalculateDateVo; import com.hzya.frame.plugin.lets.u8cdto.*; -import com.hzya.frame.plugin.lets.util.DateStrUtil; -import com.hzya.frame.plugin.lets.util.QueryBdBusitypeUtil; +import com.hzya.frame.plugin.lets.util.*; import com.hzya.frame.split.SplitListByCountUtil; import com.hzya.frame.ttxofs.dto.InterfaceParamDto; import com.hzya.frame.ttxofs.dto.ofssalesordersearch.HeaderDto; import com.hzya.frame.ttxofs.dto.ofssalesordersearch.SaleOrderMessageDto; -import com.hzya.frame.ttxofs.dto.returngoodordersearch.RerturnGoodsOrderSearchData; -import com.hzya.frame.ttxofs.dto.returngoodordersearch.RerturnGoodsOrderSearchJsonRootBean; -import com.hzya.frame.ttxofs.dto.returngoodsearch.RertunGoodsRootBean; -import com.hzya.frame.ttxofs.dto.returngoodsearch.ReturnGoodHeaderDetailsDataDto; -import com.hzya.frame.ttxofs.dto.returngoodsearch.ReturnGoodSearchDetailsDto; -import com.hzya.frame.ttxofs.dto.returngoodsearch.ReturnGoodSearchHeaderDto; import com.hzya.frame.ttxofs.dto.stock.StockinOrderSearchResponse; import com.hzya.frame.ttxofs.service.OfsUnifiedService; import com.hzya.frame.web.entity.JsonResultEntity; -import lombok.Data; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -103,9 +95,6 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity { @Autowired private IBdCalbodyDao iBdCalbodyDao; - @Autowired - private ITocofsSaleoutDetailedDao iTocofsSaleoutDetailedDao; - @Autowired private QueryBdBusitypeUtil queryBdBusitypeUtil; @@ -115,10 +104,6 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity { @Autowired private IBdSalestruDao iBdSalestruDao; - private static final String NOTHING = "无"; - - private static final String ADD = "+"; - @Autowired private IBdCumandocDao iBdCumandocDao; @@ -140,6 +125,15 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity { @Autowired private ITocofsReturngoodsDetailedDao iTocofsReturngoodsDetailedDao; + @Autowired + private AfterSalesOrderUtil afterSalesOrderUtil; + + @Autowired + private ShopTobOrToCUtil shopTobOrToCUtil; + + @Autowired + private OffsetTimeTime offsetTimeTime; + /** * 按指定时间拉取 * @@ -153,29 +147,24 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity { @Override public void run() { try { - // TODO 注意过滤TOB店铺 - CalculateDateVo calculateDateVo = DateStrUtil.calculateCalculateEntireDayPeriod(dateStr); + //生成一个时间范围 + StartAndEndVo startAndEndVo = offsetTimeTime.offsetTime(); + //2024年8月19日 15:47:51 查询出U8C里标记的店铺TOB属性 + String tobShop = shopTobOrToCUtil.getCommaShop("TOB"); List returnGoodHeaderDetailsDataDtoArrayList = new ArrayList<>(); QueryOfsSoSaleOutVo queryOfsSoSaleOutVo = new QueryOfsSoSaleOutVo(); -// queryOfsSoSaleOutVo.setClosedAt_start("2024-07-16 16:44:00"); -// queryOfsSoSaleOutVo.setClosedAt_end("2024-07-16 16:44:02"); + queryOfsSoSaleOutVo.setClosedAt_start(startAndEndVo.getStart_time()); + queryOfsSoSaleOutVo.setClosedAt_end(startAndEndVo.getEnd_time()); queryOfsSoSaleOutVo.setClientCode("LETS"); - // queryOfsSoSaleOutVo.setInternalInstructionType("SALES"); -// queryOfsSoSaleOutVo.setCompanyCode("SHLZ"); -// queryOfsSoSaleOutVo.setStatus(900L); queryOfsSoSaleOutVo.setPageNo(1L); queryOfsSoSaleOutVo.setPageSize(50L); - queryOfsSoSaleOutVo.setCode("LETS-RE2024070800000001"); + queryOfsSoSaleOutVo.setStoreCode(tobShop); +// queryOfsSoSaleOutVo.setCode("LETS-RE2024081900000001"); queryOfsReturnGoods(queryOfsSoSaleOutVo, returnGoodHeaderDetailsDataDtoArrayList, 1L); logger.info("数据返回行数:{}", returnGoodHeaderDetailsDataDtoArrayList.size()); if (returnGoodHeaderDetailsDataDtoArrayList.size() > 0) { - //保存到mysql - batchInsert(returnGoodHeaderDetailsDataDtoArrayList); - //过滤成功的数据 - List stockinOrderList = filterData(returnGoodHeaderDetailsDataDtoArrayList); - //执行推送主逻辑 - implement(stockinOrderList); + getSet(returnGoodHeaderDetailsDataDtoArrayList); } else { logger.info("没有查询到任何数据!不需要同步"); } @@ -192,6 +181,67 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity { } } + /** + * 按指定时间拉取 + * + * @author liuyang + */ + public void startImplement(String code) { + String threadNameStr = StrUtil.format("OFS售后入库(TOB)同步U8C销售订单 售后入库单号:{}", code); + logger.info(threadNameStr); + + Thread thread = new Thread(new Runnable() { + @Override + public void run() { + try { + //生成一个时间范围 +// StartAndEndVo startAndEndVo = offsetTimeTime.offsetTime(); + //2024年8月19日 15:47:51 查询出U8C里标记的店铺TOB属性 + String tobShop = shopTobOrToCUtil.getCommaShop("TOB"); + + List returnGoodHeaderDetailsDataDtoArrayList = new ArrayList<>(); + QueryOfsSoSaleOutVo queryOfsSoSaleOutVo = new QueryOfsSoSaleOutVo(); +// queryOfsSoSaleOutVo.setClosedAt_start("2002-01-01 00:00:00");// 2024年8月19日 17:13:35 仅作为接口参数验证,O口头反馈根据单号查询,不会启用时间范围搜索 +// queryOfsSoSaleOutVo.setClosedAt_end("2002-01-01 23:59:59"); + queryOfsSoSaleOutVo.setClientCode("LETS"); + queryOfsSoSaleOutVo.setPageNo(1L); + queryOfsSoSaleOutVo.setPageSize(50L); + queryOfsSoSaleOutVo.setStoreCode(tobShop); + queryOfsSoSaleOutVo.setCode(code); + queryOfsReturnGoods(queryOfsSoSaleOutVo, returnGoodHeaderDetailsDataDtoArrayList, 1L); + logger.info("数据返回行数:{}", returnGoodHeaderDetailsDataDtoArrayList.size()); + if (returnGoodHeaderDetailsDataDtoArrayList.size() > 0) { + getSet(returnGoodHeaderDetailsDataDtoArrayList); + } else { + logger.info("没有查询到任何数据!不需要同步"); + } + } catch (Exception e) { + logger.error("startImplement方法抛出异常", e); + } + } + }, threadNameStr); + thread.start(); + try { + thread.join(); + } catch (Exception e) { + logger.error("thread.join()异常", e); + } + } + + /** + * 环境预配置 + * + * @author liuyang + */ + private void getSet(List returnGoodHeaderDetailsDataDtoArrayList) throws Exception { + //保存到mysql + batchInsert(returnGoodHeaderDetailsDataDtoArrayList); + //过滤成功的数据 + List stockinOrderList = filterData(returnGoodHeaderDetailsDataDtoArrayList); + //执行推送主逻辑 + implement(stockinOrderList); + } + /** * 过滤掉成功的数据 * @@ -492,7 +542,14 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity { List details = stockinOrder.getDetails(); //通过售后订单,查询销售订单 - SaleOrderMessageDto saleOrderMessageDto = queryAfterSalesOrder(header); + SaleOrderMessageDto saleOrderMessageDto = null; + try { + saleOrderMessageDto = afterSalesOrderUtil.queryAfterSalesOrder(header); + } catch (Exception e) { + logger.error("查询出售后订单错误,失败原因:{}", e.getMessage()); + Assert.state(false, "查询出售后订单错误,失败原因:{}", e.getMessage()); + } + if (saleOrderMessageDto == null) { Assert.state(false, "没有匹配到售后订单,系统业务无法完成"); } @@ -636,6 +693,7 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity { orderOutTobHeaderDto.setDeliverGoodsCorp(bdCorpEntityList.get(0)); orderOutTobHeaderDto.setPlatformArchives(bdDefdocEntityList.get(0)); orderOutTobHeaderDto.setShopArchives(bdDefdocEntityList2.get(0)); + orderOutTobHeaderDto.setSaleOrderMessageDto(saleOrderMessageDto); orderOutTobHeaderDto.setHeader(header); orderOutTobHeaderDto.setDetails(details); @@ -725,6 +783,9 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity { Assert.notNull(detailsDto.getSkuCode(), "O存货商家编码不能为空"); Assert.notNull(pkCorp, "发货公司主键不能为空"); + //TODO 测试 + detailsDto.setSkuCode("6973391730617"); + BdInvmandocEntity bdInvmandocEntity = new BdInvmandocEntity(); bdInvmandocEntity.setInvcode(detailsDto.getSkuCode()); bdInvmandocEntity.setPkCorp(pkCorp); @@ -849,84 +910,4 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity { tocofsReturngoodsDetailedEntity.setBusinessType("TOB_RETURN");//业务类型 } } - - /** - * 根据售后订单号,查询售后订单 - * - * @param refOrderCode 售后订单号 - * @author liuyang - */ - public RerturnGoodsOrderSearchData getOfsRertunOrder(String refOrderCode) throws Exception { - Long pageSize = 200L; - Long pageNo = 1L; - - QueryOfsSoSaleOutVo queryOfsSoSaleOutVo = new QueryOfsSoSaleOutVo(); - queryOfsSoSaleOutVo.setPageNo(pageNo); - queryOfsSoSaleOutVo.setPageSize(pageSize); - queryOfsSoSaleOutVo.setCode(refOrderCode); - - InterfaceParamDto interfaceParamDto = new InterfaceParamDto(); - interfaceParamDto.setApi("ofs.returnOrder.search"); - interfaceParamDto.setData(JSON.toJSONString(queryOfsSoSaleOutVo)); - RerturnGoodsOrderSearchJsonRootBean rerturnGoodsOrderSearchJsonRootBean = (RerturnGoodsOrderSearchJsonRootBean) ofsUnifiedService.unified(interfaceParamDto); - if (rerturnGoodsOrderSearchJsonRootBean != null) { - if ("false".equals(rerturnGoodsOrderSearchJsonRootBean.getError()) && "0".equals(rerturnGoodsOrderSearchJsonRootBean.getCode()) && "Success".equals(rerturnGoodsOrderSearchJsonRootBean.getMsg())) { - List data = rerturnGoodsOrderSearchJsonRootBean.getData(); - if (data != null && data.size() > 0) { - return data.get(0); - } - } else { - logger.error("查询售后订单失败,接口返回结果:{}", JSON.toJSON(rerturnGoodsOrderSearchJsonRootBean)); - } - } else { - logger.error("rerturnGoodsOrderSearchJsonRootBean为空(返回结果为空),查询入参条件:{}!", JSON.toJSON(queryOfsSoSaleOutVo)); - } - Assert.state(false, "根据售后订单号:{} 没有查询到OFS售后订单", refOrderCode); - return null; - } - - /** - * 查询OFS销售订单 - * - * @param code OFS销售订单编码 - * @author liuyang - */ - public SaleOrderMessageDto getOfsOrder(String code) throws Exception { - Long pageSize = 200L; - Long pageNo = 1L; - - QueryOfsSoSaleOutVo queryOfsSoSaleOutVo = new QueryOfsSoSaleOutVo(); - queryOfsSoSaleOutVo.setPageNo(pageNo); - queryOfsSoSaleOutVo.setPageSize(pageSize); - queryOfsSoSaleOutVo.setCode(code); - - InterfaceParamDto interfaceParamDto = new InterfaceParamDto(); - interfaceParamDto.setApi("ofs.salesOrder.search"); - interfaceParamDto.setData(JSON.toJSONString(queryOfsSoSaleOutVo)); - SaleOrderMessageDto saleOrderMessageDto = (SaleOrderMessageDto) ofsUnifiedService.unified(interfaceParamDto); - return saleOrderMessageDto; - } - - /** - * 查询售后订单 - * - * @author liuyang - */ - private SaleOrderMessageDto queryAfterSalesOrder(StockinOrderSearchResponse.StockinOrder.StockinH header) throws Exception { - if (header != null) { - //根据售后入库单、查询售后订单 - RerturnGoodsOrderSearchData ofsRertunOrder = getOfsRertunOrder(header.getRefOrderCode()); - if (ofsRertunOrder == null || ofsRertunOrder.getHeader() == null || ofsRertunOrder.getDetails() == null) { - Assert.state(false, "根据OFS售后订单编码{},无法查询到售后订单信息!", header.getRefOrderCode()); - } - SaleOrderMessageDto ofsOrder = getOfsOrder(ofsRertunOrder.getHeader().getRefOrderCode()); - if (ofsOrder == null) { - Assert.state(false, "根据OFS销售订单编码{},无法查询到销售订单信息!", ofsRertunOrder.getHeader().getRefOrderCode()); - } - return ofsOrder; - } else { - logger.error("queryAfterSalesOrder方法入参为null(header为null!)"); - } - return null; - } } \ No newline at end of file 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 79ac60c9..7ca0435f 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 @@ -17,6 +17,7 @@ import com.hzya.frame.plugin.lets.ofs.entity.TocofsReturngoodsEntity; import com.hzya.frame.plugin.lets.ofsvo.QueryOfsSoSaleOutVo; import com.hzya.frame.plugin.lets.resultvo.CalculateDateVo; import com.hzya.frame.plugin.lets.u8cdto.*; +import com.hzya.frame.plugin.lets.util.ShopTobOrToCUtil; import com.hzya.frame.plugin.lets.util.TocReturnBasicArchivesCacheUtil; import com.hzya.frame.plugin.lets.util.DateStrUtil; import com.hzya.frame.plugin.lets.util.QueryBdBusitypeUtil; @@ -103,6 +104,9 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { @Autowired private TocReturnBasicArchivesCacheUtil tocReturnBasicArchivesCacheUtil; + @Autowired + private ShopTobOrToCUtil shopTobOrToCUtil; + /** * 按指定时间拉取 * @@ -117,30 +121,26 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { public void run() { LOCK.lock(); try { - // TODO 注意过滤TOC店铺 + String tocShop = shopTobOrToCUtil.getCommaShop("TOC"); CalculateDateVo calculateDateVo = DateStrUtil.calculateCalculateEntireDayPeriod(dateStr); List returnGoodHeaderDetailsDataDtoList = new ArrayList<>(); QueryOfsSoSaleOutVo queryOfsSoSaleOutVo = new QueryOfsSoSaleOutVo(); - queryOfsSoSaleOutVo.setCreated_start("2024-07-16 15:35:35"); - queryOfsSoSaleOutVo.setCreated_end("2024-07-16 15:35:37"); + queryOfsSoSaleOutVo.setCreated_start(calculateDateVo.getStart_time()); + queryOfsSoSaleOutVo.setCreated_end(calculateDateVo.getEnd_time()); queryOfsSoSaleOutVo.setClientCode("LETS"); - // queryOfsSoSaleOutVo.setInternalInstructionType("SALES"); + queryOfsSoSaleOutVo.setInternalInstructionType("SALES"); // queryOfsSoSaleOutVo.setCompanyCode("SHLZ"); - // queryOfsSoSaleOutVo.setStatus(900L); + queryOfsSoSaleOutVo.setStatus(900L); queryOfsSoSaleOutVo.setPageNo(1L); queryOfsSoSaleOutVo.setPageSize(50L); - queryOfsSoSaleOutVo.setCode("LETS-RE2024071600000001"); + queryOfsSoSaleOutVo.setStoreCode(tocShop); +// queryOfsSoSaleOutVo.setCode("LETS-RE2024071600000001"); queryOfsReturnGoods(queryOfsSoSaleOutVo, returnGoodHeaderDetailsDataDtoList, 1L); logger.info("数据返回行数:{}", returnGoodHeaderDetailsDataDtoList.size()); if (returnGoodHeaderDetailsDataDtoList.size() > 0) { - //保存到mysql - batchInsert(returnGoodHeaderDetailsDataDtoList); - //过滤成功的数据 - List returnGoodHeaderDetailsDataDtoList1 = filterData(returnGoodHeaderDetailsDataDtoList); - //执行推送主逻辑 - implement(returnGoodHeaderDetailsDataDtoList1); + getSet(returnGoodHeaderDetailsDataDtoList); } else { logger.info("没有查询到任何数据!不需要同步"); } @@ -164,6 +164,72 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { } } + /** + * 按指定时间拉取 + * + * @author liuyang + */ + public void startImplement(String code) { + String threadNameStr = StrUtil.format("OFS销售出库(TOC)同步U8C销售订单 同步单据号:{}", code); + logger.info(threadNameStr); + + Thread thread = new Thread(new Runnable() { + @Override + public void run() { + LOCK.lock(); + try { + String tocShop = shopTobOrToCUtil.getCommaShop("TOC"); + + List returnGoodHeaderDetailsDataDtoList = new ArrayList<>(); + QueryOfsSoSaleOutVo queryOfsSoSaleOutVo = new QueryOfsSoSaleOutVo(); + queryOfsSoSaleOutVo.setClientCode("LETS"); + queryOfsSoSaleOutVo.setInternalInstructionType("SALES"); + queryOfsSoSaleOutVo.setStatus(900L); + queryOfsSoSaleOutVo.setPageNo(1L); + queryOfsSoSaleOutVo.setPageSize(50L); + queryOfsSoSaleOutVo.setStoreCode(tocShop); + queryOfsSoSaleOutVo.setCode(code); + queryOfsReturnGoods(queryOfsSoSaleOutVo, returnGoodHeaderDetailsDataDtoList, 1L); + logger.info("数据返回行数:{}", returnGoodHeaderDetailsDataDtoList.size()); + if (returnGoodHeaderDetailsDataDtoList.size() > 0) { + getSet(returnGoodHeaderDetailsDataDtoList); + } else { + logger.info("没有查询到任何数据!不需要同步"); + } + } catch (Exception e) { + logger.error("startImplement方法抛出异常", e); + } finally { + try { + tocReturnBasicArchivesCacheUtil.clearCache(); + } catch (Exception e) { + logger.info("清理档案缓存失败", e); + } + LOCK.unlock(); + } + } + }, threadNameStr); + thread.start(); + try { + thread.join(); + } catch (Exception e) { + logger.error("thread.join()异常", e); + } + } + + /** + * 预备执行逻辑 + * + * @author liuyang + */ + private void getSet(List returnGoodHeaderDetailsDataDtoList) throws Exception { + //保存到mysql + batchInsert(returnGoodHeaderDetailsDataDtoList); + //过滤成功的数据 + List returnGoodHeaderDetailsDataDtoList1 = filterData(returnGoodHeaderDetailsDataDtoList); + //执行推送主逻辑 + implement(returnGoodHeaderDetailsDataDtoList1); + } + /** * 过滤掉成功的数据 * diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/queryvo/StartAndEndVo.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/queryvo/StartAndEndVo.java new file mode 100644 index 00000000..d66b1ebd --- /dev/null +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/queryvo/StartAndEndVo.java @@ -0,0 +1,121 @@ +package com.hzya.frame.plugin.lets.queryvo; + +public class StartAndEndVo { + + /** + * 开始时间 + */ + private String start_time; + + /** + * 结束时间 + */ + private String end_time; + + /** + * 销售订单号 + */ + private String src_order_no; + + /** + * 退货入库单单号 + */ + private String order_no; + + /** + * 预入库单号 + */ + private String stockinNo; + + /** + * 出库单号 + */ + private String stockout_no; + + /** + * 店铺编码 + */ + private String shop_nos; + + /** + * 销售订单号 + */ + private String vreceiptcode; + + /** + * 业务类型 + */ + private String cbiztype; + + public String getCbiztype() { + return cbiztype; + } + + public void setCbiztype(String cbiztype) { + this.cbiztype = cbiztype; + } + + public String getVreceiptcode() { + return vreceiptcode; + } + + public void setVreceiptcode(String vreceiptcode) { + this.vreceiptcode = vreceiptcode; + } + + public String getShop_nos() { + return shop_nos; + } + + public void setShop_nos(String shop_nos) { + this.shop_nos = shop_nos; + } + + public String getStockout_no() { + return stockout_no; + } + + public void setStockout_no(String stockout_no) { + this.stockout_no = stockout_no; + } + + public String getStockinNo() { + return stockinNo; + } + + public void setStockinNo(String stockinNo) { + this.stockinNo = stockinNo; + } + + public String getOrder_no() { + return order_no; + } + + public void setOrder_no(String order_no) { + this.order_no = order_no; + } + + public String getSrc_order_no() { + return src_order_no; + } + + public void setSrc_order_no(String src_order_no) { + this.src_order_no = src_order_no; + } + + public String getStart_time() { + return start_time; + } + + public void setStart_time(String start_time) { + this.start_time = start_time; + } + + public String getEnd_time() { + return end_time; + } + + public void setEnd_time(String end_time) { + this.end_time = end_time; + } +} diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/u8cdto/OrderOutTobHeaderDto.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/u8cdto/OrderOutTobHeaderDto.java index caf11d3c..0cb642fd 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/u8cdto/OrderOutTobHeaderDto.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/u8cdto/OrderOutTobHeaderDto.java @@ -80,5 +80,5 @@ public class OrderOutTobHeaderDto extends HeaderDetailsDto { /** * OFS销售订单 */ - private SaleOrderMessageDto ofsOrder; + private SaleOrderMessageDto saleOrderMessageDto; } \ No newline at end of file diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/u8cdto/OrderToBHeaderDto.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/u8cdto/OrderToBHeaderDto.java index 9e345caa..5344b07e 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/u8cdto/OrderToBHeaderDto.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/u8cdto/OrderToBHeaderDto.java @@ -3,6 +3,7 @@ package com.hzya.frame.plugin.lets.u8cdto; import com.hzya.frame.plugin.lets.entity.*; import com.hzya.frame.ttxofs.dto.ofssaleorderoutsearch.DetailsDto; import com.hzya.frame.ttxofs.dto.ofssaleorderoutsearch.HeaderDto; +import com.hzya.frame.ttxofs.dto.ofssalesordersearch.SaleOrderMessageDto; import com.hzya.frame.ttxofs.dto.returngoodsearch.ReturnGoodSearchDetailsDto; import com.hzya.frame.ttxofs.dto.returngoodsearch.ReturnGoodSearchHeaderDto; import com.hzya.frame.ttxofs.dto.stock.StockinOrderSearchResponse; @@ -91,4 +92,9 @@ public class OrderToBHeaderDto { * TOB售后入库单表体 */ private List details; + + /** + * 售后订单 + */ + private SaleOrderMessageDto saleOrderMessageDto; } \ No newline at end of file diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/util/AfterSalesOrderUtil.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/util/AfterSalesOrderUtil.java new file mode 100644 index 00000000..854ab5ff --- /dev/null +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/util/AfterSalesOrderUtil.java @@ -0,0 +1,116 @@ +package com.hzya.frame.plugin.lets.util; + +import cn.hutool.core.lang.Assert; +import com.alibaba.fastjson.JSON; +import com.hzya.frame.plugin.lets.ofsvo.QueryOfsSoSaleOutVo; +import com.hzya.frame.plugin.lets.plugin.sales.SoSaleReturnPluginInitializerToB; +import com.hzya.frame.ttxofs.dto.InterfaceParamDto; +import com.hzya.frame.ttxofs.dto.ofssalesordersearch.SaleOrderMessageDto; +import com.hzya.frame.ttxofs.dto.returngoodordersearch.RerturnGoodsOrderSearchData; +import com.hzya.frame.ttxofs.dto.returngoodordersearch.RerturnGoodsOrderSearchJsonRootBean; +import com.hzya.frame.ttxofs.dto.stock.StockinOrderSearchResponse; +import com.hzya.frame.ttxofs.service.OfsUnifiedService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * @Author:liuyang + * @Package:com.hzya.frame.plugin.lets.util + * @Project:kangarooDataCenterV3 + * @name:AfterSalesOrderUtil + * @Date:2024/8/19 14:59 + * @Filename:AfterSalesOrderUtil + */ +@Component +public class AfterSalesOrderUtil { + + Logger logger = LoggerFactory.getLogger(AfterSalesOrderUtil.class); + + @Autowired + private OfsUnifiedService ofsUnifiedService; + + /** + * 查询售后订单 + * + * @author liuyang + */ + public SaleOrderMessageDto queryAfterSalesOrder(StockinOrderSearchResponse.StockinOrder.StockinH header) throws Exception { + if (header != null) { + //根据售后入库单、查询售后订单 + RerturnGoodsOrderSearchData ofsRertunOrder = getOfsRertunOrder(header.getRefOrderCode()); + if (ofsRertunOrder == null || ofsRertunOrder.getHeader() == null || ofsRertunOrder.getDetails() == null) { + Assert.state(false, "根据OFS售后订单编码{},无法查询到售后订单信息!", header.getRefOrderCode()); + } + SaleOrderMessageDto ofsOrder = getOfsOrder(ofsRertunOrder.getHeader().getRefOrderCode()); + if (ofsOrder == null) { + Assert.state(false, "根据OFS销售订单编码{},无法查询到销售订单信息!", ofsRertunOrder.getHeader().getRefOrderCode()); + } + return ofsOrder; + } else { + logger.error("queryAfterSalesOrder方法入参为null(header为null!)"); + } + return null; + } + + /** + * 根据售后订单号,查询售后订单 + * + * @param refOrderCode 售后订单号 + * @author liuyang + */ + public RerturnGoodsOrderSearchData getOfsRertunOrder(String refOrderCode) throws Exception { + Long pageSize = 200L; + Long pageNo = 1L; + + QueryOfsSoSaleOutVo queryOfsSoSaleOutVo = new QueryOfsSoSaleOutVo(); + queryOfsSoSaleOutVo.setPageNo(pageNo); + queryOfsSoSaleOutVo.setPageSize(pageSize); + queryOfsSoSaleOutVo.setCode(refOrderCode); + + InterfaceParamDto interfaceParamDto = new InterfaceParamDto(); + interfaceParamDto.setApi("ofs.returnOrder.search"); + interfaceParamDto.setData(JSON.toJSONString(queryOfsSoSaleOutVo)); + RerturnGoodsOrderSearchJsonRootBean rerturnGoodsOrderSearchJsonRootBean = (RerturnGoodsOrderSearchJsonRootBean) ofsUnifiedService.unified(interfaceParamDto); + if (rerturnGoodsOrderSearchJsonRootBean != null) { + if ("false".equals(rerturnGoodsOrderSearchJsonRootBean.getError()) && "0".equals(rerturnGoodsOrderSearchJsonRootBean.getCode()) && "Success".equals(rerturnGoodsOrderSearchJsonRootBean.getMsg())) { + List data = rerturnGoodsOrderSearchJsonRootBean.getData(); + if (data != null && data.size() > 0) { + return data.get(0); + } + } else { + logger.error("查询售后订单失败,接口返回结果:{}", JSON.toJSON(rerturnGoodsOrderSearchJsonRootBean)); + } + } else { + logger.error("rerturnGoodsOrderSearchJsonRootBean为空(返回结果为空),查询入参条件:{}!", JSON.toJSON(queryOfsSoSaleOutVo)); + } + Assert.state(false, "根据售后订单号:{} 没有查询到OFS售后订单", refOrderCode); + return null; + } + + /** + * 查询OFS销售订单 + * + * @param code OFS销售订单编码 + * @author liuyang + */ + public SaleOrderMessageDto getOfsOrder(String code) throws Exception { + Long pageSize = 200L; + Long pageNo = 1L; + + QueryOfsSoSaleOutVo queryOfsSoSaleOutVo = new QueryOfsSoSaleOutVo(); + queryOfsSoSaleOutVo.setPageNo(pageNo); + queryOfsSoSaleOutVo.setPageSize(pageSize); + queryOfsSoSaleOutVo.setCode(code); + + InterfaceParamDto interfaceParamDto = new InterfaceParamDto(); + interfaceParamDto.setApi("ofs.salesOrder.search"); + interfaceParamDto.setData(JSON.toJSONString(queryOfsSoSaleOutVo)); + SaleOrderMessageDto saleOrderMessageDto = (SaleOrderMessageDto) ofsUnifiedService.unified(interfaceParamDto); + return saleOrderMessageDto; + } + +} diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/util/OffsetTimeTime.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/util/OffsetTimeTime.java new file mode 100644 index 00000000..dda7f9a6 --- /dev/null +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/util/OffsetTimeTime.java @@ -0,0 +1,39 @@ +package com.hzya.frame.plugin.lets.util; + +import cn.hutool.core.date.DateField; +import cn.hutool.core.date.DateUtil; +import com.hzya.frame.plugin.lets.queryvo.StartAndEndVo; +import org.springframework.stereotype.Component; + +import java.util.Date; + +/** + * @Author:liuyang + * @Package:com.hzya.frame.plugin.lets.util + * @Project:kangarooDataCenterV3 + * @name:OffsetTimeTime + * @Date:2024/8/19 16:27 + * @Filename:OffsetTimeTime + */ +@Component +public class OffsetTimeTime { + /** + * 实时执行,计算时间 + * + * @author liuyang + */ + public StartAndEndVo offsetTime() { + StartAndEndVo startAndEndVo = new StartAndEndVo(); + Date currentDate = new Date(); + Date startTime = DateUtil.offset(currentDate, DateField.MINUTE, -10); + Date endTime = DateUtil.offset(currentDate, DateField.MINUTE, -2); + + String startTimeStr = DateUtil.format(startTime, "yyyy-MM-dd HH:mm:ss"); + String endTimeStr = DateUtil.format(endTime, "yyyy-MM-dd HH:mm:ss"); + + startAndEndVo.setStart_time(startTimeStr); + startAndEndVo.setEnd_time(endTimeStr); + + return startAndEndVo; + } +} diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/util/ShopTobOrToCUtil.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/util/ShopTobOrToCUtil.java new file mode 100644 index 00000000..16e69886 --- /dev/null +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/util/ShopTobOrToCUtil.java @@ -0,0 +1,51 @@ +package com.hzya.frame.plugin.lets.util; + +import cn.hutool.core.lang.Assert; +import com.hzya.frame.plugin.lets.dao.IBdDefdocDao; +import com.hzya.frame.plugin.lets.entity.BdDefdocEntity; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Author:liuyang + * @Package:com.hzya.frame.plugin.lets.util + * @Project:kangarooDataCenterV3 + * @name:ShopTobOrToCUtil + * @Date:2024/8/19 15:20 + * @Filename:ShopTobOrToCUtil + */ +@Component +public class ShopTobOrToCUtil { + + @Autowired + private IBdDefdocDao iBdDefdocDao; + + /** + * 查询TOB或者TOC对应的销售订单店铺 + * + * @param memo TOB、TOC请传这个 + */ + public List queryU8cShop(String memo) { + //查询U8C店铺档案 + String platformZdyId2 = "0001A210000000000XZX"; + + BdDefdocEntity bdDefdocEntity2 = new BdDefdocEntity(); + bdDefdocEntity2.setPkDefdoclist(platformZdyId2); + bdDefdocEntity2.setDr(0); + bdDefdocEntity2.setDataSourceCode("lets_u8c"); + bdDefdocEntity2.setMemo(memo); + List bdDefdocEntityList2 = iBdDefdocDao.query(bdDefdocEntity2); + if (bdDefdocEntityList2.size() == 0) { + Assert.state(false, "根据O店铺编码{},无法匹配到U8C店铺自定义档案 备注类型:{}", memo); + } + return bdDefdocEntityList2; + } + + public String getCommaShop(String memo) { + List bdDefdocEntityList = queryU8cShop(memo); + return bdDefdocEntityList.stream().map(BdDefdocEntity::getDoccode).collect(Collectors.joining(",")); + } +} \ No newline at end of file diff --git a/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToBTest.java b/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToBTest.java index 6b1ce1f6..cc072f2a 100644 --- a/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToBTest.java +++ b/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToBTest.java @@ -28,7 +28,8 @@ public class SoSaleReturnPluginInitializerToBTest { @Test public void startImplement() { try { - soSaleReturnPluginInitializerToB.startImplement(null, null); +// soSaleReturnPluginInitializerToB.startImplement(null, null); + soSaleReturnPluginInitializerToB.startImplement("LETS-RE2024081900000001"); } catch (Exception e) { e.printStackTrace(); } diff --git a/buildpackage/src/test/java/com/hzya/frame/plugin/lets/util/ShopTobOrToCUtilTest.java b/buildpackage/src/test/java/com/hzya/frame/plugin/lets/util/ShopTobOrToCUtilTest.java new file mode 100644 index 00000000..d5d8bf8b --- /dev/null +++ b/buildpackage/src/test/java/com/hzya/frame/plugin/lets/util/ShopTobOrToCUtilTest.java @@ -0,0 +1,38 @@ +package com.hzya.frame.plugin.lets.util; + +import com.hzya.frame.WebappApplication; +import com.hzya.frame.plugin.lets.entity.BdDefdocEntity; +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.List; + +import static org.junit.Assert.*; + +/** + * @Author:liuyang + * @Package:com.hzya.frame.plugin.lets.util + * @Project:kangarooDataCenterV3 + * @name:ShopTobOrToCUtilTest + * @Date:2024/8/19 15:32 + * @Filename:ShopTobOrToCUtilTest + */ +@RunWith(SpringRunner.class) +@SpringBootTest(classes = WebappApplication.class) +public class ShopTobOrToCUtilTest { + + @Autowired + private ShopTobOrToCUtil shopTobOrToCUtil; + + @Test + public void queryU8cShop() { + try { + System.out.println(shopTobOrToCUtil.getCommaShop("TOC")); + } catch (Exception e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/service/src/main/java/com/hzya/frame/ttxofs/basics/ApiDtoCacheMap.java b/service/src/main/java/com/hzya/frame/ttxofs/basics/ApiDtoCacheMap.java index f3755c16..60b04ba3 100644 --- a/service/src/main/java/com/hzya/frame/ttxofs/basics/ApiDtoCacheMap.java +++ b/service/src/main/java/com/hzya/frame/ttxofs/basics/ApiDtoCacheMap.java @@ -7,6 +7,7 @@ import com.hzya.frame.ttxofs.dto.ofsBaseSearch.OfsSupplierReturnMessageDto; import com.hzya.frame.ttxofs.dto.ofsTransferOrderSearch.OFSTranseferOrderSearchResponse; import com.hzya.frame.ttxofs.dto.ofssaleorderoutsearch.SaleOutReturnMessageDto; import com.hzya.frame.ttxofs.dto.ofssalesordersearch.SaleOrderMessageDto; +import com.hzya.frame.ttxofs.dto.returngoodordersearch.RerturnGoodsOrderSearchJsonRootBean; import com.hzya.frame.ttxofs.dto.stock.StockinOrderSearchResponse; import java.util.HashMap; @@ -35,9 +36,9 @@ public class ApiDtoCacheMap { apiDtoCacheMap.put("ofs.store.search", new OfsShopReturnMessageDto());//店铺查询 apiDtoCacheMap.put("ofs.vendor.search", new OfsSupplierReturnMessageDto());//店铺查询 - - apiDtoCacheMap.put("ofs.sku.search", new OFSSKUSearchResponse());//OFS存货档案查询接口 apiDtoCacheMap.put("ofs.inventory.class.search", new OFSSKUClassSearchResponse());//OFS存货分类查询接口 + + apiDtoCacheMap.put("ofs.returnOrder.search", new RerturnGoodsOrderSearchJsonRootBean());//售后订单 } } diff --git a/service/src/main/java/com/hzya/frame/ttxofs/basics/ReturnMessageBasics.java b/service/src/main/java/com/hzya/frame/ttxofs/basics/ReturnMessageBasics.java index f08a3976..874ca0a6 100644 --- a/service/src/main/java/com/hzya/frame/ttxofs/basics/ReturnMessageBasics.java +++ b/service/src/main/java/com/hzya/frame/ttxofs/basics/ReturnMessageBasics.java @@ -1,8 +1,6 @@ package com.hzya.frame.ttxofs.basics; -import com.hzya.frame.ttxofs.dto.ofssalesordersearch.HeaderDetailsDto; - -import java.util.List; +import lombok.Data; /** * @Author:liuyang @@ -12,42 +10,10 @@ import java.util.List; * @Date:2024/7/30 11:45 * @Filename:ReturnMessageBasics */ +@Data public class ReturnMessageBasics { - private String code; private String msg; private String notify; private String error; - - public String getCode() { - return code; - } - - public void setCode(String code) { - this.code = code; - } - - public String getMsg() { - return msg; - } - - public void setMsg(String msg) { - this.msg = msg; - } - - public String getNotify() { - return notify; - } - - public void setNotify(String notify) { - this.notify = notify; - } - - public String getError() { - return error; - } - - public void setError(String error) { - this.error = error; - } } diff --git a/service/src/main/java/com/hzya/frame/ttxofs/dto/ofssalesordersearch/HeaderDto.java b/service/src/main/java/com/hzya/frame/ttxofs/dto/ofssalesordersearch/HeaderDto.java index ec259c18..ccaa526f 100755 --- a/service/src/main/java/com/hzya/frame/ttxofs/dto/ofssalesordersearch/HeaderDto.java +++ b/service/src/main/java/com/hzya/frame/ttxofs/dto/ofssalesordersearch/HeaderDto.java @@ -97,6 +97,17 @@ public class HeaderDto { private String isFinanical; private String finanicalStatus; + //会员id + private String memberId; + + public String getMemberId() { + return memberId; + } + + public void setMemberId(String memberId) { + this.memberId = memberId; + } + public String getId() { return id; } diff --git a/service/src/main/java/com/hzya/frame/ttxofs/dto/returngoodordersearch/RerturnGoodsOrderSearchData.java b/service/src/main/java/com/hzya/frame/ttxofs/dto/returngoodordersearch/RerturnGoodsOrderSearchData.java new file mode 100755 index 00000000..6c9e8cc1 --- /dev/null +++ b/service/src/main/java/com/hzya/frame/ttxofs/dto/returngoodordersearch/RerturnGoodsOrderSearchData.java @@ -0,0 +1,15 @@ +package com.hzya.frame.ttxofs.dto.returngoodordersearch; + +import java.util.List; + +/** + * Auto-generated: 2024-08-19 11:31:49 + * + * @author bejson.com (i@bejson.com) + * @website http://www.bejson.com/java2pojo/ + */ +@lombok.Data +public class RerturnGoodsOrderSearchData { + private RerturnGoodsOrderSearchHeader header; + private List details; +} \ No newline at end of file diff --git a/service/src/main/java/com/hzya/frame/ttxofs/dto/returngoodordersearch/RerturnGoodsOrderSearchDetails.java b/service/src/main/java/com/hzya/frame/ttxofs/dto/returngoodordersearch/RerturnGoodsOrderSearchDetails.java new file mode 100755 index 00000000..7d456edf --- /dev/null +++ b/service/src/main/java/com/hzya/frame/ttxofs/dto/returngoodordersearch/RerturnGoodsOrderSearchDetails.java @@ -0,0 +1,45 @@ +/** + * Copyright 2024 bejson.com + */ +package com.hzya.frame.ttxofs.dto.returngoodordersearch; + +import lombok.Data; + +/** + * Auto-generated: 2024-08-19 11:31:49 + * + * @author bejson.com (i@bejson.com) + * @website http://www.bejson.com/java2pojo/ + */ +@Data +public class RerturnGoodsOrderSearchDetails { + private String clientCode; + private String companyCode; + private String storeCode; + private String id; + private String returnOrderId; + private String returnOrderCode; + private String skuCode; + private String skuName; + private String returnType; + private String refundInd; + private String requestQty; + private String fulfillQty; + private String quantityUM; + private String msrPrice; + private String listPrice; + private String totalWeight; + private String totalVolume; + private String weightUM; + private String volumeUM; + private String totalAmount; + private String sourceOrderCode; + private String sourceDiscountPrice; + private String sourcePayAmount; + private String sourceRequestQty; + private String bomType; + private String created; + private String createdBy; + private String lastUpdated; + private String lastUpdatedBy; +} \ No newline at end of file diff --git a/service/src/main/java/com/hzya/frame/ttxofs/dto/returngoodordersearch/RerturnGoodsOrderSearchHeader.java b/service/src/main/java/com/hzya/frame/ttxofs/dto/returngoodordersearch/RerturnGoodsOrderSearchHeader.java new file mode 100755 index 00000000..d8a99a56 --- /dev/null +++ b/service/src/main/java/com/hzya/frame/ttxofs/dto/returngoodordersearch/RerturnGoodsOrderSearchHeader.java @@ -0,0 +1,66 @@ +package com.hzya.frame.ttxofs.dto.returngoodordersearch; + +import lombok.Data; + +/** + * Auto-generated: 2024-08-19 11:31:49 + * + * @author bejson.com (i@bejson.com) + * @website http://www.bejson.com/java2pojo/ + */ +@Data +public class RerturnGoodsOrderSearchHeader { + private String id; + private String clientCode; + private String companyCode; + private String storeCode; + private String facilityCode; + private String returnType; + private String exchangeType; + private String refundInd; + private String internalOrderType; + private String bizChannel; + private String code; + private String sourceUserAccount; + private String sourceUserName; + private String returnStatus; + private String shipStatus; + private String refundStatus; + private String refOrderCode; + private String refOrderId; + private String refOrderType; + private String refOrderStatusWhenReturned; + private String sourcePlatformCode; + private String sourceOrderCode; + private String returnNote; + private String requestRefundAmount; + private String actualRefundAmount; + private String totalQty; + private String totalFulfillQty; + private String shipFromAttentionTo; + private String shipFromAddress; + private String shipFromCountry; + private String shipFromState; + private String shipFromCity; + private String shipFromDistrict; + private String shipFromMobile; + private String returnCarrier; + private String returnWaybillCode; + private String auditBy; + private String auditAt; + private String refundThru; + private String csStuff; + private String errorCode; + private String errorDesc; + private String verificationStatus; + private String status; + private String created; + private String createdBy; + private String lastUpdated; + private String lastUpdatedBy; + private String processType; + private String returnNode; + private String sourceModifiedAt; + private String agNumberOfRetries; + private String realReturnReason; +} \ No newline at end of file diff --git a/service/src/main/java/com/hzya/frame/ttxofs/dto/returngoodordersearch/RerturnGoodsOrderSearchJsonRootBean.java b/service/src/main/java/com/hzya/frame/ttxofs/dto/returngoodordersearch/RerturnGoodsOrderSearchJsonRootBean.java new file mode 100755 index 00000000..01d95cef --- /dev/null +++ b/service/src/main/java/com/hzya/frame/ttxofs/dto/returngoodordersearch/RerturnGoodsOrderSearchJsonRootBean.java @@ -0,0 +1,18 @@ +package com.hzya.frame.ttxofs.dto.returngoodordersearch; + +import com.hzya.frame.ttxofs.basics.ReturnMessageBasics; + +import java.util.List; + +import lombok.Data; + +/** + * Auto-generated: 2024-08-19 11:31:49 + * + * @author bejson.com (i@bejson.com) + * @website http://www.bejson.com/java2pojo/ + */ +@Data +public class RerturnGoodsOrderSearchJsonRootBean extends ReturnMessageBasics { + private List data; +} \ No newline at end of file diff --git a/service/src/main/java/com/hzya/frame/ttxofs/dto/returngoodsearch/ReturnGoodHeaderDetailsDataDto.java b/service/src/main/java/com/hzya/frame/ttxofs/dto/returngoodsearch/ReturnGoodHeaderDetailsDataDto.java index 82e281e4..fea9479f 100755 --- a/service/src/main/java/com/hzya/frame/ttxofs/dto/returngoodsearch/ReturnGoodHeaderDetailsDataDto.java +++ b/service/src/main/java/com/hzya/frame/ttxofs/dto/returngoodsearch/ReturnGoodHeaderDetailsDataDto.java @@ -8,6 +8,7 @@ import lombok.Data; import java.util.List; /** + * 售后入库单 * Auto-generated: 2024-08-09 10:15:6 * * @author bejson.com (i@bejson.com)