|
|
|
@ -1255,6 +1255,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
YieldOrder subYield = BeanUtil.copy(yieldOrder, YieldOrder.class); |
|
|
|
YieldOrder subYield = BeanUtil.copy(yieldOrder, YieldOrder.class); |
|
|
|
|
|
|
|
subYield.setYpArea(null); |
|
|
|
subYield.setFatherYoId(yieldOrder.getId()); |
|
|
|
subYield.setFatherYoId(yieldOrder.getId()); |
|
|
|
subYield.setYoCode(nextYieldOrderCode(yieldOrder.getYoCode())); |
|
|
|
subYield.setYoCode(nextYieldOrderCode(yieldOrder.getYoCode())); |
|
|
|
subYield.setPartCode(dsPart.getPartCode()); |
|
|
|
subYield.setPartCode(dsPart.getPartCode()); |
|
|
|
@ -1308,25 +1309,24 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private String nextYieldOrderCode(String yoCode) { |
|
|
|
private String nextYieldOrderCode(String yoCode) { |
|
|
|
// 自增总长度
|
|
|
|
String codePattern = yoCode + "-B"; |
|
|
|
int len = 2; |
|
|
|
|
|
|
|
// 自增值
|
|
|
|
|
|
|
|
Integer num = 0; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 编码模式
|
|
|
|
// 使用悲观锁查询当前最大编码
|
|
|
|
String codePattern = yoCode.toString() + "-B"; |
|
|
|
LambdaQueryWrapper<YieldOrder> wrapper = Wrappers.lambdaQuery(YieldOrder.class) |
|
|
|
|
|
|
|
.likeRight(YieldOrder::getYoCode, codePattern) |
|
|
|
|
|
|
|
.orderBy(true, false, YieldOrder::getYoCode) |
|
|
|
|
|
|
|
.last("FOR UPDATE"); |
|
|
|
|
|
|
|
|
|
|
|
// 当前模式下最大编码
|
|
|
|
List<YieldOrder> list = baseMapper.selectList(wrapper); |
|
|
|
LambdaQueryWrapper<YieldOrder> wrapper = Wrappers.lambdaQuery(YieldOrder.class).likeRight(YieldOrder::getYoCode, codePattern).orderBy(true, false, YieldOrder::getYoCode); |
|
|
|
|
|
|
|
YieldOrder yieldOrder = baseMapper.selectOne(wrapper); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (yieldOrder != null) { |
|
|
|
Integer num = 0; |
|
|
|
num = Integer.parseInt(yieldOrder.getYoCode().substring(codePattern.length())); |
|
|
|
if (!list.isEmpty()) { |
|
|
|
|
|
|
|
String maxCode = list.get(0).getYoCode(); |
|
|
|
|
|
|
|
num = Integer.parseInt(maxCode.substring(codePattern.length())); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
num++; |
|
|
|
num++; |
|
|
|
|
|
|
|
int len = Math.max(2, String.valueOf(num).length()); |
|
|
|
// 下个编码
|
|
|
|
|
|
|
|
return codePattern + StringPrefixUtils.prefix(String.valueOf(num), "0", len); |
|
|
|
return codePattern + StringPrefixUtils.prefix(String.valueOf(num), "0", len); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|