Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeBasicSec.java
@@ -237,7 +237,6 @@ */ private String customCodeSerialClass; /** * 自定义的流水算法类 */ @@ -291,7 +290,7 @@ private String displayFlag; /** * 流水依赖顺序 * 流水依赖顺序 TODO:本来是用来计算流水排序的,后面因为某些原因改用orderNum了 */ private Integer serialDependOrder; Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/poi/util/ExcelUtil.java
@@ -19,7 +19,6 @@ import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.util.HSSFColor; import org.apache.poi.hssf.util.HSSFColor.HSSFColorPredefined; import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.CellRangeAddressList; Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java
@@ -1069,7 +1069,8 @@ .eq(CodeBasicSec::getPkCodeRule,codeRuleOid) .in(CodeBasicSec::getOid,codeBasicSecOidList) .eq(CodeBasicSec::getSerialDependFlag,"true") .orderByAsc(CodeBasicSec::getSerialDependOrder); //TODO: SerialDependOrder本来是用来流水排序的,但是现在的逻辑是按照orderuNum排序的 .orderByAsc(CodeBasicSec::getOrderNum); //.orderByAsc(CodeBasicSec::getSerialDependOrder); List<CodeBasicSec> codeBasicSecList = this.list(wrapper); //按流水依赖顺序,处理流水依赖码段的值 @@ -1149,7 +1150,8 @@ .eq(CodeBasicSec::getPkCodeRule,codeRuleOid) .in(CodeBasicSec::getOid,codeBasicSecOidList) .eq(CodeBasicSec::getSerialDependFlag,"true") .orderByAsc(CodeBasicSec::getSerialDependOrder); .orderByAsc(CodeBasicSec::getOrderNum); //.orderByAsc(CodeBasicSec::getSerialDependOrder); List<CodeBasicSec> codeBasicSecList = this.list(wrapper); //按流水依赖顺序,处理流水依赖码段的值 List<String> serialDependValueList = new ArrayList<>(); Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java
@@ -51,6 +51,7 @@ import javax.servlet.http.HttpServletRequest; import java.lang.reflect.Method; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; @@ -117,7 +118,7 @@ //VciBaseUtil.setCurrentUserSessionInfo(sessionInfo); String code = cbo.getId(); List<String> serialUnitList = new CopyOnWriteArrayList<>(); String seclenghStr=cbo.getData().get(CODE_SEC_LENGTH_FIELD); //String seclenghStr=cbo.getData().get(CODE_SEC_LENGTH_FIELD); String[] secLengths = cbo.getData().get(CODE_SEC_LENGTH_FIELD).split("#"); cbo.getData().remove(CODE_SEC_LENGTH_FIELD);//将此key除去 cbo.getData().remove(IMPORT_ROW_INDEX);//将此key除去 @@ -184,6 +185,8 @@ OsCodeFillTypeEnum.LEFT.getValue().equalsIgnoreCase(secVO.getCodeFillType())); } Double newSerialDb= CustomSerialEnum.getDoubleCustomSerialValue(serialDb,secVO.getCustomCodeSerialType()); //TODO: 20240822需要这块代码是同步性的,maxSerialMap这儿会因为线程受影响,修改后测试多次总数为5000条一次导入耗费时间为3分30秒左右 synchronized(this) { HashMap<String, String> thisUnitMaxMap = maxSerialMap.getOrDefault(serialUnitString, new HashMap<>()); Double maxValue=newSerialDb; if(thisUnitMaxMap.containsKey(secOid)){ @@ -198,6 +201,7 @@ thisUnitMaxMap.put(secOid,newMaxValue); maxSerialMap.put(serialUnitString,thisUnitMaxMap); serialUnFileStringList.add(String.valueOf(serialDb)); } }); } CodeAllCode allCodeDO = new CodeAllCode(); @@ -273,7 +277,6 @@ allCodeWrapper.in("id", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(codeDOs.stream().map(s->s.getId()).collect(Collectors.toList()).toArray(new String[0])) + ")"); List<CodeAllCode> existCodes = codeAllCodeService.selectByWrapper(allCodeWrapper); if(!CollectionUtils.isEmpty(existCodes)){ existCodes.stream().forEach(existCode->{