fix():报文模板值添加

master
DongZeLiang 2024-09-20 15:37:54 +08:00
parent 30a626fa20
commit cada95d11f
12 changed files with 236 additions and 11 deletions

View File

@ -0,0 +1,36 @@
package com.muyu.system.enums;
/**
* @Author: DongZeLiang
* @date: 2024/9/20
* @Description:
* @Version: 1.0
*/
public enum MessageTemplateValueType {
FIXED("fixed", "固定"),
INTERVAL("interval", "区间"),
EL("el","表达式");
/**
*
*/
private final String code;
/**
*
*/
private final String label;
MessageTemplateValueType (String code, String label) {
this.code = code;
this.label = label;
}
public String code () {
return code;
}
public String label () {
return label;
}
}

View File

@ -1,9 +1,14 @@
package com.muyu.web.controller; package com.muyu.web.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.muyu.web.common.Result; import com.muyu.web.common.Result;
import com.muyu.web.domain.MessageTemplate; import com.muyu.web.domain.MessageTemplate;
import com.muyu.web.domain.MessageTemplateValue;
import com.muyu.web.domain.req.MessageTemplateSaveReq; import com.muyu.web.domain.req.MessageTemplateSaveReq;
import com.muyu.web.domain.req.MessageTemplateValueSaveReq;
import com.muyu.web.service.MessageService;
import com.muyu.web.service.MessageTemplateService; import com.muyu.web.service.MessageTemplateService;
import com.muyu.web.service.MessageTemplateValueService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -20,9 +25,15 @@ import java.util.List;
@RequestMapping("/message") @RequestMapping("/message")
public class MessageController { public class MessageController {
@Autowired
private MessageService messageService;
@Autowired @Autowired
private MessageTemplateService messageTemplateService; private MessageTemplateService messageTemplateService;
@Autowired
private MessageTemplateValueService messageTemplateValueService;
/** /**
* *
* @return * @return
@ -40,12 +51,52 @@ public class MessageController {
*/ */
@PostMapping("/template") @PostMapping("/template")
public Result<String> save(@RequestBody @Validated MessageTemplateSaveReq messageTemplateSaveReq){ public Result<String> save(@RequestBody @Validated MessageTemplateSaveReq messageTemplateSaveReq){
messageTemplateService.save( messageService.saveMessageTemplate(messageTemplateSaveReq);
MessageTemplate.builder() return Result.success();
.messageName(messageTemplateSaveReq.getMessageName()) }
.description(messageTemplateSaveReq.getDescription())
/**
*
* @return
*/
@GetMapping("/template/{messageTemplateId}/value")
public Result<List<MessageTemplateValue>> templateValueList(@PathVariable("messageTemplateId") Long messageTemplateId) {
return Result.success(
this.messageTemplateValueService.list(
new LambdaQueryWrapper<>(){{
eq(MessageTemplateValue::getMessageId, messageTemplateId);
}}
)
);
}
/**
*
* @return
*/
@PostMapping("/template/{messageTemplateId}/value")
public Result<String> templateValueSave(
@RequestBody @Validated MessageTemplateValueSaveReq messageTemplateValueSaveReq,
@PathVariable("messageTemplateId") Long messageTemplateId
){
messageTemplateValueService.save(
MessageTemplateValue.builder()
.messageId(messageTemplateId)
.code(messageTemplateValueSaveReq.getCode())
.category(messageTemplateValueSaveReq.getCategory())
.label(messageTemplateValueSaveReq.getLabel())
.length(messageTemplateValueSaveReq.getLength())
.maxValue(messageTemplateValueSaveReq.getMaxValue())
.minValue(messageTemplateValueSaveReq.getMinValue())
.valueType(messageTemplateValueSaveReq.getValueType())
.elValue(messageTemplateValueSaveReq.getElValue())
.fixedValue(messageTemplateValueSaveReq.getFixedValue())
.startLocation(messageTemplateValueSaveReq.getStartLocation())
.endLocation(messageTemplateValueSaveReq.getEndLocation())
.build() .build()
); );
return Result.success(); return Result.success();
} }
} }

