提交core

This commit is contained in:
liuy 2024-08-15 16:03:22 +08:00
parent 4d6f96bb62
commit f2c08a520e
17 changed files with 1048 additions and 240 deletions

View File

@ -6,7 +6,7 @@ import org.springframework.boot.web.servlet.support.SpringBootServletInitializer
/***
* @Content:War启动类 继承SpringBootServletInitializer 初始化servlet 环境
* @Author 👻👻👻👻👻👻👻👻 gjh
* @Date 2022-11-29 14:27
* @Date 2022-11-29 14:27
* @Param
* @return
**/

View File

@ -203,6 +203,9 @@
WHERE
bd_invbasdoc.dr = 0
and bd_taxitems.dr = 0
<if test="invcode!=null and invcode!=''">
and bd_invbasdoc.invcode = #{invcode}
</if>
</select>
</mapper>

View File

@ -1,5 +1,7 @@
package com.hzya.frame.plugin.lets.ofsvo;
import lombok.Data;
/**
* @Authorliuyang
* @Packagecom.hzya.frame.plugin.lets.ofsvo
@ -8,6 +10,7 @@ package com.hzya.frame.plugin.lets.ofsvo;
* @Date2024/7/31 18:40
* @FilenameQueryOfsSoSaleOutVo
*/
@Data
public class QueryOfsSoSaleOutVo {
private String created_start;
@ -28,75 +31,7 @@ public class QueryOfsSoSaleOutVo {
private String code;
public String getCode() {
return code;
}
private String shipAt_start;
public void setCode(String code) {
this.code = code;
}
public String getInternalInstructionType() {
return internalInstructionType;
}
public void setInternalInstructionType(String internalInstructionType) {
this.internalInstructionType = internalInstructionType;
}
public String getCreated_start() {
return created_start;
}
public void setCreated_start(String created_start) {
this.created_start = created_start;
}
public String getCreated_end() {
return created_end;
}
public void setCreated_end(String created_end) {
this.created_end = created_end;
}
public String getClientCode() {
return clientCode;
}
public void setClientCode(String clientCode) {
this.clientCode = clientCode;
}
public String getCompanyCode() {
return companyCode;
}
public void setCompanyCode(String companyCode) {
this.companyCode = companyCode;
}
public Long getStatus() {
return status;
}
public void setStatus(Long status) {
this.status = status;
}
public Long getPageNo() {
return pageNo;
}
public void setPageNo(Long pageNo) {
this.pageNo = pageNo;
}
public Long getPageSize() {
return pageSize;
}
public void setPageSize(Long pageSize) {
this.pageSize = pageSize;
}
private String shipAt_end;
}

View File

@ -50,8 +50,6 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity {
Logger logger = LoggerFactory.getLogger(SoSaleOutPluginInitializerToB.class);
private static final ReentrantLock LOCK = new ReentrantLock(true);
@Autowired
private IBdCorpDao iBdCorpDao;
@ -102,9 +100,6 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity {
@Autowired
private IBdCalbodyDao iBdCalbodyDao;
@Autowired
private TocOrderBasicArchivesCacheUtil basicArchivesCacheUtil;
@Autowired
private ITocofsSaleoutDao iTocofsSaleoutDao;
@ -120,10 +115,6 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity {
@Autowired
private IBdSalestruDao iBdSalestruDao;
private static final String NOTHING = "";
private static final String ADD = "+";
@Autowired
private IBdCumandocDao iBdCumandocDao;
@ -151,15 +142,14 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
LOCK.lock();
try {
// TODO 注意过滤TOB店铺
CalculateDateVo calculateDateVo = DateStrUtil.calculateCalculateEntireDayPeriod(dateStr);
List<HeaderDetailsDto> headerDetailsDtoList = new ArrayList<>();
QueryOfsSoSaleOutVo queryOfsSoSaleOutVo = new QueryOfsSoSaleOutVo();
queryOfsSoSaleOutVo.setCreated_start("2024-01-02 00:58:22");
queryOfsSoSaleOutVo.setCreated_end("2024-01-02 11:58:23");
queryOfsSoSaleOutVo.setCreated_start("2024-01-02 11:58:20");
queryOfsSoSaleOutVo.setCreated_end("2024-01-02 11:58:22");
queryOfsSoSaleOutVo.setClientCode("LETS");
// queryOfsSoSaleOutVo.setInternalInstructionType("SALES");
queryOfsSoSaleOutVo.setCompanyCode("SHLZ");
@ -181,8 +171,6 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity {
}
} catch (Exception e) {
logger.error("startImplement方法抛出异常", e);
} finally {
LOCK.unlock();
}
}
}, threadNameStr);
@ -347,6 +335,8 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity {
BdDefdocEntity platformArchives = orderOutTobHeaderDto.getPlatformArchives();
//生成业务日期
String generateBusinessDate = createGenerateBusinessDate(orderOutTobHeaderDto);
//店铺
BdDefdocEntity shopArchives = orderOutTobHeaderDto.getShopArchives();
SaleorderRequestDto saleorderRequestDto = new SaleorderRequestDto();
SaleorderRequestParentDto saleorderRequestParentDto = new SaleorderRequestParentDto();
@ -374,7 +364,9 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity {
saleorderRequestParentDto.setPk_defdoc2(platformArchives.getPkDefdoc());
saleorderRequestParentDto.setVdef2(platformArchives.getDocname());
//TODO 2024年8月8日 17:17:58 店铺档案自定义项1先不传后续维护好之后再传!
//店铺
saleorderRequestParentDto.setPk_defdoc1(shopArchives.getPkDefdoc());
saleorderRequestParentDto.setVdef1(shopArchives.getDocname());
saleorderRequestDto.setParentvo(saleorderRequestParentDto);
@ -475,24 +467,22 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity {
* @author liuyang
*/
private String createGenerateBusinessDate(OrderOutTobHeaderDto orderOutTobHeaderDto) {
return "2024-08-13";
//TODO 测试
// if (orderOutTobHeaderDto != null && orderOutTobHeaderDto.getHeader() != null && orderOutTobHeaderDto.getHeader().getShipAt() != null) {
// HeaderDto header = orderOutTobHeaderDto.getHeader();
// String shipAt = header.getShipAt();
// String businessFormat = null;
// try {
// Date dbill = DateUtil.parse(shipAt);
// businessFormat = DateUtil.format(dbill, "yyyy-MM-dd");
// } catch (Exception e) {
// logger.error("业务日期生成失败", e);
// }
// return businessFormat;
// } else {
// logger.error("生成出库日期失败或者shipAt为空! json{}", JSON.toJSON(orderOutTobHeaderDto));
// Assert.state(false, "生成出库日期失败或者shipAt为空! json{}", JSON.toJSON(orderOutTobHeaderDto));
// return null;
// }
if (orderOutTobHeaderDto != null && orderOutTobHeaderDto.getHeader() != null && orderOutTobHeaderDto.getHeader().getShipAt() != null) {
HeaderDto header = orderOutTobHeaderDto.getHeader();
String shipAt = header.getShipAt();
String businessFormat = null;
try {
Date dbill = DateUtil.parse(shipAt);
businessFormat = DateUtil.format(dbill, "yyyy-MM-dd");
} catch (Exception e) {
logger.error("业务日期生成失败", e);
}
return businessFormat;
} else {
logger.error("生成出库日期失败或者shipAt为空! json{}", JSON.toJSON(orderOutTobHeaderDto));
Assert.state(false, "生成出库日期失败或者shipAt为空! json{}", JSON.toJSON(orderOutTobHeaderDto));
return null;
}
}
/**
@ -565,6 +555,7 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity {
}
//业务部门
//2024年8月14日 10:38:37 已经和佳妮确认
String deptName = "其他部门";
BdDeptdocEntity bdDeptdocEntity = new BdDeptdocEntity();
bdDeptdocEntity.setDataSourceCode("lets_u8c");
@ -609,6 +600,21 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity {
Assert.state(false, "根据O平台编码{}无法匹配到U8C平台自定义档案 自定义档案主键:{}", sourcePlatformCode, platformZdyId);
}
//查询U8C店铺档案
String platformZdyId2 = "0001A210000000000XZX";
String ofsStoreCode = header.getStoreCode();
BdDefdocEntity bdDefdocEntity2 = new BdDefdocEntity();
bdDefdocEntity2.setPkDefdoclist(platformZdyId2);
bdDefdocEntity2.setDr(0);
bdDefdocEntity2.setDataSourceCode("lets_u8c");
bdDefdocEntity2.setDoccode(ofsStoreCode);
List<BdDefdocEntity> bdDefdocEntityList2 = iBdDefdocDao.query(bdDefdocEntity2);
if (bdDefdocEntityList2.size() == 0) {
Assert.state(false, "根据O店铺编码{}无法匹配到U8C店铺自定义档案 自定义档案主键:{}", ofsStoreCode, platformZdyId);
} else if (bdDefdocEntityList2.size() >= 2) {
Assert.state(false, "根据O店铺编码{}无法匹配到U8C店铺自定义档案 自定义档案主键:{}", ofsStoreCode, platformZdyId);
}
OrderOutTobHeaderDto orderOutTobHeaderDto = new OrderOutTobHeaderDto();
orderOutTobHeaderDto.setBdCorpEntity(bdCorpEntityList.get(0));
orderOutTobHeaderDto.setBdCalbodyEntity(bdCalbodyEntities.get(0));
@ -619,6 +625,7 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity {
orderOutTobHeaderDto.setBdCubasdocEntity(bdCubasdocEntityList.get(0));
orderOutTobHeaderDto.setDeliverGoodsCorp(bdCorpEntityList.get(0));
orderOutTobHeaderDto.setPlatformArchives(bdDefdocEntityList.get(0));
orderOutTobHeaderDto.setShopArchives(bdDefdocEntityList2.get(0));
orderOutTobHeaderDto.setHeader(header);
orderOutTobHeaderDto.setDetails(details);
@ -674,73 +681,6 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity {
return tocofsSaleoutDetailedEntityArrayList;
}
/**
* 分组汇总公司+店铺+仓库+SKU+出库类型数量合并相加
*
* @author liuyang
*/
private Map<String, List<SonDetailsDto>> groupSummary(List<SonDetailsDto> sonDetailsDtoList) {
if (sonDetailsDtoList != null && sonDetailsDtoList.size() > 0) {
for (int i = 0; i < sonDetailsDtoList.size(); i++) {
SonDetailsDto sonDetailsDto = sonDetailsDtoList.get(i);
//2024年8月6日 10:35:25表头对象用于带出表头相关的分组汇总信息
HeaderDto header = sonDetailsDto.getHeader();
//公司
BdCorpEntity bdCorpEntity = sonDetailsDto.getBdCorpEntity();
//店铺主要是店铺编码
String storeCode = header.getStoreCode();
//仓库
String facilityCode = header.getFacilityCode();
//SKU
String skuCode = sonDetailsDto.getSkuCode();
//出库类型
String refOrderType = header.getRefOrderType();
StringBuffer summaryDimensionStr = new StringBuffer();
if (bdCorpEntity != null && bdCorpEntity.getPkCorp() != null) {
summaryDimensionStr.append(bdCorpEntity.getPkCorp());
} else {
summaryDimensionStr.append(NOTHING);
}
summaryDimensionStr.append(ADD);
if (storeCode != null && !"".equals(storeCode)) {
summaryDimensionStr.append(storeCode);
} else {
summaryDimensionStr.append(NOTHING);
}
summaryDimensionStr.append(ADD);
if (facilityCode != null && !"".equals(facilityCode)) {
summaryDimensionStr.append(facilityCode);
} else {
summaryDimensionStr.append(NOTHING);
}
summaryDimensionStr.append(ADD);
if (skuCode != null && !"".equals(skuCode)) {
summaryDimensionStr.append(skuCode);
} else {
summaryDimensionStr.append(NOTHING);
}
summaryDimensionStr.append(ADD);
if (refOrderType != null && !"".equals(refOrderType)) {
summaryDimensionStr.append(refOrderType);
} else {
summaryDimensionStr.append(NOTHING);
}
sonDetailsDto.setSummaryDimensionStr(summaryDimensionStr.toString());
}
logger.info("TOB{}个出库单对象需要汇总", sonDetailsDtoList.size());
return sonDetailsDtoList.stream().collect(Collectors.groupingBy(SonDetailsDto::getSummaryDimensionStr));
}
logger.info("TOB0个对象需要汇总");
return null;
}
/**
* 2024年8月6日 10:59:03 查询U8C业务流程
*
@ -755,25 +695,6 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity {
return bdBusitypeEntity;
}
/**
* 检查参数是否为空
* 2024年8月6日 11:40:19 保险的做法最好还是验证一下
*
* @author liuyang
*/
private void checkArchives(SonDetailsDto sonDetailsDto) {
Assert.notNull(sonDetailsDto, "sonDetailsDto不能为空 对象json{}", JSON.toJSONString(sonDetailsDto));
Assert.notNull(sonDetailsDto.getHeader(), "header对象不能为空 对象json{}", JSON.toJSONString(sonDetailsDto));
Assert.notNull(sonDetailsDto.getBdCorpEntity(), "表头公司不能为空 对象json{}", JSON.toJSONString(sonDetailsDto));
Assert.notNull(sonDetailsDto.getBdCalbodyEntity(), "发货库存组织不能为空 对象json{}", JSON.toJSONString(sonDetailsDto));
Assert.notNull(sonDetailsDto.getBdStordocEntity(), "发货仓库不能为空 对象json{}", JSON.toJSONString(sonDetailsDto));
Assert.notNull(sonDetailsDto.getBdCalbodyEntity1(), "收货库存组织不能为空 对象json{}", JSON.toJSONString(sonDetailsDto));
Assert.notNull(sonDetailsDto.getBdStordocEntity1(), "收货库存不能为空 对象json{}", JSON.toJSONString(sonDetailsDto));
Assert.notNull(sonDetailsDto.getBdSalestruEntity(), "销售组织不能为空 对象json{}", JSON.toJSONString(sonDetailsDto));
Assert.notNull(sonDetailsDto.getBdDeptdocEntity(), "业务部门不能为空 对象json{}", JSON.toJSONString(sonDetailsDto));
Assert.notNull(sonDetailsDto.getBdCumandocEntity(), "客商档案不能为空 对象json{}", JSON.toJSONString(sonDetailsDto));
}
/**
* 查询存货管理档案
*
@ -798,40 +719,6 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity {
return bdInvmandocEntity2.get(0);
}
/**
* 合并明细行
* 单价计算公式sum(实付金额/实发数量) 最后除以条数
*
* @author liuyang
*/
private SonDetailsDto groupMergeDetailedRows(List<SonDetailsDto> sonDetailsDtoList) throws Exception {
if (sonDetailsDtoList != null && sonDetailsDtoList.size() > 0) {
BigDecimal groupTotalPayAmount = new BigDecimal("0");
BigDecimal groupShipQty = new BigDecimal("0");
for (int i = 0; i < sonDetailsDtoList.size(); i++) {
SonDetailsDto sonDetailsDto = sonDetailsDtoList.get(i);
//实付金额/实发数量
Assert.notNull(sonDetailsDto.getTotalPayAmount(), "实付金额不能为空 明细行对象:{}", JSON.toJSONString(sonDetailsDto));
Assert.notNull(sonDetailsDto.getShipQty(), "实发数量不能为空 明细行对象:{}", JSON.toJSONString(sonDetailsDto));
BigDecimal totalPayAmountBigDecimal = new BigDecimal(sonDetailsDto.getTotalPayAmount());
BigDecimal shipQtyBigDecimal = new BigDecimal(sonDetailsDto.getShipQty());
groupTotalPayAmount = groupTotalPayAmount.add(totalPayAmountBigDecimal);
groupShipQty = groupShipQty.add(shipQtyBigDecimal);
}
SonDetailsDto sonDetailsDto = sonDetailsDtoList.get(0);
sonDetailsDto.setGroupShipQty(groupShipQty);
sonDetailsDto.setGroupTotalPayAmount(groupTotalPayAmount);
logger.info("{}个明细行发生了合并!", sonDetailsDtoList.size());
return sonDetailsDto;
} else {
logger.info("sonDetailsDtoList集合是空的");
}
return null;
}
/**
* 2024年8月7日 10:25:29
* 查询基础档案根据公司管理档案主键查询
@ -851,7 +738,7 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity {
} else if (bdInvbasdocEntity2.size() >= 2) {
Assert.state(false, "根据存货管理档案主键{}和公司档案主键{}没有查询到U8C基础档案", pkInvmandoc, pkCorp);
}
return bdInvbasdocEntity;
return bdInvbasdocEntity2.get(0);
}
/**
@ -869,7 +756,7 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity {
if (bdTaxitemsEntityList.size() == 0) {
Assert.state(false, "根据存货编码{}没有查询到U8C税目档案", invcode);
} else if (bdTaxitemsEntityList.size() >= 2) {
Assert.state(false, "根据存货编码{}没有查询到U8C税目档案", invcode);
Assert.state(false, "根据存货编码{}查询到{}个U8C税目档案", invcode, bdTaxitemsEntityList.size());
}
return bdTaxitemsEntityList.get(0);
}

View File

@ -126,15 +126,15 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
List<com.hzya.frame.ttxofs.dto.ofssaleorderoutsearch.HeaderDetailsDto> headerDetailsDtoList = new ArrayList<>();
QueryOfsSoSaleOutVo queryOfsSoSaleOutVo = new QueryOfsSoSaleOutVo();
queryOfsSoSaleOutVo.setCreated_start("2024-07-05 16:38:00");
queryOfsSoSaleOutVo.setCreated_end("2024-07-05 16:40:30");
queryOfsSoSaleOutVo.setShipAt_start("2024-07-05 16:38:00");
queryOfsSoSaleOutVo.setShipAt_end("2024-07-05 16:50:30");
queryOfsSoSaleOutVo.setClientCode("LETS");
// queryOfsSoSaleOutVo.setInternalInstructionType("SALES");
queryOfsSoSaleOutVo.setCompanyCode("SHLZ");
// queryOfsSoSaleOutVo.setStatus(900L);
queryOfsSoSaleOutVo.setInternalInstructionType("SALES");
// queryOfsSoSaleOutVo.setCompanyCode("SHLZ");
queryOfsSoSaleOutVo.setStatus(510L);
queryOfsSoSaleOutVo.setPageNo(1L);
queryOfsSoSaleOutVo.setPageSize(50L);
queryOfsSoSaleOutVo.setCode("LETS-SH2024070500000003");
// queryOfsSoSaleOutVo.setCode("LETS-SH2024070500000003");
queryOfsSaleOrder(queryOfsSoSaleOutVo, headerDetailsDtoList, 1L);
logger.info("数据返回行数:{}", headerDetailsDtoList.size());
if (headerDetailsDtoList.size() > 0) {
@ -314,6 +314,7 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
BdCumandocEntity bdCumandocEntity = oldValue.get(0).getBdCumandocEntity();//客商管理档案
BdCubasdocEntity bdCubasdocEntity = oldValue.get(0).getBdCubasdocEntity();//客商基本档案
BdDefdocEntity platformArchives = oldValue.get(0).getPlatformArchives();//U8C平台档案
BdDefdocEntity shopArchives = oldValue.get(0).getShopArchives();//U8C店铺档案
try {
checkArchives(oldValue.get(0));
@ -345,6 +346,10 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
saleorderRequestParentDto.setPk_defdoc2(platformArchives.getPkDefdoc());
saleorderRequestParentDto.setVdef2(platformArchives.getDocname());
//店铺
saleorderRequestParentDto.setPk_defdoc1(shopArchives.getPkDefdoc());
saleorderRequestParentDto.setVdef1(shopArchives.getDocname());
//TODO 2024年8月8日 17:17:58 店铺档案自定义项1先不传后续维护好之后再传!
saleorderRequestDto.setParentvo(saleorderRequestParentDto);
@ -528,7 +533,11 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
//查找平台
BdDefdocEntity bdDefdocEntity = TocOrderBasicArchivesCacheUtil.stringBdDefdocEntityHashMap.get(header.getSourcePlatformCode());
Assert.notNull(bdDefdocEntity, "根据O平台编码({})无法匹配到平台", header.getSourcePlatformCode());
Assert.notNull(bdDefdocEntity, "根据O平台编码({})无法匹配到U8C平台自定义档案", header.getSourcePlatformCode());
//查找店铺
BdDefdocEntity bdDefdocEntity1 = TocOrderBasicArchivesCacheUtil.shopDefdocEntityHashMap.get(header.getStoreCode());
Assert.notNull(bdDefdocEntity1, "根据O店铺编码({})无法匹配到U8C店铺自定义档案", header.getStoreCode());
//字段拷贝
for (int j = 0; j < details.size(); j++) {
@ -549,6 +558,7 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
sonDetailsDto.setBdCumandocEntity(bdCumandocEntity);
sonDetailsDto.setBdCubasdocEntity(bdCubasdocEntity);
sonDetailsDto.setPlatformArchives(bdDefdocEntity);
sonDetailsDto.setShopArchives(bdDefdocEntity1);
BeanUtil.copyPropertiesV2(detailsDto, sonDetailsDto);
sonDetailsDtoList.add(sonDetailsDto);

View File

@ -0,0 +1,810 @@
package com.hzya.frame.plugin.lets.plugin.sales;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.hzya.frame.base.PluginBaseEntity;
import com.hzya.frame.beanutil.BeanUtil;
import com.hzya.frame.plugin.lets.constant.ExportConstant;
import com.hzya.frame.plugin.lets.constant.ProfilesActiveConstant;
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.ofs.entity.TocofsSaleoutDetailedEntity;
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.split.SplitListByCountUtil;
import com.hzya.frame.ttxofs.dto.InterfaceParamDto;
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.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.service.OfsUnifiedService;
import com.hzya.frame.web.entity.JsonResultEntity;
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.stream.Collectors;
/**
* OFS售后入库单(TOB)生成U8C红字销售订单
*
* @author makejava
* @since 2024年8月12日 15:03:51
*/
public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity {
Logger logger = LoggerFactory.getLogger(SoSaleReturnPluginInitializerToB.class);
@Autowired
private IBdCorpDao iBdCorpDao;
@Autowired
private IBdInvbasdocDao iBdInvbasdocDao;
@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.sales.SoSaleReturnPluginInitializerToB";
}
@Override
public String getPluginName() {
return "OFS售后入库单(TOB)生成U8C红字销售订单";
}
@Override
public String getPluginLabel() {
return "OFS售后入库单(TOB)生成U8C红字销售订单";
}
@Override
public String getPluginType() {
return "3";
}
@Override
public JsonResultEntity executeBusiness(JSONObject requestJson) throws Exception {
return null;
}
@Autowired
private OfsUnifiedService ofsUnifiedService;
@Autowired
private IBdTaxitemsDao iBdTaxitemsDao;
@Autowired
private IBdCalbodyDao iBdCalbodyDao;
@Autowired
private ITocofsSaleoutDetailedDao iTocofsSaleoutDetailedDao;
@Autowired
private QueryBdBusitypeUtil queryBdBusitypeUtil;
@Autowired
private IBdStordocDao iBdStordocDao;
@Autowired
private IBdSalestruDao iBdSalestruDao;
private static final String NOTHING = "";
private static final String ADD = "+";
@Autowired
private IBdCumandocDao iBdCumandocDao;
@Autowired
private IBdDeptdocDao iBdDeptdocDao;
@Autowired
private IBdCubasdocDao iBdCubasdocDao;
@Autowired
private IBdDefdocDao iBdDefdocDao;
@Autowired
private IBdInvmandocDao iBdInvmandocDao;
@Autowired
private ITocofsReturngoodsDao iTocofsReturngoodsDao;
@Autowired
private ITocofsReturngoodsDetailedDao iTocofsReturngoodsDetailedDao;
/**
* 按指定时间拉取
*
* @author liuyang
*/
public void startImplement(String dateStr, String summaryOrderNumber) {
String threadNameStr = StrUtil.format("OFS售后入库(TOB)同步U8C销售订单 同步日期:{} 汇总维度:{}", dateStr, summaryOrderNumber);
logger.info(threadNameStr);
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
// TODO 注意过滤TOB店铺
CalculateDateVo calculateDateVo = DateStrUtil.calculateCalculateEntireDayPeriod(dateStr);
List<ReturnGoodHeaderDetailsDataDto> returnGoodHeaderDetailsDataDtoArrayList = 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.setClientCode("LETS");
// queryOfsSoSaleOutVo.setInternalInstructionType("SALES");
queryOfsSoSaleOutVo.setCompanyCode("SHLZ");
// queryOfsSoSaleOutVo.setStatus(900L);
queryOfsSoSaleOutVo.setPageNo(1L);
queryOfsSoSaleOutVo.setPageSize(50L);
queryOfsSoSaleOutVo.setCode("LETS-RE2024071600000001");
queryOfsReturnGoods(queryOfsSoSaleOutVo, returnGoodHeaderDetailsDataDtoArrayList, 1L);
logger.info("数据返回行数:{}", returnGoodHeaderDetailsDataDtoArrayList.size());
if (returnGoodHeaderDetailsDataDtoArrayList.size() > 0) {
//保存到mysql
batchInsert(returnGoodHeaderDetailsDataDtoArrayList);
//过滤成功的数据
List<ReturnGoodHeaderDetailsDataDto> returnGoodHeaderDetailsDataDtoList = filterData(returnGoodHeaderDetailsDataDtoArrayList);
//执行推送主逻辑
implement(returnGoodHeaderDetailsDataDtoList);
} 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 List<ReturnGoodHeaderDetailsDataDto> filterData(List<ReturnGoodHeaderDetailsDataDto> headerDetailsDtoList) {
List<ReturnGoodHeaderDetailsDataDto> headerDetailsDtoList1 = new ArrayList<>();
if (headerDetailsDtoList != null && headerDetailsDtoList.size() > 0) {
//TODO 出库单明细主键需要O返回目前没有已经提需求
headerDetailsDtoList1.addAll(headerDetailsDtoList);
}
return headerDetailsDtoList1;
}
/**
* 保存抓取到的数据到mysql底表如果底表里已经存在则会忽略
*
* @param returnGoodHeaderDetailsDataDtoArrayList 数据行
*/
private void batchInsert(List<ReturnGoodHeaderDetailsDataDto> returnGoodHeaderDetailsDataDtoArrayList) throws Exception {
if (returnGoodHeaderDetailsDataDtoArrayList != null && returnGoodHeaderDetailsDataDtoArrayList.size() > 0) {
List<ReturnGoodSearchHeaderDto> headerDetailsDtoList1 = new ArrayList<>();
List<ReturnGoodSearchDetailsDto> headerDetailsDtoList2 = new ArrayList<>();
for (ReturnGoodHeaderDetailsDataDto index : returnGoodHeaderDetailsDataDtoArrayList) {
ReturnGoodSearchHeaderDto header = index.getHeader();// 主表
List<ReturnGoodSearchDetailsDto> details = index.getDetails();//明细表
headerDetailsDtoList1.add(header);
headerDetailsDtoList2.addAll(details);
}
//每100作为一个批次插入主表根据主键id判断是否重复如果重复的则不进行插入
List<List<ReturnGoodSearchHeaderDto>> lists = SplitListByCountUtil.splitListByCount(headerDetailsDtoList1, 100);
for (int i = 0; i < lists.size(); i++) {
List<ReturnGoodSearchHeaderDto> returnGoodSearchHeaderDtos = lists.get(i);
List<TocofsReturngoodsEntity> tocofsReturngoodsEntities = copyHeaderDto(returnGoodSearchHeaderDtos);
if (tocofsReturngoodsEntities.size() > 0) {
logger.info("TocofsReturngoodsEntity插入底表{}个对象(表头)", tocofsReturngoodsEntities.size());
iTocofsReturngoodsDao.entityInsertBatchV2(tocofsReturngoodsEntities);
} else {
logger.info("TocofsReturngoodsEntity没有对象被插入表头底表");
}
}
//插入明细表
List<List<ReturnGoodSearchDetailsDto>> lists1 = SplitListByCountUtil.splitListByCount(headerDetailsDtoList2, 100);
for (int i = 0; i < lists1.size(); i++) {
List<ReturnGoodSearchDetailsDto> returnGoodSearchDetailsDtos = lists1.get(i);
List<TocofsReturngoodsDetailedEntity> tocofsReturngoodsDetailedEntities = copyDetailsDto(returnGoodSearchDetailsDtos);
if (tocofsReturngoodsDetailedEntities.size() > 0) {
logger.info("TocofsReturngoodsDetailedEntity插入底表{}个对象(表体)", tocofsReturngoodsDetailedEntities.size());
iTocofsReturngoodsDetailedDao.entityInsertBatchV2(tocofsReturngoodsDetailedEntities);
} else {
logger.info("TocofsReturngoodsDetailedEntity没有对象被插入表头底表");
}
}
}
}
/**
* 查询OFS售后退货入库单
*
* @param queryOfsSoSaleOutVo 查询参数
* @param headerDetailsDtoList 查询结果集
* @param pageNo 从第pageNo页开始查询
*/
private void queryOfsReturnGoods(QueryOfsSoSaleOutVo queryOfsSoSaleOutVo, List<ReturnGoodHeaderDetailsDataDto> headerDetailsDtoList, Long pageNo) throws Exception {
Long pageSize = 200L;
queryOfsSoSaleOutVo.setPageNo(pageNo);
queryOfsSoSaleOutVo.setPageSize(pageSize);
InterfaceParamDto interfaceParamDto = new InterfaceParamDto();
interfaceParamDto.setApi("ofs.receipt.search");
interfaceParamDto.setData(JSON.toJSONString(queryOfsSoSaleOutVo));
RertunGoodsRootBean rertunGoodsRootBean = (RertunGoodsRootBean) ofsUnifiedService.unified(interfaceParamDto);
if (rertunGoodsRootBean != null) {
if ("false".equals(rertunGoodsRootBean.getError()) && "0".equals(rertunGoodsRootBean.getCode()) && "Success".equals(rertunGoodsRootBean.getMsg())) {
List<ReturnGoodHeaderDetailsDataDto> returnGoodHeaderDetailsDataDtoList = rertunGoodsRootBean.getData();
if (returnGoodHeaderDetailsDataDtoList != null && returnGoodHeaderDetailsDataDtoList.size() > 0) {
headerDetailsDtoList.addAll(returnGoodHeaderDetailsDataDtoList);
//TODO OFS没有提供分页字段等待开发
}
} else {
logger.error("查询失败,失败原因:{}", JSON.toJSON(interfaceParamDto));
}
} else {
logger.error("rertunGoodsRootBean为空interfaceParamDto对象的结果集json{}", JSON.toJSON(interfaceParamDto));
}
}
/**
* 代码同步逻辑
*
* @param returnGoodHeaderDetailsDataDtoList 查询得到的O出库单对象
* @author liuyang
*/
private void implement(List<ReturnGoodHeaderDetailsDataDto> returnGoodHeaderDetailsDataDtoList) throws Exception {
if (returnGoodHeaderDetailsDataDtoList != null && returnGoodHeaderDetailsDataDtoList.size() > 0) {
try {
// 查询基本档案
List<OrderToBHeaderDto> orderToBHeaderDtos = queryBasicArchives(returnGoodHeaderDetailsDataDtoList);
// 查询U8C业务流程
BdBusitypeEntity bdBusitypeEntity = u8cOperationFlow();
try {
for (int i = 0; i < orderToBHeaderDtos.size(); i++) {
OrderToBHeaderDto orderOutTobHeaderDto = orderToBHeaderDtos.get(i);
ReturnGoodSearchHeaderDto header = orderOutTobHeaderDto.getHeader();
List<ReturnGoodSearchDetailsDto> details = orderOutTobHeaderDto.getDetails();
//销售公司发货公司
BdCorpEntity bdCorpEntity = orderOutTobHeaderDto.getBdCorpEntity();
//发货库存组织
BdCalbodyEntity bdCalbodyEntity = orderOutTobHeaderDto.getBdCalbodyEntity();
//入库参数
BdStordocEntity bdStordocEntity = orderOutTobHeaderDto.getBdStordocEntity();
//销售组织
BdSalestruEntity bdSalestruEntity = orderOutTobHeaderDto.getBdSalestruEntity();
//业务部门
BdDeptdocEntity bdDeptdocEntity = orderOutTobHeaderDto.getBdDeptdocEntity();
//客商基本档案
BdCubasdocEntity bdCubasdocEntity = orderOutTobHeaderDto.getBdCubasdocEntity();
//客商基本档案
BdCumandocEntity bdCumandocEntity = orderOutTobHeaderDto.getBdCumandocEntity();
//发货公司
BdCorpEntity deliverGoodsCorp = orderOutTobHeaderDto.getDeliverGoodsCorp();
//平台档案
BdDefdocEntity platformArchives = orderOutTobHeaderDto.getPlatformArchives();
//U8C店铺档案
BdDefdocEntity shopArchives = orderOutTobHeaderDto.getShopArchives();
//生成业务日期
String generateBusinessDate = createGenerateBusinessDate(orderOutTobHeaderDto);
SaleorderRequestDto saleorderRequestDto = new SaleorderRequestDto();
SaleorderRequestParentDto saleorderRequestParentDto = new SaleorderRequestParentDto();
saleorderRequestParentDto.setDbilldate(generateBusinessDate);//单据日期
saleorderRequestParentDto.setBretinvflag("Y");//退货标记
saleorderRequestParentDto.setCbiztype(bdBusitypeEntity.getPkBusitype());//业务流程
saleorderRequestParentDto.setCcalbodyid(bdCalbodyEntity.getPkCalbody());//库存组织
saleorderRequestParentDto.setCcustomerid(bdCumandocEntity.getPkCumandoc());//客户=开票单位=收货单位=表体收货单位=收货单位
saleorderRequestParentDto.setCdeptid(bdDeptdocEntity.getPkDeptdoc());//部门
saleorderRequestParentDto.setCemployeeid(null);//业务员
saleorderRequestParentDto.setCoperatorid("0001A110000000000U3D");//制单人
saleorderRequestParentDto.setCreceiptcorpid(bdCumandocEntity.getPkCumandoc());//开票单位
saleorderRequestParentDto.setCreceiptcustomerid(bdCumandocEntity.getPkCumandoc());//收货单位
saleorderRequestParentDto.setCsalecorpid(bdSalestruEntity.getCsalestruid());//销售组织
saleorderRequestParentDto.setCwarehouseid(bdStordocEntity.getPkStordoc());//仓库
saleorderRequestParentDto.setDapprovedate(generateBusinessDate);//审核日期
saleorderRequestParentDto.setNdiscountrate("100.000000");//整单折扣
saleorderRequestParentDto.setPk_corp(bdCorpEntity.getPkCorp());//公司id
//平台
saleorderRequestParentDto.setPk_defdoc2(platformArchives.getPkDefdoc());
saleorderRequestParentDto.setVdef2(platformArchives.getDocname());
//店铺
saleorderRequestParentDto.setPk_defdoc1(shopArchives.getPkDefdoc());
saleorderRequestParentDto.setVdef1(shopArchives.getDocname());
saleorderRequestDto.setParentvo(saleorderRequestParentDto);
List<SaleorderRequestChildrenDto> saleorderRequestChildrenDtoList = new ArrayList<>();
saleorderRequestDto.setChildrenvo(saleorderRequestChildrenDtoList);
//把汇总好的出库单明细行合并成一行
for (int j = 0; j < details.size(); j++) {
ReturnGoodSearchDetailsDto returnGoodSearchDetailsDto = details.get(j);
//存货管理档案取发货公司的存货管理档案
BdInvmandocEntity bdInvmandocEntity = queryInventoryMan(returnGoodSearchDetailsDto, bdCalbodyEntity.getPkCorp());
//存货基础档案
BdInvbasdocEntity bdInvbasdocEntity = queryStockBasicArchives(bdInvmandocEntity.getPkInvmandoc(), deliverGoodsCorp.getPkCorp());
//根据存货基础档案编码查询当前存货的税率
BdTaxitemsEntity bdTaxitemsEntity1 = queryBdTaxitems(bdInvbasdocEntity.getInvcode());
String tax = "0." + new BigDecimal(bdTaxitemsEntity1.getTaxratio()).stripTrailingZeros().toPlainString();
// 如果是海外的店铺则税率为零
String exportVaue = ExportConstant.exportConstant.get(header.getStoreCode());
if (exportVaue != null) {
tax = "0";
}
BigDecimal noriginalcurprice = null;//无税单价
BigDecimal noriginalcurmny = null;//无税金额
BigDecimal noriginalcurtaxprice = null;//含税单价
BigDecimal noriginalcursummny = null;//价税合计
BigDecimal noriginalcurtaxmny = null;//税额
try {
Assert.notNull(returnGoodSearchDetailsDto.getTotalAmount(), "退货入库单总金额不能为空 明细行对象:{}", JSON.toJSONString(returnGoodSearchDetailsDto));
Assert.notNull(returnGoodSearchDetailsDto.getReceivedQty(), "实收数量不能为空 明细行对象:{}", JSON.toJSONString(returnGoodSearchDetailsDto));
noriginalcurtaxprice = new BigDecimal(returnGoodSearchDetailsDto.getTotalAmount()).divide(new BigDecimal(returnGoodSearchDetailsDto.getReceivedQty()), 20, BigDecimal.ROUND_HALF_UP).setScale(4, BigDecimal.ROUND_HALF_UP);
noriginalcurprice = noriginalcurtaxprice.divide(new BigDecimal(1).add(new BigDecimal(tax)), 20, BigDecimal.ROUND_HALF_UP).setScale(4, BigDecimal.ROUND_HALF_UP);
noriginalcurmny = noriginalcurprice.multiply(new BigDecimal(returnGoodSearchDetailsDto.getReceivedQty())).setScale(2, BigDecimal.ROUND_HALF_UP);
noriginalcursummny = noriginalcurtaxprice.multiply(new BigDecimal(returnGoodSearchDetailsDto.getReceivedQty())).setScale(2, BigDecimal.ROUND_HALF_UP);
noriginalcurtaxmny = noriginalcursummny.subtract(noriginalcurmny).setScale(2, BigDecimal.ROUND_HALF_UP);
} catch (Exception e) {
logger.error("TOB金额计算错误", e);
Assert.state(false, "TOB金额计算错误原因{}", e.getMessage());
}
//判断是否为赠品
String isblargessflag = "N";
if (noriginalcursummny.longValue() == 0) {
isblargessflag = "Y";
}
SaleorderRequestChildrenDto saleorderRequestChildrenDto = new SaleorderRequestChildrenDto();
saleorderRequestChildrenDto.setBlargessflag(isblargessflag);//是否赠品
saleorderRequestChildrenDto.setCadvisecalbodyid(bdCalbodyEntity.getPkCalbody());//发货库存组织
saleorderRequestChildrenDto.setCbodywarehouseid(bdStordocEntity.getPkStordoc());//发货仓库
saleorderRequestChildrenDto.setCconsigncorpid(deliverGoodsCorp.getPkCorp());//发货公司
saleorderRequestChildrenDto.setCcurrencytypeid("00010000000000000001");//币种
saleorderRequestChildrenDto.setCinventoryid(bdInvmandocEntity.getPkInvmandoc());//存货id
saleorderRequestChildrenDto.setCreceiptcorpid(bdCumandocEntity.getPkCumandoc());//收货单位
saleorderRequestChildrenDto.setDconsigndate(generateBusinessDate);//计划发货日期
saleorderRequestChildrenDto.setDdeliverdate(generateBusinessDate);// 要求收货日期
saleorderRequestChildrenDto.setNexchangeotobrate("1.00000000");//折本汇率
saleorderRequestChildrenDto.setNitemdiscountrate("100.000000");//单品折扣
saleorderRequestChildrenDto.setNnumber("-" + returnGoodSearchDetailsDto.getReceivedQty());//数量
saleorderRequestChildrenDto.setNoriginalcurdiscountmny("0");//折扣额
saleorderRequestChildrenDto.setNoriginalcurmny("-" + noriginalcurmny.stripTrailingZeros().toPlainString());//无税金额
// saleorderRequestChildrenDto.setNoriginalcurnetprice(noriginalcurprice.stripTrailingZeros().toPlainString());//无税净价
// saleorderRequestChildrenDto.setNoriginalcurprice(noriginalcurprice.stripTrailingZeros().toPlainString());//无税单价
saleorderRequestChildrenDto.setNoriginalcursummny("-" + noriginalcursummny.stripTrailingZeros().toPlainString());//价税合计
saleorderRequestChildrenDto.setNoriginalcurtaxmny("-" + noriginalcurtaxmny.stripTrailingZeros().toPlainString());//税额
saleorderRequestChildrenDto.setNoriginalcurtaxnetprice(noriginalcurtaxprice.stripTrailingZeros().toPlainString());//含税净价
saleorderRequestChildrenDto.setNoriginalcurtaxprice(noriginalcurtaxprice.stripTrailingZeros().toPlainString());//含税单价
saleorderRequestChildrenDto.setNtaxrate(new BigDecimal(bdTaxitemsEntity1.getTaxratio()).stripTrailingZeros().toPlainString());//税率
saleorderRequestChildrenDtoList.add(saleorderRequestChildrenDto);
}
//记录成功
//销售订单单据推送到u8c
List<SaleorderRequestDto> saleorderRequestDtoList = new ArrayList<>();
saleorderRequestDtoList.add(saleorderRequestDto);
Map<String, List<SaleorderRequestDto>> stringStringMap = new HashMap<>();
stringStringMap.put("saleorder", saleorderRequestDtoList);
SoSaleResultRootDto soSaleResultRootDto = sendU8CTOCOrder(JSON.toJSONString(stringStringMap));
logger.info("TOB红字销售订单编号{} 销售公司:{}", soSaleResultRootDto.getParentvo().getVreceiptcode(), soSaleResultRootDto.getParentvo().getPk_corp());
}
} catch (Exception e) {
logger.error("TOB业务转换成U8C对象过程中、或者单据推送到U8C出现异常", e);
//记录失败
}
} catch (Exception e) {
logger.error("TOB外层转换逻辑抛出异常", e);
// 记录失败
}
}
}
/**
* 2024年7月31日 10:34:09
* 生成业务日期以发货时间作为业务日期
*
* @author liuyang
*/
private String createGenerateBusinessDate(OrderToBHeaderDto orderOutTobHeaderDto) {
if (orderOutTobHeaderDto != null && orderOutTobHeaderDto.getHeader() != null && orderOutTobHeaderDto.getHeader().getCheckInFrom() != null) {
ReturnGoodSearchHeaderDto header = orderOutTobHeaderDto.getHeader();
String checkInFrom = header.getCheckInFrom();
String businessFormat = null;
try {
Date dbill = DateUtil.parse(checkInFrom);
businessFormat = DateUtil.format(dbill, "yyyy-MM-dd");
} catch (Exception e) {
logger.error("业务日期生成失败", e);
}
return businessFormat;
} else {
logger.error("生成出库日期失败或者checkInFrom为空! json{}", JSON.toJSON(orderOutTobHeaderDto));
Assert.state(false, "生成出库日期失败或者checkInFrom为空! json{}", JSON.toJSON(orderOutTobHeaderDto));
return null;
}
}
/**
* 档案转换
*
* @author liuyang
*/
private List<OrderToBHeaderDto> queryBasicArchives(List<ReturnGoodHeaderDetailsDataDto> returnGoodHeaderDetailsDataDtoList) {
List<OrderToBHeaderDto> orderToBHeaderDtoArrayList = new ArrayList<>();
if (returnGoodHeaderDetailsDataDtoList != null && returnGoodHeaderDetailsDataDtoList.size() > 0) {
try {
for (int i = 0; i < returnGoodHeaderDetailsDataDtoList.size(); i++) {
ReturnGoodHeaderDetailsDataDto returnGoodHeaderDetailsDataDto = returnGoodHeaderDetailsDataDtoList.get(i);
ReturnGoodSearchHeaderDto header = returnGoodHeaderDetailsDataDto.getHeader();
List<ReturnGoodSearchDetailsDto> details = returnGoodHeaderDetailsDataDto.getDetails();
// 销售公司发货公司
String companyCode = header.getCompanyCode();
Assert.notNull(companyCode, "O表头公司不能为空");
BdCorpEntity bdCorpEntity = new BdCorpEntity();
bdCorpEntity.setDr(0);
bdCorpEntity.setDataSourceCode("lets_u8c");
bdCorpEntity.setUnitcode(companyCode);
List<BdCorpEntity> bdCorpEntityList = iBdCorpDao.query(bdCorpEntity);
if (bdCorpEntityList.size() == 0) {
Assert.state(false, "根据O货主编码{}无法匹配到U8C销售公司", companyCode);
} else if (bdCorpEntityList.size() >= 2) {
Assert.state(false, "根据O货主编码{}匹配到U8C销售公司{}个", companyCode, bdCorpEntityList.size());
}
// 发货库存组织
BdCalbodyEntity bdCalbodyEntity = new BdCalbodyEntity();
bdCalbodyEntity.setDr(0);
bdCalbodyEntity.setDataSourceCode("lets_u8c");
bdCalbodyEntity.setPkCorp(bdCorpEntityList.get(0).getPkCorp());
List<BdCalbodyEntity> bdCalbodyEntities = iBdCalbodyDao.query(bdCalbodyEntity);
if (bdCalbodyEntities.size() == 0) {
Assert.state(false, "根据U8C发货公司{}无法匹配到U8C发货库存组织", bdCorpEntityList.get(0).getPkCorp());
} else if (bdCalbodyEntities.size() >= 2) {
Assert.state(false, "根据U8C发货公司{}匹配到U8C发货库存组织{}个", bdCorpEntityList.get(0).getPkCorp(), bdCalbodyEntities.size());
}
// 仓库
String facilityCode = header.getFacilityCode();
Assert.notNull(facilityCode, "O售后入库单仓库facilityCode字段不能为空");
BdStordocEntity bdStordocEntity = new BdStordocEntity();
bdStordocEntity.setDr(0L);
bdStordocEntity.setDataSourceCode("lets_u8c");
bdStordocEntity.setPkCalbody(bdCalbodyEntities.get(0).getPkCalbody());
bdStordocEntity.setStorcode(facilityCode);
List<BdStordocEntity> bdStordocEntityList = iBdStordocDao.query(bdStordocEntity);
if (bdStordocEntityList.size() == 0) {
Assert.state(false, "根据O仓库编码+U8C发货库存组织主键无法匹配到U8C仓库", facilityCode, bdCalbodyEntities.get(0).getPkCalbody());
} else if (bdStordocEntityList.size() >= 2) {
Assert.state(false, "根据O仓库编码+U8C发货库存组织主键匹配到U8C仓库多个", facilityCode, bdCalbodyEntities.get(0).getPkCalbody());
}
//销售组织
//2024年8月13日 10:35:05 已经和佳妮在微信确认U8C销售公司编码与U8C销售组织编码保持一致因此通过销售公司编码匹配
BdSalestruEntity bdSalestruEntity = new BdSalestruEntity();
bdSalestruEntity.setDr(0);
bdSalestruEntity.setDataSourceCode("lets_u8c");
bdSalestruEntity.setVsalestrucode(bdCorpEntityList.get(0).getUnitcode());
List<BdSalestruEntity> bdSalestruEntityList = iBdSalestruDao.query(bdSalestruEntity);
if (bdSalestruEntityList.size() == 0) {
Assert.state(false, "根据U8C销售公司编码{}无法匹配到U8C销售组织", bdCorpEntityList.get(0).getUnitcode());
} else if (bdSalestruEntityList.size() >= 2) {
Assert.state(false, "根据U8C销售公司编码{}无法匹配到U8C销售组织", bdCorpEntityList.get(0).getUnitcode());
}
//业务部门
//2024年8月14日 10:38:37 已经和佳妮确认
String deptName = "其他部门";
BdDeptdocEntity bdDeptdocEntity = new BdDeptdocEntity();
bdDeptdocEntity.setDataSourceCode("lets_u8c");
bdDeptdocEntity.setDr(0);
bdDeptdocEntity.setDeptname(deptName);
bdDeptdocEntity.setPkCorp(bdCorpEntityList.get(0).getPkCorp());
List<BdDeptdocEntity> bdDeptdocEntityList = iBdDeptdocDao.query(bdDeptdocEntity);
if (bdDeptdocEntityList.size() == 0) {
Assert.state(false, "根据部门名称:{} 公司id{}无法匹配到U8C销售组织", deptName, bdCorpEntityList.get(0).getPkCorp());
} else if (bdDeptdocEntityList.size() >= 2) {
Assert.state(false, "根据部门名称:{} 公司id{}匹配到U8C销售组织{}个", deptName, bdCorpEntityList.get(0).getPkCorp());
}
//客商基本档案
String custName = "天猫intoyou旗舰店-自营";
BdCubasdocEntity bdCubasdocEntity = new BdCubasdocEntity();
bdCubasdocEntity.setDataSourceCode("lets_u8c");
bdCubasdocEntity.setDr(0L);
bdCubasdocEntity.setCustname(custName);
List<BdCubasdocEntity> bdCubasdocEntityList = iBdCubasdocDao.query(bdCubasdocEntity);
//客商管理档案
BdCumandocEntity bdCumandocEntity1 = new BdCumandocEntity();
bdCumandocEntity1.setDataSourceCode("lets_u8c");
bdCumandocEntity1.setDr(0L);
bdCumandocEntity1.setPkCorp(bdCorpEntityList.get(0).getPkCorp());
bdCumandocEntity1.setPkCubasdoc(bdCubasdocEntityList.get(0).getPkCubasdoc());
List<BdCumandocEntity> bdCumandocEntityList = iBdCumandocDao.query(bdCumandocEntity1);
//查找平台
String platformZdyId = "0001A210000000000JUD";
String sourcePlatformCode = header.getSourcePlatformCode();
BdDefdocEntity bdDefdocEntity = new BdDefdocEntity();
bdDefdocEntity.setPkDefdoclist(platformZdyId);
bdDefdocEntity.setDr(0);
bdDefdocEntity.setDataSourceCode("lets_u8c");
bdDefdocEntity.setDoccode(sourcePlatformCode);
List<BdDefdocEntity> bdDefdocEntityList = iBdDefdocDao.query(bdDefdocEntity);
if (bdDefdocEntityList.size() == 0) {
Assert.state(false, "根据O平台编码{}无法匹配到U8C平台自定义档案 自定义档案主键:{}", sourcePlatformCode, platformZdyId);
} else if (bdDefdocEntityList.size() >= 2) {
Assert.state(false, "根据O平台编码{}无法匹配到U8C平台自定义档案 自定义档案主键:{}", sourcePlatformCode, platformZdyId);
}
//查询U8C店铺档案
String platformZdyId2 = "0001A210000000000XZX";
String ofsStoreCode = header.getStoreCode();
BdDefdocEntity bdDefdocEntity2 = new BdDefdocEntity();
bdDefdocEntity2.setPkDefdoclist(platformZdyId2);
bdDefdocEntity2.setDr(0);
bdDefdocEntity2.setDataSourceCode("lets_u8c");
bdDefdocEntity2.setDoccode(ofsStoreCode);
List<BdDefdocEntity> bdDefdocEntityList2 = iBdDefdocDao.query(bdDefdocEntity2);
if (bdDefdocEntityList2.size() == 0) {
Assert.state(false, "根据O店铺编码{}无法匹配到U8C店铺自定义档案 自定义档案主键:{}", ofsStoreCode, platformZdyId);
} else if (bdDefdocEntityList2.size() >= 2) {
Assert.state(false, "根据O店铺编码{}无法匹配到U8C店铺自定义档案 自定义档案主键:{}", ofsStoreCode, platformZdyId);
}
OrderToBHeaderDto orderOutTobHeaderDto = new OrderToBHeaderDto();
orderOutTobHeaderDto.setBdCorpEntity(bdCorpEntityList.get(0));
orderOutTobHeaderDto.setBdCalbodyEntity(bdCalbodyEntities.get(0));
orderOutTobHeaderDto.setBdStordocEntity(bdStordocEntityList.get(0));
orderOutTobHeaderDto.setBdSalestruEntity(bdSalestruEntityList.get(0));
orderOutTobHeaderDto.setBdDeptdocEntity(bdDeptdocEntityList.get(0));
orderOutTobHeaderDto.setBdCumandocEntity(bdCumandocEntityList.get(0));
orderOutTobHeaderDto.setBdCubasdocEntity(bdCubasdocEntityList.get(0));
orderOutTobHeaderDto.setDeliverGoodsCorp(bdCorpEntityList.get(0));
orderOutTobHeaderDto.setPlatformArchives(bdDefdocEntityList.get(0));
orderOutTobHeaderDto.setShopArchives(bdDefdocEntityList2.get(0));
orderOutTobHeaderDto.setHeader(header);
orderOutTobHeaderDto.setDetails(details);
orderToBHeaderDtoArrayList.add(orderOutTobHeaderDto);
}
//成功
} catch (Exception e) {
logger.error("OFS销售出库单关联查询U8C档案失败", e);
//失败
}
} else {
logger.info("queryBasicArchives方法对应的returnGoodHeaderDetailsDataDtoList.size为0");
}
return orderToBHeaderDtoArrayList;
}
/**
* bean copy
* 2024年8月15日 14:19:36
*/
private List<TocofsReturngoodsEntity> copyHeaderDto(List<ReturnGoodSearchHeaderDto> returnGoodSearchHeaderDtos) {
List<TocofsReturngoodsEntity> tocofsReturngoodsEntityArrayList = new ArrayList<>();
if (returnGoodSearchHeaderDtos != null && returnGoodSearchHeaderDtos.size() > 0) {
for (int i = 0; i < returnGoodSearchHeaderDtos.size(); i++) {
ReturnGoodSearchHeaderDto headerDto = returnGoodSearchHeaderDtos.get(i);
TocofsReturngoodsEntity tocofsReturngoodsEntity = new TocofsReturngoodsEntity();
BeanUtil.copyPropertiesV2(headerDto, tocofsReturngoodsEntity);
tocofsReturngoodsEntityArrayList.add(tocofsReturngoodsEntity);
}
} else {
logger.info("需要复制{}个bean对象(O表头)", returnGoodSearchHeaderDtos.size());
}
return tocofsReturngoodsEntityArrayList;
}
/**
* bean copy
* 2024年8月15日 14:24:38
*/
private List<TocofsReturngoodsDetailedEntity> copyDetailsDto(List<ReturnGoodSearchDetailsDto> headerDetailsDtoList2) {
List<TocofsReturngoodsDetailedEntity> tocofsSaleoutDetailedEntityArrayList = new ArrayList<>();
if (headerDetailsDtoList2 != null && headerDetailsDtoList2.size() > 0) {
for (int i = 0; i < headerDetailsDtoList2.size(); i++) {
ReturnGoodSearchDetailsDto returnGoodSearchDetailsDto = headerDetailsDtoList2.get(i);
TocofsReturngoodsDetailedEntity tocofsReturngoodsDetailedEntity = new TocofsReturngoodsDetailedEntity();
tocofsReturngoodsDetailedEntity.setBusinessType("TOB_RETURN");
BeanUtil.copyPropertiesV2(returnGoodSearchDetailsDto, tocofsReturngoodsDetailedEntity);
tocofsSaleoutDetailedEntityArrayList.add(tocofsReturngoodsDetailedEntity);
}
} else {
logger.info("需要复制{}个bean对象(O表体)", tocofsSaleoutDetailedEntityArrayList.size());
}
return tocofsSaleoutDetailedEntityArrayList;
}
/**
* 2024年8月6日 10:59:03 查询U8C业务流程
*
* @author liuyang
*/
private BdBusitypeEntity u8cOperationFlow() throws Exception {
//查询业务流程
//2024年8月6日 11:33:07 具体的业务流程名称还需要实施提供
String processName = "TOB销售";
BdBusitypeEntity bdBusitypeEntity = queryBdBusitypeUtil.queryBdBusitype(processName);
Assert.notNull(bdBusitypeEntity, "根据业务流程名称({})没有查询到业务流程", processName);
return bdBusitypeEntity;
}
/**
* 查询存货管理档案
*
* @param pkCorp 发货公司主键
* @param detailsDto 出库单存货明细行
* @author liuyang
*/
private BdInvmandocEntity queryInventoryMan(ReturnGoodSearchDetailsDto detailsDto, String pkCorp) throws Exception {
Assert.notNull(detailsDto, "sonDetailsDto不能为空");
Assert.notNull(detailsDto.getSkuCode(), "O存货商家编码不能为空");
Assert.notNull(pkCorp, "发货公司主键不能为空");
BdInvmandocEntity bdInvmandocEntity = new BdInvmandocEntity();
bdInvmandocEntity.setInvcode(detailsDto.getSkuCode());
bdInvmandocEntity.setPkCorp(pkCorp);
List<BdInvmandocEntity> bdInvmandocEntity2 = iBdInvmandocDao.queryBdInvmandocByInvcodeList(bdInvmandocEntity);
if (bdInvmandocEntity2.size() == 0) {
Assert.state(false, "根据O商家编码{} U8C发货公司主键{}没有查询到存货管理档案", detailsDto.getSkuCode(), pkCorp);
} else if (bdInvmandocEntity2.size() >= 2) {
Assert.state(false, "根据O商家编码{} U8C发货公司主键{}没有查询到存货管理档案", detailsDto.getSkuCode(), pkCorp);
}
return bdInvmandocEntity2.get(0);
}
/**
* 2024年8月7日 10:25:29
* 查询基础档案根据公司管理档案主键查询
*
* @author liuyang
*/
private BdInvbasdocEntity queryStockBasicArchives(String pkInvmandoc, String pkCorp) throws Exception {
Assert.notNull(pkInvmandoc, "存货管理档案不能为空");
Assert.notNull(pkCorp, "公司档案不能为空");
BdInvbasdocEntity bdInvbasdocEntity = new BdInvbasdocEntity();
bdInvbasdocEntity.setPk_invmandoc(pkInvmandoc);
bdInvbasdocEntity.setPk_corp(pkCorp);
List<BdInvbasdocEntity> bdInvbasdocEntity2 = iBdInvbasdocDao.queryBdInvbasdocByPkInvmandocV2(bdInvbasdocEntity);
if (bdInvbasdocEntity2.size() == 0) {
Assert.state(false, "根据存货管理档案主键{}和公司档案主键{}没有查询到U8C基础档案", pkInvmandoc, pkCorp);
} else if (bdInvbasdocEntity2.size() >= 2) {
Assert.state(false, "根据存货管理档案主键{}和公司档案主键{}没有查询到U8C基础档案", pkInvmandoc, pkCorp);
}
return bdInvbasdocEntity;
}
/**
* 2024年8月7日 14:58:34
* 查询税目档案
*
* @author liuyang
*/
private BdTaxitemsEntity queryBdTaxitems(String invcode) throws Exception {
Assert.notNull(invcode, "存货编码不能为空");
BdTaxitemsEntity bdTaxitemsEntity = new BdTaxitemsEntity();
bdTaxitemsEntity.setInvcode(invcode);
List<BdTaxitemsEntity> bdTaxitemsEntityList = iBdTaxitemsDao.queryBdInvbasdocByInvcodeV2(bdTaxitemsEntity);
if (bdTaxitemsEntityList.size() == 0) {
Assert.state(false, "根据存货编码{}没有查询到U8C税目档案", invcode);
} else if (bdTaxitemsEntityList.size() >= 2) {
Assert.state(false, "根据存货编码{}没有查询到U8C税目档案", invcode);
}
return bdTaxitemsEntityList.get(0);
}
/**
* 2024年8月8日 10:54:48
* 推送U8C销售订单方法
*
* @author liuyang
*/
public SoSaleResultRootDto sendU8CTOCOrder(String param) {
long startLong = System.currentTimeMillis();
logger.info("TOB推送开始推送参数" + param + ",U8C_URL:" + ProfilesActiveConstant.U8C_URL);
String result = HttpRequest.post(ProfilesActiveConstant.U8C_URL).header("appId", "800037")//头信息多个头信息多次调用此方法即可
.header("usercode", "admin").header("password", "21232f297a57a5a743894a0e4a801fc3").header("system", "lz").header("trantype", "PK").header("apiCode", "8000370006")//头信息多个头信息多次调用此方法即可
.header("publicKey", "ZJYAWb7lhAUTYqekPkU+uHJv1/ObJxb7dT7sD8HPRDGAgyhCe7eDIk+3zDUT+v578prj")//头信息多个头信息多次调用此方法即可
.header("secretKey", "fviZnLBsQUAGF8w8FSOdJi7XlIm/XAZclMxRagDLfTyJFlvnIBF3w66Hrpfzs8cYj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=")//头信息多个头信息多次调用此方法即可
.body(param)//表单内容
.timeout(20000)//超时毫秒
.execute().body();
logger.info("TOB推送结束返回参数" + result);
long endLong = System.currentTimeMillis();
logger.info("TOB接口请求耗时" + (endLong - startLong));
JSONObject jsonObject = JSON.parseObject(result);
result = String.valueOf(jsonObject.get("attribute"));
boolean isSuccess = false;
SoSaleResultRootDto soSaleResultRootDto = null;
if (result != null && !"".equals(result)) {
ReusltStrDto reusltStrDto = JSON.parseObject(result, ReusltStrDto.class);
if ("success".equals(reusltStrDto.getStatus())) {
soSaleResultRootDto = resultDataHandle(reusltStrDto.getData());
isSuccess = true;
}
}
if (!isSuccess) {
Assert.state(false, "TOB业务O出库单推送U8C销售订单失败 接口返回结果:{}", result);
}
return soSaleResultRootDto;
}
/**
* 返回结果解析处理在确认了success后调用
*
* @author liuyang
*/
private SoSaleResultRootDto resultDataHandle(String resultData) {
try {
if (resultData != null && !"".equals(resultData)) {
if (resultData.contains("[")) {
resultData = resultData.substring(1, resultData.length() - 1);
}
return JSON.parseObject(resultData, SoSaleResultRootDto.class);
}
} catch (Exception e) {
// e.printStackTrace();
logger.error("解析返回参数失败的错误", e);
//如果解析失败记录原因但是不能影响结果的记录
}
return null;
}
}

View File

@ -412,7 +412,7 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity {
Map<String, List<SaleorderRequestDto>> stringStringMap = new HashMap<>();
stringStringMap.put("saleorder", saleorderRequestDtoList);
SoSaleResultRootDto soSaleResultRootDto = sendU8CTOCOrder(JSON.toJSONString(stringStringMap));
logger.info("销售订单编号:{} 销售公司:{}", soSaleResultRootDto.getParentvo().getVreceiptcode(), soSaleResultRootDto.getParentvo().getPk_corp());
logger.info("TOC销售订单编号:{} 销售公司:{}", soSaleResultRootDto.getParentvo().getVreceiptcode(), soSaleResultRootDto.getParentvo().getPk_corp());
//记录成功
} catch (Exception e) {
logger.error("TOC退货业务转换成U8C对象过程中、或者单据推送到U8C出现异常", e);
@ -518,8 +518,16 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity {
Assert.notNull(bdCumandocEntity, "无法匹配到客商档案 店铺名称:{}", "天猫intoyou旗舰店-自营");
//查找平台
BdDefdocEntity bdDefdocEntity = TocReturnBasicArchivesCacheUtil.stringBdDefdocEntityHashMap.get(header.getSourcePlatformCode());
Assert.notNull(bdDefdocEntity, "根据O平台编码({})无法匹配到平台", header.getSourcePlatformCode());
String sourcePlatformCode = header.getSourcePlatformCode();
Assert.notNull(sourcePlatformCode, "O平台编码不能为空");
BdDefdocEntity bdDefdocEntity = TocReturnBasicArchivesCacheUtil.stringBdDefdocEntityHashMap.get(sourcePlatformCode);
Assert.notNull(bdDefdocEntity, "根据O平台编码({})无法匹配到U8C平台档案", header.getSourcePlatformCode());
//查找店铺
String storeCode = header.getStoreCode();
Assert.notNull(storeCode, "O店铺编码不能为空");
BdDefdocEntity bdDefdocEntity1 = TocReturnBasicArchivesCacheUtil.shopDefdocEntityHashMap.get(storeCode);
Assert.notNull(bdDefdocEntity1, "根据O店铺编码({})无法匹配到U8C店铺档案", storeCode);
//字段拷贝
for (int j = 0; j < details.size(); j++) {

View File

@ -71,4 +71,8 @@ public class OrderOutTobHeaderDto extends HeaderDetailsDto {
*/
private BdDefdocEntity platformArchives;
/**
* 店铺档案
*/
private BdDefdocEntity shopArchives;
}

View File

@ -0,0 +1,93 @@
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.returngoodsearch.ReturnGoodSearchDetailsDto;
import com.hzya.frame.ttxofs.dto.returngoodsearch.ReturnGoodSearchHeaderDto;
import lombok.Data;
import java.util.List;
/**
* @Authorliuyang
* @Packagecom.hzya.frame.plugin.lets.u8cdto
* @ProjectkangarooDataCenterV3
* @nameOrderToBHeaderDto
* @Date2024年8月15日 14:52:34
* @FilenameOrderToBHeaderDto
*/
@Data
public class OrderToBHeaderDto {
/**
* 表头公司销售公司视为发货公司
*/
private BdCorpEntity bdCorpEntity;
/**
* 发货库存组织
*/
private BdCalbodyEntity bdCalbodyEntity;
/**
* 入库仓库
*/
private BdStordocEntity bdStordocEntity;
/**
* 收货库存组织
*/
// private BdCalbodyEntity bdCalbodyEntity1;
/**
* 收货仓库
*/
// private BdStordocEntity bdStordocEntity1;
/**
* 销售组织
*/
private BdSalestruEntity bdSalestruEntity;
/**
* 业务部门
*/
private BdDeptdocEntity bdDeptdocEntity;
/**
* 客商管理档案
*/
private BdCumandocEntity bdCumandocEntity;
/**
* 客商基本档案
*/
private BdCubasdocEntity bdCubasdocEntity;
/**
* 发货公司
*/
private BdCorpEntity deliverGoodsCorp;
/**
* U8C平台档案
*/
private BdDefdocEntity platformArchives;
/**
* 店铺档案
*/
private BdDefdocEntity shopArchives;
/**
* TOB售后入库单表头
*/
private ReturnGoodSearchHeaderDto header;
/**
* TOB售后入库单表体
*/
private List<ReturnGoodSearchDetailsDto> details;
}

View File

@ -91,6 +91,19 @@ public class SonDetailsDto extends DetailsDto {
*/
private BdDefdocEntity platformArchives;
/**
* U8C店铺档案
*/
private BdDefdocEntity shopArchives;
public BdDefdocEntity getShopArchives() {
return shopArchives;
}
public void setShopArchives(BdDefdocEntity shopArchives) {
this.shopArchives = shopArchives;
}
public BdDefdocEntity getPlatformArchives() {
return platformArchives;
}

View File

@ -270,6 +270,25 @@ public class TocOrderBasicArchivesCacheUtil {
}
}
/**
* 2024年8月14日 15:17:48 缓存U8C店铺自定义档案逻辑
*/
public static Map<String, BdDefdocEntity> shopDefdocEntityHashMap = new HashMap<>();
private void initShopDiy() {
BdDefdocEntity bdDefdocEntity = new BdDefdocEntity();
bdDefdocEntity.setPkDefdoclist("0001A210000000000XZX");
bdDefdocEntity.setDr(0);
bdDefdocEntity.setDataSourceCode("lets_u8c");
List<BdDefdocEntity> bdDefdocEntityList = iBdDefdocDao.query(bdDefdocEntity);
if (bdDefdocEntityList != null && bdDefdocEntityList.size() > 0) {
for (int i = 0; i < bdDefdocEntityList.size(); i++) {
BdDefdocEntity bdDefdocEntity1 = bdDefdocEntityList.get(i);
shopDefdocEntityHashMap.put(bdDefdocEntity1.getDoccode(), bdDefdocEntity1);
}
}
}
/**
* 清理缓存
*
@ -287,6 +306,7 @@ public class TocOrderBasicArchivesCacheUtil {
stringBdTaxitemsEntityHashMap.clear();
stringBdCubasdocEntityHashMap.clear();
stringBdDefdocEntityHashMap.clear();
shopDefdocEntityHashMap.clear();
}
/**
@ -308,5 +328,6 @@ public class TocOrderBasicArchivesCacheUtil {
initBdTaxitemsEntity();
initBdCubasdoc();
initSourcePlatform();
initShopDiy();
}
}

View File

@ -270,6 +270,25 @@ public class TocReturnBasicArchivesCacheUtil {
}
}
/**
* 2024年8月14日 15:17:48 缓存U8C店铺自定义档案逻辑
*/
public static Map<String, BdDefdocEntity> shopDefdocEntityHashMap = new HashMap<>();
private void initShopDiy() {
BdDefdocEntity bdDefdocEntity = new BdDefdocEntity();
bdDefdocEntity.setPkDefdoclist("0001A210000000000XZX");
bdDefdocEntity.setDr(0);
bdDefdocEntity.setDataSourceCode("lets_u8c");
List<BdDefdocEntity> bdDefdocEntityList = iBdDefdocDao.query(bdDefdocEntity);
if (bdDefdocEntityList != null && bdDefdocEntityList.size() > 0) {
for (int i = 0; i < bdDefdocEntityList.size(); i++) {
BdDefdocEntity bdDefdocEntity1 = bdDefdocEntityList.get(i);
shopDefdocEntityHashMap.put(bdDefdocEntity1.getDoccode(), bdDefdocEntity1);
}
}
}
/**
* 清理缓存
*
@ -287,6 +306,7 @@ public class TocReturnBasicArchivesCacheUtil {
stringBdTaxitemsEntityHashMap.clear();
stringBdCubasdocEntityHashMap.clear();
stringBdDefdocEntityHashMap.clear();
shopDefdocEntityHashMap.clear();
}
/**
@ -308,5 +328,6 @@ public class TocReturnBasicArchivesCacheUtil {
initBdTaxitemsEntity();
initBdCubasdoc();
initSourcePlatform();
initShopDiy();
}
}

View File

@ -21,6 +21,6 @@
<bean name="adjustInPluginInitializer" class="com.hzya.frame.plugin.lets.plugin.adjust.AdjustInPluginInitializer"/>
<bean name="adjustOutPluginInitializer" class="com.hzya.frame.plugin.lets.plugin.adjust.AdjustOutPluginInitializer"/>
<!--插入-->
<bean name="soSaleOutPluginInitializerToB" class="com.hzya.frame.plugin.lets.plugin.sales.SoSaleOutPluginInitializerToB"/>
</beans>
<bean name="soSaleReturnPluginInitializerToB" class="com.hzya.frame.plugin.lets.plugin.sales.SoSaleReturnPluginInitializerToB"/>
</beans>

View File

@ -12,7 +12,7 @@ package com.hzya.frame.ttxofs.basics;
*/
public class InterfaceBasics {
private String bashHttpUrl = "http://39.98.58.229/api/edi/ofs/in";
private String bashHttpUrl = "http://39.98.58.229/api/edi/u8c/ofs/in";
public String getBashHttpUrl() {
return bashHttpUrl;

View File

@ -19,12 +19,14 @@ public class InterfaceParamDto extends InterfaceBasics {
private String format = "json";
private String appKey = "1023142858";
// private String appKey = "2097046829";
private String v = "1.0";
private String sign;
private String secret = "382e4a2584027a36ac9431103";
// private String secret = "35282f251476a3af4f00c7b36";
private String timestamp;
@ -93,4 +95,5 @@ public class InterfaceParamDto extends InterfaceBasics {
public void setData(String data) {
this.data = data;
}
}
}