Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Z
zjsgfa_mysql
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
jiangyun
zjsgfa_mysql
Commits
dedd89d6
Commit
dedd89d6
authored
Sep 30, 2025
by
jiang'yun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改
parent
89b8ad09
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
320 additions
and
38 deletions
+320
-38
src/main/java/com/zjsgfa/project/zjsgfa/controller/MxglpzController.java
+3
-0
src/main/java/com/zjsgfa/project/zjsgfa/controller/SjDjjcController.java
+3
-3
src/main/java/com/zjsgfa/project/zjsgfa/domain/SgfambKcSggy.java
+2
-0
src/main/java/com/zjsgfa/project/zjsgfa/mapper/MxglpzMapper.java
+3
-0
src/main/java/com/zjsgfa/project/zjsgfa/service/ISjDjjcService.java
+3
-2
src/main/java/com/zjsgfa/project/zjsgfa/service/impl/SjDjjcServiceImpl.java
+178
-13
src/main/java/com/zjsgfa/project/zt/controller/DjdcController.java
+30
-0
src/main/java/com/zjsgfa/project/zt/domain/Jsqa.java
+4
-0
src/main/java/com/zjsgfa/project/zt/mapper/DjdcInfoMapper.java
+4
-0
src/main/java/com/zjsgfa/project/zt/service/DjdcService.java
+7
-0
src/main/java/com/zjsgfa/project/zt/service/impl/DjdcServiceImpl.java
+26
-0
src/main/resources/mybatis/zjsgfa/MxglpzMapper.xml
+3
-0
src/main/resources/mybatis/zjsgfa/SgfambKcSggyMapper.xml
+5
-1
src/main/resources/mybatis/zt/DjdcInfoMapper.xml
+49
-19
No files found.
src/main/java/com/zjsgfa/project/zjsgfa/controller/MxglpzController.java
View file @
dedd89d6
...
@@ -101,4 +101,7 @@ public class MxglpzController extends BaseController
...
@@ -101,4 +101,7 @@ public class MxglpzController extends BaseController
{
{
return
toAjax
(
mxglpzService
.
deleteMxglpzByIds
(
ids
));
return
toAjax
(
mxglpzService
.
deleteMxglpzByIds
(
ids
));
}
}
}
}
src/main/java/com/zjsgfa/project/zjsgfa/controller/SjDjjcController.java
View file @
dedd89d6
...
@@ -15,6 +15,7 @@ import com.deepoove.poi.data.PictureType;
...
@@ -15,6 +15,7 @@ import com.deepoove.poi.data.PictureType;
import
com.deepoove.poi.data.Pictures
;
import
com.deepoove.poi.data.Pictures
;
import
com.deepoove.poi.plugin.table.LoopColumnTableRenderPolicy
;
import
com.deepoove.poi.plugin.table.LoopColumnTableRenderPolicy
;
import
com.deepoove.poi.plugin.table.LoopRowTableRenderPolicy
;
import
com.deepoove.poi.plugin.table.LoopRowTableRenderPolicy
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.zjsgfa.common.constant.Constants
;
import
com.zjsgfa.common.constant.Constants
;
import
com.zjsgfa.common.utils.StringUtils
;
import
com.zjsgfa.common.utils.StringUtils
;
import
com.zjsgfa.common.utils.bean.BeanUtils
;
import
com.zjsgfa.common.utils.bean.BeanUtils
;
...
@@ -294,8 +295,7 @@ public class SjDjjcController extends BaseController
...
@@ -294,8 +295,7 @@ public class SjDjjcController extends BaseController
@PreAuthorize
(
"@ss.hasPermi('designInformation:sjDjjc:add')"
)
@PreAuthorize
(
"@ss.hasPermi('designInformation:sjDjjc:add')"
)
@Log
(
title
=
"设计信息-井基础信息"
,
businessType
=
BusinessType
.
INSERT
)
@Log
(
title
=
"设计信息-井基础信息"
,
businessType
=
BusinessType
.
INSERT
)
@PostMapping
@PostMapping
public
AjaxResult
add
(
@RequestBody
SjDjjc
sjDjjc
)
public
AjaxResult
add
(
@RequestBody
SjDjjc
sjDjjc
)
throws
Exception
{
{
int
i
=
sjDjjcService
.
insertSjDjjc
(
sjDjjc
);
int
i
=
sjDjjcService
.
insertSjDjjc
(
sjDjjc
);
if
(
i
==
3
){
if
(
i
==
3
){
return
AjaxResult
.
error
(
"该井号已存在!"
);
return
AjaxResult
.
error
(
"该井号已存在!"
);
...
@@ -311,7 +311,7 @@ public class SjDjjcController extends BaseController
...
@@ -311,7 +311,7 @@ public class SjDjjcController extends BaseController
@PreAuthorize
(
"@ss.hasPermi('designInformation:sjDjjc:edit')"
)
@PreAuthorize
(
"@ss.hasPermi('designInformation:sjDjjc:edit')"
)
@Log
(
title
=
"设计信息-井基础信息"
,
businessType
=
BusinessType
.
UPDATE
)
@Log
(
title
=
"设计信息-井基础信息"
,
businessType
=
BusinessType
.
UPDATE
)
@PutMapping
@PutMapping
public
AjaxResult
edit
(
@RequestBody
SjDjjc
sjDjjc
)
public
AjaxResult
edit
(
@RequestBody
SjDjjc
sjDjjc
)
throws
Exception
{
{
return
toAjax
(
sjDjjcService
.
updateSjDjjc
(
sjDjjc
));
return
toAjax
(
sjDjjcService
.
updateSjDjjc
(
sjDjjc
));
}
}
...
...
src/main/java/com/zjsgfa/project/zjsgfa/domain/SgfambKcSggy.java
View file @
dedd89d6
...
@@ -83,6 +83,8 @@ public class SgfambKcSggy extends BaseEntity
...
@@ -83,6 +83,8 @@ public class SgfambKcSggy extends BaseEntity
@Excel
(
name
=
"钻井工程措施"
)
@Excel
(
name
=
"钻井工程措施"
)
private
String
zjgccs
;
private
String
zjgccs
;
private
String
fxts
;
/** 创建人 */
/** 创建人 */
@Excel
(
name
=
"创建人"
)
@Excel
(
name
=
"创建人"
)
private
String
createdBy
;
private
String
createdBy
;
...
...
src/main/java/com/zjsgfa/project/zjsgfa/mapper/MxglpzMapper.java
View file @
dedd89d6
...
@@ -58,4 +58,7 @@ public interface MxglpzMapper
...
@@ -58,4 +58,7 @@ public interface MxglpzMapper
* @return 结果
* @return 结果
*/
*/
public
int
deleteMxglpzByIds
(
Long
[]
ids
);
public
int
deleteMxglpzByIds
(
Long
[]
ids
);
Mxglpz
selectMxglpzByName
(
String
ffmc
);
}
}
src/main/java/com/zjsgfa/project/zjsgfa/service/ISjDjjcService.java
View file @
dedd89d6
...
@@ -2,6 +2,7 @@ package com.zjsgfa.project.zjsgfa.service;
...
@@ -2,6 +2,7 @@ package com.zjsgfa.project.zjsgfa.service;
import
java.util.List
;
import
java.util.List
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.zjsgfa.framework.web.domain.AjaxResult
;
import
com.zjsgfa.framework.web.domain.AjaxResult
;
import
com.zjsgfa.project.zjsgfa.domain.SjDjjc
;
import
com.zjsgfa.project.zjsgfa.domain.SjDjjc
;
import
com.zjsgfa.project.zt.domain.CommonParam
;
import
com.zjsgfa.project.zt.domain.CommonParam
;
...
@@ -36,7 +37,7 @@ public interface ISjDjjcService
...
@@ -36,7 +37,7 @@ public interface ISjDjjcService
* @param sjDjjc 设计信息-井基础信息
* @param sjDjjc 设计信息-井基础信息
* @return 结果
* @return 结果
*/
*/
public
int
insertSjDjjc
(
SjDjjc
sjDjjc
);
public
int
insertSjDjjc
(
SjDjjc
sjDjjc
)
throws
Exception
;
/**
/**
* 修改设计信息-井基础信息
* 修改设计信息-井基础信息
...
@@ -44,7 +45,7 @@ public interface ISjDjjcService
...
@@ -44,7 +45,7 @@ public interface ISjDjjcService
* @param sjDjjc 设计信息-井基础信息
* @param sjDjjc 设计信息-井基础信息
* @return 结果
* @return 结果
*/
*/
public
int
updateSjDjjc
(
SjDjjc
sjDjjc
);
public
int
updateSjDjjc
(
SjDjjc
sjDjjc
)
throws
Exception
;
/**
/**
* 批量删除设计信息-井基础信息
* 批量删除设计信息-井基础信息
...
...
src/main/java/com/zjsgfa/project/zjsgfa/service/impl/SjDjjcServiceImpl.java
View file @
dedd89d6
package
com
.
zjsgfa
.
project
.
zjsgfa
.
service
.
impl
;
package
com
.
zjsgfa
.
project
.
zjsgfa
.
service
.
impl
;
import
java.util.ArrayList
;
import
java.util.*
;
import
java.util.Comparator
;
import
java.util.regex.Matcher
;
import
java.util.List
;
import
java.util.regex.Pattern
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
import
cn.hutool.http.HttpUtil
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.zjsgfa.common.utils.DateUtils
;
import
com.zjsgfa.common.utils.DateUtils
;
import
com.zjsgfa.common.utils.SecurityUtils
;
import
com.zjsgfa.common.utils.SecurityUtils
;
import
com.zjsgfa.common.utils.StringUtils
;
import
com.zjsgfa.common.utils.bean.BeanUtils
;
import
com.zjsgfa.common.utils.bean.BeanUtils
;
import
com.zjsgfa.framework.web.domain.AjaxResult
;
import
com.zjsgfa.framework.web.domain.AjaxResult
;
import
com.zjsgfa.project.zjsgfa.domain.*
;
import
com.zjsgfa.project.zjsgfa.domain.*
;
...
@@ -94,6 +98,11 @@ public class SjDjjcServiceImpl implements ISjDjjcService
...
@@ -94,6 +98,11 @@ public class SjDjjcServiceImpl implements ISjDjjcService
@Autowired
@Autowired
private
SjSggyGjsbxnyqMapper
sjSggyGjsbxnyqMapper
;
private
SjSggyGjsbxnyqMapper
sjSggyGjsbxnyqMapper
;
@Autowired
private
SjZysxMapper
sjZysxMapper
;
@Autowired
private
MxglpzMapper
mxglpzMapper
;
...
@@ -131,8 +140,7 @@ public class SjDjjcServiceImpl implements ISjDjjcService
...
@@ -131,8 +140,7 @@ public class SjDjjcServiceImpl implements ISjDjjcService
* @return 结果
* @return 结果
*/
*/
@Override
@Override
public
int
insertSjDjjc
(
SjDjjc
sjDjjc
)
public
int
insertSjDjjc
(
SjDjjc
sjDjjc
)
throws
Exception
{
{
...
@@ -177,21 +185,53 @@ public class SjDjjcServiceImpl implements ISjDjjcService
...
@@ -177,21 +185,53 @@ public class SjDjjcServiceImpl implements ISjDjjcService
sjFdsgcs
.
setKc
(
sgfambKcSggy
.
getKc
());
sjFdsgcs
.
setKc
(
sgfambKcSggy
.
getKc
());
sjFdsgcs
.
setJh
(
sjDjjc
.
getJh
());
sjFdsgcs
.
setJh
(
sjDjjc
.
getJh
());
SjFdsgcs
sjFdsgcs1
=
sjFdsgcsMapper
.
selectSjFdsgcsByJhAndKc
(
sjFdsgcs
);
SjFdsgcs
sjFdsgcs1
=
sjFdsgcsMapper
.
selectSjFdsgcsByJhAndKc
(
sjFdsgcs
);
String
zjzh
=
""
;
if
(
StringUtils
.
isNotEmpty
(
sgfambKcSggy
.
getZjzh
())){
boolean
containsTemplate
=
sgfambKcSggy
.
getZjzh
().
contains
(
"{{"
)
&&
sgfambKcSggy
.
getZjzh
().
contains
(
"}}"
);
if
(
containsTemplate
)
{
String
s
=
extractFirstVariable
(
sgfambKcSggy
.
getZjzh
());
Mxglpz
mxglpz
=
mxglpzMapper
.
selectMxglpzByName
(
s
);
if
(
mxglpz
!=
null
){
String
url
=
mxglpz
.
getUrl
();
String
rc
=
mxglpz
.
getRc
();
ObjectMapper
objectMapper
=
new
ObjectMapper
();
// 将JSON字符串转换为Map
Map
<
String
,
Object
>
resultMap
=
objectMapper
.
readValue
(
rc
,
new
TypeReference
<
Map
<
String
,
Object
>>()
{}
);
// 将JSON字符串转换为Map
// Map<String, Object> resultMap = new HashMap<>();
// resultMap.put("jh", sjDjjc.getJh());
String
tokenres
=
HttpUtil
.
get
(
url
,
resultMap
);
System
.
out
.
println
(
tokenres
);
zjzh
=
sgfambKcSggy
.
getZjzh
().
replace
(
"{{"
+
s
+
"}}"
,
tokenres
);
}
else
{
zjzh
=
s
;
}
}
else
{
zjzh
=
sgfambKcSggy
.
getZjzh
();
}
}
if
(
sjFdsgcs1
!=
null
)
{
if
(
sjFdsgcs1
!=
null
)
{
sjFdsgcs1
.
setJh
(
sjDjjc
.
getJh
());
sjFdsgcs1
.
setJh
(
sjDjjc
.
getJh
());
sjFdsgcs1
.
setKc
(
sgfambKcSggy
.
getKc
());
sjFdsgcs1
.
setKc
(
sgfambKcSggy
.
getKc
());
sjFdsgcs1
.
setZjzh
(
sgfambKcSggy
.
getZjzh
()
);
sjFdsgcs1
.
setZjzh
(
zjzh
);
sjFdsgcs1
.
setZjzhzysx
(
sgfambKcSggy
.
getZjzhzysx
());
sjFdsgcs1
.
setZjzhzysx
(
sgfambKcSggy
.
getZjzhzysx
());
sjFdsgcs1
.
setGjfx
(
sgfambKcSggy
.
getGjfx
());
sjFdsgcs1
.
setGjfx
(
sgfambKcSggy
.
getGjfx
());
sjFdsgcs1
.
setGjyh
(
sgfambKcSggy
.
getGjyh
());
sjFdsgcs1
.
setGjyh
(
sgfambKcSggy
.
getGjyh
());
sjFdsgcs1
.
setZjycs
(
sgfambKcSggy
.
getZjycs
());
sjFdsgcs1
.
setZjycs
(
sgfambKcSggy
.
getZjycs
());
sjFdsgcs1
.
setZjgccs
(
sgfambKcSggy
.
getZjgccs
());
sjFdsgcs1
.
setZjgccs
(
sgfambKcSggy
.
getZjgccs
());
sjFdsgcsMapper
.
updateSjFdsgcs
(
sjFdsgcs
);
sjFdsgcsMapper
.
updateSjFdsgcs
(
sjFdsgcs
1
);
}
else
{
}
else
{
sjFdsgcs1
=
new
SjFdsgcs
();
sjFdsgcs1
=
new
SjFdsgcs
();
sjFdsgcs1
.
setJh
(
sjDjjc
.
getJh
());
sjFdsgcs1
.
setJh
(
sjDjjc
.
getJh
());
sjFdsgcs1
.
setKc
(
sgfambKcSggy
.
getKc
());
sjFdsgcs1
.
setKc
(
sgfambKcSggy
.
getKc
());
sjFdsgcs1
.
setZjzh
(
sgfambKcSggy
.
getZjzh
()
);
sjFdsgcs1
.
setZjzh
(
zjzh
);
sjFdsgcs1
.
setZjzhzysx
(
sgfambKcSggy
.
getZjzhzysx
());
sjFdsgcs1
.
setZjzhzysx
(
sgfambKcSggy
.
getZjzhzysx
());
sjFdsgcs1
.
setGjfx
(
sgfambKcSggy
.
getGjfx
());
sjFdsgcs1
.
setGjfx
(
sgfambKcSggy
.
getGjfx
());
sjFdsgcs1
.
setGjyh
(
sgfambKcSggy
.
getGjyh
());
sjFdsgcs1
.
setGjyh
(
sgfambKcSggy
.
getGjyh
());
...
@@ -230,6 +270,47 @@ public class SjDjjcServiceImpl implements ISjDjjcService
...
@@ -230,6 +270,47 @@ public class SjDjjcServiceImpl implements ISjDjjcService
sjZjcsxx
.
setZjby
(
sgfambKcSggy
.
getZjby
());
sjZjcsxx
.
setZjby
(
sgfambKcSggy
.
getZjby
());
sjZjcsxxMapper
.
insertSjZjcsxx
(
sjZjcsxx
);
sjZjcsxxMapper
.
insertSjZjcsxx
(
sjZjcsxx
);
}
}
//邻井风险
if
(
StringUtils
.
isNotEmpty
(
sgfambKcSggy
.
getFxts
())){
SjZysx
sjZysx
=
new
SjZysx
();
sjZysx
.
setJh
(
sjDjjc
.
getJh
());
sjZysx
.
setLb
(
"喷漏卡塌"
);
List
<
SjZysx
>
sjZysxes
=
sjZysxMapper
.
selectSjZysxList
(
sjZysx
);
boolean
containsTemplate
=
sgfambKcSggy
.
getFxts
().
contains
(
"{{"
)
&&
sgfambKcSggy
.
getFxts
().
contains
(
"}}"
);
String
fxts
=
""
;
if
(
containsTemplate
)
{
String
s
=
extractFirstVariable
(
sgfambKcSggy
.
getFxts
());
Mxglpz
mxglpz
=
mxglpzMapper
.
selectMxglpzByName
(
s
);
if
(
mxglpz
!=
null
){
String
url
=
mxglpz
.
getUrl
();
String
rc
=
mxglpz
.
getRc
();
ObjectMapper
objectMapper
=
new
ObjectMapper
();
// 将JSON字符串转换为Map
Map
<
String
,
Object
>
resultMap
=
objectMapper
.
readValue
(
rc
,
new
TypeReference
<
Map
<
String
,
Object
>>()
{}
);
String
tokenres
=
HttpUtil
.
get
(
url
,
resultMap
);
System
.
out
.
println
(
tokenres
);
fxts
=
tokenres
;
}
else
{
fxts
=
s
;
}
}
else
{
fxts
=
sgfambKcSggy
.
getFxts
();
}
if
(
sjZysxes
.
size
()>
0
){
SjZysx
sjZysx1
=
sjZysxes
.
get
(
0
);
sjZysx1
.
setZysx
(
fxts
);
sjZysxMapper
.
updateSjZysx
(
sjZysx1
);
}
else
{
sjZysx
.
setZysx
(
fxts
);
sjZysxMapper
.
insertSjZysx
(
sjZysx
);
}
}
}
}
}
}
sjSggyGjsbxnyq
.
setSjyh
(
String
.
join
(
";"
,
sjggjyh
));
sjSggyGjsbxnyq
.
setSjyh
(
String
.
join
(
";"
,
sjggjyh
));
...
@@ -332,13 +413,30 @@ public class SjDjjcServiceImpl implements ISjDjjcService
...
@@ -332,13 +413,30 @@ public class SjDjjcServiceImpl implements ISjDjjcService
}
}
/**
/**
* 提取字符串中第一个{{}}包裹的内容
* @param input 输入字符串
* @return 第一个匹配的内容,若没有匹配则返回null
*/
public
static
String
extractFirstVariable
(
String
input
)
{
// 正则表达式匹配{{和}}之间的内容
Pattern
pattern
=
Pattern
.
compile
(
"\\{\\{(.*?)\\}\\}"
);
Matcher
matcher
=
pattern
.
matcher
(
input
);
// 只查找第一个匹配项
if
(
matcher
.
find
())
{
return
matcher
.
group
(
1
);
// 返回第一个匹配项的内容
}
return
null
;
// 没有找到匹配项
}
/**
* 修改设计信息-井基础信息
* 修改设计信息-井基础信息
*
*
* @param sjDjjc 设计信息-井基础信息
* @param sjDjjc 设计信息-井基础信息
* @return 结果
* @return 结果
*/
*/
@Override
@Override
public
int
updateSjDjjc
(
SjDjjc
sjDjjc
)
public
int
updateSjDjjc
(
SjDjjc
sjDjjc
)
throws
Exception
{
{
sjDjjc
.
setUpdateTime
(
DateUtils
.
getNowDate
());
sjDjjc
.
setUpdateTime
(
DateUtils
.
getNowDate
());
sjDjjc
.
setUpdateBy
(
SecurityUtils
.
getUsername
());
sjDjjc
.
setUpdateBy
(
SecurityUtils
.
getUsername
());
...
@@ -422,22 +520,50 @@ public class SjDjjcServiceImpl implements ISjDjjcService
...
@@ -422,22 +520,50 @@ public class SjDjjcServiceImpl implements ISjDjjcService
SjFdsgcs
sjFdsgcs
=
new
SjFdsgcs
();
SjFdsgcs
sjFdsgcs
=
new
SjFdsgcs
();
sjFdsgcs
.
setKc
(
sgfambKcSggy
.
getKc
());
sjFdsgcs
.
setKc
(
sgfambKcSggy
.
getKc
());
sjFdsgcs
.
setJh
(
sjDjjc
.
getJh
());
sjFdsgcs
.
setJh
(
sjDjjc
.
getJh
());
String
zjzh
=
""
;
if
(
StringUtils
.
isNotEmpty
(
sgfambKcSggy
.
getZjzh
())){
boolean
containsTemplate
=
sgfambKcSggy
.
getZjzh
().
contains
(
"{{"
)
&&
sgfambKcSggy
.
getZjzh
().
contains
(
"}}"
);
if
(
containsTemplate
)
{
String
s
=
extractFirstVariable
(
sgfambKcSggy
.
getZjzh
());
Mxglpz
mxglpz
=
mxglpzMapper
.
selectMxglpzByName
(
s
);
if
(
mxglpz
!=
null
){
String
url
=
mxglpz
.
getUrl
();
String
rc
=
mxglpz
.
getRc
();
ObjectMapper
objectMapper
=
new
ObjectMapper
();
// 将JSON字符串转换为Map
Map
<
String
,
Object
>
resultMap
=
objectMapper
.
readValue
(
rc
,
new
TypeReference
<
Map
<
String
,
Object
>>()
{}
);
String
tokenres
=
HttpUtil
.
get
(
url
,
resultMap
);
System
.
out
.
println
(
tokenres
);
zjzh
=
sgfambKcSggy
.
getZjzh
().
replace
(
"{{"
+
s
+
"}}"
,
tokenres
);
}
else
{
zjzh
=
s
;
}
}
else
{
zjzh
=
sgfambKcSggy
.
getZjzh
();
}
}
SjFdsgcs
sjFdsgcs1
=
sjFdsgcsMapper
.
selectSjFdsgcsByJhAndKc
(
sjFdsgcs
);
SjFdsgcs
sjFdsgcs1
=
sjFdsgcsMapper
.
selectSjFdsgcsByJhAndKc
(
sjFdsgcs
);
if
(
sjFdsgcs1
!=
null
)
{
if
(
sjFdsgcs1
!=
null
)
{
sjFdsgcs1
.
setJh
(
sjDjjc
.
getJh
());
sjFdsgcs1
.
setJh
(
sjDjjc
.
getJh
());
sjFdsgcs1
.
setKc
(
sgfambKcSggy
.
getKc
());
sjFdsgcs1
.
setKc
(
sgfambKcSggy
.
getKc
());
sjFdsgcs1
.
setZjzh
(
sgfambKcSggy
.
getZjzh
()
);
sjFdsgcs1
.
setZjzh
(
zjzh
);
sjFdsgcs1
.
setZjzhzysx
(
sgfambKcSggy
.
getZjzhzysx
());
sjFdsgcs1
.
setZjzhzysx
(
sgfambKcSggy
.
getZjzhzysx
());
sjFdsgcs1
.
setGjfx
(
sgfambKcSggy
.
getGjfx
());
sjFdsgcs1
.
setGjfx
(
sgfambKcSggy
.
getGjfx
());
sjFdsgcs1
.
setGjyh
(
sgfambKcSggy
.
getGjyh
());
sjFdsgcs1
.
setGjyh
(
sgfambKcSggy
.
getGjyh
());
sjFdsgcs1
.
setZjycs
(
sgfambKcSggy
.
getZjycs
());
sjFdsgcs1
.
setZjycs
(
sgfambKcSggy
.
getZjycs
());
sjFdsgcs1
.
setZjgccs
(
sgfambKcSggy
.
getZjgccs
());
sjFdsgcs1
.
setZjgccs
(
sgfambKcSggy
.
getZjgccs
());
sjFdsgcsMapper
.
updateSjFdsgcs
(
sjFdsgcs
);
sjFdsgcsMapper
.
updateSjFdsgcs
(
sjFdsgcs
1
);
}
else
{
}
else
{
sjFdsgcs1
=
new
SjFdsgcs
();
sjFdsgcs1
=
new
SjFdsgcs
();
sjFdsgcs1
.
setJh
(
sjDjjc
.
getJh
());
sjFdsgcs1
.
setJh
(
sjDjjc
.
getJh
());
sjFdsgcs1
.
setKc
(
sgfambKcSggy
.
getKc
());
sjFdsgcs1
.
setKc
(
sgfambKcSggy
.
getKc
());
sjFdsgcs1
.
setZjzh
(
sgfambKcSggy
.
getZjzh
()
);
sjFdsgcs1
.
setZjzh
(
zjzh
);
sjFdsgcs1
.
setZjzhzysx
(
sgfambKcSggy
.
getZjzhzysx
());
sjFdsgcs1
.
setZjzhzysx
(
sgfambKcSggy
.
getZjzhzysx
());
sjFdsgcs1
.
setGjfx
(
sgfambKcSggy
.
getGjfx
());
sjFdsgcs1
.
setGjfx
(
sgfambKcSggy
.
getGjfx
());
sjFdsgcs1
.
setGjyh
(
sgfambKcSggy
.
getGjyh
());
sjFdsgcs1
.
setGjyh
(
sgfambKcSggy
.
getGjyh
());
...
@@ -476,6 +602,45 @@ public class SjDjjcServiceImpl implements ISjDjjcService
...
@@ -476,6 +602,45 @@ public class SjDjjcServiceImpl implements ISjDjjcService
sjZjcsxx
.
setZjby
(
sgfambKcSggy
.
getZjby
());
sjZjcsxx
.
setZjby
(
sgfambKcSggy
.
getZjby
());
sjZjcsxxMapper
.
insertSjZjcsxx
(
sjZjcsxx
);
sjZjcsxxMapper
.
insertSjZjcsxx
(
sjZjcsxx
);
}
}
//邻井风险
if
(
StringUtils
.
isNotEmpty
(
sgfambKcSggy
.
getFxts
())){
SjZysx
sjZysx
=
new
SjZysx
();
sjZysx
.
setJh
(
sjDjjc
.
getJh
());
sjZysx
.
setLb
(
"喷漏卡塌"
);
List
<
SjZysx
>
sjZysxes
=
sjZysxMapper
.
selectSjZysxList
(
sjZysx
);
boolean
containsTemplate
=
sgfambKcSggy
.
getFxts
().
contains
(
"{{"
)
&&
sgfambKcSggy
.
getFxts
().
contains
(
"}}"
);
String
fxts
=
""
;
if
(
containsTemplate
)
{
String
s
=
extractFirstVariable
(
sgfambKcSggy
.
getFxts
());
Mxglpz
mxglpz
=
mxglpzMapper
.
selectMxglpzByName
(
s
);
if
(
mxglpz
!=
null
){
String
url
=
mxglpz
.
getUrl
();
String
rc
=
mxglpz
.
getRc
();
ObjectMapper
objectMapper
=
new
ObjectMapper
();
// 将JSON字符串转换为Map
Map
<
String
,
Object
>
resultMap
=
objectMapper
.
readValue
(
rc
,
new
TypeReference
<
Map
<
String
,
Object
>>()
{}
);
String
tokenres
=
HttpUtil
.
get
(
url
,
resultMap
);
System
.
out
.
println
(
tokenres
);
fxts
=
tokenres
;
}
else
{
fxts
=
s
;
}
}
else
{
fxts
=
sgfambKcSggy
.
getFxts
();
}
if
(
sjZysxes
.
size
()>
0
){
SjZysx
sjZysx1
=
sjZysxes
.
get
(
0
);
sjZysx1
.
setZysx
(
fxts
);
sjZysxMapper
.
updateSjZysx
(
sjZysx1
);
}
else
{
sjZysx
.
setZysx
(
fxts
);
sjZysxMapper
.
insertSjZysx
(
sjZysx
);
}
}
}
}
}
}
//井口装置
//井口装置
...
...
src/main/java/com/zjsgfa/project/zt/controller/DjdcController.java
View file @
dedd89d6
...
@@ -7,6 +7,7 @@ import com.zjsgfa.framework.web.domain.AjaxResult;
...
@@ -7,6 +7,7 @@ import com.zjsgfa.framework.web.domain.AjaxResult;
import
com.zjsgfa.project.zt.domain.*
;
import
com.zjsgfa.project.zt.domain.*
;
import
com.zjsgfa.project.zt.domain.vo.JsgaVo
;
import
com.zjsgfa.project.zt.domain.vo.JsgaVo
;
import
com.zjsgfa.project.zt.service.DjdcService
;
import
com.zjsgfa.project.zt.service.DjdcService
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.poi.ss.usermodel.*
;
import
org.apache.poi.ss.usermodel.*
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.MediaType
;
import
org.springframework.http.MediaType
;
...
@@ -359,6 +360,35 @@ public class DjdcController {
...
@@ -359,6 +360,35 @@ public class DjdcController {
}
}
/**
* 计算邻井复杂情况
* @return
*/
@GetMapping
(
"/jsljfzqk"
)
public
String
jsljfzqk
(
CommonParam
param
)
{
return
djdcService
.
jsljfzqk
(
param
);
}
/**
* 计算具体位置
* @return
*/
@GetMapping
(
"/jsjtwz"
)
public
String
jsjtwz
(
CommonParam
param
)
{
return
djdcService
.
jsjtwz
(
param
);
}
/**
* 计算馆陶组距底深
* @return
*/
@GetMapping
(
"/jsgtzjds"
)
public
String
jsgtzjds
(
CommonParam
param
)
{
return
djdcService
.
jsgtzjds
(
param
);
}
public
void
exportZqshfx
(
HttpServletResponse
response
,
List
<
DjZqsjfx
>
list
)
throws
IOException
{
public
void
exportZqshfx
(
HttpServletResponse
response
,
List
<
DjZqsjfx
>
list
)
throws
IOException
{
Workbook
exl
=
null
;
Workbook
exl
=
null
;
OutputStream
out
=
null
;
OutputStream
out
=
null
;
...
...
src/main/java/com/zjsgfa/project/zt/domain/Jsqa.java
View file @
dedd89d6
...
@@ -27,5 +27,9 @@ public class Jsqa {
...
@@ -27,5 +27,9 @@ public class Jsqa {
private
Double
zjjjss
;
private
Double
zjjjss
;
private
Double
js
;
private
Double
js
;
private
String
cw
;
private
String
sjhd
;
private
Double
bfb
;
private
List
<
String
>
jhs
;
private
List
<
String
>
jhs
;
}
}
src/main/java/com/zjsgfa/project/zt/mapper/DjdcInfoMapper.java
View file @
dedd89d6
...
@@ -61,4 +61,8 @@ public interface DjdcInfoMapper {
...
@@ -61,4 +61,8 @@ public interface DjdcInfoMapper {
List
<
Jskd
>
getJskdList
(
CommonParam
param
);
List
<
Jskd
>
getJskdList
(
CommonParam
param
);
Jsqa
jsljfzqk
(
CommonParam
param
);
Double
jsgtzjds
(
CommonParam
param
);
}
}
src/main/java/com/zjsgfa/project/zt/service/DjdcService.java
View file @
dedd89d6
...
@@ -66,4 +66,11 @@ public interface DjdcService {
...
@@ -66,4 +66,11 @@ public interface DjdcService {
List
<
Jskd
>
getJskdList
(
CommonParam
param
);
List
<
Jskd
>
getJskdList
(
CommonParam
param
);
String
jsljfzqk
(
CommonParam
param
);
String
jsjtwz
(
CommonParam
param
);
String
jsgtzjds
(
CommonParam
param
);
}
}
src/main/java/com/zjsgfa/project/zt/service/impl/DjdcServiceImpl.java
View file @
dedd89d6
...
@@ -1970,6 +1970,32 @@ public class DjdcServiceImpl implements DjdcService {
...
@@ -1970,6 +1970,32 @@ public class DjdcServiceImpl implements DjdcService {
return
jskdList
;
return
jskdList
;
}
}
@Override
public
String
jsljfzqk
(
CommonParam
param
)
{
String
jh
=
param
.
getJh
();
// if(StringUtils.isNotEmpty(param.getJh())){
// String[] jhs = param.getJh().split(",");
// param.setJhs(jhs);
// }
Jsqa
jsqa
=
djdcInfoMapper
.
jsljfzqk
(
param
);
String
s
=
""
;
if
(
jsqa
!=
null
){
s
=
"邻井在"
+
jsqa
.
getJs
()+
"m"
+
jsqa
.
getCw
()+
"(层厚"
+
jsqa
.
getSjhd
()+
"m)距顶部"
+
jsqa
.
getBfb
()+
"%处发生"
+
jsqa
.
getFzqk
();
}
return
s
;
}
@Override
public
String
jsjtwz
(
CommonParam
param
)
{
return
null
;
}
@Override
public
String
jsgtzjds
(
CommonParam
param
)
{
Double
s
=
djdcInfoMapper
.
jsgtzjds
(
param
);
return
s
+
""
;
}
/**
/**
* 计算斜深
* 计算斜深
* @param a 层位垂深
* @param a 层位垂深
...
...
src/main/resources/mybatis/zjsgfa/MxglpzMapper.xml
View file @
dedd89d6
...
@@ -38,6 +38,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
...
@@ -38,6 +38,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<include
refid=
"selectMxglpzVo"
/>
<include
refid=
"selectMxglpzVo"
/>
where id = #{id}
where id = #{id}
</select>
</select>
<select
id=
"selectMxglpzByName"
resultType=
"com.zjsgfa.project.zjsgfa.domain.Mxglpz"
>
select * from mxglpz where ffmc = #{ffmc} limit 1
</select>
<insert
id=
"insertMxglpz"
parameterType=
"Mxglpz"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
<insert
id=
"insertMxglpz"
parameterType=
"Mxglpz"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into mxglpz
insert into mxglpz
...
...
src/main/resources/mybatis/zjsgfa/SgfambKcSggyMapper.xml
View file @
dedd89d6
...
@@ -29,11 +29,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
...
@@ -29,11 +29,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result
property=
"zjzhtjid"
column=
"zjzhtjid"
/>
<result
property=
"zjzhtjid"
column=
"zjzhtjid"
/>
<result
property=
"sgcstjid"
column=
"sgcstjid"
/>
<result
property=
"sgcstjid"
column=
"sgcstjid"
/>
<result
property=
"tjmc"
column=
"tjmc"
/>
<result
property=
"tjmc"
column=
"tjmc"
/>
<result
property=
"fxts"
column=
"fxts"
/>
</resultMap>
</resultMap>
<sql
id=
"selectSgfambKcSggyVo"
>
<sql
id=
"selectSgfambKcSggyVo"
>
select id, zbid, kc, ksjs, jsjs, ztxh, zjzy, zjzs, zjpl, zjby, zjzh, zjzhzysx, gjfx, gjyh, zjycs,
select id, zbid, kc, ksjs, jsjs, ztxh, zjzy, zjzs, zjpl, zjby, zjzh, zjzhzysx, gjfx, gjyh, zjycs,
zjgccs, created_by, created_time, update_by, update_time, zttjid,zjzhtjid,sgcstjid,tjmc from sgfamb_kc_sggy
zjgccs, created_by, created_time, update_by, update_time, zttjid,zjzhtjid,sgcstjid,tjmc
,fxts
from sgfamb_kc_sggy
</sql>
</sql>
<select
id=
"selectSgfambKcSggyList"
parameterType=
"SgfambKcSggy"
resultMap=
"SgfambKcSggyResult"
>
<select
id=
"selectSgfambKcSggyList"
parameterType=
"SgfambKcSggy"
resultMap=
"SgfambKcSggyResult"
>
...
@@ -105,6 +106,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
...
@@ -105,6 +106,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if
test=
"zjzhtjid != null"
>
zjzhtjid,
</if>
<if
test=
"zjzhtjid != null"
>
zjzhtjid,
</if>
<if
test=
"sgcstjid != null"
>
sgcstjid,
</if>
<if
test=
"sgcstjid != null"
>
sgcstjid,
</if>
<if
test=
"tjmc != null"
>
tjmc,
</if>
<if
test=
"tjmc != null"
>
tjmc,
</if>
<if
test=
"fxts != null"
>
fxts,
</if>
</trim>
</trim>
<trim
prefix=
"values ("
suffix=
")"
suffixOverrides=
","
>
<trim
prefix=
"values ("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"zbid != null"
>
#{zbid},
</if>
<if
test=
"zbid != null"
>
#{zbid},
</if>
...
@@ -130,6 +132,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
...
@@ -130,6 +132,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if
test=
"zjzhtjid != null"
>
#{zjzhtjid},
</if>
<if
test=
"zjzhtjid != null"
>
#{zjzhtjid},
</if>
<if
test=
"sgcstjid != null"
>
#{sgcstjid},
</if>
<if
test=
"sgcstjid != null"
>
#{sgcstjid},
</if>
<if
test=
"tjmc != null"
>
#{tjmc},
</if>
<if
test=
"tjmc != null"
>
#{tjmc},
</if>
<if
test=
"fxts != null"
>
#{fxts},
</if>
</trim>
</trim>
</insert>
</insert>
...
@@ -159,6 +162,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
...
@@ -159,6 +162,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if
test=
"sgcstjid != null"
>
sgcstjid = #{sgcstjid},
</if>
<if
test=
"sgcstjid != null"
>
sgcstjid = #{sgcstjid},
</if>
<if
test=
"zjzhtjid != null"
>
zjzhtjid = #{zjzhtjid},
</if>
<if
test=
"zjzhtjid != null"
>
zjzhtjid = #{zjzhtjid},
</if>
<if
test=
"tjmc != null"
>
tjmc = #{tjmc},
</if>
<if
test=
"tjmc != null"
>
tjmc = #{tjmc},
</if>
<if
test=
"fxts != null"
>
fxts = #{fxts},
</if>
</trim>
</trim>
where id = #{id}
where id = #{id}
</update>
</update>
...
...
src/main/resources/mybatis/zt/DjdcInfoMapper.xml
View file @
dedd89d6
...
@@ -802,47 +802,47 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
...
@@ -802,47 +802,47 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
SELECT
SELECT
a.*,
a.*,
c.cw gldc,
c.cw gldc,
LEAD(a.jx) OVER (PARTITION BY a.jh ORDER BY a.
dc
) AS nextjx,
LEAD(a.jx) OVER (PARTITION BY a.jh ORDER BY a.
xh
) AS nextjx,
LEAD(a.dc) OVER (PARTITION BY a.jh ORDER BY a.
dc
) AS nextdc,
LEAD(a.dc) OVER (PARTITION BY a.jh ORDER BY a.
xh
) AS nextdc,
-- 计算井斜变化率
-- 计算井斜变化率
CASE
CASE
WHEN LEAD(a.dc) OVER (PARTITION BY a.jh ORDER BY a.
dc
) IS NOT NULL
WHEN LEAD(a.dc) OVER (PARTITION BY a.jh ORDER BY a.
xh
) IS NOT NULL
THEN (LEAD(a.jx) OVER (PARTITION BY a.jh ORDER BY a.
dc
) - a.jx)
THEN (LEAD(a.jx) OVER (PARTITION BY a.jh ORDER BY a.
xh
) - a.jx)
/ LEAD(a.dc) OVER (PARTITION BY a.jh ORDER BY a.
dc
) * 30
/ LEAD(a.dc) OVER (PARTITION BY a.jh ORDER BY a.
xh
) * 30
ELSE NULL
ELSE NULL
END AS jxbhl,
END AS jxbhl,
-- 根据井斜变化率进行分类
-- 根据井斜变化率进行分类
CASE
CASE
WHEN LEAD(dc) OVER (PARTITION BY a.jh ORDER BY
dc
) IS NULL THEN NULL
WHEN LEAD(dc) OVER (PARTITION BY a.jh ORDER BY
a.xh
) IS NULL THEN NULL
-- 自然增:大于0且小于0.1
-- 自然增:大于0且小于0.1
WHEN (LEAD(jx) OVER (PARTITION BY a.jh ORDER BY
dc
) - jx)
WHEN (LEAD(jx) OVER (PARTITION BY a.jh ORDER BY
a.xh
) - jx)
/ LEAD(dc) OVER (PARTITION BY a.jh ORDER BY
dc
) * 30 > 0
/ LEAD(dc) OVER (PARTITION BY a.jh ORDER BY
a.xh
) * 30 > 0
AND (LEAD(jx) OVER (PARTITION BY a.jh ORDER BY
dc
) - jx)
AND (LEAD(jx) OVER (PARTITION BY a.jh ORDER BY
a.xh
) - jx)
/ LEAD(dc) OVER (PARTITION BY a.jh ORDER BY
dc
) * 30
/ LEAD(dc) OVER (PARTITION BY a.jh ORDER BY
a.xh
) * 30
<
<
0.1
0.1
THEN '自然增'
THEN '自然增'
-- 自然降:小于0且大于-0.1
-- 自然降:小于0且大于-0.1
WHEN (LEAD(jx) OVER (PARTITION BY a.jh ORDER BY
dc
) - jx)
WHEN (LEAD(jx) OVER (PARTITION BY a.jh ORDER BY
a.xh
) - jx)
/ LEAD(dc) OVER (PARTITION BY a.jh ORDER BY
dc
) * 30
/ LEAD(dc) OVER (PARTITION BY a.jh ORDER BY
a.xh
) * 30
<
<
0
0
AND (LEAD(jx) OVER (PARTITION BY a.jh ORDER BY
dc
) - jx)
AND (LEAD(jx) OVER (PARTITION BY a.jh ORDER BY
a.xh
) - jx)
/ LEAD(dc) OVER (PARTITION BY a.jh ORDER BY
dc
) * 30 > -0.1
/ LEAD(dc) OVER (PARTITION BY a.jh ORDER BY
a.xh
) * 30 > -0.1
THEN '自然降'
THEN '自然降'
-- 人工增:大于1
-- 人工增:大于1
WHEN (LEAD(jx) OVER (PARTITION BY a.jh ORDER BY
dc
) - jx)
WHEN (LEAD(jx) OVER (PARTITION BY a.jh ORDER BY
a.xh
) - jx)
/ LEAD(dc) OVER (PARTITION BY a.jh ORDER BY
dc
) * 30 > 1
/ LEAD(dc) OVER (PARTITION BY a.jh ORDER BY
a.xh
) * 30 > 1
THEN '人工增'
THEN '人工增'
-- 人工降:小于-1
-- 人工降:小于-1
WHEN (LEAD(jx) OVER (PARTITION BY a.jh ORDER BY
dc
) - jx)
WHEN (LEAD(jx) OVER (PARTITION BY a.jh ORDER BY
a.xh
) - jx)
/ LEAD(dc) OVER (PARTITION BY a.jh ORDER BY
dc
) * 30
/ LEAD(dc) OVER (PARTITION BY a.jh ORDER BY
a.xh
) * 30
<
<
-1
-1
THEN '人工降'
THEN '人工降'
-- 其他情况(如0.1~1之间或-1~-0.1之间)
-- 其他情况(如0.1~1之间或-1~-0.1之间)
ELSE null
ELSE null
END AS zrzjx
END AS zrzjx
,d.gynr glzxd
FROM jskd a
FROM jskd a
left join (
left join (
...
@@ -851,6 +851,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
...
@@ -851,6 +851,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
LAG(SJDJSD2, 1, 0) OVER (PARTITION BY jh ORDER BY SJDJSD2) AS ksjs,
LAG(SJDJSD2, 1, 0) OVER (PARTITION BY jh ORDER BY SJDJSD2) AS ksjs,
SJDJSD2,CW
SJDJSD2,CW
FROM jsbb) c on a.JH=c.JH and NVL(a.LJCZJS,0)>=c.ksjs and NVL(a.LJCZJS,0)
<
c.SJDJSD2
FROM jsbb) c on a.JH=c.JH and NVL(a.LJCZJS,0)>=c.ksjs and NVL(a.LJCZJS,0)
<
c.SJDJSD2
left join jskc d on a.JH=d.jh and a.xh=d.xh
where 1=1
where 1=1
<if
test=
"jhs!=null"
>
<if
test=
"jhs!=null"
>
and a.jh in
and a.jh in
...
@@ -861,4 +862,32 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
...
@@ -861,4 +862,32 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</if>
</if>
ORDER BY a.jh, a.xh
ORDER BY a.jh, a.xh
</select>
</select>
<select
id=
"jsljfzqk"
resultType=
"com.zjsgfa.project.zt.domain.Jsqa"
>
select a.jh,a.FZQK,a.js, cw,c.SJHD,ROUND(a.js/max(j.XJS)*100,1) bfb
from JSQA a
left join (
SELECT
jh,
LAG(SJDJSD, 1, 0) OVER (PARTITION BY jh ORDER BY SJDJSD) AS ksjs,
SJDJSD,CW,SJHD
FROM jsbb) c on a.JH=c.JH and a.js>=c.ksjs and a.js
<
c.SJDJSD
left join JSKD J on a.JH = J.JH
where a.JH = #{jh}
and JS = #{js} group by a.JH,a.FZQK,a.JS, cw, c.SJHD
</select>
<select
id=
"jsgtzjds"
resultType=
"java.lang.Double"
>
WITH max_value_cte AS (
-- 计算全表中SJDJSD的最大值
SELECT MAX("SJDJSD") AS max_value
FROM JSbb where JH=#{jh}
),
guantao_value_cte AS (
-- 计算馆陶组的SJDJSD值
SELECT "SJDJSD" AS guantao_value
FROM JSbb
WHERE cw = '馆陶组' and JH=#{jh}
)
SELECT max_value - guantao_value AS result
FROM max_value_cte, guantao_value_cte
</select>
</mapper>
</mapper>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment