From 03ec5826348fe924243eb797559aef91afa98086 Mon Sep 17 00:00:00 2001
From: 刘小明 <liuxm_a@163.com>
Date: 星期一, 24 六月 2024 17:29:23 +0800
Subject: [PATCH] 记录组装各步骤
---
pms-parent/pms-web-platform/src/main/java/com/dy/pmsPlatform/station/StationSv.java | 47 ++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 40 insertions(+), 7 deletions(-)
diff --git a/pms-parent/pms-web-platform/src/main/java/com/dy/pmsPlatform/station/StationSv.java b/pms-parent/pms-web-platform/src/main/java/com/dy/pmsPlatform/station/StationSv.java
index f3c52cd..3890a5a 100644
--- a/pms-parent/pms-web-platform/src/main/java/com/dy/pmsPlatform/station/StationSv.java
+++ b/pms-parent/pms-web-platform/src/main/java/com/dy/pmsPlatform/station/StationSv.java
@@ -1,6 +1,7 @@
package com.dy.pmsPlatform.station;
import cn.hutool.core.codec.Base64;
+import com.alibaba.excel.util.StringUtils;
import com.dy.common.webUtil.QueryResultVo;
import com.dy.pmsGlobal.daoPlt.PltStationMapper;
import com.dy.pmsGlobal.pojoPlt.PltProduct;
@@ -10,6 +11,7 @@
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.common.utils.PojoUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.dao.DuplicateKeyException;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -23,6 +25,8 @@
private PltStationMapper dao;
private static final String stationPrefix = "103" ;
+ private static final String DEFAULT_CODE = "0001";
+ private static final String CODE_FORMAT = "%04d";
@Autowired
public void setDao(PltStationMapper dao) {
@@ -31,11 +35,40 @@
@Transactional
public int save(PltStation station) throws RuntimeException {
- if(dao.selectByCodeId(station.id,station.code)>0){
- throw new RuntimeException("宸ョ珯缂栧彿宸插瓨鍦�");
- }
- int count = dao.insertSelective(station);
+
+// if(dao.selectByCodeId(station.id,station.code)>0){
+// throw new RuntimeException("宸ョ珯缂栧彿宸插瓨鍦�");
+// }
+ int count = 0;
+ int flag=0;
+ do {
+ station.code = getNextCode();
+ try {
+ count = dao.insertSelective(station);
+ return count;
+ } catch (DuplicateKeyException e) {
+ // 濡傛灉鍑虹幇鍞竴绾︽潫杩濆弽寮傚父锛屽皾璇曡幏鍙栨柊鐨刢ode骞堕噸璇�
+ log.warn("鎻掑叆宸ョ珯鏃堕亣鍒板敮涓�绾︽潫寮傚父锛屽皾璇曡幏鍙栨柊鐨刢ode", e);
+ }
+ flag++;
+ } while (flag<5);
+
return count;
+ }
+
+ private String getNextCode(){
+ log.info("鑾峰彇宸ョ珯缂栧彿");
+ String maxCode = dao.selectMaxCode();
+ if (StringUtils.isBlank(maxCode)) {
+ return DEFAULT_CODE;
+ } else {
+ int nextCode = Integer.parseInt(maxCode) + 1;
+ // 妫�鏌ユ孩鍑�
+ if (nextCode > 9999) {
+ throw new RuntimeException("宸ョ珯缂栧彿婧㈠嚭");
+ }
+ return String.format(CODE_FORMAT, nextCode);
+ }
}
/**
@@ -52,9 +85,9 @@
@Transactional
public int update(PltStation station) throws RuntimeException {
- if(dao.selectByCodeId(station.id,station.code)>0){
- throw new RuntimeException("宸ョ珯缂栧彿宸插瓨鍦�");
- }
+// if(dao.selectByCodeId(station.id,station.code)>0){
+// throw new RuntimeException("宸ョ珯缂栧彿宸插瓨鍦�");
+// }
int count = dao.updateByPrimaryKeySelective(station);
return count;
}
--
Gitblit v1.8.0