feat(buildpackage): 添加 BOM版本并优化退货汇总逻辑- 在 ConsignmachiningInBodyDto 中添加 BOM 版本字段
- 与妮姐确认后设置核销方式为"按 BOM 核销" -优化 groupSummary 方法,支持按指定维度汇总 - 移除不必要的键值对,提高数据处理效率 - 更新测试用例以适应新的业务逻辑
This commit is contained in:
parent
215997007a
commit
748b12b405
|
@ -467,8 +467,12 @@ public class ConsignmachiningInReturn extends PluginBaseEntity {
|
||||||
consignmachiningInBodyDto.setVsourcerowno(u8cPoOrderDetail.getCrowno());//来源单据行号
|
consignmachiningInBodyDto.setVsourcerowno(u8cPoOrderDetail.getCrowno());//来源单据行号
|
||||||
// consignmachiningInBodyDto.setVsourcebillcode(scOrderEntity.getVordercode());//来源单据号
|
// consignmachiningInBodyDto.setVsourcebillcode(scOrderEntity.getVordercode());//来源单据号
|
||||||
// consignmachiningInBodyDto.setWriteofftype("按备料发料核销");//核销方式,和妮姐已经确认,不用传递
|
// consignmachiningInBodyDto.setWriteofftype("按备料发料核销");//核销方式,和妮姐已经确认,不用传递
|
||||||
|
//2025年2月13日 17:36:28 和妮姐电话确认,核销方式永远为按BOM核销,问了2遍
|
||||||
|
consignmachiningInBodyDto.setWriteofftype("按BOM核销");//核销方式,和妮姐已经确认,不用传递
|
||||||
consignmachiningInBodyDto.setDbizdate(generateBusinessDate);// 入库日期
|
consignmachiningInBodyDto.setDbizdate(generateBusinessDate);// 入库日期
|
||||||
// consignmachiningInBodyDto.setVdef16(bomVersion.get(0).getVersion());//BOM version
|
// consignmachiningInBodyDto.setVdef16(bomVersion.get(0).getVersion());//BOM version
|
||||||
|
//2025年2月13日 17:35:45 和妮姐电话确认,bom版本永远为1.0,问了3遍
|
||||||
|
consignmachiningInBodyDto.setBomversion("1.0");//BOM version
|
||||||
consignmachiningInBodyDto.setCsourcebillbid(u8cPoOrderDetail.getCorderBid());//来源明细主键
|
consignmachiningInBodyDto.setCsourcebillbid(u8cPoOrderDetail.getCorderBid());//来源明细主键
|
||||||
consignmachiningInBodyDto.setCsourcebillhid(scOrderEntity.getCorderid());//来源表头主键
|
consignmachiningInBodyDto.setCsourcebillhid(scOrderEntity.getCorderid());//来源表头主键
|
||||||
consignmachiningInBodyDtoArrayList.add(consignmachiningInBodyDto);
|
consignmachiningInBodyDtoArrayList.add(consignmachiningInBodyDto);
|
||||||
|
|
|
@ -704,7 +704,9 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity {
|
||||||
String sceneType = "stock";
|
String sceneType = "stock";
|
||||||
List<GoodsRertunSonDetailsDto> goodsRertunSonDetailsDtos = queryBasicArchivesStock(returnGoodHeaderDetailsDataDtoList1, sceneType);
|
List<GoodsRertunSonDetailsDto> goodsRertunSonDetailsDtos = queryBasicArchivesStock(returnGoodHeaderDetailsDataDtoList1, sceneType);
|
||||||
// 分组汇总
|
// 分组汇总
|
||||||
Map<String, List<GoodsRertunSonDetailsDto>> summaryDimensionMap = groupSummary(goodsRertunSonDetailsDtos);
|
String dimension = null;
|
||||||
|
// dimension = "1001&dy-intoyou&B2CHA20240033&6973391733588&SALES&002";
|
||||||
|
Map<String, List<GoodsRertunSonDetailsDto>> summaryDimensionMap = groupSummary(goodsRertunSonDetailsDtos, dimension);
|
||||||
// 查询U8C业务流程
|
// 查询U8C业务流程
|
||||||
BdBusitypeEntity bdBusitypeEntity = u8cOperationFlow();
|
BdBusitypeEntity bdBusitypeEntity = u8cOperationFlow();
|
||||||
// 查询销售收发类别
|
// 查询销售收发类别
|
||||||
|
@ -989,7 +991,8 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity {
|
||||||
String sceneType = "tran";
|
String sceneType = "tran";
|
||||||
List<GoodsRertunSonDetailsDto> goodsRertunSonDetailsDtos = queryBasicArchivesStock(returnGoodHeaderDetailsDataDtoList1, sceneType);
|
List<GoodsRertunSonDetailsDto> goodsRertunSonDetailsDtos = queryBasicArchivesStock(returnGoodHeaderDetailsDataDtoList1, sceneType);
|
||||||
// 分组汇总
|
// 分组汇总
|
||||||
Map<String, List<GoodsRertunSonDetailsDto>> summaryDimensionMap = groupSummary(goodsRertunSonDetailsDtos);
|
String dimension = null;
|
||||||
|
Map<String, List<GoodsRertunSonDetailsDto>> summaryDimensionMap = groupSummary(goodsRertunSonDetailsDtos, dimension);
|
||||||
// 查询U8C业务流程
|
// 查询U8C业务流程
|
||||||
BdBusitypeEntity bdBusitypeEntity = u8cOperationFlowV2();
|
BdBusitypeEntity bdBusitypeEntity = u8cOperationFlowV2();
|
||||||
//初始化所有存货管理档案对应的结存价+采购价
|
//初始化所有存货管理档案对应的结存价+采购价
|
||||||
|
@ -1608,7 +1611,7 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity {
|
||||||
*
|
*
|
||||||
* @author liuyang
|
* @author liuyang
|
||||||
*/
|
*/
|
||||||
private Map<String, List<GoodsRertunSonDetailsDto>> groupSummary(List<GoodsRertunSonDetailsDto> goodsRertunSonDetailsDtos) {
|
private Map<String, List<GoodsRertunSonDetailsDto>> groupSummary(List<GoodsRertunSonDetailsDto> goodsRertunSonDetailsDtos, String dimension) {
|
||||||
if (goodsRertunSonDetailsDtos != null && goodsRertunSonDetailsDtos.size() > 0) {
|
if (goodsRertunSonDetailsDtos != null && goodsRertunSonDetailsDtos.size() > 0) {
|
||||||
for (int i = 0; i < goodsRertunSonDetailsDtos.size(); i++) {
|
for (int i = 0; i < goodsRertunSonDetailsDtos.size(); i++) {
|
||||||
GoodsRertunSonDetailsDto goodsRertunSonDetailsDto = goodsRertunSonDetailsDtos.get(i);
|
GoodsRertunSonDetailsDto goodsRertunSonDetailsDto = goodsRertunSonDetailsDtos.get(i);
|
||||||
|
@ -1683,12 +1686,43 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity {
|
||||||
goodsRertunSonDetailsDto.setSummaryDimensionStr(summaryDimensionStr.toString());
|
goodsRertunSonDetailsDto.setSummaryDimensionStr(summaryDimensionStr.toString());
|
||||||
}
|
}
|
||||||
logger.info("TOC:{} 个出库单对象需要汇总", goodsRertunSonDetailsDtos.size());
|
logger.info("TOC:{} 个出库单对象需要汇总", goodsRertunSonDetailsDtos.size());
|
||||||
return goodsRertunSonDetailsDtos.stream().collect(Collectors.groupingBy(GoodsRertunSonDetailsDto::getSummaryDimensionStr));
|
if (dimension == null) {
|
||||||
|
return goodsRertunSonDetailsDtos.stream().collect(Collectors.groupingBy(GoodsRertunSonDetailsDto::getSummaryDimensionStr));
|
||||||
|
} else {
|
||||||
|
Map<String, List<GoodsRertunSonDetailsDto>> collect = goodsRertunSonDetailsDtos.stream().collect(Collectors.groupingBy(GoodsRertunSonDetailsDto::getSummaryDimensionStr));
|
||||||
|
keepOnlyNeededKeys(collect, dimension);
|
||||||
|
return collect;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
logger.info("TOC:0个对象需要汇总");
|
logger.info("TOC:0个对象需要汇总");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 移除不需要的键
|
||||||
|
*
|
||||||
|
* @author liuyang
|
||||||
|
*/
|
||||||
|
private static void keepOnlyNeededKeys(Map<String, List<GoodsRertunSonDetailsDto>> map, String... neededKeys) {
|
||||||
|
Iterator<Map.Entry<String, List<GoodsRertunSonDetailsDto>>> iterator = map.entrySet().iterator();
|
||||||
|
while (iterator.hasNext()) {
|
||||||
|
Map.Entry<String, List<GoodsRertunSonDetailsDto>> entry = iterator.next();
|
||||||
|
// 如果不是需要的键,则移除
|
||||||
|
if (!contains(neededKeys, entry.getKey())) {
|
||||||
|
iterator.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static boolean contains(String[] array, String targetValue) {
|
||||||
|
for (String value : array) {
|
||||||
|
if (value.equals(targetValue)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 2024年8月6日 10:59:03 查询U8C业务流程
|
* 2024年8月6日 10:59:03 查询U8C业务流程
|
||||||
*
|
*
|
||||||
|
|
|
@ -19,6 +19,7 @@ public class ConsignmachiningInBodyDto {
|
||||||
private String vsourcerowno;
|
private String vsourcerowno;
|
||||||
private String vsourcebillcode;
|
private String vsourcebillcode;
|
||||||
private String writeofftype;//核销方式
|
private String writeofftype;//核销方式
|
||||||
|
private String bomversion;//BOM版本
|
||||||
private String dbizdate;
|
private String dbizdate;
|
||||||
private String vdef16;
|
private String vdef16;
|
||||||
private String csourcebillbid;//来源明细主键
|
private String csourcebillbid;//来源明细主键
|
||||||
|
|
|
@ -50,7 +50,7 @@ public class SoSaleReturnPluginInitializerToCTest {
|
||||||
|
|
||||||
// soSaleReturnPluginInitializerToC.startImplementByCode("LETS-RE2025010900002384", "tran");
|
// soSaleReturnPluginInitializerToC.startImplementByCode("LETS-RE2025010900002384", "tran");
|
||||||
|
|
||||||
// soSaleReturnPluginInitializerToC.startImplementStockByTime("2024-12-24 16:02:17", "2024-12-24 16:02:17", "0");
|
soSaleReturnPluginInitializerToC.startImplementStockByTime("2025-01-31 00:00:00", "2025-01-31 23:59:59", "1");
|
||||||
|
|
||||||
// JSONObject jsonObject = new JSONObject();
|
// JSONObject jsonObject = new JSONObject();
|
||||||
// soSaleReturnPluginInitializerToC.executeBusiness(jsonObject);
|
// soSaleReturnPluginInitializerToC.executeBusiness(jsonObject);
|
||||||
|
@ -82,7 +82,7 @@ public class SoSaleReturnPluginInitializerToCTest {
|
||||||
// BdBusitypeEntity bdBusitypeEntity3 = queryBdBusitypeUtil.queryBdBusitype("TOC确认收入");
|
// BdBusitypeEntity bdBusitypeEntity3 = queryBdBusitypeUtil.queryBdBusitype("TOC确认收入");
|
||||||
// System.out.println("TOC确认收入:" + bdBusitypeEntity3.getPkBusitype());
|
// System.out.println("TOC确认收入:" + bdBusitypeEntity3.getPkBusitype());
|
||||||
|
|
||||||
BdBusitypeEntity bdBusitypeEntity4 = queryBdBusitypeUtil.queryBdBusitype("TOC售后完成");
|
// BdBusitypeEntity bdBusitypeEntity4 = queryBdBusitypeUtil.queryBdBusitype("TOC售后完成");
|
||||||
System.out.println("TOC售后完成:" + bdBusitypeEntity4.getPkBusitype());
|
// System.out.println("TOC售后完成:" + bdBusitypeEntity4.getPkBusitype());
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -104,6 +104,7 @@ public class DeleteU8cDataUtil {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 销售订单取消签字
|
* 销售订单取消签字
|
||||||
|
* 每1000条取消签字,需要236秒,平均0.2秒一条
|
||||||
*/
|
*/
|
||||||
public void cancelSignatureSoSaleV2() {
|
public void cancelSignatureSoSaleV2() {
|
||||||
try {
|
try {
|
||||||
|
|
Loading…
Reference in New Issue