update 分成功能

This commit is contained in:
Guoqs
2024-09-25 17:07:17 +08:00
parent 6733b2d94a
commit 050534263a
10 changed files with 403 additions and 7 deletions

View File

@@ -60,23 +60,44 @@ public class PileSnGenerateService {
// 缓存中没有,从数据库中取
PileBasicInfo pileInfo = pileBasicInfoService.getMaxNumPileInfo();
String pileSn = pileInfo.getSn();
// 将前四位截取,并将后面转为long
Long pileSnNum = Long.parseLong(StringUtils.substring(pileSn, 4, pileSn.length()));
// String pileSnNum = StringUtils.substring(pileSn, 4, pileSn.length());
// 将前四位截取,并将后面转为int
pileNum = Integer.parseInt(StringUtils.substring(pileSn, 4, pileSn.length()));
// 再将该值存入数据库
redisCache.setCacheObject(key, pileSnNum.intValue());
redisCache.setCacheObject(key, pileNum);
}
Long increNum = redisCache.increment(key, 1);
// 年份
int year = LocalDate.now().getYear() - 2000;
//不足补位
increResult = prefix + year + String.format("%1$010d", increNum);
// 保存到字典中
savePileSn2Dict(pileNum);
} catch (Exception e) {
logger.error("获取序列号失败", e);
}
return increResult;
}
private void savePileSn2Dict(long pileSnNum) {
SysDictData queryData = new SysDictData();
queryData.setDictType(pile_sn_generate_type);
queryData.setDictLabel(EV_PILE_SN_LABEL);
List<SysDictData> sysDictData = dictDataService.selectDictDataList(queryData);
if (CollectionUtils.isNotEmpty(sysDictData)) {
SysDictData dictData = sysDictData.get(0);
dictData.setDictValue(pileSnNum + "");
dictDataService.updateDictData(dictData);
} else {
SysDictData dictData = new SysDictData();
dictData.setDictType(pile_sn_generate_type);
dictData.setDictLabel(EBIKE_PILE_SN_LABEL);
dictData.setDictValue(pileSnNum + "");
dictData.setListClass(Constants.DEFAULT);
dictData.setCreateBy(Constants.SYSTEM);
dictDataService.insertDictData(dictData);
}
}
/**
* 批量生成sn号
@@ -131,18 +152,18 @@ public class PileSnGenerateService {
pileSnNum += 1;
// 再将该值存入数据库
increResult = prefix + year + String.format("%1$04d", pileSnNum);
save2Dict(year, pileSnNum);
saveEBikeSn2Dict(year, pileSnNum);
} else {
// 没有值, 从1开始, 并保存到字典中
Long pileSnNum = 1L;
increResult = prefix + year + String.format("%1$04d", pileSnNum);
save2Dict(year, pileSnNum);
saveEBikeSn2Dict(year, pileSnNum);
}
return increResult;
}
private void save2Dict(int year, long pileSnNum) {
private void saveEBikeSn2Dict(int year, long pileSnNum) {
SysDictData queryData = new SysDictData();
queryData.setDictType(pile_sn_generate_type);
queryData.setDictLabel(EBIKE_PILE_SN_LABEL + year);