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); } } }