refactor(sales): 重构销售订单查询逻辑
- 移除不必要的列表分割操作 - 优化去重逻辑,使用 Set集合 - 将销售订单转换为 Map 集合,提高查询效率 - 简化代码结构,提高可读性和维护性
This commit is contained in:
parent
ee5d86e78d
commit
14ec5bfa68
|
@ -2400,15 +2400,17 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
|
||||||
List<com.hzya.frame.ttxofs.dto.ofssalesordersearch.HeaderDetailsDto> allHeaderDetailsDtoArrayList = new ArrayList<>();
|
List<com.hzya.frame.ttxofs.dto.ofssalesordersearch.HeaderDetailsDto> allHeaderDetailsDtoArrayList = new ArrayList<>();
|
||||||
try {
|
try {
|
||||||
if (headerDetailsDtoList != null && headerDetailsDtoList.size() > 0) {
|
if (headerDetailsDtoList != null && headerDetailsDtoList.size() > 0) {
|
||||||
List<List<HeaderDetailsDto>> splitListByCount = SplitListByCountUtil.splitListByCount(headerDetailsDtoList, 100);
|
// List<List<HeaderDetailsDto>> splitListByCount = SplitListByCountUtil.splitListByCount(headerDetailsDtoList, 100);
|
||||||
for (int i = 0; i < splitListByCount.size(); i++) {
|
// for (int i = 0; i < splitListByCount.size(); i++) {
|
||||||
List<HeaderDetailsDto> headerDetailsDtos = splitListByCount.get(i);
|
// List<HeaderDetailsDto> headerDetailsDtos = splitListByCount.get(i);
|
||||||
|
// }
|
||||||
|
//可以完成去重
|
||||||
Set<String> refOrderCodeSet = new HashSet<>();
|
Set<String> refOrderCodeSet = new HashSet<>();
|
||||||
// StringBuffer stringBuffer = new StringBuffer();
|
// StringBuffer stringBuffer = new StringBuffer();
|
||||||
if (headerDetailsDtos != null && headerDetailsDtos.size() > 0) {
|
// if (headerDetailsDtoList != null && headerDetailsDtoList.size() > 0) {
|
||||||
for (int j = 0; j < headerDetailsDtos.size(); j++) {
|
// }
|
||||||
HeaderDetailsDto headerDetailsDto = headerDetailsDtos.get(j);
|
for (int j = 0; j < headerDetailsDtoList.size(); j++) {
|
||||||
|
HeaderDetailsDto headerDetailsDto = headerDetailsDtoList.get(j);
|
||||||
HeaderDto header = headerDetailsDto.getHeader();
|
HeaderDto header = headerDetailsDto.getHeader();
|
||||||
List<DetailsDto> details = headerDetailsDto.getDetails();
|
List<DetailsDto> details = headerDetailsDto.getDetails();
|
||||||
for (int k = 0; k < details.size(); k++) {
|
for (int k = 0; k < details.size(); k++) {
|
||||||
|
@ -2418,23 +2420,37 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
|
||||||
// stringBuffer.append(detailsDto.getRefOrderCode());
|
// stringBuffer.append(detailsDto.getRefOrderCode());
|
||||||
// stringBuffer.append("'");
|
// stringBuffer.append("'");
|
||||||
// stringBuffer.append(",");
|
// stringBuffer.append(",");
|
||||||
refOrderCodeSet.add(detailsDto.getRefOrderCode());
|
if (detailsDto.getRefOrderCode() != null && !"".equals(detailsDto.getRefOrderCode())) {
|
||||||
|
refOrderCodeSet.add(detailsDto.getRefOrderCode().trim());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (refOrderCodeSet.size() > 0) {
|
if (refOrderCodeSet.size() > 0) {
|
||||||
//转换为逗号
|
//Set集合转List集合
|
||||||
StringJoiner joiner = new StringJoiner(",");
|
List<String> stringList = refOrderCodeSet.stream().collect(Collectors.toList());
|
||||||
for (String str : refOrderCodeSet) {
|
List<List<String>> lists = SplitListByCountUtil.splitListByCount(stringList, 100);
|
||||||
joiner.add(str);
|
for (int i = 0; i < lists.size(); i++) {
|
||||||
}
|
List<String> strings = lists.get(i);
|
||||||
// String substring = stringBuffer.substring(0, stringBuffer.length());
|
String result = strings.stream().map(s -> s.trim()).collect(Collectors.joining(","));
|
||||||
|
|
||||||
List<com.hzya.frame.ttxofs.dto.ofssalesordersearch.HeaderDetailsDto> headerDetailsDtoArrayList = new ArrayList<>();
|
List<com.hzya.frame.ttxofs.dto.ofssalesordersearch.HeaderDetailsDto> headerDetailsDtoArrayList = new ArrayList<>();
|
||||||
QueryOfsSoSaleOutVo queryOfsSoSaleOutVo = new QueryOfsSoSaleOutVo();
|
QueryOfsSoSaleOutVo queryOfsSoSaleOutVo = new QueryOfsSoSaleOutVo();
|
||||||
queryOfsSoSaleOutVo.setCode(joiner.toString());
|
queryOfsSoSaleOutVo.setCode(result);
|
||||||
ofsStandardUtil.getOfsSaleOrder(queryOfsSoSaleOutVo, headerDetailsDtoArrayList, 1L);
|
ofsStandardUtil.getOfsSaleOrder(queryOfsSoSaleOutVo, headerDetailsDtoArrayList, 1L);
|
||||||
allHeaderDetailsDtoArrayList.addAll(headerDetailsDtoArrayList);
|
allHeaderDetailsDtoArrayList.addAll(headerDetailsDtoArrayList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//转换为逗号
|
||||||
|
// StringJoiner joiner = new StringJoiner(",");
|
||||||
|
// for (String str : refOrderCodeSet) {
|
||||||
|
// joiner.add(str);
|
||||||
|
// }
|
||||||
|
// String substring = stringBuffer.substring(0, stringBuffer.length());
|
||||||
|
// List<com.hzya.frame.ttxofs.dto.ofssalesordersearch.HeaderDetailsDto> headerDetailsDtoArrayList = new ArrayList<>();
|
||||||
|
// QueryOfsSoSaleOutVo queryOfsSoSaleOutVo = new QueryOfsSoSaleOutVo();
|
||||||
|
// queryOfsSoSaleOutVo.setCode(joiner.toString());
|
||||||
|
// ofsStandardUtil.getOfsSaleOrder(queryOfsSoSaleOutVo, headerDetailsDtoArrayList, 1L);
|
||||||
|
// allHeaderDetailsDtoArrayList.addAll(headerDetailsDtoArrayList);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
@ -2453,6 +2469,14 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
|
||||||
private void findMatchingOfsOrder(List<com.hzya.frame.ttxofs.dto.ofssalesordersearch.HeaderDetailsDto> ofsSaleOrder, List<com.hzya.frame.ttxofs.dto.ofssaleorderoutsearch.HeaderDetailsDto> ofsSaleOutOrder) throws Exception {
|
private void findMatchingOfsOrder(List<com.hzya.frame.ttxofs.dto.ofssalesordersearch.HeaderDetailsDto> ofsSaleOrder, List<com.hzya.frame.ttxofs.dto.ofssaleorderoutsearch.HeaderDetailsDto> ofsSaleOutOrder) throws Exception {
|
||||||
if (ofsSaleOrder != null && ofsSaleOutOrder != null && ofsSaleOrder.size() > 0 && ofsSaleOutOrder.size() > 0) {
|
if (ofsSaleOrder != null && ofsSaleOutOrder != null && ofsSaleOrder.size() > 0 && ofsSaleOutOrder.size() > 0) {
|
||||||
try {
|
try {
|
||||||
|
//把OFS销售订单转换为Map集合,key为code,value为OFS销售订单集合对象,如果code为null,则会抛出异常,所以先赋值为""
|
||||||
|
ofsSaleOrder.forEach(dto -> {
|
||||||
|
if (dto.getHeader() != null && dto.getHeader().getCode() == null) {
|
||||||
|
dto.getHeader().setCode("");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Map<String, com.hzya.frame.ttxofs.dto.ofssalesordersearch.HeaderDetailsDto> stringHeaderDetailsDtoMap = ofsSaleOrder.stream().collect(Collectors.toMap(dto -> dto.getHeader().getCode(), dto -> dto));
|
||||||
|
|
||||||
for (int i = 0; i < ofsSaleOutOrder.size(); i++) {
|
for (int i = 0; i < ofsSaleOutOrder.size(); i++) {
|
||||||
HeaderDetailsDto headerDetailsDto = ofsSaleOutOrder.get(i);
|
HeaderDetailsDto headerDetailsDto = ofsSaleOutOrder.get(i);
|
||||||
HeaderDto header = headerDetailsDto.getHeader();
|
HeaderDto header = headerDetailsDto.getHeader();
|
||||||
|
@ -2461,16 +2485,19 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
|
||||||
for (int j = 0; j < details.size(); j++) {
|
for (int j = 0; j < details.size(); j++) {
|
||||||
DetailsDto detailsDto = details.get(j);
|
DetailsDto detailsDto = details.get(j);
|
||||||
String refOrderCode = detailsDto.getRefOrderCode();
|
String refOrderCode = detailsDto.getRefOrderCode();
|
||||||
|
// for (int k = 0; k < ofsSaleOrder.size(); k++) {
|
||||||
for (int k = 0; k < ofsSaleOrder.size(); k++) {
|
// com.hzya.frame.ttxofs.dto.ofssalesordersearch.HeaderDetailsDto headerDetailsDto1 = ofsSaleOrder.get(k);
|
||||||
com.hzya.frame.ttxofs.dto.ofssalesordersearch.HeaderDetailsDto headerDetailsDto1 = ofsSaleOrder.get(k);
|
// com.hzya.frame.ttxofs.dto.ofssalesordersearch.HeaderDto header1 = headerDetailsDto1.getHeader();
|
||||||
com.hzya.frame.ttxofs.dto.ofssalesordersearch.HeaderDto header1 = headerDetailsDto1.getHeader();
|
//// List<com.hzya.frame.ttxofs.dto.ofssalesordersearch.DetailsDto> details1 = headerDetailsDto1.getDetails();
|
||||||
// List<com.hzya.frame.ttxofs.dto.ofssalesordersearch.DetailsDto> details1 = headerDetailsDto1.getDetails();
|
// if (header1.getCode().equals(refOrderCode)) {
|
||||||
if (header1.getCode().equals(refOrderCode)) {
|
// detailsDto.setHeaderDetailsDto(headerDetailsDto1);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
com.hzya.frame.ttxofs.dto.ofssalesordersearch.HeaderDetailsDto headerDetailsDto1 = stringHeaderDetailsDtoMap.get(refOrderCode);
|
||||||
|
if (headerDetailsDto1 != null) {
|
||||||
detailsDto.setHeaderDetailsDto(headerDetailsDto1);
|
detailsDto.setHeaderDetailsDto(headerDetailsDto1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
// String targetRefOrderCode = header.getRefOrderCode();
|
// String targetRefOrderCode = header.getRefOrderCode();
|
||||||
// for (int j = 0; j < ofsSaleOrder.size(); j++) {
|
// for (int j = 0; j < ofsSaleOrder.size(); j++) {
|
||||||
// com.hzya.frame.ttxofs.dto.ofssalesordersearch.HeaderDetailsDto headerDetailsDto1 = ofsSaleOrder.get(j);
|
// com.hzya.frame.ttxofs.dto.ofssalesordersearch.HeaderDetailsDto headerDetailsDto1 = ofsSaleOrder.get(j);
|
||||||
|
|
Loading…
Reference in New Issue