From cec9a2725b3ca250dbf1b00636c38e668ec24518 Mon Sep 17 00:00:00 2001 From: liuyiliang Date: Wed, 17 Jul 2024 11:13:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=93=E5=BA=93=E7=BC=96=E5=8F=B7=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WarehouseController.java | 20 +++++++++++++++++++ .../energy/modules/system/util/DataUtils.java | 17 ++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/src/main/java/org/energy/modules/spares/controller/WarehouseController.java b/src/main/java/org/energy/modules/spares/controller/WarehouseController.java index c34bf84..40464c1 100644 --- a/src/main/java/org/energy/modules/spares/controller/WarehouseController.java +++ b/src/main/java/org/energy/modules/spares/controller/WarehouseController.java @@ -140,6 +140,26 @@ public class WarehouseController extends DafController { @ApiOperationSupport(order = 6) @ApiOperation(value = "新增或修改", notes = "传入warehouse") public R submit(@Valid @RequestBody Warehouse warehouse) { + if (warehouse.getId() == null) { + QueryWrapper qw = new QueryWrapper<>(); + qw.lambda().select(Warehouse::getCode) + .eq(Warehouse::getType, warehouse.getType()) + .eq(Warehouse::getIsDeleted, DafConstant.DB_NOT_DELETED) + .orderByDesc(Warehouse::getCode) + .last("LIMIT 1"); + String code = ""; + Warehouse warehouseSelect = warehouseService.getOne(qw); + if (warehouseSelect != null) { + String maxCode = warehouseSelect.getCode(); + if ("9999".equals(maxCode)) { + return R.fail("操作失败,编号已越位"); + } + code = "CK" + warehouse.getType() + DataUtils.incrementLast(maxCode, 4); + } else { + code = "CK" + warehouse.getType() + "0001"; + } + warehouse.setCode(code); + } return R.status(warehouseService.saveOrUpdate(warehouse)); } diff --git a/src/main/java/org/energy/modules/system/util/DataUtils.java b/src/main/java/org/energy/modules/system/util/DataUtils.java index 2d1babd..2e49591 100644 --- a/src/main/java/org/energy/modules/system/util/DataUtils.java +++ b/src/main/java/org/energy/modules/system/util/DataUtils.java @@ -68,4 +68,21 @@ public class DataUtils { // Add more type conversions as needed return value; } + + /** + * 将字符串末尾的latterIndex位数字加一并格式化成latterIndex位数 + * @param str + * @return + */ + public static String incrementLast(String str, int latterIndex) { + // 获取字符串末尾的latterIndex位字符 + String lastFour = str.substring(Math.max(0, str.length() - latterIndex)); + // 将末尾字符转换为整数 + int number = Integer.parseInt(lastFour); + // 整数加一 + number++; + // 格式化整数为latterIndex位数的字符串 + String result = String.format("%0" + latterIndex + "d", number); + return result; + } }