mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-14 05:42:06 +08:00
SnowflakeIdWorker3rd逻辑还原
This commit is contained in:
-13
@@ -70,19 +70,6 @@ public class SnowflakeIdWorker3rd {
|
|||||||
return Integer.parseInt(formatted_date);
|
return Integer.parseInt(formatted_date);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 生成小板短编号。
|
|
||||||
*
|
|
||||||
* <p>编号以固定的 {@code 1} 开始,再拼接五位组织编号,避免其他系统截取前五位时出现前导零。</p>
|
|
||||||
*
|
|
||||||
* @param organId 组织编号
|
|
||||||
* @param id 小板序列号
|
|
||||||
* @return 小板短编号
|
|
||||||
*/
|
|
||||||
public static String generatePlateNo(Long organId, long id) {
|
|
||||||
return "1" + String.format("%05d", organId) + obtainingTime() + Long.toString(id).substring(2);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得下一个ID (该方法是线程安全)
|
* 获得下一个ID (该方法是线程安全)
|
||||||
*
|
*
|
||||||
|
|||||||
-17
@@ -1,17 +0,0 @@
|
|||||||
package com.cf.imes.framework.id.core.util;
|
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
|
||||||
|
|
||||||
class SnowflakeIdWorker3rdTest {
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void generatePlateNoStartsWithOneAndKeepsFiveDigitOrganId() {
|
|
||||||
String plateNo = SnowflakeIdWorker3rd.generatePlateNo(7L, 123456L);
|
|
||||||
|
|
||||||
assertTrue(plateNo.startsWith("1"));
|
|
||||||
assertEquals("00007", plateNo.substring(1, 6));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+10
-26
@@ -569,8 +569,6 @@ public class PlateServiceImpl implements PlateService {
|
|||||||
|
|
||||||
Map<Long, OrderPlanPlateNumAndAreaRespVO> orderGoodsPlanPlateNumAndAreaRespVOMap = new HashMap<>();
|
Map<Long, OrderPlanPlateNumAndAreaRespVO> orderGoodsPlanPlateNumAndAreaRespVOMap = new HashMap<>();
|
||||||
|
|
||||||
Long organId = getUserOrganId();
|
|
||||||
|
|
||||||
// 组装新增数据
|
// 组装新增数据
|
||||||
reqVO.forEach(f -> {
|
reqVO.forEach(f -> {
|
||||||
|
|
||||||
@@ -586,7 +584,8 @@ public class PlateServiceImpl implements PlateService {
|
|||||||
.build());
|
.build());
|
||||||
|
|
||||||
// 生成板编号
|
// 生成板编号
|
||||||
String plateNo = SnowflakeIdWorker3rd.generatePlateNo(organId, idWorker.nextId());
|
long obtainingTime = idWorker.obtainingTime();
|
||||||
|
String plateNo = "1" + obtainingTime + Long.toString(idWorker.nextId()).substring(2);
|
||||||
|
|
||||||
String remake1 = f.getRemake1() == null ? "" : f.getRemake1() + ";";
|
String remake1 = f.getRemake1() == null ? "" : f.getRemake1() + ";";
|
||||||
|
|
||||||
@@ -603,7 +602,6 @@ public class PlateServiceImpl implements PlateService {
|
|||||||
plateDOS.add(PlateDO.builder()
|
plateDOS.add(PlateDO.builder()
|
||||||
.id(plateId)
|
.id(plateId)
|
||||||
.orderId(orderId)
|
.orderId(orderId)
|
||||||
.organId(organId)
|
|
||||||
.name(f.getName())
|
.name(f.getName())
|
||||||
.plateNo(plateNo)
|
.plateNo(plateNo)
|
||||||
.type(OrderPlateTypeEnum.SELFINCREASINGBOARD.getType())
|
.type(OrderPlateTypeEnum.SELFINCREASINGBOARD.getType())
|
||||||
@@ -1228,8 +1226,8 @@ public class PlateServiceImpl implements PlateService {
|
|||||||
@Override
|
@Override
|
||||||
public OrderPlateWechatMiniProgramCadInfoRespVO getPlateInfoByPlateNo(String plateNo) {
|
public OrderPlateWechatMiniProgramCadInfoRespVO getPlateInfoByPlateNo(String plateNo) {
|
||||||
// 1、解析组织id,查询板件信息
|
// 1、解析组织id,查询板件信息
|
||||||
Long organId = parseOrganId(plateNo);
|
Integer organId = Integer.parseInt(plateNo.substring(0, 5));
|
||||||
organApi.validOrgan(organId).checkError();
|
organApi.validOrgan(organId.longValue()).checkError();
|
||||||
|
|
||||||
PlateDO plateDO = plateMapper.selectOne(new LambdaQueryWrapper<PlateDO>()
|
PlateDO plateDO = plateMapper.selectOne(new LambdaQueryWrapper<PlateDO>()
|
||||||
.eq(PlateDO::getOrganId, organId)
|
.eq(PlateDO::getOrganId, organId)
|
||||||
@@ -1294,8 +1292,9 @@ public class PlateServiceImpl implements PlateService {
|
|||||||
public OrderWechatMiniProgramCadInfoRespVO getOrderInfoByPlateNo(String plateNo) {
|
public OrderWechatMiniProgramCadInfoRespVO getOrderInfoByPlateNo(String plateNo) {
|
||||||
OrderWechatMiniProgramCadInfoRespVO result = new OrderWechatMiniProgramCadInfoRespVO();
|
OrderWechatMiniProgramCadInfoRespVO result = new OrderWechatMiniProgramCadInfoRespVO();
|
||||||
// 1、解析组织id,查询板件信息
|
// 1、解析组织id,查询板件信息
|
||||||
Long organIdLong = parseOrganId(plateNo);
|
Integer organId = Integer.parseInt(plateNo.substring(0, 5));
|
||||||
organApi.validOrgan(organIdLong).checkError();
|
Long organIdLong = organId.longValue();
|
||||||
|
organApi.validOrgan(organId.longValue()).checkError();
|
||||||
|
|
||||||
PlateDO plateDO = plateMapper.selectOne(new LambdaQueryWrapper<PlateDO>()
|
PlateDO plateDO = plateMapper.selectOne(new LambdaQueryWrapper<PlateDO>()
|
||||||
.eq(PlateDO::getOrganId, organIdLong)
|
.eq(PlateDO::getOrganId, organIdLong)
|
||||||
@@ -1324,8 +1323,9 @@ public class PlateServiceImpl implements PlateService {
|
|||||||
@Override
|
@Override
|
||||||
public OrdersViewCadViewInfoRespVO getOrderDetailsByPlateNo(String plateNo, OrderWechatMiniProgramDetailReqVO reqVO) {
|
public OrdersViewCadViewInfoRespVO getOrderDetailsByPlateNo(String plateNo, OrderWechatMiniProgramDetailReqVO reqVO) {
|
||||||
// 1、解析组织id,查询板件信息
|
// 1、解析组织id,查询板件信息
|
||||||
Long organIdLong = parseOrganId(plateNo);
|
Integer organId = Integer.parseInt(plateNo.substring(0, 5));
|
||||||
organApi.validOrgan(organIdLong).checkError();
|
Long organIdLong = organId.longValue();
|
||||||
|
organApi.validOrgan(organId.longValue()).checkError();
|
||||||
|
|
||||||
OrganContextHolder.setIgnore(false);
|
OrganContextHolder.setIgnore(false);
|
||||||
OrganContextHolder.setOrganId(organIdLong);
|
OrganContextHolder.setOrganId(organIdLong);
|
||||||
@@ -1357,20 +1357,4 @@ public class PlateServiceImpl implements PlateService {
|
|||||||
return orderComponentService.getOrderViewCadInfo(detailReqVO);
|
return orderComponentService.getOrderViewCadInfo(detailReqVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 从板件短编号解析组织编号,同时兼容旧版未增加固定前缀的编号。
|
|
||||||
*
|
|
||||||
* @param plateNo 板件短编号
|
|
||||||
* @return 组织编号
|
|
||||||
*/
|
|
||||||
private Long parseOrganId(String plateNo) {
|
|
||||||
if (plateNo.length() >= 10 && plateNo.charAt(0) == '1') {
|
|
||||||
int year = Integer.parseInt(plateNo.substring(6, 8));
|
|
||||||
int month = Integer.parseInt(plateNo.substring(8, 10));
|
|
||||||
if (year >= 20 && month >= 1 && month <= 12) {
|
|
||||||
return Long.parseLong(plateNo.substring(1, 6));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return Long.parseLong(plateNo.substring(0, 5));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -966,6 +966,7 @@ public class ApiTypeRealize {
|
|||||||
for (int i = 0; i < plateLists.size(); i++) {
|
for (int i = 0; i < plateLists.size(); i++) {
|
||||||
|
|
||||||
long plateNo = idWorker.nextId();
|
long plateNo = idWorker.nextId();
|
||||||
|
long obtainingTime = idWorker.obtainingTime();
|
||||||
|
|
||||||
JSONObject plate = plateLists.getJSONObject(i);
|
JSONObject plate = plateLists.getJSONObject(i);
|
||||||
|
|
||||||
@@ -983,7 +984,7 @@ public class ApiTypeRealize {
|
|||||||
.id(plateId)
|
.id(plateId)
|
||||||
.orderId(orderId)
|
.orderId(orderId)
|
||||||
.name(plate.getString(ProduceApiConstants.BD_BOARD_NAME))
|
.name(plate.getString(ProduceApiConstants.BD_BOARD_NAME))
|
||||||
.plateNo(SnowflakeIdWorker3rd.generatePlateNo(organId, plateNo))
|
.plateNo("1" + obtainingTime + Long.toString(plateNo).substring(2))
|
||||||
.type(type)
|
.type(type)
|
||||||
.goodsId(plate.getLong(ProduceApiConstants.BD_GOODS_ID))
|
.goodsId(plate.getLong(ProduceApiConstants.BD_GOODS_ID))
|
||||||
.splitHeight(BigDecimal.valueOf(plate.getDouble(ProduceApiConstants.BD_SPLIT_HEIGHT)))
|
.splitHeight(BigDecimal.valueOf(plate.getDouble(ProduceApiConstants.BD_SPLIT_HEIGHT)))
|
||||||
|
|||||||
+2
-1
@@ -274,6 +274,7 @@ public class ExcelTypeRealize {
|
|||||||
|
|
||||||
for (int i = 0; i < Integer.parseInt(combination.getGoodsNumber()); i++) {
|
for (int i = 0; i < Integer.parseInt(combination.getGoodsNumber()); i++) {
|
||||||
long plateNo = idWorker.nextId();
|
long plateNo = idWorker.nextId();
|
||||||
|
long obtainingTime = idWorker.obtainingTime();
|
||||||
|
|
||||||
// 计算面积
|
// 计算面积
|
||||||
BigDecimal area = BigDecimal.valueOf(Double.parseDouble(combination.getWidth()))
|
BigDecimal area = BigDecimal.valueOf(Double.parseDouble(combination.getWidth()))
|
||||||
@@ -292,7 +293,7 @@ public class ExcelTypeRealize {
|
|||||||
.plateNo(combination.getPlateNo())
|
.plateNo(combination.getPlateNo())
|
||||||
.goodsId(combination.getGoodId())
|
.goodsId(combination.getGoodId())
|
||||||
.width(BigDecimal.valueOf(Double.parseDouble(combination.getWidth())))
|
.width(BigDecimal.valueOf(Double.parseDouble(combination.getWidth())))
|
||||||
.plateNo(SnowflakeIdWorker3rd.generatePlateNo(organId, plateNo))
|
.plateNo("1" + obtainingTime + Long.toString(plateNo).substring(2))
|
||||||
.height(BigDecimal.valueOf(Double.parseDouble(combination.getHeight())))
|
.height(BigDecimal.valueOf(Double.parseDouble(combination.getHeight())))
|
||||||
.thickness(BigDecimal.valueOf(Double.parseDouble(combination.getThickness())))
|
.thickness(BigDecimal.valueOf(Double.parseDouble(combination.getThickness())))
|
||||||
.splitWidth(BigDecimal.valueOf(Double.parseDouble(combination.getSplitWidth())))
|
.splitWidth(BigDecimal.valueOf(Double.parseDouble(combination.getSplitWidth())))
|
||||||
|
|||||||
+2
-1
@@ -809,6 +809,7 @@ public class XmlTypeRealize {
|
|||||||
for (BlockXmlVO blockXmlVO : blockXmlVOS.getBlockXmlVOList()) {
|
for (BlockXmlVO blockXmlVO : blockXmlVOS.getBlockXmlVOList()) {
|
||||||
|
|
||||||
long plateNo = idWorker.nextId();
|
long plateNo = idWorker.nextId();
|
||||||
|
long obtainingTime = idWorker.obtainingTime();
|
||||||
Long plateId = (Long) identifierGenerator.nextId(null);
|
Long plateId = (Long) identifierGenerator.nextId(null);
|
||||||
|
|
||||||
// 成品面积
|
// 成品面积
|
||||||
@@ -864,7 +865,7 @@ public class XmlTypeRealize {
|
|||||||
.organId(organId)
|
.organId(organId)
|
||||||
.orderId(orderId)
|
.orderId(orderId)
|
||||||
.name(blockXmlVO.getName())
|
.name(blockXmlVO.getName())
|
||||||
.plateNo(SnowflakeIdWorker3rd.generatePlateNo(organId, plateNo))
|
.plateNo("1" + obtainingTime + Long.toString(plateNo).substring(2))
|
||||||
.type(plateType)
|
.type(plateType)
|
||||||
.goodsId(goodsId)
|
.goodsId(goodsId)
|
||||||
.width(BigDecimal.valueOf(Double.parseDouble(blockXmlVO.getWidth())))
|
.width(BigDecimal.valueOf(Double.parseDouble(blockXmlVO.getWidth())))
|
||||||
|
|||||||
+2
-1
@@ -655,6 +655,7 @@ public class DefaultExcelOrderImportFactory {
|
|||||||
// 根据数量生成num个小板数据
|
// 根据数量生成num个小板数据
|
||||||
for (int i = 0; i < num; i++) {
|
for (int i = 0; i < num; i++) {
|
||||||
long plateNo = idWorker.nextId();
|
long plateNo = idWorker.nextId();
|
||||||
|
long obtainingTime = idWorker.obtainingTime();
|
||||||
long goodsId = Long.parseLong(tempDataDO.getInnerGoodsId());
|
long goodsId = Long.parseLong(tempDataDO.getInnerGoodsId());
|
||||||
// 成品宽
|
// 成品宽
|
||||||
String width = combination.getWidth();
|
String width = combination.getWidth();
|
||||||
@@ -673,7 +674,7 @@ public class DefaultExcelOrderImportFactory {
|
|||||||
.name(combination.getName())
|
.name(combination.getName())
|
||||||
.type(OrderPlateTypeEnum.LAYERBOARD.getType())
|
.type(OrderPlateTypeEnum.LAYERBOARD.getType())
|
||||||
.goodsId(goodsId)
|
.goodsId(goodsId)
|
||||||
.plateNo(SnowflakeIdWorker3rd.generatePlateNo(organId, plateNo))
|
.plateNo("1" + String.format("%05d", organId) + obtainingTime + Long.toString(plateNo).substring(2))
|
||||||
.height(BigDecimal.valueOf(Double.parseDouble(height)))
|
.height(BigDecimal.valueOf(Double.parseDouble(height)))
|
||||||
.width(BigDecimal.valueOf(Double.parseDouble(width)))
|
.width(BigDecimal.valueOf(Double.parseDouble(width)))
|
||||||
.thickness(BigDecimal.valueOf(Double.parseDouble(combination.getThickness())))
|
.thickness(BigDecimal.valueOf(Double.parseDouble(combination.getThickness())))
|
||||||
|
|||||||
+2
-1
@@ -465,6 +465,7 @@ public class DefaultXmlOrderImportFactory {
|
|||||||
BlockXmlVO blockXmlVO = JSON.parseObject(detail, BlockXmlVO.class);
|
BlockXmlVO blockXmlVO = JSON.parseObject(detail, BlockXmlVO.class);
|
||||||
|
|
||||||
long plateNo = idWorker.nextId();
|
long plateNo = idWorker.nextId();
|
||||||
|
long obtainingTime = idWorker.obtainingTime();
|
||||||
Long plateId = (Long) snowFlakeGenerator.nextId(null);
|
Long plateId = (Long) snowFlakeGenerator.nextId(null);
|
||||||
|
|
||||||
// 成品面积
|
// 成品面积
|
||||||
@@ -514,7 +515,7 @@ public class DefaultXmlOrderImportFactory {
|
|||||||
.id(plateId)
|
.id(plateId)
|
||||||
.orderId(orderId)
|
.orderId(orderId)
|
||||||
.name(blockXmlVO.getName())
|
.name(blockXmlVO.getName())
|
||||||
.plateNo(SnowflakeIdWorker3rd.generatePlateNo(organId, plateNo))
|
.plateNo("1" + String.format("%05d", organId) + obtainingTime + Long.toString(plateNo).substring(2))
|
||||||
.type(plateType)
|
.type(plateType)
|
||||||
.goodsId(goodsId)
|
.goodsId(goodsId)
|
||||||
.width(BigDecimal.valueOf(Double.parseDouble(blockXmlVO.getWidth())))
|
.width(BigDecimal.valueOf(Double.parseDouble(blockXmlVO.getWidth())))
|
||||||
|
|||||||
+2
-1
@@ -1244,6 +1244,7 @@ public class ProducingOrderImportFactory {
|
|||||||
|
|
||||||
Long plateId = (Long) snowFlakeGenerator.nextId(null);
|
Long plateId = (Long) snowFlakeGenerator.nextId(null);
|
||||||
long plateNo = idWorker.nextId();
|
long plateNo = idWorker.nextId();
|
||||||
|
long obtainingTime = idWorker.obtainingTime();
|
||||||
|
|
||||||
// 从info.remarks中获取备注相关
|
// 从info.remarks中获取备注相关
|
||||||
ProducingImportBlockRemark plateRemark = getPlateRemark(block);
|
ProducingImportBlockRemark plateRemark = getPlateRemark(block);
|
||||||
@@ -1268,7 +1269,7 @@ public class ProducingOrderImportFactory {
|
|||||||
.id(plateId)
|
.id(plateId)
|
||||||
.orderId(orderId)
|
.orderId(orderId)
|
||||||
.name(block.getName())
|
.name(block.getName())
|
||||||
.plateNo(SnowflakeIdWorker3rd.generatePlateNo(organId, plateNo))
|
.plateNo("1" + String.format("%05d", organId) + obtainingTime + Long.toString(plateNo).substring(2))
|
||||||
.type(block.getType())
|
.type(block.getType())
|
||||||
.goodsId(goodsDO.getId())
|
.goodsId(goodsDO.getId())
|
||||||
.width(getBigDecimalOrNull(block.getWidth()))
|
.width(getBigDecimalOrNull(block.getWidth()))
|
||||||
|
|||||||
+2
-1
@@ -770,6 +770,7 @@ public class WebCadOrderImportAsyncFactory {
|
|||||||
|
|
||||||
Long plateId = (Long) snowFlakeGenerator.nextId(null);
|
Long plateId = (Long) snowFlakeGenerator.nextId(null);
|
||||||
long plateNo = idWorker.nextId();
|
long plateNo = idWorker.nextId();
|
||||||
|
long obtainingTime = idWorker.obtainingTime();
|
||||||
|
|
||||||
// 从info.remarks中获取备注相关
|
// 从info.remarks中获取备注相关
|
||||||
WebCadDataBlockRemarkVO plateRemark = getPlateRemark(block);
|
WebCadDataBlockRemarkVO plateRemark = getPlateRemark(block);
|
||||||
@@ -796,7 +797,7 @@ public class WebCadOrderImportAsyncFactory {
|
|||||||
.id(plateId)
|
.id(plateId)
|
||||||
.orderId(orderId)
|
.orderId(orderId)
|
||||||
.name(block.getName())
|
.name(block.getName())
|
||||||
.plateNo(SnowflakeIdWorker3rd.generatePlateNo(organId, plateNo))
|
.plateNo("1" + String.format("%05d", organId) + obtainingTime + Long.toString(plateNo).substring(2))
|
||||||
.type(block.getType())
|
.type(block.getType())
|
||||||
.goodsId(goodsDO.getId())
|
.goodsId(goodsDO.getId())
|
||||||
.width(getBigDecimalOrNull(block.getWidth()))
|
.width(getBigDecimalOrNull(block.getWidth()))
|
||||||
|
|||||||
+2
-1
@@ -953,6 +953,7 @@ public class WebCadOrderImportFactory {
|
|||||||
|
|
||||||
Long plateId = (Long) snowFlakeGenerator.nextId(null);
|
Long plateId = (Long) snowFlakeGenerator.nextId(null);
|
||||||
long plateNo = idWorker.nextId();
|
long plateNo = idWorker.nextId();
|
||||||
|
long obtainingTime = idWorker.obtainingTime();
|
||||||
|
|
||||||
// 从info.remarks中获取备注相关
|
// 从info.remarks中获取备注相关
|
||||||
WebCadDataBlockRemarkVO plateRemark = getPlateRemark(block);
|
WebCadDataBlockRemarkVO plateRemark = getPlateRemark(block);
|
||||||
@@ -977,7 +978,7 @@ public class WebCadOrderImportFactory {
|
|||||||
.id(plateId)
|
.id(plateId)
|
||||||
.orderId(orderId)
|
.orderId(orderId)
|
||||||
.name(block.getName())
|
.name(block.getName())
|
||||||
.plateNo(SnowflakeIdWorker3rd.generatePlateNo(organId, plateNo))
|
.plateNo("1" + String.format("%05d", organId) + obtainingTime + Long.toString(plateNo).substring(2))
|
||||||
.type(block.getType())
|
.type(block.getType())
|
||||||
.goodsId(goodsDO.getId())
|
.goodsId(goodsDO.getId())
|
||||||
.width(getBigDecimalOrNull(block.getWidth()))
|
.width(getBigDecimalOrNull(block.getWidth()))
|
||||||
|
|||||||
Reference in New Issue
Block a user