refactor: 优化虚拟包识别

This commit is contained in:
曹鹏飞 2024-08-03 16:14:29 +08:00
parent 25082c28a2
commit fad5673c64
5 changed files with 76 additions and 32 deletions

View File

@ -14,7 +14,7 @@ public enum VirtualPackageTypeEnum implements ValueEnum<Integer>{
MAKING_PACKAGE(2,"制作包","制作","201101","",2),
DIRECT_DELIVERY_PACKAGE(4,"直发包","直发","201101","F",4),
PRE_ASSEMBLY_PACKAGE(8,"发货前装配包","发货前装配","201101","Z",8),
PAINT_PACKAGE(16, "油漆包", "油漆", "201101", "", 16);
PAINT_PACKAGE(16, "油漆包", "油漆", "201101", "", 16);
private final Integer value;
private final String description;

View File

@ -556,8 +556,9 @@ public class EBomImportService {
if (!parent.getMaterialNo().startsWith("22")) {
return;
}
if (parent.getMaterialDesc().endsWith(")(发货)") || parent.getMaterialDesc().endsWith(")(制作)")
|| parent.getMaterialDesc().endsWith(")(直发)") || parent.getMaterialDesc().endsWith(")(发货前装配)")) {
if (Objects.equals(VirtualPackageTypeEnum.UN_VIRTUAL_PACKAGE, BomUtil.getVirtualPackageTypeEnum(parent.getMaterialDesc()))) {
parent.setVirtualPackageIs(0);
} else {
parent.setVirtualPackageIs(1);
}
}
@ -566,15 +567,7 @@ public class EBomImportService {
if (!child.getMaterialNo().startsWith("22")) {
return;
}
if (child.getMaterialDesc().endsWith(")(发货)")) {
child.setVirtualPartType(VirtualPackageTypeEnum.DELIVERY_PACKAGE.getValue());
} else if (child.getMaterialDesc().endsWith(")(制作)")) {
child.setVirtualPartType(VirtualPackageTypeEnum.MAKING_PACKAGE.getValue());
} else if (child.getMaterialDesc().endsWith(")(直发)")) {
child.setVirtualPartType(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getValue());
} else if (child.getMaterialDesc().endsWith(")(发货前装配)")) {
child.setVirtualPartType(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue());
}
child.setVirtualPartType(BomUtil.getVirtualPackageTypeEnum(child.getMaterialDesc()).getValue());
}
private boolean isEquals(BigDecimal a, BigDecimal b) {

View File

@ -21,10 +21,7 @@ import com.nflg.product.bomnew.service.BomNewEbomChildService;
import com.nflg.product.bomnew.service.BomNewEbomParentService;
import com.nflg.product.bomnew.service.MaterialMainService;
import com.nflg.product.bomnew.service.UserRoleService;
import com.nflg.product.bomnew.util.ListCommonUtil;
import com.nflg.product.bomnew.util.MaterialshouldBomExistUtil;
import com.nflg.product.bomnew.util.VUtils;
import com.nflg.product.bomnew.util.VersionUtil;
import com.nflg.product.bomnew.util.*;
import lombok.Getter;
import nflg.product.common.constant.STATE;
@ -161,22 +158,8 @@ public class EBomEdit {
public static void checkVirtualPackage(BomNewEbomChildEntity child){
if (StrUtil.equals(child.getProjectType(), BomConstant.PROJECT_TYPE_TEMPORARY)) {
child.setVirtualPartType(VirtualPackageTypeEnum.UN_VIRTUAL_PACKAGE.getValue());
child.setVirtualPartIs(0);
} else if (StrUtil.isNotBlank(child.getMaterialName())) {
if (child.getMaterialName().contains(VirtualPackageTypeEnum.MAKING_PACKAGE.getConMaterialName())) {
child.setVirtualPartType(VirtualPackageTypeEnum.MAKING_PACKAGE.getValue());
child.setVirtualPartIs(1);
} else if (child.getMaterialName().contains(VirtualPackageTypeEnum.DELIVERY_PACKAGE.getConMaterialName())) {
child.setVirtualPartType(VirtualPackageTypeEnum.DELIVERY_PACKAGE.getValue());
child.setVirtualPartIs(1);
} else if (child.getMaterialName().contains(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getConMaterialName())) {
child.setVirtualPartType(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.getValue());
child.setVirtualPartIs(1);
} else if (child.getMaterialName().contains(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getConMaterialName())) {
child.setVirtualPartType(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue());
child.setVirtualPartIs(1);
}
} else {
child.setVirtualPartType(BomUtil.getVirtualPackageTypeEnum(child.getMaterialDesc()).getValue());
}
}

View File

@ -2,6 +2,7 @@ package com.nflg.product.bomnew.util;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import com.nflg.product.bomnew.constant.VirtualPackageTypeEnum;
import java.math.BigDecimal;
import java.util.Objects;
@ -81,4 +82,16 @@ public class BomUtil {
}
return orderNum;
}
public static VirtualPackageTypeEnum getVirtualPackageTypeEnum(String content) {
if (StrUtil.isBlank(content)) {
return VirtualPackageTypeEnum.UN_VIRTUAL_PACKAGE;
}
for (VirtualPackageTypeEnum virtualPackageTypeEnum : VirtualPackageTypeEnum.values()) {
if (content.endsWith("(" + virtualPackageTypeEnum.getConMaterialName() + ")")) {
return virtualPackageTypeEnum;
}
}
return VirtualPackageTypeEnum.UN_VIRTUAL_PACKAGE;
}
}

View File

@ -0,0 +1,55 @@
package com.nflg.product.bomnew.service.test;
import com.nflg.product.bomnew.constant.VirtualPackageTypeEnum;
import com.nflg.product.bomnew.util.BomUtil;
import org.junit.Assert;
import org.junit.Test;
/**
* @author 曹鹏飞
* @date 2024/8/3 15:52:56
*/
public class BomUtilTest {
@Test
public void test1() {
String content = "XXXXX(发货)";
Assert.assertEquals(VirtualPackageTypeEnum.DELIVERY_PACKAGE, BomUtil.getVirtualPackageTypeEnum(content));
}
@Test
public void test2() {
String content = "XXXXX(制作)";
Assert.assertEquals(VirtualPackageTypeEnum.MAKING_PACKAGE, BomUtil.getVirtualPackageTypeEnum(content));
}
@Test
public void test3() {
String content = "XXXXX(直发)";
Assert.assertEquals(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE, BomUtil.getVirtualPackageTypeEnum(content));
}
@Test
public void test4() {
String content = "XXXXX(发货前装配)";
Assert.assertEquals(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE, BomUtil.getVirtualPackageTypeEnum(content));
}
@Test
public void test5() {
String content = "XXXXX(油漆)";
Assert.assertEquals(VirtualPackageTypeEnum.PAINT_PACKAGE, BomUtil.getVirtualPackageTypeEnum(content));
}
@Test
public void test6() {
String content = "XXXXX(对方的)";
Assert.assertEquals(VirtualPackageTypeEnum.UN_VIRTUAL_PACKAGE, BomUtil.getVirtualPackageTypeEnum(content));
}
@Test
public void test7() {
String content = "XXXXX直发";
Assert.assertEquals(VirtualPackageTypeEnum.UN_VIRTUAL_PACKAGE, BomUtil.getVirtualPackageTypeEnum(content));
}
}