Files
longdianningxing/lms/nladmin-system/src/main/java/org/nl/AppRun.java
2023-04-21 17:38:20 +08:00

239 lines
10 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package org.nl;
import cn.dev33.satoken.annotation.SaIgnore;
import cn.hutool.core.util.IdUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alicp.jetcache.anno.config.EnableCreateCacheAnnotation;
import com.alicp.jetcache.anno.config.EnableMethodCache;
import io.swagger.annotations.Api;
import org.mybatis.spring.annotation.MapperScan;
import org.nl.common.utils.MapOf;
import org.nl.modules.wql.WQL;
import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.modules.wql.util.SpringContextHolder;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 开启审计功能 -> @EnableJpaAuditing
* https://www.cnblogs.com/niceyoo/p/10908647.html
*
* @author ldjun
* @date 2021/2/22 9:20:19
*/
@EnableAsync
@RestController
@Api(hidden = true)
@SpringBootApplication(exclude = {
org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class
})
@ServletComponentScan //https://blog.csdn.net/qq_36850813/article/details/101194250
@EnableJpaAuditing(auditorAwareRef = "auditorAware")
@EnableMethodCache(basePackages = "org.nl")
@EnableCreateCacheAnnotation
@MapperScan("org.nl.**.mapper")
//@EnableElasticsearchRepositories(basePackages = {"org.nl.modules.logging.repository.*"})
public class AppRun {
public static void main(String[] args) {
try {
SpringApplication.run(AppRun.class, args);
}catch (Exception ex){
ex.printStackTrace();
}
}
@Bean
public SpringContextHolder springContextHolder() {
return new SpringContextHolder();
}
@Bean
public ServletWebServerFactory webServerFactory() {
TomcatServletWebServerFactory fa = new TomcatServletWebServerFactory();
fa.addConnectorCustomizers(connector -> connector.setProperty("relaxedQueryChars", "[]{}"));
return fa;
}
/**
* 访问首页提示
*
* @return /
*/
@GetMapping("/")
@SaIgnore
public String index() {
return "Backend service started successfully";
}
@GetMapping("/w") // 立库监控初始化
@SaIgnore
public String index2() {
// 采用循环+判断进行铺设图标, 可以通过舞台编辑协助完成
WQLObject stageTab = WQLObject.getWQLObject("stage");
WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr");
JSONObject save = new JSONObject();
JSONArray nodes = new JSONArray();
JSONArray edges = new JSONArray();
int x = 50; // 首个位置
int y = 50;
int step = 5;
String type = "html-node";
int nodeSizeW = 50;
int nodeSizeH = 50;
for (int i = 2; i < 23; i=i+2) { // 第几块,每两块为一块
// 获取列数col_num
System.out.println( (i>=10?"3":"30") + i);
JSONObject jsonObject = WQL.getWO("ss").addParamMap(MapOf.of("flag", "1"
, "block_num", (i>=10?"3":"30") + i)).process().uniqueResult(0);
int num = Integer.parseInt(jsonObject.getString("num"));
for (int j = 1; j <= num; j++) {// 层数
// 获取21....块的数据
JSONArray array = attrTab.query("block_num IN ('" + (i>=10?"3":"30") + i + "','" +
((i-1)>=10?"3":"30") + (i - 1) + "') AND " +
"layer_num = 3 AND col_num = " + j, "block_num DESC, row_num DESC").getResultJSONArray(0);
for (int k = 0; k < array.size(); k++) { // 1,2...块的每列数据
JSONObject object = array.getJSONObject(k);
if (k-1 >= 0) { // 如果块与块不同,空一个距离
JSONObject object2 = array.getJSONObject(k-1);
if (!object2.getString("block_num").equals(object.getString("block_num")) && object2.getString("is_delete").equals(object.getString("is_delete"))) {
JSONObject node2 = new JSONObject();
node2.put("id", IdUtil.getSnowflake(1,1).nextIdStr());
node2.put("type", type);
node2.put("x", x);
node2.put("y", y);
JSONObject properties2 = new JSONObject();
JSONObject nodeSize2 = new JSONObject();
nodeSize2.put("width", nodeSizeW);
nodeSize2.put("height", nodeSizeH);
properties2.put("nodeSize", nodeSize2);
properties2.put("flag", "1");
properties2.put("transform", 90);
node2.put("properties", properties2);
node2.put("zIndex", "2023");
x = x + step + nodeSizeW;
nodes.add(node2);
}
}
if (object.getString("is_delete").equals("1")) {
x = x + step + nodeSizeW;
continue;
}
// 设置节点只需要struct_id, 自定义参数数据都加载properties对象里面
JSONObject node = new JSONObject();
node.put("id", IdUtil.getSnowflake(1,1).nextIdStr());
node.put("type", type);
node.put("x", x);
node.put("y", y);
JSONObject properties = new JSONObject();
JSONObject nodeSize = new JSONObject();
nodeSize.put("width", nodeSizeW);
nodeSize.put("height", nodeSizeH);
properties.put("nodeSize", nodeSize);
properties.put("struct_id", object.getString("struct_id")); // 灵活配置,其他为固定参数
node.put("properties", properties);
node.put("zIndex", "2023");
x = x + step + nodeSizeW;
nodes.add(node);
}
// 下一列
x = 50;
y = y + step + nodeSizeH;
}
// 下一个块
x = 50;
for (int j = 0; j < 16; j++) { // 铺设一行道路
JSONObject node2 = new JSONObject();
node2.put("id", IdUtil.getSnowflake(1,1).nextIdStr());
node2.put("type", type);
node2.put("x", x);
node2.put("y", y);
JSONObject properties2 = new JSONObject();
JSONObject nodeSize2 = new JSONObject();
nodeSize2.put("width", nodeSizeW);
nodeSize2.put("height", nodeSizeH);
properties2.put("nodeSize", nodeSize2);
properties2.put("flag", "1");
node2.put("properties", properties2);
node2.put("zIndex", "2023");
x = x + step + nodeSizeW;
nodes.add(node2);
}
x = 50;
y = y + step + nodeSizeH;
}
save.put("nodes", nodes);
save.put("edges", edges);
JSONObject jsonObject = stageTab.query("stage_code = 'AS_3'").uniqueResult(0);
jsonObject.put("stage_data", save);
stageTab.update(jsonObject);
return "Backend service started successfully";
}
@GetMapping("/f") // 发货区监控初始化
@SaIgnore
public String index3() {
// 采用循环+判断进行铺设图标, 可以通过舞台编辑协助完成
WQLObject stageTab = WQLObject.getWQLObject("stage");
WQLObject attrTab = WQLObject.getWQLObject("sch_base_point");
JSONObject save = new JSONObject();
JSONArray nodes = new JSONArray();
JSONArray edges = new JSONArray();
int x = 50; // 首个位置
int y = 50;
int step = 5;
String type = "html-node";
int nodeSizeW = 50;
int nodeSizeH = 50;
for (int i = 1; i <= 4; i++) {
JSONArray resultJSONArray = attrTab.query("col_num = '" + i + "' and point_type = '9' and layer_num = '2' order by row_num ASC").getResultJSONArray(0);
for (int j = 0; j < resultJSONArray.size(); j++) {
JSONObject json = resultJSONArray.getJSONObject(j);
JSONObject node = new JSONObject();
node.put("id", IdUtil.getSnowflake(1,1).nextIdStr());
node.put("type", type);
node.put("x", x);
node.put("y", y);
JSONObject properties = new JSONObject();
JSONObject nodeSize = new JSONObject();
nodeSize.put("width", nodeSizeW);
nodeSize.put("height", nodeSizeH);
properties.put("nodeSize", nodeSize);
properties.put("struct_id", json.getString("point_id")); // 灵活配置,其他为固定参数
node.put("properties", properties);
node.put("zIndex", "2023");
x = x + step + nodeSizeW;
nodes.add(node);
}
x = 50;
y = y + step + nodeSizeH;
}
save.put("nodes", nodes);
save.put("edges", edges);
JSONObject jsonObject = stageTab.query("stage_code = 'FS_2'").uniqueResult(0);
jsonObject.put("stage_data", save);
stageTab.update(jsonObject);
return "Backend service started successfully";
}
}