虚拟包按发货-直发-制作的顺序排序
This commit is contained in:
parent
2ab79e68bc
commit
6f14256fb5
|
|
@ -39,6 +39,7 @@ import java.math.BigDecimal;
|
|||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
|
|
@ -193,7 +194,7 @@ public class BomNewEbomGenerateVirtualPackageServiceFor31Impl implements IBomNew
|
|||
TransactionDefinition def = new DefaultTransactionDefinition();
|
||||
TransactionStatus status = transactionManager.getTransaction(def);
|
||||
if(CollUtil.isNotEmpty(childrenForAdd)){
|
||||
//按 "(发货)","(制作)","(直发)","(发货前装配)" 放在同一个组内排序 by 10002327 0830
|
||||
//按 "(发货)","(直发)","(制作)","(发货前装配)" 放在同一个组内排序 by 10002327 0830
|
||||
Map<String,List<BomNewEbomChildEntity>> chMap = childrenForAdd.stream().collect(Collectors.groupingBy(c -> {
|
||||
return c.getDrawingNo().replaceAll("\\(发货\\)|\\(制作\\)|\\(直发\\)|\\(发货前装配\\)","");
|
||||
}));
|
||||
|
|
@ -201,8 +202,26 @@ public class BomNewEbomGenerateVirtualPackageServiceFor31Impl implements IBomNew
|
|||
List<Map.Entry<String,List<BomNewEbomChildEntity>>> mpList = new ArrayList<>(chMap.entrySet());
|
||||
mpList.sort(Map.Entry.comparingByValue((c1,c2) -> Optional.ofNullable(c1).map(l->l.get(0)).map(BomNewEbomChildEntity::getOrderNumber).orElse("")
|
||||
.compareTo(Optional.of(c2).map(l->l.get(0)).map(BomNewEbomChildEntity::getOrderNumber).orElse(""))));
|
||||
//对map值的集合按照 按发货-直发-制作的顺序排序
|
||||
Function<BomNewEbomChildEntity,String> sortFn = (ent) -> {
|
||||
String num = "1";
|
||||
String desc = Optional.ofNullable(ent).map(BomNewEbomChildEntity::getMaterialDesc).orElse("");
|
||||
if(desc.contains("(发货)")){
|
||||
num = "1";
|
||||
}
|
||||
if(desc.contains("(直发)")){
|
||||
num = "2";
|
||||
}
|
||||
if(desc.contains("(制作)")){
|
||||
num = "3";
|
||||
}
|
||||
if(desc.contains("(发货前装配)")){
|
||||
num = "4";
|
||||
}
|
||||
return num;
|
||||
};
|
||||
childrenForAdd.removeAll(childrenForAdd);
|
||||
mpList.forEach(m -> childrenForAdd.addAll(m.getValue()));
|
||||
mpList.forEach(m -> childrenForAdd.addAll(m.getValue().stream().sorted(Comparator.comparing(sortFn::apply)).collect(Collectors.toList())));
|
||||
}
|
||||
|
||||
try {
|
||||
|
|
@ -419,27 +438,38 @@ public class BomNewEbomGenerateVirtualPackageServiceFor31Impl implements IBomNew
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 按发货-直发-制作的顺序 by 10002327 240903
|
||||
* @param root
|
||||
* @param child
|
||||
*/
|
||||
private void build1010VirtualPackage(BomNewEbomParentEntity root, BomNewEbomChildEntity child) {
|
||||
//发货包
|
||||
BomNewEbomChildEntity qc1 = buildVirtualPackage(false, root.getRowId(), root, child.getMaterialName(), child.getDrawingNo(), VirtualPackageTypeEnum.DELIVERY_PACKAGE, child.getOrderNumber());
|
||||
BomNewEbomParentEntity qp1 = buildVirtualPackage(root, qc1);
|
||||
//制作包
|
||||
BomNewEbomChildEntity qc2 = buildVirtualPackage(false, qp1.getRowId(), root, child.getMaterialName(), child.getDrawingNo(), VirtualPackageTypeEnum.MAKING_PACKAGE, "001");
|
||||
BomNewEbomChildEntity qc2 = buildVirtualPackage(false, qp1.getRowId(), root, child.getMaterialName(), child.getDrawingNo(), VirtualPackageTypeEnum.MAKING_PACKAGE, "002");
|
||||
BomNewEbomParentEntity qp2 = buildVirtualPackage(qp1, qc2);
|
||||
child.setParentRowId(qp2.getRowId());
|
||||
child.setModifyTime(LocalDateTime.now());
|
||||
childrenForUpdate.add(child);
|
||||
//直发包
|
||||
BomNewEbomChildEntity qc3 = buildVirtualPackage(false, qp1.getRowId(), root, child.getMaterialName(), child.getDrawingNo(), VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE, "002");
|
||||
BomNewEbomChildEntity qc3 = buildVirtualPackage(false, qp1.getRowId(), root, child.getMaterialName(), child.getDrawingNo(), VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE, "001");
|
||||
buildVirtualPackage(qp1, qc3);
|
||||
}
|
||||
|
||||
/**
|
||||
* 按发货-直发-制作的顺序 by 10002327 240903
|
||||
* @param root
|
||||
* @param mount
|
||||
* @param child
|
||||
*/
|
||||
private void build1020VirtualPackage(BomNewEbomParentEntity root, boolean mount, BomNewEbomChildEntity child) {
|
||||
//发货包
|
||||
BomNewEbomChildEntity xc1 = buildVirtualPackage(true, root.getRowId(), root, child.getMaterialName(), child.getDrawingNo(), VirtualPackageTypeEnum.DELIVERY_PACKAGE, child.getOrderNumber());
|
||||
BomNewEbomParentEntity xp1 = buildVirtualPackage(root, xc1);
|
||||
//制作包
|
||||
BomNewEbomChildEntity xc2 = buildVirtualPackage(true, xp1.getRowId(), root, child.getMaterialName(), child.getDrawingNo(), VirtualPackageTypeEnum.MAKING_PACKAGE, "001");
|
||||
BomNewEbomChildEntity xc2 = buildVirtualPackage(true, xp1.getRowId(), root, child.getMaterialName(), child.getDrawingNo(), VirtualPackageTypeEnum.MAKING_PACKAGE, "002");
|
||||
BomNewEbomParentEntity xp2 = buildVirtualPackage(xp1, xc2);
|
||||
if (mount) {
|
||||
child.setParentRowId(xp2.getRowId());
|
||||
|
|
@ -447,7 +477,7 @@ public class BomNewEbomGenerateVirtualPackageServiceFor31Impl implements IBomNew
|
|||
childrenForUpdate.add(child);
|
||||
}
|
||||
//直发包
|
||||
BomNewEbomChildEntity xc3 = buildVirtualPackage(true, xp1.getRowId(), root, child.getMaterialName(), child.getDrawingNo(), VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE, "002");
|
||||
BomNewEbomChildEntity xc3 = buildVirtualPackage(true, xp1.getRowId(), root, child.getMaterialName(), child.getDrawingNo(), VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE, "001");
|
||||
buildVirtualPackage(xp1, xc3);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue