diff --git a/src/main/java/com/ynxbd/push/entity/enums/MsgParamEnum.java b/src/main/java/com/ynxbd/push/entity/enums/MsgParamEnum.java index 66e7c61..7a99be9 100644 --- a/src/main/java/com/ynxbd/push/entity/enums/MsgParamEnum.java +++ b/src/main/java/com/ynxbd/push/entity/enums/MsgParamEnum.java @@ -4,6 +4,8 @@ package com.ynxbd.push.entity.enums; import lombok.ToString; import org.springframework.util.ObjectUtils; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.HashMap; import java.util.Map; @@ -16,8 +18,8 @@ public enum MsgParamEnum { THING(20, "thing", "【事物】可汉字、数字、字母或符号组合"), CHARACTER_STRING(32, "character_string", "【字符串】可数字、字母或符号组合"), - TIME(32, "time", "【时间】24小时制时间格式(支持+年月日),支持填时间段,两个时间点之间用“~”符号连接【例如:15:01,或:2019年10月1日 15:01】"), - AMOUNT(32, "amount", "【金额】1个币种符号+12位以内纯数字,可带小数,结尾可带“元” 可带小数"), + TIME(20, "time", "【时间】24小时制时间格式(支持+年月日),支持填时间段,两个时间点之间用“~”符号连接【例如:15:01,或:2019年10月1日 15:01】"), + AMOUNT(12, "amount", "【金额】1个币种符号+12位以内纯数字,可带小数,结尾可带“元” 可带小数"), PHONE_NUMBER(17, "phone_number", "【电话】(数字、符号) 电话号码,例:+86-0766-66888866"), CAR_NUMBER(8, "car_number", "【车牌】第一位与最后一位可为汉字,其余为字母或数字 例:车牌号码:粤A8Z888挂"), CONST(20, "const", "【常量】超过无法下发注:需枚举(需将内容提交平台审核,审核通过可下发)只能下发审核通过的字符串和空串"), @@ -72,6 +74,16 @@ public enum MsgParamEnum { return value; } + public static String valSubstring(int len, String val) { + if (ObjectUtils.isEmpty(val)) { + return ""; + } + if (val.length() > len) { + val = val.substring(0, len - 3) + "..."; + } + return val; + } + /** * 获取参数 @@ -107,6 +119,22 @@ public enum MsgParamEnum { } Map keyMap = new HashMap<>(); String value = getStrValue(paramsMap, key, canNull); + if (this == THING) { + if (value.contains(":")) { + value = value.replaceAll(":", ":"); + } + } else if (this == AMOUNT) { + try { + value = new BigDecimal(value).setScale(2, RoundingMode.DOWN).toString(); + } catch (Exception e) { + throw new Exception("[" + key + "][" + value + "] 金额异常"); + } + } else { + if (value.length() > this.LENGTH) { + keyMap.put("old_value", value); + } + value = valSubstring(this.LENGTH, value); + } keyMap.put("value", value); if (!ObjectUtils.isEmpty(color)) { keyMap.put("color", color); @@ -134,11 +162,10 @@ public enum MsgParamEnum { * @param paramName 参数名称 * @param keyNum key的编号(如:time21,入参就为21) */ - public void put(Map paramsMap, Map tempData, String paramName, Integer keyNum) throws Exception { - put(paramsMap, tempData, paramName, keyNum, false, null); + public String put(Map paramsMap, Map tempData, String paramName, Integer keyNum) throws Exception { + return put(paramsMap, tempData, paramName, keyNum, false, null); } - /** * 模板参数组装 * @@ -149,11 +176,12 @@ public enum MsgParamEnum { * @param canNull 是否可以为空 * @param color 颜色 */ - public void put(Map paramsMap, Map tempData, String paramName, Integer keyNum, boolean canNull, String color) throws Exception { + public String put(Map paramsMap, Map tempData, String paramName, Integer keyNum, boolean canNull, String color) throws Exception { if (keyNum == null) { throw new Exception("keyNum is null"); } String keyNumStr = String.valueOf(keyNum); tempData.put(this.toKey(keyNumStr), this.getMapValue(paramsMap, paramName, canNull, color)); + return getStrValue(paramsMap, paramName, canNull); } } diff --git a/src/main/java/com/ynxbd/push/service/HisUniversalService.java b/src/main/java/com/ynxbd/push/service/HisUniversalService.java index fd13c32..b0cec73 100644 --- a/src/main/java/com/ynxbd/push/service/HisUniversalService.java +++ b/src/main/java/com/ynxbd/push/service/HisUniversalService.java @@ -116,13 +116,13 @@ public class HisUniversalService { try { Map tempData = createTemplate(paramsMap, templateId, title); // 就诊人 - MsgParamEnum.THING.put(paramsMap, tempData, "patientName", 1); + String patientName = MsgParamEnum.THING.put(paramsMap, tempData, "patientName", 1); // 缴费时间 - MsgParamEnum.TIME.put(paramsMap, tempData, "time", 4); + String time = MsgParamEnum.TIME.put(paramsMap, tempData, "time", 4); // 缴费金额 - MsgParamEnum.AMOUNT.put(paramsMap, tempData, "money", 3); + String money = MsgParamEnum.AMOUNT.put(paramsMap, tempData, "money", 3); // 治疗地点 - MsgParamEnum.THING.put(paramsMap, tempData, "address", 17); + String address = MsgParamEnum.THING.put(paramsMap, tempData, "address", 17); rabbitSender.sendByTip(tempData); return ResponseResult.JOIN_QUEUE.toMessResult(); @@ -144,13 +144,13 @@ public class HisUniversalService { try { Map tempData = createTemplate(paramsMap, templateId, title); // 患者姓名 - MsgParamEnum.THING.put(paramsMap, tempData, "patientName", 14); + String patientName = MsgParamEnum.THING.put(paramsMap, tempData, "patientName", 14); // 开单时间 - MsgParamEnum.TIME.put(paramsMap, tempData, "time", 17); + String time = MsgParamEnum.TIME.put(paramsMap, tempData, "time", 17); // 缴费项目 - MsgParamEnum.THING.put(paramsMap, tempData, "projectName", 10); + String projectName = MsgParamEnum.THING.put(paramsMap, tempData, "projectName", 10); // 金额 - MsgParamEnum.AMOUNT.put(paramsMap, tempData, "money", 3); + String money = MsgParamEnum.AMOUNT.put(paramsMap, tempData, "money", 3); rabbitSender.sendByTip(tempData); return ResponseResult.JOIN_QUEUE.toMessResult(); @@ -172,13 +172,13 @@ public class HisUniversalService { try { Map tempData = createTemplate(paramsMap, templateId, title); // 就诊人 - MsgParamEnum.THING.put(paramsMap, tempData, "patientName", 28); + String patientName = MsgParamEnum.THING.put(paramsMap, tempData, "patientName", 28); // 就诊科室 - MsgParamEnum.THING.put(paramsMap, tempData, "deptName", 22); + String deptName = MsgParamEnum.THING.put(paramsMap, tempData, "deptName", 22); // 预约时间 - MsgParamEnum.TIME.put(paramsMap, tempData, "time", 21); + String time = MsgParamEnum.TIME.put(paramsMap, tempData, "time", 21); // 就诊地点 - MsgParamEnum.THING.put(paramsMap, tempData, "address", 6); + String address = MsgParamEnum.THING.put(paramsMap, tempData, "address", 6); rabbitSender.sendByTip(tempData); return ResponseResult.JOIN_QUEUE.toMessResult();