sige 1 year ago
parent
commit
44c6732a65
  1. 5
      pom.xml
  2. 24
      src/main/java/com/iflytop/digester/underframework/UfCmdSnippetExecutor.java
  3. 4
      src/main/java/com/iflytop/digester/underframework/web/api/TsApiSnippet.java
  4. 2
      web

5
pom.xml

@ -47,6 +47,11 @@
<artifactId>org.eclipse.paho.client.mqttv3</artifactId>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.31</version>
</dependency>
</dependencies>
<build>

24
src/main/java/com/iflytop/digester/underframework/UfCmdSnippetExecutor.java

@ -2,15 +2,20 @@ package com.iflytop.digester.underframework;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.iflytop.digester.deviceinstance.HeatingTurntableSlotTube;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import com.iflytop.digester.underframework.dao.model.UfMdbActuatorCmd;
import com.iflytop.digester.underframework.dao.model.UfMdbSnippet;
import com.iflytop.digester.underframework.dao.record.UfActiveRecord;
import com.iflytop.digester.underframework.util.UfJsonHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.io.StringWriter;
public class UfCmdSnippetExecutor {
// logger
public static final Logger LOG = LoggerFactory.getLogger(UfCmdSnippetExecutor.class);
@ -76,7 +81,22 @@ public class UfCmdSnippetExecutor {
if (null == cmd) {
throw new RuntimeException("无效的指令ID : " + cmdId);
}
cmd.parameters = cmdParams;
// 编译参数为模板
freemarker.template.Configuration cfg = new Configuration(Configuration.VERSION_2_3_31);
Template template = null;
try {
template = new Template("", cmdParams, cfg);
} catch (IOException e) {
throw new RuntimeException(e);
}
StringWriter paramStrWriter = new StringWriter();
try {
template.process(this.params, paramStrWriter);
} catch (TemplateException | IOException e) {
throw new RuntimeException(e);
}
cmd.parameters = paramStrWriter.toString();
UfActuatorCmdExecutor.execute(cmd);
}
}

4
src/main/java/com/iflytop/digester/underframework/web/api/TsApiSnippet.java

@ -6,6 +6,8 @@ import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.HashMap;
import java.util.Map;
@Controller
public class TsApiSnippet extends UfApiControllerBase {
@ -52,7 +54,7 @@ public class TsApiSnippet extends UfApiControllerBase {
String cmdId = (String)params.get("cmdId");
String cmdParams = (String)params.get("cmdParams");
var executor = new UfCmdSnippetExecutor(null, null);
var executor = new UfCmdSnippetExecutor(null, new HashMap<>());
executor.executeStep(cmdId, cmdParams);
} catch ( Exception e ) {
return error(e.getMessage());

2
web

@ -1 +1 @@
Subproject commit b69f9ba8503f7247097d2eaa9dad06cc36582fec
Subproject commit 6c2047a06153a3328abbf4332dd3f012ae024b77
Loading…
Cancel
Save