Commit fe824403 by jiang'yun

修改问题

parent 3e3946a0
...@@ -239,6 +239,25 @@ ...@@ -239,6 +239,25 @@
</exclusions> </exclusions>
</dependency> </dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.16</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.25</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
......
...@@ -31,11 +31,10 @@ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter ...@@ -31,11 +31,10 @@ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain)
throws ServletException, IOException throws ServletException, IOException
{ {
LoginUser loginUser = tokenService.getLoginUser(request); String token = tokenService.getHeaderToken(request);
if (StringUtils.isNotNull(loginUser) && StringUtils.isNull(SecurityUtils.getAuthentication())) if (StringUtils.isNotNull(token))
{ {
tokenService.verifyToken(loginUser); UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(null, null, null);
UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(loginUser, null, loginUser.getAuthorities());
authenticationToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request)); authenticationToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));
SecurityContextHolder.getContext().setAuthentication(authenticationToken); SecurityContextHolder.getContext().setAuthentication(authenticationToken);
} }
......
package com.ruoyi.framework.security.service; package com.ruoyi.framework.security.service;
import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
...@@ -82,6 +83,24 @@ public class TokenService ...@@ -82,6 +83,24 @@ public class TokenService
return null; return null;
} }
/**
* 获取用户身份信息
*
* @return 用户信息
*/
public String getHeaderToken(HttpServletRequest request)
{
// 获取请求携带的令牌
String token = getToken(request);
if (StringUtils.isNotEmpty(token))
{
return token;
}
return null;
}
/** /**
* 设置用户身份信息 * 设置用户身份信息
*/ */
...@@ -169,6 +188,16 @@ public class TokenService ...@@ -169,6 +188,16 @@ public class TokenService
loginUser.setOs(userAgent.getOperatingSystem().getName()); loginUser.setOs(userAgent.getOperatingSystem().getName());
} }
// public static void main(String[] args) {
// long expirationTime = System.currentTimeMillis() + 10 * 365 * 24 * 60 * 60 * 1000; // 10年
// String compact = Jwts.builder()
// .setSubject("sub")
// .setExpiration(new Date(expirationTime))
// .signWith(SignatureAlgorithm.HS256, "yourSecretKey")
// .compact();
// System.out.println( compact);
// }
/** /**
* 从数据声明生成令牌 * 从数据声明生成令牌
* *
......
package com.ruoyi.framework.util;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public class JsonToMarkdown {
/**
* 将JSON字符串转换为Markdown格式
*/
public static String convert(String jsonString) {
try {
Object json = JSON.parse(jsonString);
if (json instanceof JSONObject) {
return processObject((JSONObject) json, 0);
} else if (json instanceof JSONArray) {
return processArray((JSONArray) json, 0);
}
} catch (Exception e) {
e.printStackTrace();
}
return "Invalid JSON format";
}
private static String processObject(JSONObject obj, int level) {
StringBuilder markdown = new StringBuilder();
// 检查是否适合用表格展示
boolean useTable = shouldUseTable(obj);
if (useTable && level == 0) {
// 根级简单对象使用表格
markdown.append("| Key | Value |\n");
markdown.append("| --- | --- |\n");
for (String key : obj.keySet()) {
Object value = obj.get(key);
markdown.append("| ")
.append(escapeMarkdown(key))
.append(" | ")
.append(formatValue(value, level + 1))
.append(" |\n");
}
} else {
// 使用列表格式
for (String key : obj.keySet()) {
Object value = obj.get(key);
addIndent(markdown, level);
markdown.append("- **")
.append(escapeMarkdown(key))
.append("**: ");
if (value instanceof JSONObject) {
markdown.append("\n").append(processObject((JSONObject) value, level + 1));
} else if (value instanceof JSONArray) {
markdown.append("\n").append(processArray((JSONArray) value, level + 1));
} else {
markdown.append(escapeMarkdown(String.valueOf(value))).append("\n");
}
}
}
return markdown.toString();
}
private static String processArray(JSONArray arr, int level) {
StringBuilder markdown = new StringBuilder();
for (int i = 0; i < arr.size(); i++) {
Object value = arr.get(i);
addIndent(markdown, level);
markdown.append("- ");
if (value instanceof JSONObject) {
markdown.append("Object:\n").append(processObject((JSONObject) value, level + 1));
} else if (value instanceof JSONArray) {
markdown.append("Array:\n").append(processArray((JSONArray) value, level + 1));
} else {
markdown.append(escapeMarkdown(String.valueOf(value))).append("\n");
}
}
return markdown.toString();
}
private static String formatValue(Object value, int level) {
if (value instanceof JSONObject) {
return processObject((JSONObject) value, level);
} else if (value instanceof JSONArray) {
return processArray((JSONArray) value, level);
} else {
return escapeMarkdown(String.valueOf(value));
}
}
private static boolean shouldUseTable(JSONObject obj) {
if (obj.isEmpty()) return false;
for (String key : obj.keySet()) {
Object value = obj.get(key);
if (value instanceof JSONObject || value instanceof JSONArray) {
return false;
}
}
return true;
}
private static void addIndent(StringBuilder sb, int level) {
for (int i = 0; i < level; i++) {
sb.append(" ");
}
}
private static String escapeMarkdown(String text) {
if (text == null) return "";
// 转义Markdown特殊字符
return text.replace("|", "\\|")
.replace("*", "\\*")
.replace("_", "\\_")
.replace("#", "\\#")
.replace("`", "\\`");
}
// 使用示例
public static void main(String[] args) {
String json = "{\"name\":\"John\",\"age\":30,\"hobbies\":[\"reading\",\"swimming\"],\"address\":{\"city\":\"New York\",\"zip\":\"10001\"}}";
String markdown = convert(json);
System.out.println(markdown);
}
}
\ No newline at end of file
...@@ -23,6 +23,8 @@ public class AjaxResult extends HashMap<String, Object> ...@@ -23,6 +23,8 @@ public class AjaxResult extends HashMap<String, Object>
/** 数据对象 */ /** 数据对象 */
public static final String DATA_TAG = "data"; public static final String DATA_TAG = "data";
public static final String ZDSM_TAG = "ZDSM";
/** /**
* 初始化一个新创建的 AjaxResult 对象,使其表示一个空消息。 * 初始化一个新创建的 AjaxResult 对象,使其表示一个空消息。
*/ */
...@@ -60,6 +62,27 @@ public class AjaxResult extends HashMap<String, Object> ...@@ -60,6 +62,27 @@ public class AjaxResult extends HashMap<String, Object>
} }
/** /**
* 初始化一个新创建的 AjaxResult 对象
*
* @param code 状态码
* @param msg 返回内容
* @param data 数据对象
*/
public AjaxResult(int code, String msg, Object data,Object ZDSM)
{
super.put(CODE_TAG, code);
super.put(MSG_TAG, msg);
if (StringUtils.isNotNull(data))
{
super.put(DATA_TAG, data);
}
if (StringUtils.isNotNull(ZDSM))
{
super.put(ZDSM_TAG, ZDSM);
}
}
/**
* 返回成功消息 * 返回成功消息
* *
* @return 成功消息 * @return 成功消息
...@@ -78,6 +101,15 @@ public class AjaxResult extends HashMap<String, Object> ...@@ -78,6 +101,15 @@ public class AjaxResult extends HashMap<String, Object>
{ {
return AjaxResult.success("操作成功", data); return AjaxResult.success("操作成功", data);
} }
/**
* 返回成功数据
*
* @return 成功消息
*/
public static AjaxResult success(Object data,Object ZDSM)
{
return AjaxResult.success("操作成功", data, ZDSM);
}
/** /**
* 返回成功消息 * 返回成功消息
...@@ -102,6 +134,18 @@ public class AjaxResult extends HashMap<String, Object> ...@@ -102,6 +134,18 @@ public class AjaxResult extends HashMap<String, Object>
return new AjaxResult(HttpStatus.SUCCESS, msg, data); return new AjaxResult(HttpStatus.SUCCESS, msg, data);
} }
/**
* 返回成功消息
*
* @param msg 返回内容
* @param data 数据对象
* @return 成功消息
*/
public static AjaxResult success(String msg, Object data,Object ZDSM)
{
return new AjaxResult(HttpStatus.SUCCESS, msg, data, ZDSM);
}
/** /**
* 返回警告消息 * 返回警告消息
* *
......
...@@ -34,7 +34,7 @@ public class SysJobServiceImpl implements ISysJobService ...@@ -34,7 +34,7 @@ public class SysJobServiceImpl implements ISysJobService
/** /**
* 项目启动时,初始化定时器 主要是防止手动修改数据库导致未同步到定时任务处理(注:不能手动修改数据库ID和任务组名,否则会导致脏数据) * 项目启动时,初始化定时器 主要是防止手动修改数据库导致未同步到定时任务处理(注:不能手动修改数据库ID和任务组名,否则会导致脏数据)
*/ */
@PostConstruct // @PostConstruct
public void init() throws SchedulerException, TaskException public void init() throws SchedulerException, TaskException
{ {
scheduler.clear(); scheduler.clear();
......
...@@ -32,7 +32,7 @@ public class SysConfigServiceImpl implements ISysConfigService ...@@ -32,7 +32,7 @@ public class SysConfigServiceImpl implements ISysConfigService
/** /**
* 项目启动时,初始化参数到缓存 * 项目启动时,初始化参数到缓存
*/ */
@PostConstruct // @PostConstruct
public void init() public void init()
{ {
loadingConfigCache(); loadingConfigCache();
......
...@@ -35,7 +35,7 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService ...@@ -35,7 +35,7 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService
/** /**
* 项目启动时,初始化字典到缓存 * 项目启动时,初始化字典到缓存
*/ */
@PostConstruct // @PostConstruct
public void init() public void init()
{ {
loadingDictCache(); loadingDictCache();
......
package com.ruoyi.project.zt.controller; package com.ruoyi.project.zt.controller;
import cn.hutool.http.HttpRequest;
import com.google.gson.*;
import com.ruoyi.framework.util.JsonToMarkdown;
import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.project.zt.domian.CommonParam;
import com.ruoyi.project.zt.domian.DjDcInfo; import com.ruoyi.project.zt.domian.DjDcInfo;
import com.ruoyi.project.zt.domian.Djjc;
import com.ruoyi.project.zt.domian.Ljinfo; import com.ruoyi.project.zt.domian.Ljinfo;
import com.ruoyi.project.zt.service.DjdcService; import com.ruoyi.project.zt.service.DjdcService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController @RestController
@RequestMapping("/djdc") @RequestMapping("/djdc")
...@@ -34,4 +41,137 @@ public class DjdcController { ...@@ -34,4 +41,137 @@ public class DjdcController {
} }
/**
* 获取井基础信息
*/
@PostMapping("/api")
public AjaxResult ff(@RequestBody CommonParam param){
String path = param.getPath();
Map<String,Object> map =new HashMap<>();
switch (path) {
case "getDjjcList":
//获取邻井基础信息
map.put("jh","井号");
map.put("kc","开次");
map.put("jd","井段");
map.put("cw","层位");
map.put("jc","进尺");
map.put("jxzs","机械钻速");
map.put("ztxh","钻头型号");
map.put("pz","喷嘴");
map.put("mxqk","磨损情况");
map.put("qzyy","起钻原因");
map.put("zb","指标");
List<Djjc> djjcList = djdcService.getDjjcList(param);
AjaxResult success = AjaxResult.success(djjcList, map);
Gson gson = new GsonBuilder().setPrettyPrinting().create();
// 将实体对象转换为JSON字符串
String json = gson.toJson(success);
String convert = JsonToMarkdown.convert(json);
System.out.println(convert);
return success;
case "getZqshfxList":
//获取邻井周期分析
map.put("jh","井号");
map.put("kc","开次");
map.put("cw","层位");
map.put("jc","进尺");
map.put("zjzq","钻进周期");
map.put("zwzq","中完周期");
map.put("zjsl","钻进速率");
map.put("zjycsl","钻进异常周期");
map.put("wjycsl","完井异常周期");
return AjaxResult.success( djdcService.getZqshfxList(param),map);
case "getZjzhfxList":
//获取钻具组合分析
map.put("jh","井号");
map.put("kc","开次");
map.put("jd","井段");
map.put("jc","进尺");
map.put("zjzhmx","钻具组合模型");
map.put("tsgj","特殊工具");
map.put("zjzh","钻具组合明细");
map.put("zb","时效");
return AjaxResult.success( djdcService.getZjzhfxList(param),map);
default:
return AjaxResult.success();
}
}
/**
* 调用长城大模型
* @param param
* @return
*/
@PostMapping("/dyAiModel")
public AjaxResult dyAiModel(CommonParam param){
Map<String,Object> map=new HashMap<>();
map.put("prompt",param.getZjzh()+" 这是一个钻具组合信息,请把这个钻具组合信息拆分成竖表,字段为钻具名称(zjmc)、型号(xh)、长度(cd),最终输出json格式数据,其他内容不输出,输出内容不换行,只要数据,反斜杠不输出");
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String json = gson.toJson(map);
String url="http://10.68.249.59:33331/api/chat/1";
String result2 = HttpRequest.post(url)
.body(json)
.execute().body();
System.out.println(result2);
// 解析API响应
Gson gsonres = new GsonBuilder().setPrettyPrinting().create();
JsonObject apiResponse = JsonParser.parseString(result2).getAsJsonObject();
// 提取message.content字段
JsonObject message = apiResponse.getAsJsonObject("message");
String content = message.get("content").getAsString();
// 提取content中的JSON部分(去除Markdown代码块标记)
String jsonContent = extractJsonContent(content);
// 解析并格式化JSON内容
JsonElement jsonElement = JsonParser.parseString(jsonContent);
String formattedJson = gson.toJson(jsonElement);
// 输出格式化后的JSON
System.out.println(formattedJson);
// 示例:处理解析后的数据
JsonObject dataObject = JsonParser.parseString(jsonContent).getAsJsonObject();
JsonArray dataArray = dataObject.getAsJsonArray("data");
// 遍历数据数组
for (JsonElement element : dataArray) {
JsonObject item = element.getAsJsonObject();
String zjmc = item.get("zjmc").getAsString();
String xh = item.get("xh").getAsString();
String cd = item.get("cd").getAsString();
System.out.printf("组件名称: %s, 型号: %s, 长度: %s%n", zjmc, xh, cd);
}
return AjaxResult.success();
}
/**
* 从Markdown代码块中提取JSON内容
*/
private static String extractJsonContent(String markdownContent) {
// 去除开头的```json和结尾的```
return markdownContent
.replaceFirst("^```json", "")
.replaceFirst("```$", "")
.trim();
}
} }
package com.ruoyi.project.zt.domian;
import lombok.Data;
@Data
public class CommonParam {
//接口路径
private String path;
//井号
private String jh;
//开始完井时间
private String wjsjks;
//结束完井时间
private String wjsjjs;
//井底横坐标
private Double jdhzb;
//井底纵坐标
private Double jdzzb;
//钻具组合
private String zjzh;
}
package com.ruoyi.project.zt.domian;
import lombok.Data;
/**
* 钻具组合分析
*/
@Data
public class DjZjzhfx {
private String jh;
//开次
private String kc;
private Double ksjs;
private Double js;
//井段
private String jd;
//钻具组合模型
private String zjzhmx;
//特殊工具
private String tsgj;
//钻具组合明细
private String zjzh;
//进尺
private Double jc;
private Double jcsjhj;
//时效
private Double zb;
}
package com.ruoyi.project.zt.domian;
import lombok.Data;
/**
* 邻井周期分析
*/
@Data
public class DjZqsjfx {
//井号
private String jh;
//开始井深
private Double ksjs;
//结束井深
private Double js;
//开次
private String kc;
//进尺
private Double jc;
//到达层位
private String cw;
//钻进周期
private Double zjzq;
//中完周期
private Double zwzq;
//钻进速率
private Double zjsl;
//钻进异常周期
private Double zjycsl;
//完井异常周期
private Double wjycsl;
}
package com.ruoyi.project.zt.domian;
import lombok.Data;
/**
* 井基础信息
*/
@Data
public class Djjc {
//井号
private String jh;
//开始完井时间
private String wjsjks;
//结束完井时间
private String wjsjjs;
private String wjrq;
//井底横坐标
private Double jdhzb;
//井底纵坐标
private Double jdzzb;
//开次
private String kc;
//井段
private String jd;
//层位
private String cw;
//进尺
private Double jc;
//机械钻速
private Double jxzs;
//钻头型号
private String ztxh;
//喷嘴
private String pz;
//磨损情况
private String mxqk;
//起钻原因
private String qzyy;
//指标
private String zb;
//所钻地层
private String szdc;
private Integer xh;
private Integer PZ1;
private Integer PZ2;
private Integer PZ3;
private Integer PZ4;
private Integer PZ5;
private Integer PZ6;
private Integer PZ7;
private Integer PZ8;
private Integer PZ9;
private Integer PZ10;
private String lx;
private String npc;
private String wpc;
private String ycmsqk;
private String zcmsqk;
}
package com.ruoyi.project.zt.domian;
import lombok.Data;
@Data
public class Jsta {
private String jh;
private Integer xh;
private Double jd1;
private Double jd2;
private String sgzyxm;
private Double jhts;
private Double sjts;
private Double ljts;
}
package com.ruoyi.project.zt.domian;
import lombok.Data;
import java.util.Date;
/**
* 钻井日志
*/
@Data
public class Jswa {
private String jh;
// @Id
// @Temporal(TemporalType.DATE)
//@Column(name = "RQ", nullable = false)
private Date rq;
//@Column(name = "JS", precision = 8, scale = 2)
private Double js;
//@Column(name = "RJC", precision = 8, scale = 2)
private Double rjc;
//@Column(name = "ZTGF", length = 40)
private String ztgf;
//@Column(name = "ZY", length = 20)
private String zy;
//@Column(name = "ZS", length = 20)
private String zs;
//@Column(name = "PL", precision = 6, scale = 2)
private Double pl;
//@Column(name = "BY1", precision = 6, scale = 2)
private Double by1;
//@Column(name = "MD", precision = 6, scale = 2)
private Double md;
//@Column(name = "ND", precision = 6, scale = 2)
private Double nd;
//@Column(name = "HS", precision = 6, scale = 2)
private Double hs;
//@Column(name = "CZJ", precision = 6, scale = 2)
private Double czj;
//@Column(name = "QXZ", precision = 6, scale = 2)
private Double qxz;
//@Column(name = "JDG", precision = 6, scale = 2)
private Double jdg;
//@Column(name = "KHY", precision = 6, scale = 2)
private Double khy;
//@Column(name = "HZT", precision = 6, scale = 2)
private Double hzt;
//@Column(name = "XHZJY", precision = 6, scale = 2)
private Double xhzjy;
//@Column(name = "CJ", precision = 6, scale = 2)
private Double cj;
//@Column(name = "GJ", precision = 6, scale = 2)
private Double gj;
//@Column(name = "FZ", precision = 6, scale = 2)
private Double fz;
//@Column(name = "SG", precision = 6, scale = 2)
private Double sg;
//@Column(name = "XL", precision = 6, scale = 2)
private Double xl;
//@Column(name = "ZZTG", precision = 6, scale = 2)
private Double zztg;
//@Column(name = "ZRTG", precision = 6, scale = 2)
private Double zrtg;
//@Column(name = "FZQK", precision = 6, scale = 2)
private Double fzqk;
//@Column(name = "QT", precision = 6, scale = 2)
private Double qt;
//@Column(name = "ZGCS", precision = 6, scale = 2)
private Double zgcs;
//@Column(name = "BRZYGZ", length = 1000)
private String brzygz;
//@Column(name = "NJSS", precision = 6, scale = 2)
private Double njss;
private Double ksjs;
}
package com.ruoyi.project.zt.domian;
import lombok.Data;
@Data
public class Qzyy {
private String label;
private String value;
// 构造函数
public Qzyy(String label, String value) {
this.label = label;
this.value = value;
}
}
package com.ruoyi.project.zt.mapper; package com.ruoyi.project.zt.mapper;
import com.ruoyi.project.zt.domian.DjDcInfo; import com.ruoyi.project.zt.domian.*;
import com.ruoyi.project.zt.domian.Ljinfo;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List; import java.util.List;
...@@ -14,4 +13,19 @@ public interface DjdcInfoMapper { ...@@ -14,4 +13,19 @@ public interface DjdcInfoMapper {
List<Ljinfo> ljListByJh(Ljinfo info); List<Ljinfo> ljListByJh(Ljinfo info);
List<Djjc> getDjjcList(CommonParam param);
List<DjZqsjfx> getZqshfxList(CommonParam param);
DjZqsjfx getJcAndCw(DjZqsjfx djZqsjfx);
List<DjZjzhfx> getZjzhfxList(CommonParam param);
DjZjzhfx getJshaJc(String jh, Double ksjs, Double js);
Djjc getDjinfoByjh(String jh);
} }
package com.ruoyi.project.zt.mapper;
import com.ruoyi.project.zt.domian.*;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface JstaMapper {
List<Jsta> getList(Jsta jsta);
}
package com.ruoyi.project.zt.mapper;
import com.ruoyi.project.zt.domian.Jswa;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface JswaMapper {
List<Jswa> getList(Jswa jswa);
}
...@@ -2,8 +2,7 @@ package com.ruoyi.project.zt.service; ...@@ -2,8 +2,7 @@ package com.ruoyi.project.zt.service;
import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.project.zt.domian.DjDcInfo; import com.ruoyi.project.zt.domian.*;
import com.ruoyi.project.zt.domian.Ljinfo;
import java.util.List; import java.util.List;
...@@ -14,4 +13,11 @@ public interface DjdcService { ...@@ -14,4 +13,11 @@ public interface DjdcService {
List<Ljinfo> ljListByJh(Ljinfo info); List<Ljinfo> ljListByJh(Ljinfo info);
List<Djjc> getDjjcList(CommonParam param);
List<DjZqsjfx> getZqshfxList(CommonParam param);
List<DjZjzhfx> getZjzhfxList(CommonParam param);
} }
...@@ -6,9 +6,12 @@ spring: ...@@ -6,9 +6,12 @@ spring:
druid: druid:
# 主库数据源 # 主库数据源
master: master:
url: jdbc:oracle:thin:@123.57.227.23:1521/ORCL # url: jdbc:oracle:thin:@123.57.227.23:1521/ORCL
username: ZJSGFA # username: ZJSGFA
password: ZJSGFA # password: ZJSGFA
url: jdbc:oracle:thin:@10.66.116.46:1521/jt_zj
username: HHZJJS_CX
password: HHzjjs#2025_CX1
# 从库数据源 # 从库数据源
slave: slave:
# 从数据源开关/默认关闭 # 从数据源开关/默认关闭
......
...@@ -16,7 +16,7 @@ ruoyi: ...@@ -16,7 +16,7 @@ ruoyi:
# 开发环境配置 # 开发环境配置
server: server:
# 服务器的HTTP端口,默认为8080 # 服务器的HTTP端口,默认为8080
port: 8080 port: 8089
servlet: servlet:
# 应用的访问路径 # 应用的访问路径
context-path: / context-path: /
...@@ -97,7 +97,8 @@ token: ...@@ -97,7 +97,8 @@ token:
# 令牌密钥 # 令牌密钥
secret: abcdefghijklmnopqrstuvwxyz secret: abcdefghijklmnopqrstuvwxyz
# 令牌有效期(默认30分钟) # 令牌有效期(默认30分钟)
expireTime: 30 expireTime: 0
# MyBatis配置 # MyBatis配置
mybatis: mybatis:
......
...@@ -124,10 +124,202 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -124,10 +124,202 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
ABS(a.jdhzb - b.jdhzb) &lt; 1000 -- 按井底坐标选 ABS(a.jdhzb - b.jdhzb) &lt; 1000 -- 按井底坐标选
AND AND
ABS(a.jdzzb - b.jdzzb) &lt; 1000 ABS(a.jdzzb - b.jdzzb) &lt; 1000
--
-- ABS(a.jkhzb - b.jkhzb) &lt; 10 -- 按井口坐标
-- AND </select>
-- ABS(a.jkzzb - b.jkzzb) &lt; 10; <!-- &#45;&#45;-->
<!-- &#45;&#45; ABS(a.jkhzb - b.jkhzb) &lt; 10 &#45;&#45; 按井口坐标-->
<!-- &#45;&#45; AND-->
<!-- &#45;&#45; ABS(a.jkzzb - b.jkzzb) &lt; 10;-->
<select id="getDjjcList" resultType="com.ruoyi.project.zt.domian.Djjc">
select a.jh,a.jdhzb,a.jdzzb,to_char(b.WJRQ,'YYYY-MM-DD') wjrq,c.kc,c.jd,ksjs,c.JS,xh,
SZDC cw,
JC,
jxzs,
ZTXH,
PZ1,
PZ2,
PZ3,
PZ4,
PZ5,
PZ6,
PZ7,
PZ8,
PZ9,
PZ10,
lx,
Npc,
WPC,
YCMSQK,
ZCMSQK,
Qzyy,
zb
from HHZJJS.JSBA a
left join HHZJJS.jsaa b on a.jh = b.jh
left join (
SELECT
jh,kc,(CASE WHEN kc = 1 THEN 0 ELSE LAG_JS END) ksjs,js, CONCAT( CASE WHEN kc = 1 THEN '0-' ELSE LAG_JS || '-'END,JS) AS jd
FROM (
SELECT
jh, ROW_NUMBER() OVER (PARTITION BY jh ORDER BY js) AS kc,
JS,
LAG(JS, 1, 0) OVER (PARTITION BY jh ORDER BY js) AS LAG_JS
FROM HHZJJS.JSDB
) t) c on a.jh=c.jh
left join (
select jh,xh,
SZDC,
JC,
jxzs,
ZTXH,
PZ1,
PZ2,
PZ3,
PZ4,
PZ5,
PZ6,
PZ7,
PZ8,
PZ9,
PZ10,
lx,
Npc,
WPC,
YCMSQK,
ZCMSQK,
Qzyy,
zzjs,
ROUND(jc / case when (JCSJHJ / 24) =0 then 1 else (JCSJHJ / 24) end , 2) zb
from HHZJJS.JSHA
order by xh
) d on a.JH=d.jh and d.zzjs>ksjs and d.zzjs&lt;=js
where 1=1
<if test="jdhzb!=null">
and ABS(#{jdhzb} - a.jdhzb) &lt; 1000
</if>
<if test="jdzzb!=null">
AND ABS(#{jdzzb} - a.jdzzb) &lt; 1000
</if>
<if test="wjsjks!=null and wjsjks!=''">
and to_char(b.WJRQ,'YYYY-MM-DD')>=#{wjsjks}
</if>
<if test="wjsjjs!=null and wjsjjs!=''">
and to_char(b.WJRQ,'YYYY-MM-DD')&lt;=#{wjsjjs}
</if>
order by kc,jh,XH
</select>
<select id="getZqshfxList" resultType="com.ruoyi.project.zt.domian.DjZqsjfx">
select a.jh,c.kc,ksjs,c.js
from HHZJJS.JSBA a
left join HHZJJS.jsaa b on a.jh = b.jh
left join (
SELECT
jh,kc,(CASE WHEN kc = 1 THEN 0 ELSE LAG_JS END) ksjs,js
FROM (
SELECT
jh, ROW_NUMBER() OVER (PARTITION BY jh ORDER BY js) AS kc,
JS,
LAG(JS, 1, 0) OVER (PARTITION BY jh ORDER BY js) AS LAG_JS
FROM HHZJJS.JSDB
) t) c on a.jh=c.jh
where 1=1
<if test="jdhzb!=null">
and ABS(#{jdhzb} - a.jdhzb) &lt; 1000
</if>
<if test="jdzzb!=null">
AND ABS(#{jdzzb} - a.jdzzb) &lt; 1000
</if>
<if test="wjsjks!=null and wjsjks!=''">
and to_char(b.WJRQ,'YYYY-MM-DD')>=#{wjsjks}
</if>
<if test="wjsjjs!=null and wjsjjs!=''">
and to_char(b.WJRQ,'YYYY-MM-DD')&lt;=#{wjsjjs}
</if>
<if test="jh!=null and jh!=''">
and a.jh = #{jh}
</if>
order by kc,jh
</select>
<select id="getJcAndCw" resultType="com.ruoyi.project.zt.domian.DjZqsjfx">
select jh,sum(jc) jc ,LISTAGG ( SZDC, '- ' ) WITHIN GROUP ( ORDER BY xh ) AS cw
from HHZJJS.JSHA a
where 1=1
<if test="jh!=null and jh!=''">
and a. jh =#{jh}
</if>
<if test="ksjs!=null">
and zzjs > #{ksjs}
</if>
<if test="js!=null">
and zzjs &lt;= #{js}
</if>
group by jh
</select>
<select id="getZjzhfxList" resultType="com.ruoyi.project.zt.domian.DjZjzhfx">
select a.jh,
c.kc,
c.jd,
ksjs,
c.JS,
d.ZJZH,d.ZJJD
from HHZJJS.JSBA a
left join HHZJJS.jsaa b on a.jh = b.jh
left join (SELECT jh,
kc,
(CASE WHEN kc = 1 THEN 0 ELSE LAG_JS END) ksjs,
js,
CONCAT(CASE WHEN kc = 1 THEN '0-' ELSE LAG_JS || '-' END, JS) AS jd
FROM (SELECT jh,
ROW_NUMBER() OVER (PARTITION BY jh ORDER BY js) AS kc,
JS,
LAG(JS, 1, 0) OVER (PARTITION BY jh ORDER BY js) AS LAG_JS
FROM HHZJJS.JSDB) t) c on a.jh = c.jh
left join HHZJJS.JSFA d on a.JH=d.JH and c.kc=d.XH
where 1 = 1
<if test="jdhzb!=null">
and ABS(#{jdhzb} - a.jdhzb) &lt; 1000
</if>
<if test="jdzzb!=null">
AND ABS(#{jdzzb} - a.jdzzb) &lt; 1000
</if>
<if test="wjsjks!=null and wjsjks!=''">
and to_char(b.WJRQ,'YYYY-MM-DD')>=#{wjsjks}
</if>
<if test="wjsjjs!=null and wjsjjs!=''">
and to_char(b.WJRQ,'YYYY-MM-DD')&lt;=#{wjsjjs}
</if>
<if test="jh!=null and jh!=''">
and a.jh = #{jh}
</if>
order by kc, jh
</select>
<select id="getJshaJc" resultType="com.ruoyi.project.zt.domian.DjZjzhfx">
select jh,
nvl(sum(jc),0) jc,
nvl(ROUND(sum(JCSJHJ)/24,2),0) jcsjhj
from HHZJJS.JSHA
where jh = #{jh}
and zzjs > #{ksjs}
and zzjs &lt;= #{js}
group by jh
</select>
<select id="getDjinfoByjh" resultType="com.ruoyi.project.zt.domian.Djjc">
select JDHZB,JDZZB from HHZJJS.JSBA a where a.JH =#{jh}
</select> </select>
</mapper> </mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.project.zt.mapper.JstaMapper">
<select id="getList" resultType="com.ruoyi.project.zt.domian.Jsta">
select *
from HHZJJS.JSTA a
where 1=1
<if test="jh!=null and jh!=''">
and jh =#{jh}
</if>
<if test="jd1!=null ">
and jd2 > #{jd1}
</if>
<if test="jd2!=null ">
and jd2 &lt;= #{jd2}
</if>
order by jh, xh
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.project.zt.mapper.JswaMapper">
<select id="getList" resultType="com.ruoyi.project.zt.domian.Jswa">
select jh, rq, nvl(js,0) js, nvl(rjc,0) rjc,nvl(sg,0) sg, nvl(xl,0)xl,nvl(zrtg,0) zrtg, nvl(zztg,0)zztg,nvl(fzqk,0) fzqk from HHZJJS.JSWA where 1=1
<if test="jh!=null and jh!=''">
and jh =#{jh}
</if>
<if test="ksjs!=null ">
and js > #{ksjs}
</if>
<if test="js!=null ">
and js &lt;= #{js}
</if>
order by rq
</select>
</mapper>
\ No newline at end of file
[
{"label": "BHA", "value": "更换井底钻具"},
{"label": "CP", "value": "取心位置"},
{"label": "CM", "value": "调整钻井液"},
{"label": "DSF", "value": "钻具失效"},
{"label": "DMF", "value": "井下马达失效"},
{"label": "DP", "value": "转矩堵塞"},
{"label": "DTF", "value": "井下钻具失效"},
{"label": "DST", "value": "中途测试"},
{"label": "DOG", "value": "试油"},
{"label": "FM", "value": "地层变化"},
{"label": "HR", "value": "已到规定时间"},
{"label": "HP", "value": "井眼问题"},
{"label": "LOG", "value": "电测"},
{"label": "PP", "value": "泵压正常"},
{"label": "PR", "value": "钻速原因"},
{"label": "RIG", "value": "钻机修理"},
{"label": "TD", "value": "钻达设计井深"},
{"label": "TQ", "value": "扭矩变化"},
{"label": "TW", "value": "钻杆扭坏"},
{"label": "WC", "value": "气候变化"},
{"label": "WD", "value": "钻具刺漏"}
]
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment