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
74958735
Commit
74958735
authored
Mar 17, 2021
by
zhangmengqi
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev'
parents
aa9100a5
dae726f2
Show whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
797 additions
and
35 deletions
+797
-35
build.gradle
build.gradle
+1
-1
SerialTool.java
.../java/com/patzn/cloud/service/lims/common/SerialTool.java
+429
-0
MybatisPlusConfig.java
...om/patzn/cloud/service/lims/config/MybatisPlusConfig.java
+0
-13
RabbitMQConfig.java
...a/com/patzn/cloud/service/lims/config/RabbitMQConfig.java
+1
-13
WebConfig.java
...n/java/com/patzn/cloud/service/lims/config/WebConfig.java
+0
-2
SoilOriginalRecordController.java
...ce/lims/soil/controller/SoilOriginalRecordController.java
+9
-0
SoilOriginalTemplateBalanceController.java
...oil/controller/SoilOriginalTemplateBalanceController.java
+84
-0
SoilOriginalTemplateBalanceMapper.java
...e/lims/soil/mapper/SoilOriginalTemplateBalanceMapper.java
+16
-0
ISoilOriginalRecordService.java
...service/lims/soil/service/ISoilOriginalRecordService.java
+2
-0
ISoilOriginalTemplateBalanceService.java
...ims/soil/service/ISoilOriginalTemplateBalanceService.java
+20
-0
SoilExperimentServiceImpl.java
...ice/lims/soil/service/impl/SoilExperimentServiceImpl.java
+20
-2
SoilOriginalRecordServiceImpl.java
...lims/soil/service/impl/SoilOriginalRecordServiceImpl.java
+133
-4
SoilOriginalTemplateBalanceServiceImpl.java
.../service/impl/SoilOriginalTemplateBalanceServiceImpl.java
+34
-0
SoilEntrustMapper.xml
src/main/resources/mapper/soil/SoilEntrustMapper.xml
+4
-0
SoilOriginalTemplateBalanceMapper.xml
...sources/mapper/soil/SoilOriginalTemplateBalanceMapper.xml
+5
-0
新增数据表.sql
src/test/java/resources/db_sql/v2.0.2/新增数据表.sql
+39
-0
No files found.
build.gradle
View file @
74958735
...
@@ -119,7 +119,7 @@ dependencies {
...
@@ -119,7 +119,7 @@ dependencies {
compile
(
"com.google.zxing:core:3.3.3"
)
compile
(
"com.google.zxing:core:3.3.3"
)
compile
(
"org.samba.jcifs:jcifs:1.2.9"
)
compile
(
"org.samba.jcifs:jcifs:1.2.9"
)
compile
(
"com.google.zxing:javase:3.3.3"
)
compile
(
"com.google.zxing:javase:3.3.3"
)
compile
(
"com.baomidou:dynamic-datasource-spring-boot-starter:2.5
.7"
)
compile
(
"org.rxtx:rxtx:2.1
.7"
)
compile
(
"com.qcloud:cos_api:5.2.4"
)
{
compile
(
"com.qcloud:cos_api:5.2.4"
)
{
exclude
module:
'slf4j-log4j12'
exclude
module:
'slf4j-log4j12'
}
}
...
...
src/main/java/com/patzn/cloud/service/lims/common/SerialTool.java
0 → 100644
View file @
74958735
package
com
.
patzn
.
cloud
.
service
.
lims
.
common
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.io.OutputStream
;
import
java.util.ArrayList
;
import
java.util.Enumeration
;
import
gnu.io.CommPort
;
import
gnu.io.CommPortIdentifier
;
import
gnu.io.NoSuchPortException
;
import
gnu.io.PortInUseException
;
import
gnu.io.SerialPort
;
import
gnu.io.SerialPortEventListener
;
import
gnu.io.UnsupportedCommOperationException
;
import
java.util.TooManyListenersException
;
import
java.util.regex.Matcher
;
import
java.util.regex.Pattern
;
/**
* 串口服务类,提供打开、关闭串口,读取、发送串口数据等服务(采用单例设计模式)
* @author zhong
*
*/
public
class
SerialTool
{
protected
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
SerialTool
.
class
);
private
static
SerialTool
serialTool
=
null
;
static
{
//在该类被ClassLoader加载时就初始化一个SerialTool对象
if
(
serialTool
==
null
)
{
serialTool
=
new
SerialTool
();
}
}
//私有化SerialTool类的构造方法,不允许其他类生成SerialTool对象
private
SerialTool
()
{
}
/**
* 获取提供服务的SerialTool对象
*
* @return serialTool
*/
public
static
SerialTool
getSerialTool
()
{
if
(
serialTool
==
null
)
{
serialTool
=
new
SerialTool
();
}
return
serialTool
;
}
/**
* 查找所有可用端口
*
* @return 可用端口名称列表
*/
public
static
final
ArrayList
<
String
>
findPort
()
{
//获得当前所有可用串口
Enumeration
<
CommPortIdentifier
>
portList
=
CommPortIdentifier
.
getPortIdentifiers
();
ArrayList
<
String
>
portNameList
=
new
ArrayList
<>();
//将可用串口名添加到List并返回该List
while
(
portList
.
hasMoreElements
())
{
String
portName
=
portList
.
nextElement
().
getName
();
portNameList
.
add
(
portName
);
}
return
portNameList
;
}
/**
* 打开串口
*
*/
public
synchronized
static
final
SerialPort
openPort
(
String
portName
,
int
baudrate
)
{
try
{
//通过端口名识别端口
CommPortIdentifier
portIdentifier
=
CommPortIdentifier
.
getPortIdentifier
(
portName
);
if
(
null
==
portIdentifier
){
return
null
;
}
//打开端口,并给端口名字和一个timeout(打开操作的超时时间)
CommPort
commPort
=
portIdentifier
.
open
(
portName
,
500
);
//判断是不是串口
if
(
commPort
instanceof
SerialPort
)
{
SerialPort
serialPort
=
(
SerialPort
)
commPort
;
try
{
//设置一下串口的波特率等参数
serialPort
.
setSerialPortParams
(
baudrate
,
SerialPort
.
DATABITS_8
,
SerialPort
.
STOPBITS_1
,
SerialPort
.
PARITY_NONE
);
}
catch
(
UnsupportedCommOperationException
e
)
{
// throw new SerialPortParameterFailure();
}
//System.out.println("Open " + portName + " sucessfully !");
return
serialPort
;
}
else
{
//不是串口
// throw new NotASerialPort();
}
}
catch
(
NoSuchPortException
e1
)
{
e1
.
printStackTrace
();
//throw new NoSuchPort();
}
catch
(
PortInUseException
e2
)
{
e2
.
printStackTrace
();
// throw new PortInUse();
}
return
null
;
}
/**
* 关闭串口
*
* @param serialport 待关闭的串口对象
*/
public
static
void
closePort
(
SerialPort
serialPort
)
{
if
(
serialPort
!=
null
)
{
serialPort
.
close
();
serialPort
=
null
;
}
}
/**
* 往串口发送数据
*
* @param serialPort 串口对象
* @param order 待发送数据
*/
public
static
String
sendToPort
(
SerialPort
serialPort
,
byte
[]
order
)
throws
Exception
{
OutputStream
out
=
null
;
String
value
=
""
;
try
{
out
=
serialPort
.
getOutputStream
();
out
.
write
(
order
);
out
.
flush
();
Thread
.
sleep
(
500
);
value
=
readTextFromPort
(
serialPort
);
}
catch
(
IOException
e
)
{
closePort
(
serialPort
);
throw
new
Exception
(
"向串口发送数据失败"
);
}
finally
{
try
{
if
(
out
!=
null
)
{
out
.
close
();
out
=
null
;
}
}
catch
(
IOException
e
)
{
closePort
(
serialPort
);
throw
new
Exception
(
"关闭串口对象的输出流出错"
);
}
}
return
value
;
}
/**
* 从串口读取数据
*
* @param serialPort 当前已建立连接的SerialPort对象
* @return 读取到的数据
*/
public
static
byte
[]
readFromPort
(
SerialPort
serialPort
)
{
InputStream
in
=
null
;
byte
[]
bytes
=
null
;
try
{
in
=
serialPort
.
getInputStream
();
int
bufflenth
=
in
.
available
();
//获取buffer里的数据长度
while
(
bufflenth
!=
0
)
{
bytes
=
new
byte
[
bufflenth
];
//初始化byte数组为buffer中数据的长度
in
.
read
(
bytes
);
bufflenth
=
in
.
available
();
}
}
catch
(
Exception
e
)
{
closePort
(
serialPort
);
//throw new ReadDataFromSerialPortFailure();
}
finally
{
try
{
if
(
in
!=
null
)
{
in
.
close
();
in
=
null
;
}
}
catch
(
IOException
e
)
{
//throw new SerialPortInputStreamCloseFailure();
closePort
(
serialPort
);
}
}
return
bytes
;
}
public
static
String
readTextFromPort
(
SerialPort
serialPort
)
{
byte
[]
bytes
=
SerialTool
.
readFromPort
(
serialPort
);
if
(
null
!=
bytes
){
return
new
String
(
bytes
);
}
return
""
;
}
/**
* 添加监听器
*
* @param port 串口对象
* @param listener 串口监听器
* @throws TooManyListeners 监听类对象过多
*/
public
static
void
addListener
(
SerialPort
port
,
SerialPortEventListener
listener
)
{
try
{
//给串口添加监听器
port
.
addEventListener
(
listener
);
//设置当有数据到达时唤醒监听接收线程
port
.
notifyOnDataAvailable
(
true
);
//设置当通信中断时唤醒中断线程
port
.
notifyOnBreakInterrupt
(
true
);
}
catch
(
TooManyListenersException
e
)
{
//throw new TooManyListeners();
}
}
public
static
String
getSubUtilSimple
(
String
soap
,
String
rgex
)
{
logger
.
error
(
"getSubUtilSimple--soap"
+
soap
);
logger
.
error
(
"getSubUtilSimple--rgex"
+
rgex
);
if
(
StringUtils
.
isBlank
(
soap
)){
return
""
;
}
Pattern
pattern
=
Pattern
.
compile
(
rgex
);
// 匹配的模式
Matcher
m
=
pattern
.
matcher
(
soap
);
try
{
while
(
m
.
find
())
{
String
value
=
m
.
group
(
1
).
trim
();
if
(
StringUtils
.
isNotBlank
(
value
)){
value
=
value
.
replace
(
","
,
""
).
replace
(
","
,
""
);
return
value
.
trim
();
}
return
value
.
trim
();
}
}
catch
(
Exception
e
){
logger
.
error
(
"错误getSubUtilSimple"
+
e
.
getMessage
(),
e
);
}
return
""
;
}
public
static
String
getBalanceValue
(
HttpServletRequest
request
,
String
com
,
Integer
baudrate
)
{
SerialPort
serialPort
=
null
;
try
{
serialPort
=
SerialTool
.
openPort
(
com
,
baudrate
);
if
(
null
==
serialPort
){
return
""
;
}
String
returnStr
=
SerialTool
.
readTextFromPort
(
serialPort
);
boolean
agin
=
(
returnStr
.
contains
(
"US,GS"
)
||
returnStr
.
contains
(
"ST,GS"
))
&&
returnStr
.
contains
(
" g"
);
int
num
=
0
;
while
(!
agin
&&
num
<
10
)
{
SerialPort
serialPortA
=
null
;
serialPortA
=
SerialTool
.
openPort
(
"COM1"
,
9600
);
returnStr
=
SerialTool
.
readTextFromPort
(
serialPortA
);
agin
=
(
returnStr
.
contains
(
"US,GS"
)
||
returnStr
.
contains
(
"ST,GS"
))
&&
returnStr
.
contains
(
" g"
);
num
++;
SerialTool
.
closePort
(
serialPortA
);
}
String
regx
=
""
;
if
(
returnStr
.
contains
(
"US,GS-"
))
{
regx
=
"US,GS-(.*?)g"
;
}
else
if
(
returnStr
.
contains
(
"US,GS"
))
{
regx
=
"US,GS(.*?)g"
;
}
else
if
(
returnStr
.
contains
(
"ST,GS"
))
{
regx
=
"ST,GS(.*?)g"
;
}
if
(
null
!=
serialPort
){
SerialTool
.
closePort
(
serialPort
);
}
return
getSubUtilSimple
(
returnStr
,
regx
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"访问台秤数据异常"
+
e
.
getMessage
(),
e
);
if
(
null
!=
serialPort
){
closePort
(
serialPort
);
}
e
.
printStackTrace
();
}
return
""
;
}
public
static
String
getTaiChengValue2
(
HttpServletRequest
request
)
{
SerialPort
serialPort
=
null
;
try
{
String
ip
=
getIPAddress
(
request
);
logger
.
error
(
"getTaiChengValue2台秤开始访问---:IP"
+
ip
);
serialPort
=
SerialTool
.
openPort
(
"COM9"
,
2400
);
if
(
null
==
serialPort
){
return
""
;
}
String
returnStr
=
SerialTool
.
readTextFromPort
(
serialPort
);
boolean
agin
=
(
returnStr
.
contains
(
"US,GS"
)
||
returnStr
.
contains
(
"ST,GS"
))
&&
returnStr
.
contains
(
" g"
);
int
num
=
0
;
while
(!
agin
&&
num
<
10
)
{
SerialPort
serialPortA
=
null
;
serialPortA
=
SerialTool
.
openPort
(
"COM9"
,
2400
);
returnStr
=
SerialTool
.
readTextFromPort
(
serialPortA
);
agin
=
(
returnStr
.
contains
(
"US,GS"
)
||
returnStr
.
contains
(
"ST,GS"
))
&&
returnStr
.
contains
(
" g"
);
num
++;
SerialTool
.
closePort
(
serialPortA
);
}
String
regx
=
""
;
if
(
returnStr
.
contains
(
"US,GS-"
))
{
regx
=
"US,GS-(.*?)g"
;
}
else
if
(
returnStr
.
contains
(
"US,GS"
))
{
regx
=
"US,GS(.*?)g"
;
}
else
if
(
returnStr
.
contains
(
"ST,GS"
))
{
regx
=
"ST,GS(.*?)g"
;
}
if
(
null
!=
serialPort
){
SerialTool
.
closePort
(
serialPort
);
}
return
getSubUtilSimple
(
returnStr
,
regx
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"访问台秤数据异常"
+
e
.
getMessage
(),
e
);
if
(
null
!=
serialPort
){
closePort
(
serialPort
);
}
e
.
printStackTrace
();
}
return
""
;
}
public
static
String
getIPAddress
(
HttpServletRequest
request
)
{
String
ip
=
null
;
//X-Forwarded-For:Squid 服务代理
String
ipAddresses
=
request
.
getHeader
(
"X-Forwarded-For"
);
if
(
ipAddresses
==
null
||
ipAddresses
.
length
()
==
0
||
"unknown"
.
equalsIgnoreCase
(
ipAddresses
))
{
//Proxy-Client-IP:apache 服务代理
ipAddresses
=
request
.
getHeader
(
"Proxy-Client-IP"
);
}
if
(
ipAddresses
==
null
||
ipAddresses
.
length
()
==
0
||
"unknown"
.
equalsIgnoreCase
(
ipAddresses
))
{
//WL-Proxy-Client-IP:weblogic 服务代理
ipAddresses
=
request
.
getHeader
(
"WL-Proxy-Client-IP"
);
}
if
(
ipAddresses
==
null
||
ipAddresses
.
length
()
==
0
||
"unknown"
.
equalsIgnoreCase
(
ipAddresses
))
{
//HTTP_CLIENT_IP:有些代理服务器
ipAddresses
=
request
.
getHeader
(
"HTTP_CLIENT_IP"
);
}
if
(
ipAddresses
==
null
||
ipAddresses
.
length
()
==
0
||
"unknown"
.
equalsIgnoreCase
(
ipAddresses
))
{
//X-Real-IP:nginx服务代理
ipAddresses
=
request
.
getHeader
(
"X-Real-IP"
);
}
//有些网络通过多层代理,那么获取到的ip就会有多个,一般都是通过逗号(,)分割开来,并且第一个ip为客户端的真实IP
if
(
ipAddresses
!=
null
&&
ipAddresses
.
length
()
!=
0
)
{
ip
=
ipAddresses
.
split
(
","
)[
0
];
}
//还是不能获取到,最后再通过request.getRemoteAddr();获取
if
(
ip
==
null
||
ip
.
length
()
==
0
||
"unknown"
.
equalsIgnoreCase
(
ipAddresses
))
{
ip
=
request
.
getRemoteAddr
();
}
return
ip
;
}
public
static
String
getBalanceValue
(
String
serialPortName
,
Integer
baudRate
,
String
command
)
{
SerialPort
serialPort
=
null
;
try
{
serialPort
=
SerialTool
.
openPort
(
serialPortName
,
baudRate
);
if
(
null
==
serialPort
){
return
""
;
}
String
returnStr
=
SerialTool
.
readTextFromPort
(
serialPort
);
closePort
(
serialPort
);
return
returnStr
;
}
catch
(
Exception
e
)
{
if
(
null
!=
serialPort
){
closePort
(
serialPort
);
}
e
.
printStackTrace
();
}
return
""
;
}
}
src/main/java/com/patzn/cloud/service/lims/config/MybatisPlusConfig.java
View file @
74958735
package
com
.
patzn
.
cloud
.
service
.
lims
.
config
;
package
com
.
patzn
.
cloud
.
service
.
lims
.
config
;
import
com.baomidou.dynamic.datasource.plugin.MasterSlaveAutoRoutingPlugin
;
import
com.baomidou.mybatisplus.mapper.MetaObjectHandler
;
import
com.baomidou.mybatisplus.mapper.MetaObjectHandler
;
import
com.baomidou.mybatisplus.plugins.PaginationInterceptor
;
import
com.baomidou.mybatisplus.plugins.PaginationInterceptor
;
import
com.baomidou.mybatisplus.plugins.PerformanceInterceptor
;
import
com.baomidou.mybatisplus.plugins.PerformanceInterceptor
;
...
@@ -124,7 +123,6 @@ public class MybatisPlusConfig {
...
@@ -124,7 +123,6 @@ public class MybatisPlusConfig {
return
paginationInterceptor
;
return
paginationInterceptor
;
}
}
/**
/**
* mybatis-plus SQL执行效率插件
* mybatis-plus SQL执行效率插件
*/
*/
...
@@ -134,7 +132,6 @@ public class MybatisPlusConfig {
...
@@ -134,7 +132,6 @@ public class MybatisPlusConfig {
return
new
PerformanceInterceptor
();
return
new
PerformanceInterceptor
();
}
}
/**
/**
* 注入自动填充器
* 注入自动填充器
*/
*/
...
@@ -142,13 +139,4 @@ public class MybatisPlusConfig {
...
@@ -142,13 +139,4 @@ public class MybatisPlusConfig {
public
MetaObjectHandler
metaObjectHandler
()
{
public
MetaObjectHandler
metaObjectHandler
()
{
return
new
PatznMetaObjectHandler
();
return
new
PatznMetaObjectHandler
();
}
}
/**
* 读写分离配置
*/
@Bean
@Profile
({
"test"
})
public
MasterSlaveAutoRoutingPlugin
masterSlaveAutoRoutingPlugin
(){
return
new
MasterSlaveAutoRoutingPlugin
();
}
}
}
\ No newline at end of file
src/main/java/com/patzn/cloud/service/lims/config/RabbitMQConfig.java
View file @
74958735
package
com
.
patzn
.
cloud
.
service
.
lims
.
config
;
package
com
.
patzn
.
cloud
.
service
.
lims
.
config
;
import
com.patzn.cloud.mq.MqAutoConfiguration
;
import
org.springframework.amqp.core.Queue
;
import
org.springframework.amqp.core.Queue
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Configuration
;
import
com.patzn.cloud.mq.MqAutoConfiguration
;
import
com.patzn.cloud.mq.log.LogDisruptor
;
/**
/**
* <p>
* <p>
* RabbitMQ 消息推送服务配置
* RabbitMQ 消息推送服务配置
...
@@ -27,16 +25,6 @@ public class RabbitMQConfig extends MqAutoConfiguration {
...
@@ -27,16 +25,6 @@ public class RabbitMQConfig extends MqAutoConfiguration {
}
}
/**
/**
* 初始化跟踪日志队列
*/
@Bean
public
Queue
syslog
()
{
// 启动 lmax Disruptor
LogDisruptor
.
INSTANCE
.
start
();
return
new
Queue
(
mqProperties
.
getTopic
().
getSyslog
());
}
/**
* 初始化推送消息队列
* 初始化推送消息队列
*/
*/
@Bean
@Bean
...
...
src/main/java/com/patzn/cloud/service/lims/config/WebConfig.java
View file @
74958735
...
@@ -31,8 +31,6 @@ public class WebConfig extends WebServiceConfigurer {
...
@@ -31,8 +31,6 @@ public class WebConfig extends WebServiceConfigurer {
registry
.
addInterceptor
(
ssoInterceptor
).
addPathPatterns
(
"/**"
);
registry
.
addInterceptor
(
ssoInterceptor
).
addPathPatterns
(
"/**"
);
// 表单重复提交拦截器
// 表单重复提交拦截器
// registry.addInterceptor(new RepeatFormInterceptor()).excludePathPatterns("/list");
// registry.addInterceptor(new RepeatFormInterceptor()).excludePathPatterns("/list");
// 注入跟踪访问日志
registry
.
addInterceptor
(
new
LogInterceptor
().
setService
(
"lims"
));
}
}
@Override
@Override
...
...
src/main/java/com/patzn/cloud/service/lims/soil/controller/SoilOriginalRecordController.java
View file @
74958735
...
@@ -2,6 +2,8 @@ package com.patzn.cloud.service.lims.soil.controller;
...
@@ -2,6 +2,8 @@ package com.patzn.cloud.service.lims.soil.controller;
import
java.util.List
;
import
java.util.List
;
import
com.baomidou.kisso.annotation.Action
;
import
com.baomidou.kisso.annotation.Login
;
import
com.patzn.cloud.commons.controller.Account
;
import
com.patzn.cloud.commons.controller.Account
;
import
com.patzn.cloud.service.soil.entity.SoilOriginalRecord
;
import
com.patzn.cloud.service.soil.entity.SoilOriginalRecord
;
import
com.patzn.cloud.service.soil.vo.SoilOriginalRecordVO
;
import
com.patzn.cloud.service.soil.vo.SoilOriginalRecordVO
;
...
@@ -123,4 +125,11 @@ public class SoilOriginalRecordController extends ServiceController {
...
@@ -123,4 +125,11 @@ public class SoilOriginalRecordController extends ServiceController {
return
success
(
soilOriginalRecordService
.
getExcelOriginalRecord
(
expId
));
return
success
(
soilOriginalRecordService
.
getExcelOriginalRecord
(
expId
));
}
}
@Login
(
action
=
Action
.
Skip
)
@ApiOperation
(
value
=
"获取Excel原始记录"
,
notes
=
"获取Excel原始记录"
)
@PostMapping
(
"/get_balance_value"
)
public
RestResult
<
String
>
getBalanceValue
(
@RequestParam
(
"id"
)
Long
id
,
@RequestParam
(
"location"
)
String
location
)
{
return
success
(
soilOriginalRecordService
.
getBalanceValue
(
id
,
location
));
}
}
}
src/main/java/com/patzn/cloud/service/lims/soil/controller/SoilOriginalTemplateBalanceController.java
0 → 100644
View file @
74958735
package
com
.
patzn
.
cloud
.
service
.
lims
.
soil
.
controller
;
import
com.patzn.cloud.service.soil.entity.SoilOriginalTemplateBalance
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.baomidou.mybatisplus.plugins.Page
;
import
com.patzn.cloud.commons.api.RestConstants
;
import
com.patzn.cloud.commons.api.RestResult
;
import
com.patzn.cloud.commons.controller.ServiceController
;
import
com.patzn.cloud.service.lims.soil.service.ISoilOriginalTemplateBalanceService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
java.util.List
;
/**
* 天平配置表 前端控制器
*
* @author wwd
* @since 2021-03-16
*/
@Api
(
tags
=
"天平配置表"
)
@RestController
@RequestMapping
(
"/v1/original_template_balance"
)
public
class
SoilOriginalTemplateBalanceController
extends
ServiceController
{
@Autowired
private
ISoilOriginalTemplateBalanceService
soilOriginalTemplateBalanceService
;
@ApiOperation
(
"分页列表"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
RestConstants
.
PAGE_PAGE
,
value
=
"请求数据的页码"
,
required
=
true
,
paramType
=
"query"
,
dataTypeClass
=
Integer
.
class
),
@ApiImplicitParam
(
name
=
RestConstants
.
PAGE_ROWS
,
value
=
"每页条数"
,
required
=
true
,
paramType
=
"query"
,
dataTypeClass
=
Integer
.
class
),
})
@PostMapping
(
"/page"
)
public
RestResult
<
Page
<
SoilOriginalTemplateBalance
>>
getPage
(
SoilOriginalTemplateBalance
soilOriginalTemplateBalance
)
{
return
success
(
soilOriginalTemplateBalanceService
.
page
(
getPage
(),
soilOriginalTemplateBalance
));
}
@ApiOperation
(
"查询 id 信息"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"id"
,
value
=
"主键"
,
required
=
true
,
paramType
=
"path"
,
dataTypeClass
=
Long
.
class
),
})
@GetMapping
(
"/{id}"
)
public
RestResult
<
SoilOriginalTemplateBalance
>
get
(
@PathVariable
(
"id"
)
Long
id
)
{
return
success
(
soilOriginalTemplateBalanceService
.
getById
(
id
));
}
@ApiOperation
(
"根据 id 修改信息"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"id"
,
value
=
"主键"
,
required
=
true
,
paramType
=
"path"
,
dataTypeClass
=
Long
.
class
),
})
@PutMapping
(
"/{id}"
)
public
RestResult
<
Boolean
>
edit
(
@PathVariable
(
"id"
)
Long
id
,
SoilOriginalTemplateBalance
soilOriginalTemplateBalance
)
{
soilOriginalTemplateBalance
.
setId
(
id
);
return
success
(
soilOriginalTemplateBalanceService
.
updateById
(
soilOriginalTemplateBalance
));
}
@ApiOperation
(
"添加"
)
@PostMapping
(
"/"
)
public
RestResult
<
Boolean
>
add
(
SoilOriginalTemplateBalance
soilOriginalTemplateBalance
)
{
return
success
(
soilOriginalTemplateBalanceService
.
save
(
soilOriginalTemplateBalance
));
}
@ApiOperation
(
"根据 ids 删除"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"ids"
,
value
=
"主键列表"
,
required
=
true
,
paramType
=
"query"
,
allowMultiple
=
true
,
dataTypeClass
=
Long
.
class
),
})
@DeleteMapping
(
"/"
)
public
RestResult
<
Boolean
>
delete
(
@RequestParam
(
"ids"
)
List
<
Long
>
ids
)
{
return
success
(
soilOriginalTemplateBalanceService
.
removeByIds
(
ids
));
}
}
src/main/java/com/patzn/cloud/service/lims/soil/mapper/SoilOriginalTemplateBalanceMapper.java
0 → 100644
View file @
74958735
package
com
.
patzn
.
cloud
.
service
.
lims
.
soil
.
mapper
;
import
com.patzn.cloud.commons.mapper.BatchMapper
;
import
com.patzn.cloud.service.soil.entity.SoilOriginalTemplateBalance
;
/**
* <p>
* Mapper 接口
* </p>
*
* @author wwd
* @since 2021-03-16
*/
public
interface
SoilOriginalTemplateBalanceMapper
extends
BatchMapper
<
SoilOriginalTemplateBalance
>
{
}
src/main/java/com/patzn/cloud/service/lims/soil/service/ISoilOriginalRecordService.java
View file @
74958735
...
@@ -38,4 +38,6 @@ public interface ISoilOriginalRecordService extends IBaseService<SoilOriginalRec
...
@@ -38,4 +38,6 @@ public interface ISoilOriginalRecordService extends IBaseService<SoilOriginalRec
SoilOriginalRecord
uploadExpGenerate
(
Long
[]
ids
,
SoilOriginalTemplate
template
,
SoilEntrust
entrust
,
Account
account
,
String
remark
,
File
file
);
SoilOriginalRecord
uploadExpGenerate
(
Long
[]
ids
,
SoilOriginalTemplate
template
,
SoilEntrust
entrust
,
Account
account
,
String
remark
,
File
file
);
SoilOriginalRecord
getExcelOriginalRecord
(
Long
expId
);
SoilOriginalRecord
getExcelOriginalRecord
(
Long
expId
);
String
getBalanceValue
(
Long
id
,
String
location
);
}
}
src/main/java/com/patzn/cloud/service/lims/soil/service/ISoilOriginalTemplateBalanceService.java
0 → 100644
View file @
74958735
package
com
.
patzn
.
cloud
.
service
.
lims
.
soil
.
service
;
import
com.baomidou.mybatisplus.plugins.Page
;
import
com.patzn.cloud.commons.service.IBaseService
;
import
com.patzn.cloud.service.soil.entity.SoilOriginalTemplateBalance
;
import
java.util.List
;
/**
* 服务类
*
* @author wwd
* @since 2021-03-16
*/
public
interface
ISoilOriginalTemplateBalanceService
extends
IBaseService
<
SoilOriginalTemplateBalance
>
{
Page
<
SoilOriginalTemplateBalance
>
page
(
Page
<
SoilOriginalTemplateBalance
>
page
,
SoilOriginalTemplateBalance
soilOriginalTemplateBalance
);
boolean
removeByIds
(
List
<
Long
>
ids
);
}
src/main/java/com/patzn/cloud/service/lims/soil/service/impl/SoilExperimentServiceImpl.java
View file @
74958735
...
@@ -3217,11 +3217,20 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
...
@@ -3217,11 +3217,20 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
try
{
try
{
List
<
SoilExperimentCollectData
>
dataList
=
CollectUtil
.
txt2String
(
smbFile
.
getInputStream
());
List
<
SoilExperimentCollectData
>
dataList
=
CollectUtil
.
txt2String
(
smbFile
.
getInputStream
());
if
(
CollectionUtils
.
isNotEmpty
(
dataList
)){
if
(
CollectionUtils
.
isNotEmpty
(
dataList
)){
List
<
SoilItem
>
saveSoilItemList
=
new
ArrayList
<>();
List
<
SoilItem
>
saveSoilItemList
=
new
ArrayList
<>();
List
<
SoilItem
>
updateSoilItemList
=
new
ArrayList
<>();
String
testMethod
=
null
;
String
testMethod
=
null
;
List
<
SoilItem
>
soilItems
=
soilItemService
.
list
(
Condition
.
create
().
eq
(
"experiment_id"
,
request
.
getExpId
()));
Map
<
String
,
SoilItem
>
soilItemMap
=
new
HashMap
<>();
for
(
SoilItem
item
:
soilItems
)
{
soilItemMap
.
put
(
item
.
getExperimentId
()+
item
.
getName
(),
item
);
}
for
(
SoilExperimentCollectData
collectData:
dataList
)
{
for
(
SoilExperimentCollectData
collectData:
dataList
)
{
collectData
.
setEquipName
(
request
.
getEquipName
());
collectData
.
setEquipName
(
request
.
getEquipName
());
collectData
.
setLabNum
(
request
.
getLabNum
());
collectData
.
setLabNum
(
request
.
getLabNum
());
...
@@ -3243,12 +3252,21 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
...
@@ -3243,12 +3252,21 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
item
.
setTestValue
(
collectData
.
getTestValue
());
item
.
setTestValue
(
collectData
.
getTestValue
());
item
.
setExperimentId
(
request
.
getExpId
());
item
.
setExperimentId
(
request
.
getExpId
());
item
.
setUnit
(
collectData
.
getUnit
());
item
.
setUnit
(
collectData
.
getUnit
());
if
(
null
==
soilItemMap
.
get
(
item
.
getExperimentId
()+
item
.
getName
())){
saveSoilItemList
.
add
(
item
);
saveSoilItemList
.
add
(
item
);
}
else
{
updateSoilItemList
.
add
(
item
);
}
}
}
if
(
CollectionUtils
.
isNotEmpty
(
saveSoilItemList
)){
if
(
CollectionUtils
.
isNotEmpty
(
saveSoilItemList
)){
soilItemService
.
saveBatch
(
saveSoilItemList
);
soilItemService
.
saveBatch
(
saveSoilItemList
);
}
}
if
(
CollectionUtils
.
isNotEmpty
(
updateSoilItemList
)){
soilItemService
.
updateBatchById
(
updateSoilItemList
);
}
if
(
StringUtils
.
isNotBlank
(
testMethod
)){
if
(
StringUtils
.
isNotBlank
(
testMethod
)){
SoilExperiment
experiment
=
new
SoilExperiment
();
SoilExperiment
experiment
=
new
SoilExperiment
();
experiment
.
setTestMethod
(
testMethod
);
experiment
.
setTestMethod
(
testMethod
);
...
...
src/main/java/com/patzn/cloud/service/lims/soil/service/impl/SoilOriginalRecordServiceImpl.java
View file @
74958735
...
@@ -15,11 +15,9 @@ import com.patzn.cloud.oss.starter.OssClient;
...
@@ -15,11 +15,9 @@ import com.patzn.cloud.oss.starter.OssClient;
import
com.patzn.cloud.oss.starter.OssFileResult
;
import
com.patzn.cloud.oss.starter.OssFileResult
;
import
com.patzn.cloud.service.eln.entity.ElnForm
;
import
com.patzn.cloud.service.eln.entity.ElnForm
;
import
com.patzn.cloud.service.eln.entity.ElnTemplate
;
import
com.patzn.cloud.service.eln.entity.ElnTemplate
;
import
com.patzn.cloud.service.lims.common.SerialTool
;
import
com.patzn.cloud.service.lims.soil.mapper.SoilOriginalRecordMapper
;
import
com.patzn.cloud.service.lims.soil.mapper.SoilOriginalRecordMapper
;
import
com.patzn.cloud.service.lims.soil.service.ISoilExpRelOriginalRecordService
;
import
com.patzn.cloud.service.lims.soil.service.*
;
import
com.patzn.cloud.service.lims.soil.service.ISoilExperimentService
;
import
com.patzn.cloud.service.lims.soil.service.ISoilItemService
;
import
com.patzn.cloud.service.lims.soil.service.ISoilOriginalRecordService
;
import
com.patzn.cloud.commons.service.impl.BaseServiceImpl
;
import
com.patzn.cloud.commons.service.impl.BaseServiceImpl
;
import
com.patzn.cloud.service.soil.entity.*
;
import
com.patzn.cloud.service.soil.entity.*
;
import
com.patzn.cloud.service.soil.vo.SoilOriginalRecordVO
;
import
com.patzn.cloud.service.soil.vo.SoilOriginalRecordVO
;
...
@@ -54,6 +52,18 @@ public class SoilOriginalRecordServiceImpl extends BaseServiceImpl<SoilOriginalR
...
@@ -54,6 +52,18 @@ public class SoilOriginalRecordServiceImpl extends BaseServiceImpl<SoilOriginalR
@Autowired
@Autowired
private
ISoilExpRelOriginalRecordService
soilExpRelOriginalRecordService
;
private
ISoilExpRelOriginalRecordService
soilExpRelOriginalRecordService
;
@Autowired
private
ISoilOriginalTemplateService
soilOriginalTemplateService
;
@Autowired
private
ISoilOriginalTemplateConfigService
soilOriginalTemplateConfigService
;
@Autowired
private
ISoilOriginalTemplateBalanceService
soilOriginalTemplateBalanceService
;
@Autowired
@Autowired
private
ISoilItemService
soilItemService
;
private
ISoilItemService
soilItemService
;
...
@@ -201,4 +211,123 @@ public class SoilOriginalRecordServiceImpl extends BaseServiceImpl<SoilOriginalR
...
@@ -201,4 +211,123 @@ public class SoilOriginalRecordServiceImpl extends BaseServiceImpl<SoilOriginalR
}
}
return
getById
(
recordList
.
get
(
0
).
getRecordId
());
return
getById
(
recordList
.
get
(
0
).
getRecordId
());
}
}
public
String
getABC
(
String
str
){
return
str
.
replaceAll
(
"\\s*"
,
""
).
replaceAll
(
"[^(A-Za-z)]"
,
""
);
}
public
String
get123
(
String
str
){
return
str
.
replaceAll
(
"\\s*"
,
""
).
replaceAll
(
"[^(0-9)]"
,
""
);
}
@Override
public
String
getBalanceValue
(
Long
id
,
String
location
)
{
if
(
"$A$1"
.
equals
(
location
)){
return
""
;
}
location
=
location
.
replace
(
"$"
,
""
);
String
columnLabel
=
getABC
(
location
);
Integer
rowLabel
=
new
Integer
(
get123
(
location
))
;
SoilOriginalRecord
record
=
getById
(
id
);
if
(
null
!=
record
){
Long
templateId
=
record
.
getTemplateId
();
if
(
null
==
templateId
){
return
""
;
}
SoilOriginalTemplate
template
=
soilOriginalTemplateService
.
getById
(
templateId
);
Integer
integer
=
template
.
getSampleBeginRow
();
if
(
null
==
integer
){
return
""
;
}
if
(
null
==
template
){
return
""
;
}
List
<
SoilOriginalTemplateConfig
>
configList
=
soilOriginalTemplateConfigService
.
list
(
Condition
.
create
().
eq
(
"template_id"
,
templateId
).
isNotNull
(
"column_place"
).
eq
(
"clicked"
,
1
));
if
(
CollectionUtils
.
isEmpty
(
configList
)){
return
""
;
}
List
<
String
>
columNameList
=
new
ArrayList
<>();
for
(
SoilOriginalTemplateConfig
config
:
configList
)
{
if
(
0
==
config
.
getColumnPlace
()){
columNameList
.
add
(
"A"
);
}
else
if
(
1
==
config
.
getColumnPlace
()){
columNameList
.
add
(
"B"
);
}
else
if
(
2
==
config
.
getColumnPlace
()){
columNameList
.
add
(
"C"
);
}
else
if
(
3
==
config
.
getColumnPlace
()){
columNameList
.
add
(
"D"
);
}
else
if
(
4
==
config
.
getColumnPlace
()){
columNameList
.
add
(
"E"
);
}
else
if
(
5
==
config
.
getColumnPlace
()){
columNameList
.
add
(
"F"
);
}
else
if
(
6
==
config
.
getColumnPlace
()){
columNameList
.
add
(
"G"
);
}
else
if
(
7
==
config
.
getColumnPlace
()){
columNameList
.
add
(
"H"
);
}
else
if
(
8
==
config
.
getColumnPlace
()){
columNameList
.
add
(
"I"
);
}
else
if
(
9
==
config
.
getColumnPlace
()){
columNameList
.
add
(
"J"
);
}
else
if
(
10
==
config
.
getColumnPlace
()){
columNameList
.
add
(
"K"
);
}
else
if
(
11
==
config
.
getColumnPlace
()){
columNameList
.
add
(
"L"
);
}
else
if
(
12
==
config
.
getColumnPlace
()){
columNameList
.
add
(
"M"
);
}
else
if
(
13
==
config
.
getColumnPlace
()){
columNameList
.
add
(
"N"
);
}
else
if
(
14
==
config
.
getColumnPlace
()){
columNameList
.
add
(
"O"
);
}
else
if
(
15
==
config
.
getColumnPlace
()){
columNameList
.
add
(
"P"
);
}
else
if
(
16
==
config
.
getColumnPlace
()){
columNameList
.
add
(
"Q"
);
}
else
if
(
17
==
config
.
getColumnPlace
()){
columNameList
.
add
(
"R"
);
}
else
if
(
18
==
config
.
getColumnPlace
()){
columNameList
.
add
(
"S"
);
}
else
if
(
19
==
config
.
getColumnPlace
()){
columNameList
.
add
(
"T"
);
}
else
if
(
20
==
config
.
getColumnPlace
()){
columNameList
.
add
(
"U"
);
}
else
if
(
21
==
config
.
getColumnPlace
()){
columNameList
.
add
(
"V"
);
}
else
if
(
22
==
config
.
getColumnPlace
()){
columNameList
.
add
(
"W"
);
}
else
if
(
23
==
config
.
getColumnPlace
()){
columNameList
.
add
(
"X"
);
}
else
if
(
24
==
config
.
getColumnPlace
()){
columNameList
.
add
(
"Y"
);
}
else
if
(
25
==
config
.
getColumnPlace
()){
columNameList
.
add
(
"Z"
);
}
}
if
(!
columNameList
.
contains
(
columnLabel
)){
return
""
;
}
if
(
rowLabel
<(
integer
+
1
)){
return
""
;
}
List
<
SoilOriginalTemplateBalance
>
balanceList
=
soilOriginalTemplateBalanceService
.
list
(
Condition
.
create
().
eq
(
"template_id"
,
templateId
).
orderBy
(
"itemed"
,
false
));
for
(
SoilOriginalTemplateBalance
balance
:
balanceList
)
{
String
value
=
SerialTool
.
getBalanceValue
(
balance
.
getComName
(),
balance
.
getBaudRate
(),
balance
.
getCommand
());
if
(
StringUtils
.
isNotBlank
(
value
)){
return
value
;
}
}
return
""
;
}
return
""
;
}
}
}
src/main/java/com/patzn/cloud/service/lims/soil/service/impl/SoilOriginalTemplateBalanceServiceImpl.java
0 → 100644
View file @
74958735
package
com
.
patzn
.
cloud
.
service
.
lims
.
soil
.
service
.
impl
;
import
com.patzn.cloud.service.lims.soil.mapper.SoilOriginalTemplateBalanceMapper
;
import
com.patzn.cloud.service.lims.soil.service.ISoilOriginalTemplateBalanceService
;
import
com.patzn.cloud.commons.service.impl.BaseServiceImpl
;
import
com.patzn.cloud.service.soil.entity.SoilOriginalTemplateBalance
;
import
org.springframework.stereotype.Service
;
import
com.baomidou.mybatisplus.mapper.EntityWrapper
;
import
com.baomidou.mybatisplus.mapper.Wrapper
;
import
com.baomidou.mybatisplus.plugins.Page
;
import
java.util.List
;
/**
* 服务实现类
*
* @author wwd
* @since 2021-03-16
*/
@Service
public
class
SoilOriginalTemplateBalanceServiceImpl
extends
BaseServiceImpl
<
SoilOriginalTemplateBalanceMapper
,
SoilOriginalTemplateBalance
>
implements
ISoilOriginalTemplateBalanceService
{
@Override
public
Page
<
SoilOriginalTemplateBalance
>
page
(
Page
<
SoilOriginalTemplateBalance
>
page
,
SoilOriginalTemplateBalance
soilOriginalTemplateBalance
)
{
Wrapper
wrapper
=
new
EntityWrapper
<>(
soilOriginalTemplateBalance
);
return
this
.
page
(
page
,
wrapper
);
}
@Override
public
boolean
removeByIds
(
List
<
Long
>
ids
)
{
return
baseMapper
.
deleteBatchIds
(
ids
)
>
0
;
}
}
src/main/resources/mapper/soil/SoilEntrustMapper.xml
View file @
74958735
...
@@ -236,6 +236,8 @@
...
@@ -236,6 +236,8 @@
WHERE e.deleted = 0
WHERE e.deleted = 0
<include
refid=
"sqlWhere"
/>
<include
refid=
"sqlWhere"
/>
ORDER BY e.ctime DESC
</select>
</select>
...
@@ -322,6 +324,7 @@
...
@@ -322,6 +324,7 @@
JOIN soil_entrust e ON t.entrust_id = e.id
JOIN soil_entrust e ON t.entrust_id = e.id
WHERE e.deleted = 0
WHERE e.deleted = 0
<include
refid=
"sqlWhere"
/>
<include
refid=
"sqlWhere"
/>
ORDER BY e.ctime DESC
</select>
</select>
...
@@ -342,6 +345,7 @@
...
@@ -342,6 +345,7 @@
JOIN soil_entrust e ON t.entrust_id = e.id
JOIN soil_entrust e ON t.entrust_id = e.id
WHERE e.deleted = 0
WHERE e.deleted = 0
<include
refid=
"sqlWhere"
/>
<include
refid=
"sqlWhere"
/>
ORDER BY e.ctime DESC
</select>
</select>
...
...
src/main/resources/mapper/soil/SoilOriginalTemplateBalanceMapper.xml
0 → 100644
View file @
74958735
<?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.patzn.cloud.service.lims.soil.mapper.SoilOriginalTemplateBalanceMapper"
>
</mapper>
src/test/java/resources/db_sql/v2.0.2/新增数据表.sql
0 → 100644
View file @
74958735
CREATE
TABLE
"public"
.
"soil_original_template_balance"
(
CREATE
TABLE
"public"
.
"soil_original_template_balance"
(
"id"
int8
NOT
NULL
DEFAULT
NULL
,
"name"
varchar
(
150
)
COLLATE
"pg_catalog"
.
"default"
DEFAULT
NULL
::
character
varying
,
"ip_address"
varchar
(
150
)
COLLATE
"pg_catalog"
.
"default"
DEFAULT
NULL
::
character
varying
,
"com_name"
varchar
(
16
)
COLLATE
"pg_catalog"
.
"default"
DEFAULT
NULL
::
character
varying
,
"baudRate"
int2
DEFAULT
NULL
,
"company_id"
int8
DEFAULT
NULL
,
"deleted"
int2
DEFAULT
0
,
"uid"
int8
DEFAULT
NULL
,
"ctime"
timestamp
(
6
)
DEFAULT
NULL
::
timestamp
without
time
zone
,
"lid"
int8
DEFAULT
NULL
,
"ltime"
timestamp
(
6
)
DEFAULT
NULL
::
timestamp
without
time
zone
,
"command"
varchar
(
150
)
COLLATE
"pg_catalog"
.
"default"
DEFAULT
NULL
::
character
varying
,
"itemed"
int2
DEFAULT
NULL
,
"template_id"
int8
DEFAULT
NULL
)
;
COMMENT
ON
COLUMN
"public"
.
"soil_original_template_balance"
.
"id"
IS
'主键'
;
COMMENT
ON
COLUMN
"public"
.
"soil_original_template_balance"
.
"name"
IS
'天平名称'
;
COMMENT
ON
COLUMN
"public"
.
"soil_original_template_balance"
.
"ip_address"
IS
'IP地址'
;
COMMENT
ON
COLUMN
"public"
.
"soil_original_template_balance"
.
"com_name"
IS
'串口名称'
;
COMMENT
ON
COLUMN
"public"
.
"soil_original_template_balance"
.
"baudRate"
IS
'波特率'
;
COMMENT
ON
COLUMN
"public"
.
"soil_original_template_balance"
.
"company_id"
IS
'企业ID'
;
COMMENT
ON
COLUMN
"public"
.
"soil_original_template_balance"
.
"deleted"
IS
'是否删除0否1是'
;
COMMENT
ON
COLUMN
"public"
.
"soil_original_template_balance"
.
"uid"
IS
'创建人ID'
;
COMMENT
ON
COLUMN
"public"
.
"soil_original_template_balance"
.
"ctime"
IS
'创建时间'
;
COMMENT
ON
COLUMN
"public"
.
"soil_original_template_balance"
.
"lid"
IS
'最后修改人ID'
;
COMMENT
ON
COLUMN
"public"
.
"soil_original_template_balance"
.
"ltime"
IS
'最后修改时间'
;
COMMENT
ON
COLUMN
"public"
.
"soil_original_template_balance"
.
"command"
IS
'采集命令'
;
COMMENT
ON
COLUMN
"public"
.
"soil_original_template_balance"
.
"itemed"
IS
'是否是首选天平'
;
COMMENT
ON
COLUMN
"public"
.
"soil_original_template_balance"
.
"template_id"
IS
'原始记录ID'
;
ALTER
TABLE
"public"
.
"soil_original_template_config"
ADD
COLUMN
"clicked"
int2
DEFAULT
0
;
COMMENT
ON
COLUMN
"public"
.
"soil_original_template_config"
.
"clicked"
IS
'是否需要点击天平'
;
\ 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