Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
9d1cece5
提交
9d1cece5
authored
7月 02, 2024
作者:
杨启发
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
磅单OCR识别接口
上级
c22e344a
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
222 行增加
和
1 行删除
+222
-1
OcrRecognitionParam.java
...va/com/clx/performance/param/app/OcrRecognitionParam.java
+26
-0
OcrRecognitionResultVO.java
...va/com/clx/performance/vo/app/OcrRecognitionResultVO.java
+21
-0
pom.xml
performance-web/pom.xml
+10
-1
AppDriverOrderChildController.java
...ormance/controller/app/AppDriverOrderChildController.java
+6
-0
OcrRecognitionDao.java
.../main/java/com/clx/performance/dao/OcrRecognitionDao.java
+11
-0
OcrRecognitionDaoImpl.java
...a/com/clx/performance/dao/impl/OcrRecognitionDaoImpl.java
+15
-0
OcrRecognitionMapper.java
...java/com/clx/performance/mapper/OcrRecognitionMapper.java
+10
-0
OcrRecognition.java
...c/main/java/com/clx/performance/model/OcrRecognition.java
+65
-0
OrderChildService.java
...n/java/com/clx/performance/service/OrderChildService.java
+2
-0
OrderChildServiceImpl.java
...m/clx/performance/service/impl/OrderChildServiceImpl.java
+56
-0
没有找到文件。
performance-api/src/main/java/com/clx/performance/param/app/OcrRecognitionParam.java
0 → 100644
浏览文件 @
9d1cece5
package
com
.
clx
.
performance
.
param
.
app
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
javax.validation.constraints.NotBlank
;
/**
* @author yangqifa
*/
@Getter
@Setter
@NoArgsConstructor
public
class
OcrRecognitionParam
{
@ApiModelProperty
(
value
=
"运单编号"
,
example
=
"100000000"
)
@NotBlank
(
message
=
"运单编号不能为空"
)
private
String
childNo
;
@ApiModelProperty
(
value
=
"磅单图片url"
)
@NotBlank
(
message
=
"磅单图片url不能为空"
)
private
String
imageUrl
;
}
performance-api/src/main/java/com/clx/performance/vo/app/OcrRecognitionResultVO.java
0 → 100644
浏览文件 @
9d1cece5
package
com
.
clx
.
performance
.
vo
.
app
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
lombok.ToString
;
/**
* @author yangqifa
*/
@Getter
@Setter
@ToString
@NoArgsConstructor
public
class
OcrRecognitionResultVO
{
@ApiModelProperty
(
value
=
"毛重"
,
example
=
"48.36"
)
private
Double
grossWeight
;
@ApiModelProperty
(
value
=
"皮重"
,
example
=
"16.32"
)
private
Double
tareWeight
;
}
performance-web/pom.xml
浏览文件 @
9d1cece5
...
@@ -319,7 +319,16 @@
...
@@ -319,7 +319,16 @@
<version>
2.0.0-beta7
</version>
<version>
2.0.0-beta7
</version>
</dependency>
</dependency>
<dependency>
<groupId>
com.tencentcloudapi
</groupId>
<artifactId>
tencentcloud-sdk-java-common
</artifactId>
<version>
LATEST
</version>
</dependency>
<dependency>
<groupId>
com.tencentcloudapi
</groupId>
<artifactId>
tencentcloud-sdk-java-ocr
</artifactId>
<version>
LATEST
</version>
</dependency>
</dependencies>
</dependencies>
...
...
performance-web/src/main/java/com/clx/performance/controller/app/AppDriverOrderChildController.java
浏览文件 @
9d1cece5
...
@@ -189,4 +189,10 @@ public class AppDriverOrderChildController {
...
@@ -189,4 +189,10 @@ public class AppDriverOrderChildController {
return
Result
.
page
(
page
.
getRecords
(),
page
.
getTotal
(),
page
.
getPages
());
return
Result
.
page
(
page
.
getRecords
(),
page
.
getTotal
(),
page
.
getPages
());
}
}
@ApiOperation
(
value
=
"磅单OCR识别"
,
notes
=
"<br>By:杨启发"
)
@PostMapping
(
"/ocrRecognition"
)
public
Result
<
OcrRecognitionResultVO
>
ocrRecognition
(
@RequestBody
@Validated
OcrRecognitionParam
param
)
{
return
Result
.
ok
(
orderChildService
.
ocrRecognition
(
param
));
}
}
}
performance-web/src/main/java/com/clx/performance/dao/OcrRecognitionDao.java
0 → 100644
浏览文件 @
9d1cece5
package
com
.
clx
.
performance
.
dao
;
import
com.clx.performance.mapper.OcrRecognitionMapper
;
import
com.clx.performance.model.OcrRecognition
;
import
com.msl.common.dao.BaseDao
;
/**
* @author yangqifa
*/
public
interface
OcrRecognitionDao
extends
BaseDao
<
OcrRecognitionMapper
,
OcrRecognition
,
Integer
>
{
}
performance-web/src/main/java/com/clx/performance/dao/impl/OcrRecognitionDaoImpl.java
0 → 100644
浏览文件 @
9d1cece5
package
com
.
clx
.
performance
.
dao
.
impl
;
import
com.clx.performance.dao.OcrRecognitionDao
;
import
com.clx.performance.mapper.OcrRecognitionMapper
;
import
com.clx.performance.model.OcrRecognition
;
import
com.msl.common.dao.impl.BaseDaoImpl
;
import
org.springframework.stereotype.Repository
;
/**
* @author yangqifa
*/
@Repository
public
class
OcrRecognitionDaoImpl
extends
BaseDaoImpl
<
OcrRecognitionMapper
,
OcrRecognition
,
Integer
>
implements
OcrRecognitionDao
{
}
performance-web/src/main/java/com/clx/performance/mapper/OcrRecognitionMapper.java
0 → 100644
浏览文件 @
9d1cece5
package
com
.
clx
.
performance
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.clx.performance.model.OcrRecognition
;
/**
* @author yangqifa
*/
public
interface
OcrRecognitionMapper
extends
BaseMapper
<
OcrRecognition
>
{
}
performance-web/src/main/java/com/clx/performance/model/OcrRecognition.java
0 → 100644
浏览文件 @
9d1cece5
package
com
.
clx
.
performance
.
model
;
import
com.msl.common.config.KeyColumn
;
import
com.msl.common.model.HasKey
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.util.Date
;
import
lombok.Data
;
/**
* @author yangqifa
*/
@Data
public
class
OcrRecognition
implements
HasKey
<
Integer
>
{
/**
* 主键ID
*/
@ApiModelProperty
(
value
=
"主键ID"
)
private
Integer
id
;
/**
* 运单编号
*/
@ApiModelProperty
(
value
=
"运单编号"
)
private
String
childNo
;
/**
* 磅单图片url
*/
@ApiModelProperty
(
value
=
"磅单图片url"
)
private
String
imageUrl
;
/**
* 毛重
*/
@ApiModelProperty
(
value
=
"毛重"
)
private
Double
grossWeight
;
/**
* 皮重
*/
@ApiModelProperty
(
value
=
"皮重"
)
private
Double
tareWeight
;
/**
* 创建时间
*/
@ApiModelProperty
(
value
=
"创建时间"
)
private
Date
createdTime
;
/**
* 更新时间
*/
@ApiModelProperty
(
value
=
"更新时间"
)
private
Date
modifiedTime
;
@KeyColumn
(
"id"
)
@Override
public
Integer
gainKey
()
{
return
id
;
}
}
\ No newline at end of file
performance-web/src/main/java/com/clx/performance/service/OrderChildService.java
浏览文件 @
9d1cece5
...
@@ -99,4 +99,6 @@ public interface OrderChildService {
...
@@ -99,4 +99,6 @@ public interface OrderChildService {
Integer
getOrderChildCheck
(
OrderChildCheckParam
param
);
Integer
getOrderChildCheck
(
OrderChildCheckParam
param
);
void
cancelOrderChilds
(
CancelOrderGoodsParam
param
);
void
cancelOrderChilds
(
CancelOrderGoodsParam
param
);
OcrRecognitionResultVO
ocrRecognition
(
OcrRecognitionParam
param
);
}
}
performance-web/src/main/java/com/clx/performance/service/impl/OrderChildServiceImpl.java
浏览文件 @
9d1cece5
...
@@ -71,15 +71,24 @@ import com.msl.common.utils.LocalDateTimeUtils;
...
@@ -71,15 +71,24 @@ import com.msl.common.utils.LocalDateTimeUtils;
import
com.msl.common.utils.gps.GpsUtil
;
import
com.msl.common.utils.gps.GpsUtil
;
import
com.msl.user.data.UserSessionData
;
import
com.msl.user.data.UserSessionData
;
import
com.msl.user.utils.TokenUtil
;
import
com.msl.user.utils.TokenUtil
;
import
com.tencentcloudapi.common.Credential
;
import
com.tencentcloudapi.common.exception.TencentCloudSDKException
;
import
com.tencentcloudapi.ocr.v20181119.OcrClient
;
import
com.tencentcloudapi.ocr.v20181119.models.GroupInfo
;
import
com.tencentcloudapi.ocr.v20181119.models.ItemInfo
;
import
com.tencentcloudapi.ocr.v20181119.models.SmartStructuralOCRV2Request
;
import
com.tencentcloudapi.ocr.v20181119.models.SmartStructuralOCRV2Response
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.ArrayUtils
;
import
org.apache.commons.lang.ArrayUtils
;
import
org.apache.commons.lang.exception.ExceptionUtils
;
import
org.apache.commons.lang.exception.ExceptionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.math.NumberUtils
;
import
org.redisson.api.RLock
;
import
org.redisson.api.RLock
;
import
org.redisson.api.RedissonClient
;
import
org.redisson.api.RedissonClient
;
import
org.springframework.amqp.core.AmqpTemplate
;
import
org.springframework.amqp.core.AmqpTemplate
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
...
@@ -102,6 +111,12 @@ import java.util.stream.Collectors;
...
@@ -102,6 +111,12 @@ import java.util.stream.Collectors;
@Slf4j
@Slf4j
@Service
@Service
public
class
OrderChildServiceImpl
implements
OrderChildService
{
public
class
OrderChildServiceImpl
implements
OrderChildService
{
@Value
(
"${tencentcloudapi.credential.secretId}"
)
private
String
secretId
;
@Value
(
"${tencentcloudapi.credential.secretKey}"
)
private
String
secretKey
;
@Autowired
@Autowired
private
AmqpTemplate
rabbitTemplate
;
private
AmqpTemplate
rabbitTemplate
;
@Autowired
@Autowired
...
@@ -206,6 +221,10 @@ public class OrderChildServiceImpl implements OrderChildService {
...
@@ -206,6 +221,10 @@ public class OrderChildServiceImpl implements OrderChildService {
@Autowired
@Autowired
private
QuotationService
quotationService
;
private
QuotationService
quotationService
;
@Autowired
private
OcrRecognitionDao
ocrRecognitionDao
;
@Override
@Override
public
SaveOrderChildVO
saveOrderChild
(
OrderChildSaveParam
param
)
{
public
SaveOrderChildVO
saveOrderChild
(
OrderChildSaveParam
param
)
{
...
@@ -2709,4 +2728,41 @@ public class OrderChildServiceImpl implements OrderChildService {
...
@@ -2709,4 +2728,41 @@ public class OrderChildServiceImpl implements OrderChildService {
}
}
}
}
}
}
@Override
public
OcrRecognitionResultVO
ocrRecognition
(
OcrRecognitionParam
param
)
{
OcrRecognitionResultVO
vo
=
new
OcrRecognitionResultVO
();
try
{
Credential
cred
=
new
Credential
(
secretId
,
secretKey
);
OcrClient
client
=
new
OcrClient
(
cred
,
"ap-beijing"
);
String
[]
itemNames
=
{
"毛重"
,
"皮重"
};
SmartStructuralOCRV2Request
req
=
new
SmartStructuralOCRV2Request
();
req
.
setImageUrl
(
param
.
getImageUrl
());
req
.
setItemNames
(
itemNames
);
SmartStructuralOCRV2Response
resp
=
client
.
SmartStructuralOCRV2
(
req
);
for
(
GroupInfo
groupInfo
:
resp
.
getStructuralList
())
{
ItemInfo
itemInfo
=
groupInfo
.
getGroups
()[
0
].
getLines
()[
0
];
String
autoName
=
itemInfo
.
getKey
().
getAutoName
();
String
autoContent
=
itemInfo
.
getValue
().
getAutoContent
();
if
(
NumberUtils
.
isCreatable
(
autoContent
))
{
if
(
"毛重"
.
equals
(
autoName
))
{
vo
.
setGrossWeight
(
Double
.
valueOf
(
autoContent
));
}
else
if
(
"皮重"
.
equals
(
autoName
))
{
vo
.
setTareWeight
(
Double
.
valueOf
(
autoContent
));
}
}
}
//保存识别结果
OcrRecognition
ocrRecognition
=
new
OcrRecognition
();
ocrRecognition
.
setChildNo
(
param
.
getChildNo
());
ocrRecognition
.
setImageUrl
(
param
.
getImageUrl
());
ocrRecognition
.
setGrossWeight
(
vo
.
getGrossWeight
());
ocrRecognition
.
setTareWeight
(
vo
.
getTareWeight
());
ocrRecognitionDao
.
saveEntity
(
ocrRecognition
);
}
catch
(
TencentCloudSDKException
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
}
return
vo
;
}
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论