From 4f28855752e8b84ffbd1a15e810102fc2de30b58 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 16 Apr 2025 18:09:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E4=B8=80=E6=B5=81=E7=A8=8B=E4=B8=8D?= =?UTF-8?q?=E9=87=8D=E5=A4=8D=E7=94=9F=E6=88=90=E7=BC=96=E5=8F=B7=20?= =?UTF-8?q?=E5=85=BC=E5=AE=B9=E5=86=9B=E5=B7=A5=E7=B1=BB=E5=9E=8B=E8=B5=84?= =?UTF-8?q?=E8=B4=A8=E7=94=B3=E8=AF=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../instance/AutoGenerateNumberInstance.java | 43 +++++++++++++++++-- .../impl/AutoGenerateNumberServiceImpl.java | 13 +++++- 2 files changed, 50 insertions(+), 6 deletions(-) diff --git a/src/com/engine/secret/instance/AutoGenerateNumberInstance.java b/src/com/engine/secret/instance/AutoGenerateNumberInstance.java index 20b598e..ae0b031 100644 --- a/src/com/engine/secret/instance/AutoGenerateNumberInstance.java +++ b/src/com/engine/secret/instance/AutoGenerateNumberInstance.java @@ -4,9 +4,11 @@ import cn.hutool.core.convert.Convert; import com.engine.secret.entity.autonumber.AcceptanceNumber; import com.engine.secret.exception.CustomizeRunTimeException; import com.engine.secret.util.ModeUtil; +import weaver.common.DateUtil; import weaver.conn.RecordSetTrans; import weaver.formmode.IgnoreCaseHashMap; import weaver.general.Util; +import weaver.hrm.User; import java.time.LocalDate; import java.util.Map; @@ -19,18 +21,25 @@ import java.util.UUID; */ public class AutoGenerateNumberInstance { private static final String TABLE_NAME = "uf_sldh"; + private static final String RECORD_TABLE_NAME = "uf_sldh_dt1"; - private static AutoGenerateNumberInstance instance = new AutoGenerateNumberInstance(); + private static final AutoGenerateNumberInstance INSTANCE = new AutoGenerateNumberInstance(); private AutoGenerateNumberInstance() { // 私有化构造方法 } public static AutoGenerateNumberInstance getInstance() { - return instance; + return INSTANCE; } - public synchronized String getAcceptanceNumber(Map param) { + /** + * 集成、印制受理编号 + * + * @param param + * @return + */ + public synchronized String getAcceptanceNumber(User user, Map param) { RecordSetTrans rs = new RecordSetTrans(); rs.setAutoCommit(false); try { @@ -72,6 +81,8 @@ public class AutoGenerateNumberInstance { String num = formattedYear + formattedMonth + formattedMonthlySerial + formattedGlobalSerial; rs.writeLog("requestId===" + requestId + ",secretType===" + secretType + ",num===" + num); + insertGenerateRecord(rs, requestId, num, user.getUID()); + // 插入编号生成记录 rs.commit(); return num; } catch (Exception e) { @@ -81,7 +92,13 @@ public class AutoGenerateNumberInstance { } } - public synchronized String getWarIndustryAcceptanceNumber(Map param) { + /** + * 军工受理单号 + * + * @param param + * @return + */ + public synchronized String getWarIndustryAcceptanceNumber(User user, Map param) { RecordSetTrans rs = new RecordSetTrans(); rs.setAutoCommit(false); try { @@ -109,6 +126,7 @@ public class AutoGenerateNumberInstance { String num = "JS" + formattedYear + formattedGlobalSerial; rs.writeLog("requestId===" + requestId + ",secretType===" + secretType + ",num===" + num); + insertGenerateRecord(rs, requestId, num, user.getUID()); rs.commit(); return num; } catch (Exception e) { @@ -196,4 +214,21 @@ public class AutoGenerateNumberInstance { dataMap.put("secret_type", number.getSecretType()); return dataMap; } + + /** + * 插入编号生成记录 + * + * @param requestId + * @param num + * @param userId + */ + private void insertGenerateRecord(RecordSetTrans rs, String requestId, String num, int userId) throws Exception { + IgnoreCaseHashMap dataMap = new IgnoreCaseHashMap<>(); + dataMap.put("request_id", requestId); + dataMap.put("num", num); + dataMap.put("operate_user", userId); + dataMap.put("operate_time", DateUtil.getFullDate()); + ModeUtil.insertData(rs, dataMap, RECORD_TABLE_NAME); + + } } diff --git a/src/com/engine/secret/service/impl/AutoGenerateNumberServiceImpl.java b/src/com/engine/secret/service/impl/AutoGenerateNumberServiceImpl.java index 582acfb..98c19e1 100644 --- a/src/com/engine/secret/service/impl/AutoGenerateNumberServiceImpl.java +++ b/src/com/engine/secret/service/impl/AutoGenerateNumberServiceImpl.java @@ -5,6 +5,7 @@ import com.engine.core.impl.Service; import com.engine.secret.exception.CustomizeRunTimeException; import com.engine.secret.instance.AutoGenerateNumberInstance; import com.engine.secret.service.AutoGenerateNumberService; +import weaver.conn.RecordSet; import java.util.Map; @@ -18,16 +19,24 @@ public class AutoGenerateNumberServiceImpl extends Service implements AutoGenera @Override public String getAcceptanceNumber(Map param) { Integer secretType = Convert.toInt(param.get("secretType")); + Integer requestId = Convert.toInt(param.get("requestId")); if (null == secretType) { throw new CustomizeRunTimeException("未获取到[保密资质(资格)类型],请检查表单数据"); } + // 查询当前请求是否已经生成单号,如已生成过,直接取原来单号,不重新生成 + RecordSet rs = new RecordSet(); + rs.executeQuery("select num from uf_sldh_dt1 where request_id = ? ", requestId); + if (rs.next()) { + return rs.getString("num"); + } + AutoGenerateNumberInstance instance = AutoGenerateNumberInstance.getInstance(); if (0 == secretType || 1 == secretType) { // 集成、印制 - return instance.getAcceptanceNumber(param); + return instance.getAcceptanceNumber(user, param); } else { // 军工 - return instance.getWarIndustryAcceptanceNumber(param); + return instance.getWarIndustryAcceptanceNumber(user, param); } } }