View File

@ -1,8 +1,6 @@
package com.muyu.web.domain; package com.muyu.web.domain;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
@ -29,11 +27,18 @@ public class MessageTemplateValue {
/** /**
* ID * ID
*/ */
@TableField(fill = FieldFill.INSERT)
private String tenantId; private String tenantId;
/** /**
* *
*/ */
private Long messageId; private Long messageId;
/**
*
*/
private Integer length;
/** /**
* *
*/ */
@ -58,6 +63,10 @@ public class MessageTemplateValue {
* *
*/ */
private String valueType; private String valueType;
/**
*
*/
private String elValue;
/** /**
* *
*/ */

View File

@ -0,0 +1,66 @@
package com.muyu.web.domain.req;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author: DongZeLiang
* @date: 2024/9/19
* @Description:
* @Version: 1.0
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MessageTemplateValueSaveReq {
/**
*
*/
private String category;
/**
*
*/
private String code;
/**
*
*/
private String label;
/**
*
*/
private Integer length;
/**
*
*/
private Integer startLocation;
/**
*
*/
private Integer endLocation;
/**
*
*/
private String valueType;
/**
*
*/
private String elValue;
/**
*
*/
private String fixedValue;
/**
*
*/
private Double minValue;
/**
*
*/
private Double maxValue;
}

View File

@ -0,0 +1,19 @@
package com.muyu.web.service;
import com.muyu.web.domain.req.MessageTemplateSaveReq;
/**
* @Author: DongZeLiang
* @date: 2024/9/20
* @Description:
* @Version: 1.0
*/
public interface MessageService {
/**
*
* @param messageTemplateSaveReq
*/
void saveMessageTemplate (MessageTemplateSaveReq messageTemplateSaveReq);
}

View File

@ -0,0 +1,44 @@
package com.muyu.web.service.impl;
import com.muyu.system.enums.MessageTemplateValueType;
import com.muyu.web.domain.MessageTemplate;
import com.muyu.web.domain.MessageTemplateValue;
import com.muyu.web.domain.req.MessageTemplateSaveReq;
import com.muyu.web.service.MessageService;
import com.muyu.web.service.MessageTemplateService;
import com.muyu.web.service.MessageTemplateValueService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
/**
* @Author: DongZeLiang
* @date: 2024/9/20
* @Description:
* @Version: 1.0
*/
@Service
public class MessageServiceImpl implements MessageService {
@Autowired
private MessageTemplateService messageTemplateService;
@Autowired
private MessageTemplateValueService messageTemplateValueService;
/**
*
*
* @param messageTemplateSaveReq
*/
@Override
public void saveMessageTemplate (MessageTemplateSaveReq messageTemplateSaveReq) {
MessageTemplate messageTemplate = MessageTemplate.builder().messageName(messageTemplateSaveReq.getMessageName()).description(messageTemplateSaveReq.getDescription()).build();
messageTemplateService.save(messageTemplate);
messageTemplateValueService.saveBatch(new ArrayList<>() {{
add(MessageTemplateValue.builder().messageId(messageTemplate.getId()).code("vin").label("VIN").category("base").length(17).startLocation(1).endLocation(17).valueType(MessageTemplateValueType.EL.code()).elValue("this.vin").build());
add(MessageTemplateValue.builder().messageId(messageTemplate.getId()).code("timeMillis").label("报文采集毫秒").category("base").length(13).startLocation(18).endLocation(30).valueType(MessageTemplateValueType.EL.code()).elValue("this.timeMillis").build());
}});
}
}

View File

@ -1 +0,0 @@
.box-card[data-v-cda4226a]{margin-top:20px}.grid-content[data-v-cda4226a]{margin-top:10px;border-radius:4px;overflow-x:hidden;overflow-y:auto}.grid-content[data-v-cda4226a]::-webkit-scrollbar{width:4px}.grid-content[data-v-cda4226a]::-webkit-scrollbar-thumb{border-radius:10px;background:rgba(0,0,0,.2)}.grid-content[data-v-cda4226a]::-webkit-scrollbar-track{border-radius:0;background:rgba(0,0,0,.1)}.el-dialog[data-v-cda4226a]{background-color:#fff}

View File

@ -0,0 +1 @@
.box-card[data-v-6151d512]{margin-top:20px}.grid-content[data-v-6151d512]{margin-top:10px;border-radius:4px;overflow-x:hidden;overflow-y:auto}.grid-content[data-v-6151d512]::-webkit-scrollbar{width:4px}.grid-content[data-v-6151d512]::-webkit-scrollbar-thumb{border-radius:10px;background:rgba(0,0,0,.2)}.grid-content[data-v-6151d512]::-webkit-scrollbar-track{border-radius:0;background:rgba(0,0,0,.1)}.el-dialog[data-v-6151d512]{background-color:#fff}

View File

@ -1 +1 @@
<!DOCTYPE html><html><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge,chrome=1"><meta name=viewport content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"><link rel=icon href=/favicon.ico><title>车辆</title><link href=/static/css/app.e2ca9161.css rel=preload as=style><link href=/static/css/chunk-elementUI.c1c3b808.css rel=preload as=style><link href=/static/css/chunk-libs.3dfb7769.css rel=preload as=style><link href=/static/js/app.d1d261c3.js rel=preload as=script><link href=/static/js/chunk-elementUI.2491fb2f.js rel=preload as=script><link href=/static/js/chunk-libs.5e39c7d0.js rel=preload as=script><link href=/static/css/chunk-elementUI.c1c3b808.css rel=stylesheet><link href=/static/css/chunk-libs.3dfb7769.css rel=stylesheet><link href=/static/css/app.e2ca9161.css rel=stylesheet></head><body><noscript><strong>We're sorry but 车辆 doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script>(function(e){function t(t){for(var r,c,a=t[0],f=t[1],i=t[2],l=0,s=[];l<a.length;l++)c=a[l],Object.prototype.hasOwnProperty.call(o,c)&&o[c]&&s.push(o[c][0]),o[c]=0;for(r in f)Object.prototype.hasOwnProperty.call(f,r)&&(e[r]=f[r]);d&&d(t);while(s.length)s.shift()();return u.push.apply(u,i||[]),n()}function n(){for(var e,t=0;t<u.length;t++){for(var n=u[t],r=!0,c=1;c<n.length;c++){var a=n[c];0!==o[a]&&(r=!1)}r&&(u.splice(t--,1),e=f(f.s=n[0]))}return e}var r={},c={runtime:0},o={runtime:0},u=[];function a(e){return f.p+"static/js/"+({}[e]||e)+"."+{"chunk-10b53ef9":"4a5e15eb","chunk-22cea610":"7879ff8f","chunk-2cbbeb82":"e1753706","chunk-6f60c8f1":"f16bf298","chunk-0e8cf5f4":"b7552abc","chunk-7146ee17":"8de3769d","chunk-7d1a163b":"4d8cc933","chunk-8f81ac56":"da9fce35"}[e]+".js"}function f(t){if(r[t])return r[t].exports;var n=r[t]={i:t,l:!1,exports:{}};return e[t].call(n.exports,n,n.exports,f),n.l=!0,n.exports}f.e=function(e){var t=[],n={"chunk-10b53ef9":1,"chunk-22cea610":1,"chunk-2cbbeb82":1,"chunk-0e8cf5f4":1,"chunk-7146ee17":1,"chunk-8f81ac56":1};c[e]?t.push(c[e]):0!==c[e]&&n[e]&&t.push(c[e]=new Promise((function(t,n){for(var r="static/css/"+({}[e]||e)+"."+{"chunk-10b53ef9":"b451ec48","chunk-22cea610":"3c7f5ad9","chunk-2cbbeb82":"59a1d200","chunk-6f60c8f1":"31d6cfe0","chunk-0e8cf5f4":"3328abfd","chunk-7146ee17":"6963607a","chunk-7d1a163b":"31d6cfe0","chunk-8f81ac56":"1efc9dd1"}[e]+".css",o=f.p+r,u=document.getElementsByTagName("link"),a=0;a<u.length;a++){var i=u[a],l=i.getAttribute("data-href")||i.getAttribute("href");if("stylesheet"===i.rel&&(l===r||l===o))return t()}var s=document.getElementsByTagName("style");for(a=0;a<s.length;a++){i=s[a],l=i.getAttribute("data-href");if(l===r||l===o)return t()}var d=document.createElement("link");d.rel="stylesheet",d.type="text/css",d.onload=t,d.onerror=function(t){var r=t&&t.target&&t.target.src||o,u=new Error("Loading CSS chunk "+e+" failed.\n("+r+")");u.code="CSS_CHUNK_LOAD_FAILED",u.request=r,delete c[e],d.parentNode.removeChild(d),n(u)},d.href=o;var h=document.getElementsByTagName("head")[0];h.appendChild(d)})).then((function(){c[e]=0})));var r=o[e];if(0!==r)if(r)t.push(r[2]);else{var u=new Promise((function(t,n){r=o[e]=[t,n]}));t.push(r[2]=u);var i,l=document.createElement("script");l.charset="utf-8",l.timeout=120,f.nc&&l.setAttribute("nonce",f.nc),l.src=a(e);var s=new Error;i=function(t){l.onerror=l.onload=null,clearTimeout(d);var n=o[e];if(0!==n){if(n){var r=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src;s.message="Loading chunk "+e+" failed.\n("+r+": "+c+")",s.name="ChunkLoadError",s.type=r,s.request=c,n[1](s)}o[e]=void 0}};var d=setTimeout((function(){i({type:"timeout",target:l})}),12e4);l.onerror=l.onload=i,document.head.appendChild(l)}return Promise.all(t)},f.m=e,f.c=r,f.d=function(e,t,n){f.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},f.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(e,t){if(1&t&&(e=f(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(f.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)f.d(n,r,function(t){return e[t]}.bind(null,r));return n},f.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return f.d(t,"a",t),t},f.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},f.p="/",f.oe=function(e){throw console.error(e),e};var i=window["webpackJsonp"]=window["webpackJsonp"]||[],l=i.push.bind(i);i.push=t,i=i.slice();for(var s=0;s<i.length;s++)t(i[s]);var d=l;n()})([]);</script><script src=/static/js/chunk-elementUI.2491fb2f.js></script><script src=/static/js/chunk-libs.5e39c7d0.js></script><script src=/static/js/app.d1d261c3.js></script></body></html> <!DOCTYPE html><html><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge,chrome=1"><meta name=viewport content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"><link rel=icon href=/favicon.ico><title>车辆</title><link href=/static/css/app.e2ca9161.css rel=preload as=style><link href=/static/css/chunk-elementUI.c1c3b808.css rel=preload as=style><link href=/static/css/chunk-libs.3dfb7769.css rel=preload as=style><link href=/static/js/app.c57091f6.js rel=preload as=script><link href=/static/js/chunk-elementUI.2491fb2f.js rel=preload as=script><link href=/static/js/chunk-libs.5e39c7d0.js rel=preload as=script><link href=/static/css/chunk-elementUI.c1c3b808.css rel=stylesheet><link href=/static/css/chunk-libs.3dfb7769.css rel=stylesheet><link href=/static/css/app.e2ca9161.css rel=stylesheet></head><body><noscript><strong>We're sorry but 车辆 doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script>(function(e){function t(t){for(var r,c,a=t[0],f=t[1],i=t[2],l=0,s=[];l<a.length;l++)c=a[l],Object.prototype.hasOwnProperty.call(o,c)&&o[c]&&s.push(o[c][0]),o[c]=0;for(r in f)Object.prototype.hasOwnProperty.call(f,r)&&(e[r]=f[r]);d&&d(t);while(s.length)s.shift()();return u.push.apply(u,i||[]),n()}function n(){for(var e,t=0;t<u.length;t++){for(var n=u[t],r=!0,c=1;c<n.length;c++){var a=n[c];0!==o[a]&&(r=!1)}r&&(u.splice(t--,1),e=f(f.s=n[0]))}return e}var r={},c={runtime:0},o={runtime:0},u=[];function a(e){return f.p+"static/js/"+({}[e]||e)+"."+{"chunk-22cea610":"7879ff8f","chunk-2cbbeb82":"e1753706","chunk-6f60c8f1":"f16bf298","chunk-0e8cf5f4":"b7552abc","chunk-7146ee17":"8de3769d","chunk-725364c9":"5d13ee53","chunk-7d1a163b":"4d8cc933","chunk-8f81ac56":"da9fce35"}[e]+".js"}function f(t){if(r[t])return r[t].exports;var n=r[t]={i:t,l:!1,exports:{}};return e[t].call(n.exports,n,n.exports,f),n.l=!0,n.exports}f.e=function(e){var t=[],n={"chunk-22cea610":1,"chunk-2cbbeb82":1,"chunk-0e8cf5f4":1,"chunk-7146ee17":1,"chunk-725364c9":1,"chunk-8f81ac56":1};c[e]?t.push(c[e]):0!==c[e]&&n[e]&&t.push(c[e]=new Promise((function(t,n){for(var r="static/css/"+({}[e]||e)+"."+{"chunk-22cea610":"3c7f5ad9","chunk-2cbbeb82":"59a1d200","chunk-6f60c8f1":"31d6cfe0","chunk-0e8cf5f4":"3328abfd","chunk-7146ee17":"6963607a","chunk-725364c9":"71c8f52e","chunk-7d1a163b":"31d6cfe0","chunk-8f81ac56":"1efc9dd1"}[e]+".css",o=f.p+r,u=document.getElementsByTagName("link"),a=0;a<u.length;a++){var i=u[a],l=i.getAttribute("data-href")||i.getAttribute("href");if("stylesheet"===i.rel&&(l===r||l===o))return t()}var s=document.getElementsByTagName("style");for(a=0;a<s.length;a++){i=s[a],l=i.getAttribute("data-href");if(l===r||l===o)return t()}var d=document.createElement("link");d.rel="stylesheet",d.type="text/css",d.onload=t,d.onerror=function(t){var r=t&&t.target&&t.target.src||o,u=new Error("Loading CSS chunk "+e+" failed.\n("+r+")");u.code="CSS_CHUNK_LOAD_FAILED",u.request=r,delete c[e],d.parentNode.removeChild(d),n(u)},d.href=o;var h=document.getElementsByTagName("head")[0];h.appendChild(d)})).then((function(){c[e]=0})));var r=o[e];if(0!==r)if(r)t.push(r[2]);else{var u=new Promise((function(t,n){r=o[e]=[t,n]}));t.push(r[2]=u);var i,l=document.createElement("script");l.charset="utf-8",l.timeout=120,f.nc&&l.setAttribute("nonce",f.nc),l.src=a(e);var s=new Error;i=function(t){l.onerror=l.onload=null,clearTimeout(d);var n=o[e];if(0!==n){if(n){var r=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src;s.message="Loading chunk "+e+" failed.\n("+r+": "+c+")",s.name="ChunkLoadError",s.type=r,s.request=c,n[1](s)}o[e]=void 0}};var d=setTimeout((function(){i({type:"timeout",target:l})}),12e4);l.onerror=l.onload=i,document.head.appendChild(l)}return Promise.all(t)},f.m=e,f.c=r,f.d=function(e,t,n){f.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},f.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(e,t){if(1&t&&(e=f(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(f.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)f.d(n,r,function(t){return e[t]}.bind(null,r));return n},f.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return f.d(t,"a",t),t},f.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},f.p="/",f.oe=function(e){throw console.error(e),e};var i=window["webpackJsonp"]=window["webpackJsonp"]||[],l=i.push.bind(i);i.push=t,i=i.slice();for(var s=0;s<i.length;s++)t(i[s]);var d=l;n()})([]);</script><script src=/static/js/chunk-elementUI.2491fb2f.js></script><script src=/static/js/chunk-libs.5e39c7d0.js></script><script src=/static/js/app.c57091f6.js></script></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long