Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
patzn-cloud-service-soil
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wangweidong
patzn-cloud-service-soil
Commits
bf8820eb
Commit
bf8820eb
authored
Mar 19, 2021
by
wangweidong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
土工平台修改
parent
dad7f6a6
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
272 additions
and
31 deletions
+272
-31
WuCollectHandle.java
...zn/cloud/service/lims/collect/handle/WuCollectHandle.java
+0
-3
CollectUtil.java
...java/com/patzn/cloud/service/lims/common/CollectUtil.java
+16
-28
ServerConfig.java
...ava/com/patzn/cloud/service/lims/socket/ServerConfig.java
+89
-0
SocketProperties.java
...com/patzn/cloud/service/lims/socket/SocketProperties.java
+58
-0
SpringUtil.java
.../java/com/patzn/cloud/service/lims/socket/SpringUtil.java
+58
-0
TestRunner.java
.../java/com/patzn/cloud/service/lims/socket/TestRunner.java
+39
-0
application-dev.yml
src/main/resources/application-dev.yml
+12
-0
No files found.
src/main/java/com/patzn/cloud/service/lims/collect/handle/WuCollectHandle.java
View file @
bf8820eb
...
...
@@ -49,9 +49,6 @@ public class WuCollectHandle implements ICollectHandler {
soilExperimentService
.
parseWuxingTxt
(
smbFile
,
request
);
}
if
(!
name
.
equals
(
checkNameSiteNo
)&&!
name
.
equals
(
checkNameSampleCode
)){
continue
;
}
if
(
smbFile
.
getName
().
contains
(
".png"
)||
smbFile
.
getName
().
contains
(
".bmp"
)){
soilExperimentService
.
uploadCollectPng
(
smbFile
,
request
);
}
...
...
src/main/java/com/patzn/cloud/service/lims/common/CollectUtil.java
View file @
bf8820eb
...
...
@@ -83,22 +83,10 @@ public class CollectUtil {
System
.
out
.
println
(
sampleCode
);
if
(
listTwo
.
size
()>
0
){
SoilExperimentCollectDataVO
collectData
=
new
SoilExperimentCollectDataVO
();
collectData
.
setName
(
"液限含水率"
);
collectData
.
setTestValue
(
listTwo
.
get
(
listTwo
.
size
()-
1
));
collectData
.
setEntrustCode
(
gcbh
);
collectData
.
setSiteNo
(
sampleCode
);
collectData
.
setExpName
(
"界限含水率"
);
dataList
.
add
(
collectData
);
dataList
.
add
(
getDataVO
(
"液限含水率"
,
listTwo
.
get
(
listTwo
.
size
()-
1
),
gcbh
,
sampleCode
,
"界限含水率"
));
}
if
(
listFour
.
size
()>
0
){
SoilExperimentCollectDataVO
collectData
=
new
SoilExperimentCollectDataVO
();
collectData
.
setName
(
"塑限含水率"
);
collectData
.
setTestValue
(
listFour
.
get
(
listFour
.
size
()-
1
));
collectData
.
setEntrustCode
(
gcbh
);
collectData
.
setSiteNo
(
sampleCode
);
collectData
.
setExpName
(
"界限含水率"
);
dataList
.
add
(
collectData
);
dataList
.
add
(
getDataVO
(
"塑限含水率"
,
listFour
.
get
(
listFour
.
size
()-
1
),
gcbh
,
sampleCode
,
"界限含水率"
));
}
System
.
out
.
println
(
listOne
);
...
...
@@ -183,22 +171,10 @@ public class CollectUtil {
if
(!
""
.
equals
(
sampleCode
)&&!
""
.
equals
(
gcbh
)){
if
(
listTwo
.
size
()>
0
){
SoilExperimentCollectDataVO
collectData
=
new
SoilExperimentCollectDataVO
();
collectData
.
setName
(
"液限含水率"
);
collectData
.
setTestValue
(
listTwo
.
get
(
listTwo
.
size
()-
1
));
collectData
.
setEntrustCode
(
gcbh
);
collectData
.
setSiteNo
(
sampleCode
);
collectData
.
setExpName
(
"界限含水率"
);
dataList
.
add
(
collectData
);
dataList
.
add
(
getDataVO
(
"液限含水率"
,
listTwo
.
get
(
listTwo
.
size
()-
1
),
gcbh
,
sampleCode
,
"界限含水率"
));
}
if
(
listFour
.
size
()>
0
){
SoilExperimentCollectDataVO
collectData
=
new
SoilExperimentCollectDataVO
();
collectData
.
setName
(
"塑限含水率"
);
collectData
.
setTestValue
(
listFour
.
get
(
listFour
.
size
()-
1
));
collectData
.
setEntrustCode
(
gcbh
);
collectData
.
setSiteNo
(
sampleCode
);
collectData
.
setExpName
(
"界限含水率"
);
dataList
.
add
(
collectData
);
dataList
.
add
(
getDataVO
(
"塑限含水率"
,
listFour
.
get
(
listFour
.
size
()-
1
),
gcbh
,
sampleCode
,
"界限含水率"
));
}
System
.
out
.
println
(
listOne
);
System
.
out
.
println
(
listTwo
);
...
...
@@ -215,6 +191,18 @@ public class CollectUtil {
return
dataList
;
}
public
static
SoilExperimentCollectDataVO
getDataVO
(
String
name
,
String
value
,
String
gcbh
,
String
siteNo
,
String
expName
){
SoilExperimentCollectDataVO
collectData
=
new
SoilExperimentCollectDataVO
();
collectData
.
setName
(
name
);
collectData
.
setTestValue
(
value
);
collectData
.
setEntrustCode
(
gcbh
);
collectData
.
setSiteNo
(
siteNo
);
collectData
.
setExpName
(
expName
);
return
collectData
;
}
public
static
List
<
SoilExperimentCollectData
>
txt2String
(
InputStream
io
){
StringBuilder
result
=
new
StringBuilder
();
List
<
SoilExperimentCollectData
>
dataList
=
new
ArrayList
<>();
...
...
src/main/java/com/patzn/cloud/service/lims/socket/ServerConfig.java
0 → 100644
View file @
bf8820eb
package
com
.
patzn
.
cloud
.
service
.
lims
.
socket
;
import
com.patzn.cloud.service.lims.soil.service.ISoilItemService
;
import
com.patzn.cloud.service.lims.soil.service.impl.SoilItemServiceImpl
;
import
java.io.BufferedWriter
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.io.OutputStreamWriter
;
import
java.net.Socket
;
import
java.net.SocketException
;
import
java.net.SocketTimeoutException
;
import
java.util.zip.DataFormatException
;
public
class
ServerConfig
extends
Thread
{
private
Socket
socket
;
public
ServerConfig
(
Socket
socket
)
{
this
.
socket
=
socket
;
}
// 获取spring容器管理的类,可以获取到sevrice的类
private
ISoilItemService
service
=
SpringUtil
.
getBean
(
SoilItemServiceImpl
.
class
);
private
String
handle
(
InputStream
inputStream
)
throws
IOException
,
DataFormatException
{
byte
[]
bytes
=
new
byte
[
1024
];
int
len
=
inputStream
.
read
(
bytes
);
if
(
len
!=
-
1
)
{
StringBuffer
request
=
new
StringBuffer
();
request
.
append
(
new
String
(
bytes
,
0
,
len
,
"UTF-8"
));
System
.
out
.
println
(
"接受的数据: "
+
request
);
System
.
out
.
println
(
"from client ... "
+
request
+
"当前线程"
+
Thread
.
currentThread
().
getName
());
}
else
{
throw
new
DataFormatException
(
"数据处理异常"
);
}
return
""
;
}
@Override
public
void
run
()
{
BufferedWriter
writer
=
null
;
try
{
// 设置连接超时9秒
socket
.
setSoTimeout
(
9000
);
System
.
out
.
println
(
"客户 - "
+
socket
.
getRemoteSocketAddress
()
+
" -> 机连接成功"
);
InputStream
inputStream
=
socket
.
getInputStream
();
writer
=
new
BufferedWriter
(
new
OutputStreamWriter
(
socket
.
getOutputStream
()));
String
result
=
null
;
try
{
result
=
handle
(
inputStream
);
writer
.
write
(
result
);
writer
.
newLine
();
writer
.
flush
();
}
catch
(
IOException
|
DataFormatException
|
IllegalArgumentException
e
)
{
writer
.
write
(
"error"
);
writer
.
newLine
();
writer
.
flush
();
System
.
out
.
println
(
"发生异常"
);
try
{
System
.
out
.
println
(
"再次接受!"
);
result
=
handle
(
inputStream
);
writer
.
write
(
result
);
writer
.
newLine
();
writer
.
flush
();
}
catch
(
DataFormatException
|
SocketTimeoutException
ex
)
{
System
.
out
.
println
(
"再次接受, 发生异常,连接关闭"
);
}
}
}
catch
(
SocketException
socketException
)
{
socketException
.
printStackTrace
();
try
{
writer
.
close
();
}
catch
(
IOException
ioException
)
{
ioException
.
printStackTrace
();
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
finally
{
try
{
writer
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
}
src/main/java/com/patzn/cloud/service/lims/socket/SocketProperties.java
0 → 100644
View file @
bf8820eb
package
com
.
patzn
.
cloud
.
service
.
lims
.
socket
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.PropertySource
;
import
org.springframework.stereotype.Component
;
@Component
@Configuration
@PropertySource
(
"classpath:application.yml"
)
@ConfigurationProperties
(
prefix
=
"socket"
)
public
class
SocketProperties
{
private
Integer
port
;
private
Integer
poolKeep
;
private
Integer
poolCore
;
private
Integer
poolMax
;
private
Integer
poolQueueInit
;
public
Integer
getPort
()
{
return
port
;
}
public
void
setPort
(
Integer
port
)
{
this
.
port
=
port
;
}
public
Integer
getPoolKeep
()
{
return
poolKeep
;
}
public
void
setPoolKeep
(
Integer
poolKeep
)
{
this
.
poolKeep
=
poolKeep
;
}
public
Integer
getPoolCore
()
{
return
poolCore
;
}
public
void
setPoolCore
(
Integer
poolCore
)
{
this
.
poolCore
=
poolCore
;
}
public
Integer
getPoolMax
()
{
return
poolMax
;
}
public
void
setPoolMax
(
Integer
poolMax
)
{
this
.
poolMax
=
poolMax
;
}
public
Integer
getPoolQueueInit
()
{
return
poolQueueInit
;
}
public
void
setPoolQueueInit
(
Integer
poolQueueInit
)
{
this
.
poolQueueInit
=
poolQueueInit
;
}
}
src/main/java/com/patzn/cloud/service/lims/socket/SpringUtil.java
0 → 100644
View file @
bf8820eb
package
com
.
patzn
.
cloud
.
service
.
lims
.
socket
;
import
org.springframework.beans.BeansException
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.context.ApplicationContextAware
;
import
org.springframework.stereotype.Component
;
@Component
public
class
SpringUtil
implements
ApplicationContextAware
{
private
static
ApplicationContext
applicationContext
;
@Override
public
void
setApplicationContext
(
ApplicationContext
applicationContext
)
throws
BeansException
{
if
(
SpringUtil
.
applicationContext
==
null
)
{
SpringUtil
.
applicationContext
=
applicationContext
;
}
}
/**
* 获取applicationContext
* @return
*/
public
static
ApplicationContext
getApplicationContext
()
{
return
applicationContext
;
}
/**
* 通过name获取 Bean.
* @param name
* @return
*/
public
static
Object
getBean
(
String
name
){
return
getApplicationContext
().
getBean
(
name
);
}
/**
* 通过class获取Bean.
* @param clazz
* @param <T>
* @return
*/
public
static
<
T
>
T
getBean
(
Class
<
T
>
clazz
){
return
getApplicationContext
().
getBean
(
clazz
);
}
/**
* 通过name,以及Clazz返回指定的Bean
* @param name
* @param clazz
* @param <T>
* @return
*/
public
static
<
T
>
T
getBean
(
String
name
,
Class
<
T
>
clazz
){
return
getApplicationContext
().
getBean
(
name
,
clazz
);
}
}
src/main/java/com/patzn/cloud/service/lims/socket/TestRunner.java
0 → 100644
View file @
bf8820eb
package
com
.
patzn
.
cloud
.
service
.
lims
.
socket
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.CommandLineRunner
;
import
org.springframework.stereotype.Component
;
import
java.net.ServerSocket
;
import
java.net.Socket
;
import
java.util.concurrent.ArrayBlockingQueue
;
import
java.util.concurrent.ThreadPoolExecutor
;
import
java.util.concurrent.TimeUnit
;
@Component
public
class
TestRunner
implements
CommandLineRunner
{
@Autowired
private
SocketProperties
properties
;
@Override
public
void
run
(
String
...
args
)
throws
Exception
{
ServerSocket
server
=
null
;
Socket
socket
=
null
;
server
=
new
ServerSocket
(
properties
.
getPort
());
System
.
out
.
println
(
"设备服务器已经开启, 监听端口:"
+
properties
.
getPort
());
ThreadPoolExecutor
pool
=
new
ThreadPoolExecutor
(
properties
.
getPoolCore
(),
properties
.
getPoolMax
(),
properties
.
getPoolKeep
(),
TimeUnit
.
SECONDS
,
new
ArrayBlockingQueue
<>(
properties
.
getPoolQueueInit
()),
new
ThreadPoolExecutor
.
DiscardOldestPolicy
()
);
while
(
true
)
{
socket
=
server
.
accept
();
pool
.
execute
(
new
ServerConfig
(
socket
));
}
}
}
src/main/resources/application-dev.yml
View file @
bf8820eb
...
...
@@ -73,3 +73,15 @@ print.ribbon.NFLoadBalancerRuleClassName: com.patzn.cloud.zuul.LocalRule
res.ribbon.NFLoadBalancerRuleClassName
:
com.patzn.cloud.zuul.LocalRule
convert.ribbon.NFLoadBalancerRuleClassName
:
com.patzn.cloud.zuul.LocalRule
soil.ribbon.NFLoadBalancerRuleClassName
:
com.patzn.cloud.zuul.LocalRule
socket
:
# 监听端口 2323
port
:
2323
# 线程池 - 保持线程数 20
pool-keep
:
20
# 线程池 - 核心线程数 10
pool-core
:
10
# 线程池 - 最大线程数 20
pool-max
:
30
# 线程队列容量 10
pool-queue-init
:
10
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