xiaochan hace 2 años
padre
commit
adb0db8d65

+ 24 - 0
src/main/java/thyyxxk/webserver/config/StartAutoRequestService.java

@@ -0,0 +1,24 @@
+package thyyxxk.webserver.config;
+
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.stereotype.Component;
+import thyyxxk.webserver.service.externalhttp.StartServer;
+
+@Component
+@Slf4j
+public class StartAutoRequestService implements CommandLineRunner {
+
+    private final StartServer server;
+
+    public StartAutoRequestService(StartServer server) {
+        this.server = server;
+    }
+
+    @Override
+    public void run(String... args) throws Exception {
+        server.startServer();
+        log.info("软件启动");
+    }
+}

+ 7 - 0
src/main/java/thyyxxk/webserver/controller/PublicController.java

@@ -1,16 +1,22 @@
 package thyyxxk.webserver.controller;
 
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ConfigurableApplicationContext;
 import org.springframework.web.bind.annotation.*;
 import thyyxxk.webserver.config.auth.PassToken;
+import thyyxxk.webserver.config.exception.ExceptionEnum;
 import thyyxxk.webserver.entity.ResultVo;
 import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
 import thyyxxk.webserver.entity.login.UserInfo;
 import thyyxxk.webserver.entity.publicapi.ZkList;
 import thyyxxk.webserver.entity.zhuyuanyisheng.PatientAllergenInfo;
+import thyyxxk.webserver.service.LoginService;
 import thyyxxk.webserver.service.PublicServer;
 import thyyxxk.webserver.utils.ListUtil;
 import thyyxxk.webserver.utils.ResultVoUtil;
 
+import javax.naming.Context;
 import java.lang.reflect.InvocationTargetException;
 import java.util.ArrayList;
 import java.util.Date;
@@ -28,6 +34,7 @@ import java.util.Map;
 @RestController
 @RequestMapping("/publicApi")
 @PassToken
+@Slf4j
 public class PublicController {
     private final PublicServer service;
 

+ 43 - 0
src/main/java/thyyxxk/webserver/controller/ShutDownController.java

@@ -0,0 +1,43 @@
+package thyyxxk.webserver.controller;
+
+import lombok.extern.slf4j.Slf4j;
+import org.jetbrains.annotations.NotNull;
+import org.springframework.beans.BeansException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RestController;
+import thyyxxk.webserver.config.auth.PassToken;
+import thyyxxk.webserver.config.exception.ExceptionEnum;
+import thyyxxk.webserver.entity.ResultVo;
+import thyyxxk.webserver.utils.ResultVoUtil;
+
+import javax.servlet.http.HttpServletRequest;
+
+@Slf4j
+@RestController
+public class ShutDownController implements ApplicationContextAware {
+
+    private ApplicationContext context;
+
+    @PostMapping("/shutDownContext")
+    @PassToken
+    public ResultVo<String> shutDownContext(HttpServletRequest request) {
+        log.info("请求来源:{}", request.getRemoteAddr());
+        String localhost = "0:0:0:0:0:0:0:1";
+        if (localhost.equals(request.getRemoteAddr())) {
+            log.info("执行关机");
+            ConfigurableApplicationContext ctx = (ConfigurableApplicationContext) context;
+            ctx.close();
+        } else {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "你没有权限访问");
+        }
+        return ResultVoUtil.success(ExceptionEnum.SUCCESS, "关闭");
+    }
+
+    @Override
+    public void setApplicationContext(@NotNull ApplicationContext applicationContext) throws BeansException {
+        context = applicationContext;
+    }
+}

+ 5 - 4
src/main/java/thyyxxk/webserver/dao/his/dictionary/EmrDataMaintenanceDao.java

@@ -10,7 +10,7 @@ import java.util.Map;
 @Mapper
 public interface EmrDataMaintenanceDao {
 
-    @Select("select * from emr_data_maintenance with(nolock) ")
+    @Select("select * from emr_data_maintenance with(nolock) where del_flag = 0 ")
     IPage<EmrDataMaintenance> getElectronicMedicalRecordDataElementSql(IPage<EmrDataMaintenance> page);
 
     @Select("${sql}")
@@ -20,11 +20,12 @@ public interface EmrDataMaintenanceDao {
     @Select("${sql}")
     List<Map<String, Object>> testSqlList(@Param("sql") String sql);
 
-    @Insert("insert into emr_data_maintenance (name, sql_sentence, input_id)\n" +
-            "values (#{name}, #{sqlSentence}, #{inputId})")
+    @Insert("insert into emr_data_maintenance (name, sql_sentence, input_id,data_type)\n" +
+            "values (#{name}, #{sqlSentence}, #{inputId},#{dataType})")
     void addData(@Param("name") String name,
                  @Param("sqlSentence") String sqlSentence,
-                 @Param("inputId") String inputId);
+                 @Param("inputId") String inputId,
+                 @Param("dataType") Integer dataType);
 
     @Update("update emr_data_maintenance set del_flag = 1 , modified_by = #{userId} ,modified_date = getdate() " +
             "where id = #{id}")

+ 2 - 4
src/main/java/thyyxxk/webserver/entity/zhuyuanyisheng/EmrPatientData.java

@@ -59,15 +59,13 @@ public class EmrPatientData implements Serializable {
     /**
      * 模板的名称
      */
-    @NotNull(message = "住院号不能为空")
-    @NotBlank(message = "住院号不能为空")
+    @NotNull(message = "模板的名称为空")
+    @NotBlank(message = "模板的名称为空")
     private String emrName;
 
     /**
      * 医生取得名称
      */
-    @NotNull(message = "住院号不能为空")
-    @NotBlank(message = "住院号不能为空")
     private String name;
 
     /**

+ 2 - 1
src/main/java/thyyxxk/webserver/service/dictionary/EmrDataMaintenanceServer.java

@@ -64,6 +64,7 @@ public class EmrDataMaintenanceServer {
 
     public ResultVo<JSONObject> testSql(EmrDataMaintenance emr) {
         String sql = keyParameterSubstitution(emr.getSqlSentence(), emr.getPatNo(), emr.getTimes());
+        log.info("sql:{}", sql);
         if (emr.getDataType().equals(0)) {
             Map<String, Object> sqlData = dao.testSql(sql);
             if (null == sqlData || sqlData.isEmpty()) {
@@ -115,7 +116,7 @@ public class EmrDataMaintenanceServer {
 
     public ResultVo<String> addData(EmrDataMaintenance emr) {
         String userCode = TokenUtil.getTokenUserId();
-        dao.addData(emr.getName(), emr.getSqlSentence(), userCode);
+        dao.addData(emr.getName(), emr.getSqlSentence(), userCode, emr.getDataType());
         log.info("新增电子病历维护 ==> 操作人:{},数据:{}", userCode, JSON.toJSONString(emr));
         return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION);
     }

+ 9 - 0
src/main/java/thyyxxk/webserver/service/externalhttp/StartServer.java

@@ -0,0 +1,9 @@
+package thyyxxk.webserver.service.externalhttp;
+
+import com.dtflys.forest.annotation.Get;
+
+public interface StartServer {
+
+    @Get("http://localhost:9281/startServer?name=web-server")
+    void startServer();
+}

+ 3 - 0
src/main/java/thyyxxk/webserver/websocket/WebSocketServer.java

@@ -25,6 +25,9 @@ public class WebSocketServer {
 
     @OnOpen
     public void onOpen(Session session, @PathParam("sid") String sid) {
+        if ("update".equals(sid)) {
+            return;
+        }
         if (!sid.endsWith("Screen")) {
             SESSION_MAP.forEach((item, index) -> {
                 if (sid.split("-")[0].equals(item.split("-")[0])) {