Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
R
rebots
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
rebots
Commits
5f1e7669
Commit
5f1e7669
authored
Oct 10, 2023
by
廖旭伟
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
经营性道路货物运输驾驶员从业资格证申领;网络预约出租汽车驾驶员证核发
parent
fca14483
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
804 additions
and
43 deletions
+804
-43
reborts/src/main/java/com/lilosoft/business/rocr/service/project/yibin/DLYSCYZGZHFBDHJService.java
...ss/rocr/service/project/yibin/DLYSCYZGZHFBDHJService.java
+30
-43
reborts/src/main/java/com/lilosoft/business/rocr/service/project/yibin/JYXDLHWYSJSYCYZGZSLBDHJService.java
...service/project/yibin/JYXDLHWYSJSYCYZGZSLBDHJService.java
+373
-0
reborts/src/main/java/com/lilosoft/business/rocr/service/project/yibin/WLYYCZQCJSYZHFBDHJService.java
...rocr/service/project/yibin/WLYYCZQCJSYZHFBDHJService.java
+401
-0
No files found.
reborts/src/main/java/com/lilosoft/business/rocr/service/project/yibin/DLYSCYZGZHFBDHJService.java
View file @
5f1e7669
...
...
@@ -35,8 +35,6 @@ public class DLYSCYZGZHFBDHJService extends BaseProjectService {
@Override
public
void
accept
(
String
fileData
,
RobotCase
rc
)
throws
Exception
{
JSONArray
fileDataArray
=
JSONArray
.
parseArray
(
fileData
);
log
.
info
(
fileData
);
log
.
info
(
JSONObject
.
toJSONString
(
rc
));
Map
<
String
,
Object
>
dests
=
new
HashMap
<>();
String
busiDesc
=
""
;
Map
<
String
,
Object
>
returnMap
=
new
HashMap
<>();
...
...
@@ -117,22 +115,27 @@ public class DLYSCYZGZHFBDHJService extends BaseProjectService {
}
try
{
//身份证应与驾驶证上一致
if
(!
ObjectUtils
.
isEmpty
(
idcardCheckData
)
&&
idcardCheckData
.
size
()
==
1
)
{
boolean
personIdcard
=
false
;
String
textAll
=
driverLicenseCheckData
.
get
(
0
).
get
(
"textAll"
);
for
(
Map
<
String
,
String
>
checkData
:
idcardCheckData
)
{
String
tempName
=
checkData
.
get
(
"name"
).
replaceAll
(
" "
,
""
);
// 身份证上的姓名
if
(!
ObjectUtils
.
isEmpty
(
tempName
)
&&
!
textAll
.
contains
(
tempName
))
{
personIdcard
=
true
;
break
;
if
(!
ObjectUtils
.
isEmpty
(
driverLicenseCheckData
)){
if
(!
ObjectUtils
.
isEmpty
(
idcardCheckData
)
&&
idcardCheckData
.
size
()
==
1
)
{
boolean
personIdcard
=
false
;
String
textAll
=
JSONObject
.
toJSONString
(
driverLicenseCheckData
.
get
(
0
));
for
(
Map
<
String
,
String
>
checkData
:
idcardCheckData
)
{
String
tempName
=
checkData
.
get
(
"name"
).
replaceAll
(
" "
,
""
);
// 身份证上的姓名
if
(
textAll
==
null
){
textAll
=
tempName
;
}
if
(!
ObjectUtils
.
isEmpty
(
tempName
)
&&
textAll
.
contains
(
tempName
))
{
personIdcard
=
true
;
break
;
}
}
if
(!
personIdcard
)
{
isDriverLicenseOk
=
false
;
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
""
,
busiDesc
,
String
.
format
(
"身份证上姓名与驾驶证上不一致!"
,
busiDesc
),
2
));
}
}
if
(!
personIdcard
)
{
isDriverLicenseOk
=
false
;
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
""
,
busiDesc
,
String
.
format
(
"身份证上姓名与驾驶证上不一致!"
,
busiDesc
),
2
));
}
}
}
catch
(
Exception
e
)
{
isDriverLicenseOk
=
false
;
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
""
,
busiDesc
,
String
.
format
(
"识别提取%s失败"
,
busiDesc
),
2
));
...
...
@@ -153,29 +156,7 @@ public class DLYSCYZGZHFBDHJService extends BaseProjectService {
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
""
,
busiDesc
,
String
.
format
(
"识别提取%s失败"
,
busiDesc
),
2
));
log
.
error
(
String
.
format
(
"%s识别验证处理异常!"
,
busiDesc
),
e
);
}
try
{
//身份证应与资格证上一致
if
(!
ObjectUtils
.
isEmpty
(
idcardCheckData
)
&&
idcardCheckData
.
size
()
==
1
)
{
boolean
personIdcard
=
false
;
String
textAll
=
certificateCheckData
.
get
(
0
).
get
(
"textAll"
);
for
(
Map
<
String
,
String
>
checkData
:
idcardCheckData
)
{
String
tempName
=
checkData
.
get
(
"name"
).
replaceAll
(
" "
,
""
);
// 身份证上的姓名
if
(!
ObjectUtils
.
isEmpty
(
tempName
)
&&
!
textAll
.
contains
(
tempName
))
{
personIdcard
=
true
;
break
;
}
}
if
(!
personIdcard
)
{
isCertificateOk
=
false
;
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
""
,
busiDesc
,
String
.
format
(
"身份证上姓名与资格证上不一致!"
,
busiDesc
),
2
));
}
}
}
catch
(
Exception
e
)
{
isCertificateOk
=
false
;
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
""
,
busiDesc
,
String
.
format
(
"识别提取%s失败"
,
busiDesc
),
2
));
log
.
error
(
String
.
format
(
"%s识别验证处理异常!"
,
busiDesc
),
e
);
}
/************************************资格证复印件************************************/
try
{
...
...
@@ -357,9 +338,10 @@ public class DLYSCYZGZHFBDHJService extends BaseProjectService {
driverLicenseCheckData
.
add
(
tempCheckData
);
name
.
add
(
"驾驶证"
);
}
else
if
(
checkDataStr
.
contains
(
"从业资格"
)
&&
checkDataStr
.
contains
(
"经营性"
)
&&
checkDataStr
.
contains
(
"道路"
)){
certificateCheckData
.
add
(
tempCheckData
);
name
.
add
(
"资格证"
);
if
(
name
.
contains
(
"资格证"
)){
if
(
ObjectUtils
.
isEmpty
(
certificateCheckData
))
{
certificateCheckData
.
add
(
tempCheckData
);
name
.
add
(
"资格证"
);
}
else
{
certificateCopyCheckData
.
add
(
tempCheckData
);
name
.
add
(
"资格证复印件"
);
}
...
...
@@ -373,9 +355,10 @@ public class DLYSCYZGZHFBDHJService extends BaseProjectService {
driverLicenseCheckData
.
add
(
tempCheckData
);
name
.
add
(
"驾驶证"
);
}
else
if
(
tempStr
.
contains
(
"从业资格"
)
&&
tempStr
.
contains
(
"经营性"
)
&&
tempStr
.
contains
(
"道路"
)
)
{
//资格证
certificateCheckData
.
add
(
tempCheckData
);
name
.
add
(
"资格证"
);
if
(
name
.
contains
(
"资格证"
)){
if
(
ObjectUtils
.
isEmpty
(
certificateCheckData
))
{
certificateCheckData
.
add
(
tempCheckData
);
name
.
add
(
"资格证"
);
}
else
{
certificateCopyCheckData
.
add
(
tempCheckData
);
name
.
add
(
"资格证复印件"
);
}
...
...
@@ -386,6 +369,10 @@ public class DLYSCYZGZHFBDHJService extends BaseProjectService {
tempCheckData
=
ConvertJsonToMap
.
wordConvertJsonToMap
(
checkData
,
sealImageId
);
idcardCheckData
.
add
(
tempCheckData
);
name
.
add
(
"身份证"
);
}
else
if
(
"js_card"
.
equals
(
code
))
{
//驾驶证
tempCheckData
=
ConvertJsonToMap
.
wordConvertJsonToMap
(
checkData
,
sealImageId
);
driverLicenseCheckData
.
add
(
tempCheckData
);
name
.
add
(
"身份证"
);
}
else
{
name
.
add
(
"其他"
);
}
...
...
reborts/src/main/java/com/lilosoft/business/rocr/service/project/yibin/JYXDLHWYSJSYCYZGZSLBDHJService.java
0 → 100644
View file @
5f1e7669
package
com.lilosoft.business.rocr.service.project.yibin
;
import
cn.hutool.core.bean.BeanUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.lilosoft.business.jdbc.bean.RobotCaseMaterial
;
import
com.lilosoft.business.rocr.api.RobotCaseApi
;
import
com.lilosoft.business.rocr.bean.RobotCase
;
import
com.lilosoft.business.rocr.service.BaseProjectService
;
import
com.lilosoft.business.rocr.utils.ConvertJsonToMap
;
import
com.lilosoft.core.result.JsonResult
;
import
com.lilosoft.core.utils.Base64Helper
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.ObjectUtils
;
import
java.util.*
;
import
java.util.concurrent.atomic.AtomicReference
;
/**
* 经营性道路货物运输驾驶员从业资格证申领(限本地户籍)
*/
@Service
@Transactional
(
readOnly
=
false
)
@Slf4j
public
class
JYXDLHWYSJSYCYZGZSLBDHJService
extends
BaseProjectService
{
@Autowired
public
RobotCaseApi
robotCaseApi
;
@Override
public
void
accept
(
String
fileData
,
RobotCase
rc
)
throws
Exception
{
JSONArray
fileDataArray
=
JSONArray
.
parseArray
(
fileData
);
log
.
info
(
fileData
);
log
.
info
(
JSONObject
.
toJSONString
(
rc
));
Map
<
String
,
Object
>
dests
=
new
HashMap
<>();
String
busiDesc
=
""
;
Map
<
String
,
Object
>
returnMap
=
new
HashMap
<>();
for
(
int
i
=
0
;
i
<
fileDataArray
.
size
();
i
++)
{
String
fileId
=
fileDataArray
.
getJSONObject
(
i
).
getString
(
"fileId"
);
HashMap
<
String
,
Object
>
map
=
robotCaseMaterialService
.
getByFileId
(
fileId
);
if
(
map
!=
null
)
{
returnMap
.
put
(
"fileId"
,
fileId
);
returnMap
.
put
(
"result"
,
map
.
get
(
"jsonData"
));
RobotCaseMaterial
material
=
BeanUtil
.
toBean
(
map
,
RobotCaseMaterial
.
class
);
material
.
setBatchId
(
rc
.
getBatchId
());
material
.
setCaseId
(
rc
.
getId
());
robotCaseMaterialService
.
save
(
material
);
preprocessResult
(
dests
,
returnMap
);
}
}
/************************************判断材料集合是否为空************************************/
try
{
//登记表
List
<
Map
<
String
,
String
>>
petitionCheckData
=
dests
.
get
(
"petitionCheckData"
)
!=
null
?
(
List
)
dests
.
get
(
"petitionCheckData"
)
:
new
ArrayList
<>();
//登记表
//驾驶证
List
<
Map
<
String
,
String
>>
driverLicenseCheckData
=
dests
.
get
(
"driverLicenseCheckData"
)
!=
null
?
(
List
)
dests
.
get
(
"driverLicenseCheckData"
)
:
new
ArrayList
<>();
//驾驶证
//安全驾驶记录
List
<
Map
<
String
,
String
>>
safeDrivingLogCheckData
=
dests
.
get
(
"safeDrivingLogCheckData"
)
!=
null
?
(
List
)
dests
.
get
(
"safeDrivingLogCheckData"
)
:
new
ArrayList
<>();
//资格证原件
//身份证资料识别数据
List
<
Map
<
String
,
String
>>
idcardCheckData
=
dests
.
get
(
"idcardCheckData"
)
!=
null
?
(
List
)
dests
.
get
(
"idcardCheckData"
)
:
new
ArrayList
<>();
//身份证
//登记表是否通过
boolean
isPetitionOk
=
true
;
//驾驶证是否通过
boolean
isDriverLicenseOk
=
true
;
//安全驾驶记录是否通过
boolean
isSafeDrivingOk
=
true
;
//身份证验证结果是否通过
boolean
isIdcardOk
=
true
;
//存放报告结果
List
<
Map
<
String
,
Object
>>
reportList
=
new
ArrayList
<
Map
<
String
,
Object
>>();
//最终的结果报告
List
<
Map
<
String
,
Object
>>
reportResultList
;
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
Map
<
String
,
Object
>
rpaParams
=
new
HashMap
<>();
//rpa、页面表单需要的数据
params
.
put
(
"certificateName"
,
""
);
//资格证姓名
params
.
put
(
"driverName"
,
""
);
//驾驶员姓名
/************************************登记表************************************/
try
{
busiDesc
=
"申领表"
;
if
(
ObjectUtils
.
isEmpty
(
petitionCheckData
))
{
isPetitionOk
=
false
;
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
""
,
busiDesc
,
String
.
format
(
"请提交%s!"
,
busiDesc
),
2
));
}
else
{
isPetitionOk
=
auditSeal
(
busiDesc
,
petitionCheckData
,
reportList
);
}
}
catch
(
Exception
e
)
{
isPetitionOk
=
false
;
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
""
,
busiDesc
,
String
.
format
(
"识别提取%s失败"
,
busiDesc
),
2
));
log
.
error
(
String
.
format
(
"%s识别验证处理异常!"
,
busiDesc
),
e
);
}
/************************************驾驶证************************************/
try
{
busiDesc
=
"驾驶证"
;
if
(
ObjectUtils
.
isEmpty
(
driverLicenseCheckData
))
{
isDriverLicenseOk
=
false
;
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
""
,
busiDesc
,
String
.
format
(
"请提交%s!"
,
busiDesc
),
2
));
}
else
{
//isDriverLicenseOk = auditSeal(busiDesc, driverLicenseCheckData, reportList);
}
}
catch
(
Exception
e
)
{
isDriverLicenseOk
=
false
;
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
""
,
busiDesc
,
String
.
format
(
"识别提取%s失败"
,
busiDesc
),
2
));
log
.
error
(
String
.
format
(
"%s识别验证处理异常!"
,
busiDesc
),
e
);
}
try
{
//身份证应与驾驶证上一致
if
(!
ObjectUtils
.
isEmpty
(
driverLicenseCheckData
))
{
if
(!
ObjectUtils
.
isEmpty
(
idcardCheckData
)
&&
idcardCheckData
.
size
()
==
1
)
{
boolean
personIdcard
=
false
;
String
textAll
=
JSONObject
.
toJSONString
(
driverLicenseCheckData
.
get
(
0
));
for
(
Map
<
String
,
String
>
checkData
:
idcardCheckData
)
{
String
tempName
=
checkData
.
get
(
"name"
).
replaceAll
(
" "
,
""
);
// 身份证上的姓名
if
(
textAll
==
null
)
{
textAll
=
tempName
;
}
if
(!
ObjectUtils
.
isEmpty
(
tempName
)
&&
textAll
.
contains
(
tempName
))
{
personIdcard
=
true
;
break
;
}
}
if
(!
personIdcard
)
{
isDriverLicenseOk
=
false
;
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
""
,
busiDesc
,
String
.
format
(
"身份证上姓名与驾驶证上不一致!"
,
busiDesc
),
2
));
}
}
}
}
catch
(
Exception
e
)
{
isDriverLicenseOk
=
false
;
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
""
,
busiDesc
,
String
.
format
(
"识别提取%s失败"
,
busiDesc
),
2
));
log
.
error
(
String
.
format
(
"%s识别验证处理异常!"
,
busiDesc
),
e
);
}
/************************************安全驾驶记录************************************/
try
{
busiDesc
=
"安全驾驶记录"
;
if
(
ObjectUtils
.
isEmpty
(
safeDrivingLogCheckData
))
{
isSafeDrivingOk
=
false
;
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
""
,
busiDesc
,
String
.
format
(
"请提交%s!"
,
busiDesc
),
2
));
}
else
{
isSafeDrivingOk
=
auditSeal
(
busiDesc
,
safeDrivingLogCheckData
,
reportList
);
}
}
catch
(
Exception
e
)
{
isSafeDrivingOk
=
false
;
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
""
,
busiDesc
,
String
.
format
(
"识别提取%s失败"
,
busiDesc
),
2
));
log
.
error
(
String
.
format
(
"%s识别验证处理异常!"
,
busiDesc
),
e
);
}
/************************************身份证************************************/
try
{
busiDesc
=
"身份证"
;
if
(
ObjectUtils
.
isEmpty
(
idcardCheckData
))
{
isIdcardOk
=
false
;
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
""
,
busiDesc
,
String
.
format
(
"请提交%s!"
,
busiDesc
),
2
));
}
else
{
isIdcardOk
=
auditSeal
(
busiDesc
,
idcardCheckData
,
reportList
);
}
}
catch
(
Exception
e
)
{
isIdcardOk
=
false
;
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
""
,
busiDesc
,
String
.
format
(
"识别提取%s失败"
,
busiDesc
),
2
));
log
.
error
(
String
.
format
(
"%s识别验证处理异常!"
,
busiDesc
),
e
);
}
//全部资料识别验证是否通过
boolean
isOk
=
true
;
if
(
isPetitionOk
)
{
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
petitionCheckData
.
get
(
0
).
get
(
"fileId"
),
"申领表"
,
"初审通过!"
,
0
));
}
else
{
isOk
=
false
;
}
if
(
isDriverLicenseOk
)
{
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
driverLicenseCheckData
.
get
(
0
).
get
(
"fileId"
),
"驾驶证"
,
"初审通过!"
,
0
));
}
else
{
isOk
=
false
;
}
if
(
isSafeDrivingOk
)
{
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
safeDrivingLogCheckData
.
get
(
0
).
get
(
"fileId"
),
"安全驾驶记录"
,
"初审通过!"
,
0
));
}
else
{
isOk
=
false
;
}
if
(
isIdcardOk
)
{
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
idcardCheckData
.
get
(
0
).
get
(
"fileId"
),
"身份证"
,
"初审通过!"
,
0
));
}
else
{
isOk
=
false
;
}
/************************************rpa字段************************************/
Map
<
String
,
Object
>
userData
=
new
HashMap
<>();
rpaParams
.
put
(
"isPrintWord"
,
"false"
);
//是否打印word
userData
.
put
(
"isPrintWord"
,
rpaParams
.
get
(
"isPrintWord"
)
!=
null
?
rpaParams
.
get
(
"isPrintWord"
)
:
"false"
);
//申请单位名称
userData
.
put
(
"companyNameByBusiness"
,
rpaParams
.
get
(
"companyNameByBusiness"
)
!=
null
?
rpaParams
.
get
(
"companyNameByBusiness"
)
:
""
);
//申请单位地址
userData
.
put
(
"address"
,
rpaParams
.
get
(
"address"
)
!=
null
?
rpaParams
.
get
(
"address"
)
:
""
);
//法定代表人
userData
.
put
(
"personNameByBusiness"
,
rpaParams
.
get
(
"personNameByBusiness"
)
!=
null
?
rpaParams
.
get
(
"personNameByBusiness"
)
:
""
);
//法定代表人地址
userData
.
put
(
"personAddress"
,
rpaParams
.
get
(
"personAddress"
)
!=
null
?
rpaParams
.
get
(
"personAddress"
)
:
""
);
//委托人姓名
userData
.
put
(
"agentPersonName"
,
rpaParams
.
get
(
"agentPersonName"
)
!=
null
?
rpaParams
.
get
(
"agentPersonName"
)
:
""
);
//委托人办理
if
(!
rc
.
getName
().
equals
(
params
.
get
(
"personNameByBusiness"
)))
{
//委托人手机号
userData
.
put
(
"agentPersonMobile"
,
rc
.
getPhone
());
}
else
{
//本人手机号
userData
.
put
(
"head_phone"
,
rc
.
getPhone
());
//手机号
}
userData
.
put
(
"projectId"
,
rc
.
getProjectId
());
//事项ID
userData
.
put
(
"batchId"
,
rc
.
getBatchId
());
//机器人办件流水号
userData
.
put
(
"serviceId"
,
rc
.
getServiceId
());
//机器人ID
//获取rpa账号列表
JsonResult
authListResult
=
robotCaseApi
.
getAuthList
(
rc
.
getProjectId
());
List
<
Map
<
String
,
String
>>
authList
=
(
List
)
authListResult
.
getObj
();
if
(
authList
.
size
()
>
0
)
{
Map
<
String
,
String
>
authMap
=
authList
.
get
(
new
Random
().
nextInt
(
authList
.
size
()));
userData
.
put
(
"userName"
,
authMap
.
get
(
"userName"
));
//rap账号用户名
userData
.
put
(
"password"
,
authMap
.
get
(
"password"
));
//rap账号用密码
rc
.
setRpaUrl
(
authMap
.
get
(
"rpaUrl"
));
//rpa接口地址
userData
.
put
(
"rpaUrl"
,
authMap
.
get
(
"rpaUrl"
));
}
else
{
userData
.
put
(
"userName"
,
""
);
userData
.
put
(
"password"
,
""
);
}
logger
.
info
(
"userData==========================="
+
userData
.
toString
());
reportResultList
=
getPubProjectService
().
groupResultInfo
(
reportList
);
//错误消息分组
rc
.
setArtificialType
(
"0"
);
rc
.
setIsSkip
(
"0"
);
rc
.
setIsRpa
(
rc
.
getIsRpa
());
// rc.setPageUrl(serverUrl + "lilo/aiCase/skipSanitationRegister?pageUrl=rpaForm/sichuan/web/ZPSZXKAJ_New");//页面跳转路径
logger
.
info
(
"Base64Helper----------"
+
Base64Helper
.
encode
(
JSON
.
toJSONString
(
userData
).
getBytes
()),
"UTF-8"
);
rc
.
setRpaData
(
Base64Helper
.
encode
(
JSON
.
toJSONString
(
userData
).
getBytes
()));
getPubProjectService
().
genCaseResult
(
reportResultList
,
rc
,
isOk
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"经营性道路货物运输驾驶员从业资格证申领资料识别最终结果验证处理异常!"
,
e
);
getPubProjectService
().
genCaseResult
(
null
,
rc
,
false
);
}
}
/**
* 数据解析预处理
* @param dests
* @param result
*/
public
void
preprocessResult
(
Map
<
String
,
Object
>
dests
,
Map
<
String
,
Object
>
result
){
//驾驶证
if
(
dests
.
get
(
"driverLicenseCheckData"
)
==
null
){
dests
.
put
(
"driverLicenseCheckData"
,
new
ArrayList
<>());
}
//申请书
if
(
dests
.
get
(
"petitionCheckData"
)
==
null
){
dests
.
put
(
"petitionCheckData"
,
new
ArrayList
<>());
}
//身份证
if
(
dests
.
get
(
"idcardCheckData"
)
==
null
){
dests
.
put
(
"idcardCheckData"
,
new
ArrayList
<>());
}
//安全驾驶记录
if
(
dests
.
get
(
"safeDrivingLogCheckData"
)
==
null
){
dests
.
put
(
"safeDrivingLogCheckData"
,
new
ArrayList
<>());
}
List
<
Map
<
String
,
String
>>
driverLicenseCheckData
=
(
List
)
dests
.
get
(
"driverLicenseCheckData"
);
//驾驶证
List
<
Map
<
String
,
String
>>
petitionCheckData
=
(
List
)
dests
.
get
(
"petitionCheckData"
);
//申请书
List
<
Map
<
String
,
String
>>
idcardCheckData
=
(
List
)
dests
.
get
(
"idcardCheckData"
);
//身份证
List
<
Map
<
String
,
String
>>
safeDrivingLogCheckData
=
(
List
)
dests
.
get
(
"safeDrivingLogCheckData"
);
//安全驾驶记录
/************************************调用orc接口************************************/
String
fileId
=
result
.
get
(
"fileId"
).
toString
();
String
resultJSONStr
=
result
.
get
(
"result"
)
==
null
?
""
:
result
.
get
(
"result"
).
toString
();
resultJSONStr
=
resultJSONStr
.
replaceAll
(
" "
,
""
);
if
(
StringUtils
.
isNotEmpty
(
resultJSONStr
))
{
log
.
info
(
"fileId:"
+
fileId
);
JSONObject
resultJSON
=
JSONObject
.
parseObject
(
resultJSONStr
);
log
.
info
(
"resultJSONStr:"
+
resultJSONStr
);
if
(
resultJSON
!=
null
&&
StringUtils
.
isNotEmpty
(
resultJSON
.
getString
(
"status"
))
&&
resultJSON
.
getIntValue
(
"status"
)
==
200
)
{
JSONArray
datas
=
resultJSON
.
getJSONArray
(
"data"
);
String
sealImageId
=
resultJSON
.
getString
(
"sealImageId"
);
List
<
String
>
name
=
new
ArrayList
<>();
dests
.
put
(
"artificialType"
,
"0"
);
for
(
Object
data
:
datas
)
{
String
checkDataStr
=
JSON
.
toJSONString
(
data
);
JSONObject
checkData
=
JSONObject
.
parseObject
(
checkDataStr
);
if
(
checkData
!=
null
)
{
Map
<
String
,
String
>
tempCheckData
=
new
HashMap
<>();
tempCheckData
.
put
(
"fileId"
,
fileId
);
String
code
=
checkData
.
getString
(
"code"
);
//表格类
if
(
"table"
.
equals
(
code
))
{
tempCheckData
=
ConvertJsonToMap
.
tableConvertJsonToMap
(
checkData
,
sealImageId
);
if
(
checkDataStr
.
contains
(
"经营性道路货物运输驾驶员"
)
&&
checkDataStr
.
contains
(
"从业资格证"
))
{
petitionCheckData
.
add
(
tempCheckData
);
name
.
add
(
"经营性道路货物运输驾驶员从业资格证登记表申领表"
);
}
else
if
(
checkDataStr
.
contains
(
"中华人民共和国机动车驾驶证"
)){
driverLicenseCheckData
.
add
(
tempCheckData
);
name
.
add
(
"驾驶证"
);
}
else
if
(
checkDataStr
.
contains
(
"机动车驾驶人"
)
&&
checkDataStr
.
contains
(
"安全驾驶记录"
)){
safeDrivingLogCheckData
.
add
(
tempCheckData
);
name
.
add
(
"安全驾驶记录"
);
}
else
{
name
.
add
(
"其他"
);
}
}
else
if
(
"text"
.
equals
(
code
))
{
//文书类
tempCheckData
=
ConvertJsonToMap
.
textConvertJsonToMap
(
checkData
,
sealImageId
);
String
tempStr
=
tempCheckData
.
get
(
"textAll"
);
if
(
tempStr
.
contains
(
"机动车"
)
&&
tempStr
.
contains
(
"驾驶证"
)
||
tempStr
.
contains
(
"驾驶证副页"
))
{
//驾驶证
driverLicenseCheckData
.
add
(
tempCheckData
);
name
.
add
(
"驾驶证"
);
}
else
if
(
tempStr
.
contains
(
"机动车驾驶人"
)
&&
tempStr
.
contains
(
"安全驾驶记录"
)
)
{
//安全驾驶记录
safeDrivingLogCheckData
.
add
(
tempCheckData
);
name
.
add
(
"安全驾驶记录"
);
}
else
{
name
.
add
(
"其他"
);
}
}
else
if
(
"idcard"
.
equals
(
code
))
{
//身份证
tempCheckData
=
ConvertJsonToMap
.
wordConvertJsonToMap
(
checkData
,
sealImageId
);
idcardCheckData
.
add
(
tempCheckData
);
name
.
add
(
"身份证"
);
}
else
if
(
"js_card"
.
equals
(
code
))
{
//驾驶证
tempCheckData
=
ConvertJsonToMap
.
wordConvertJsonToMap
(
checkData
,
sealImageId
);
driverLicenseCheckData
.
add
(
tempCheckData
);
name
.
add
(
"身份证"
);
}
else
{
name
.
add
(
"其他"
);
}
tempCheckData
.
put
(
"fileId"
,
fileId
);
tempCheckData
.
put
(
"sealImageId"
,
sealImageId
);
}
else
{
logger
.
error
(
"该图片送检分析失败!文件id为:"
+
fileId
);
}
}
}
else
{
logger
.
error
(
"该图片送检分析失败!文件id为:"
+
fileId
);
}
}
else
{
logger
.
error
(
"该图片送检分析失败!文件id为:"
+
fileId
);
}
}
private
boolean
auditSeal
(
String
busiDesc
,
List
<
Map
<
String
,
String
>>
checkData
,
List
<
Map
<
String
,
Object
>>
reportList
)
{
boolean
isApplyFormOk
=
true
;
AtomicReference
<
Boolean
>
isGZ
=
new
AtomicReference
<>(
false
);
checkData
.
forEach
(
signboardData
->
{
String
sealImageId
=
signboardData
.
get
(
"sealImageId"
);
JSONObject
json
=
robotOcrApi
.
approvalSeal
(
sealImageId
);
String
hasJCBGSeal
=
json
.
getString
(
"message"
);
String
officialSeal
=
json
.
getString
(
"officialSeal"
);
if
(
"SUCCESS"
.
equals
(
hasJCBGSeal
))
//
isGZ
.
set
(
true
);
});
if
(!
isGZ
.
get
())
{
isApplyFormOk
=
false
;
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
""
,
busiDesc
,
String
.
format
(
"%s未加盖公章!"
,
busiDesc
),
2
));
}
return
isApplyFormOk
;
}
}
reborts/src/main/java/com/lilosoft/business/rocr/service/project/yibin/WLYYCZQCJSYZHFBDHJService.java
0 → 100644
View file @
5f1e7669
package
com.lilosoft.business.rocr.service.project.yibin
;
import
cn.hutool.core.bean.BeanUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.lilosoft.business.jdbc.bean.RobotCaseMaterial
;
import
com.lilosoft.business.rocr.api.RobotCaseApi
;
import
com.lilosoft.business.rocr.bean.RobotCase
;
import
com.lilosoft.business.rocr.service.BaseProjectService
;
import
com.lilosoft.business.rocr.utils.ConvertJsonToMap
;
import
com.lilosoft.core.result.JsonResult
;
import
com.lilosoft.core.utils.Base64Helper
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.ObjectUtils
;
import
java.util.*
;
import
java.util.concurrent.atomic.AtomicReference
;
/**
* 网络预约出租汽车驾驶员证核发(限本地户籍)
*/
@Service
@Transactional
(
readOnly
=
false
)
@Slf4j
public
class
WLYYCZQCJSYZHFBDHJService
extends
BaseProjectService
{
@Autowired
public
RobotCaseApi
robotCaseApi
;
@Override
public
void
accept
(
String
fileData
,
RobotCase
rc
)
throws
Exception
{
JSONArray
fileDataArray
=
JSONArray
.
parseArray
(
fileData
);
log
.
info
(
fileData
);
log
.
info
(
JSONObject
.
toJSONString
(
rc
));
Map
<
String
,
Object
>
dests
=
new
HashMap
<>();
String
busiDesc
=
""
;
Map
<
String
,
Object
>
returnMap
=
new
HashMap
<>();
for
(
int
i
=
0
;
i
<
fileDataArray
.
size
();
i
++)
{
String
fileId
=
fileDataArray
.
getJSONObject
(
i
).
getString
(
"fileId"
);
HashMap
<
String
,
Object
>
map
=
robotCaseMaterialService
.
getByFileId
(
fileId
);
if
(
map
!=
null
)
{
returnMap
.
put
(
"fileId"
,
fileId
);
returnMap
.
put
(
"result"
,
map
.
get
(
"jsonData"
));
RobotCaseMaterial
material
=
BeanUtil
.
toBean
(
map
,
RobotCaseMaterial
.
class
);
material
.
setBatchId
(
rc
.
getBatchId
());
material
.
setCaseId
(
rc
.
getId
());
robotCaseMaterialService
.
save
(
material
);
preprocessResult
(
dests
,
returnMap
);
}
}
/************************************判断材料集合是否为空************************************/
try
{
//登记表
List
<
Map
<
String
,
String
>>
petitionCheckData
=
dests
.
get
(
"petitionCheckData"
)
!=
null
?
(
List
)
dests
.
get
(
"petitionCheckData"
)
:
new
ArrayList
<>();
//登记表
//驾驶证
List
<
Map
<
String
,
String
>>
driverLicenseCheckData
=
dests
.
get
(
"driverLicenseCheckData"
)
!=
null
?
(
List
)
dests
.
get
(
"driverLicenseCheckData"
)
:
new
ArrayList
<>();
//驾驶证
//巡游驾驶员证
List
<
Map
<
String
,
String
>>
patrolDriverCheckData
=
dests
.
get
(
"patrolDriverCheckData"
)
!=
null
?
(
List
)
dests
.
get
(
"patrolDriverCheckData"
)
:
new
ArrayList
<>();
//资格证原件
//身份证资料识别数据
List
<
Map
<
String
,
String
>>
idcardCheckData
=
dests
.
get
(
"idcardCheckData"
)
!=
null
?
(
List
)
dests
.
get
(
"idcardCheckData"
)
:
new
ArrayList
<>();
//身份证
//登记表是否通过
boolean
isPetitionOk
=
true
;
//驾驶证是否通过
boolean
isDriverLicenseOk
=
true
;
//巡游驾驶员证是否通过
boolean
isPatrolDriverOk
=
true
;
//身份证验证结果是否通过
boolean
isIdcardOk
=
true
;
//存放报告结果
List
<
Map
<
String
,
Object
>>
reportList
=
new
ArrayList
<
Map
<
String
,
Object
>>();
//最终的结果报告
List
<
Map
<
String
,
Object
>>
reportResultList
;
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
Map
<
String
,
Object
>
rpaParams
=
new
HashMap
<>();
//rpa、页面表单需要的数据
params
.
put
(
"certificateName"
,
""
);
//资格证姓名
params
.
put
(
"driverName"
,
""
);
//驾驶员姓名
/************************************登记表************************************/
try
{
busiDesc
=
"申领表"
;
if
(
ObjectUtils
.
isEmpty
(
petitionCheckData
))
{
isPetitionOk
=
false
;
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
""
,
busiDesc
,
String
.
format
(
"请提交%s!"
,
busiDesc
),
2
));
}
else
{
isPetitionOk
=
auditSeal
(
busiDesc
,
petitionCheckData
,
reportList
);
}
}
catch
(
Exception
e
)
{
isPetitionOk
=
false
;
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
""
,
busiDesc
,
String
.
format
(
"识别提取%s失败"
,
busiDesc
),
2
));
log
.
error
(
String
.
format
(
"%s识别验证处理异常!"
,
busiDesc
),
e
);
}
/************************************驾驶证************************************/
try
{
busiDesc
=
"驾驶证"
;
if
(
ObjectUtils
.
isEmpty
(
driverLicenseCheckData
))
{
isDriverLicenseOk
=
false
;
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
""
,
busiDesc
,
String
.
format
(
"请提交%s!"
,
busiDesc
),
2
));
}
else
{
//isDriverLicenseOk = auditSeal(busiDesc, driverLicenseCheckData, reportList);
}
}
catch
(
Exception
e
)
{
isDriverLicenseOk
=
false
;
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
""
,
busiDesc
,
String
.
format
(
"识别提取%s失败"
,
busiDesc
),
2
));
log
.
error
(
String
.
format
(
"%s识别验证处理异常!"
,
busiDesc
),
e
);
}
try
{
//身份证应与驾驶证上一致
if
(!
ObjectUtils
.
isEmpty
(
driverLicenseCheckData
))
{
if
(!
ObjectUtils
.
isEmpty
(
driverLicenseCheckData
))
{
if
(!
ObjectUtils
.
isEmpty
(
idcardCheckData
)
&&
idcardCheckData
.
size
()
==
1
)
{
boolean
personIdcard
=
false
;
String
textAll
=
JSONObject
.
toJSONString
(
driverLicenseCheckData
.
get
(
0
));
for
(
Map
<
String
,
String
>
checkData
:
idcardCheckData
)
{
String
tempName
=
checkData
.
get
(
"name"
).
replaceAll
(
" "
,
""
);
// 身份证上的姓名
if
(
textAll
==
null
)
{
textAll
=
tempName
;
}
if
(!
ObjectUtils
.
isEmpty
(
tempName
)
&&
!
textAll
.
contains
(
tempName
))
{
personIdcard
=
true
;
break
;
}
}
if
(!
personIdcard
)
{
isDriverLicenseOk
=
false
;
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
""
,
busiDesc
,
String
.
format
(
"身份证上姓名与驾驶证上不一致!"
,
busiDesc
),
2
));
}
}
}
}
}
catch
(
Exception
e
)
{
isDriverLicenseOk
=
false
;
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
""
,
busiDesc
,
String
.
format
(
"识别提取%s失败"
,
busiDesc
),
2
));
log
.
error
(
String
.
format
(
"%s识别验证处理异常!"
,
busiDesc
),
e
);
}
/************************************巡游驾驶员证************************************/
try
{
busiDesc
=
"巡游驾驶员证"
;
if
(
ObjectUtils
.
isEmpty
(
patrolDriverCheckData
))
{
isPatrolDriverOk
=
false
;
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
""
,
busiDesc
,
String
.
format
(
"请提交%s!"
,
busiDesc
),
2
));
}
else
{
isPatrolDriverOk
=
auditSeal
(
busiDesc
,
patrolDriverCheckData
,
reportList
);
}
}
catch
(
Exception
e
)
{
isPatrolDriverOk
=
false
;
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
""
,
busiDesc
,
String
.
format
(
"识别提取%s失败"
,
busiDesc
),
2
));
log
.
error
(
String
.
format
(
"%s识别验证处理异常!"
,
busiDesc
),
e
);
}
try
{
//身份证应与巡游驾驶员证一致
if
(!
ObjectUtils
.
isEmpty
(
driverLicenseCheckData
))
{
if
(!
ObjectUtils
.
isEmpty
(
idcardCheckData
)
&&
idcardCheckData
.
size
()
==
1
)
{
boolean
personIdcard
=
false
;
String
textAll
=
JSONObject
.
toJSONString
(
patrolDriverCheckData
.
get
(
0
));
for
(
Map
<
String
,
String
>
checkData
:
idcardCheckData
)
{
String
tempName
=
checkData
.
get
(
"name"
).
replaceAll
(
" "
,
""
);
// 身份证上的姓名
if
(
textAll
==
null
)
{
textAll
=
tempName
;
}
if
(!
ObjectUtils
.
isEmpty
(
tempName
)
&&
!
textAll
.
contains
(
tempName
))
{
personIdcard
=
true
;
break
;
}
}
if
(!
personIdcard
)
{
isPatrolDriverOk
=
false
;
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
""
,
busiDesc
,
String
.
format
(
"身份证上姓名与巡游驾驶员证上不一致!"
,
busiDesc
),
2
));
}
}
}
}
catch
(
Exception
e
)
{
isPatrolDriverOk
=
false
;
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
""
,
busiDesc
,
String
.
format
(
"识别提取%s失败"
,
busiDesc
),
2
));
log
.
error
(
String
.
format
(
"%s识别验证处理异常!"
,
busiDesc
),
e
);
}
/************************************身份证************************************/
try
{
busiDesc
=
"身份证"
;
if
(
ObjectUtils
.
isEmpty
(
idcardCheckData
))
{
isIdcardOk
=
false
;
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
""
,
busiDesc
,
String
.
format
(
"请提交%s!"
,
busiDesc
),
2
));
}
else
{
isIdcardOk
=
auditSeal
(
busiDesc
,
idcardCheckData
,
reportList
);
}
}
catch
(
Exception
e
)
{
isIdcardOk
=
false
;
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
""
,
busiDesc
,
String
.
format
(
"识别提取%s失败"
,
busiDesc
),
2
));
log
.
error
(
String
.
format
(
"%s识别验证处理异常!"
,
busiDesc
),
e
);
}
//全部资料识别验证是否通过
boolean
isOk
=
true
;
if
(
isPetitionOk
)
{
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
petitionCheckData
.
get
(
0
).
get
(
"fileId"
),
"申领表"
,
"初审通过!"
,
0
));
}
else
{
isOk
=
false
;
}
if
(
isDriverLicenseOk
)
{
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
driverLicenseCheckData
.
get
(
0
).
get
(
"fileId"
),
"驾驶证"
,
"初审通过!"
,
0
));
}
else
{
isOk
=
false
;
}
if
(
isPatrolDriverOk
)
{
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
patrolDriverCheckData
.
get
(
0
).
get
(
"fileId"
),
"巡游驾驶员证"
,
"初审通过!"
,
0
));
}
else
{
isOk
=
false
;
}
if
(
isIdcardOk
)
{
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
idcardCheckData
.
get
(
0
).
get
(
"fileId"
),
"身份证"
,
"初审通过!"
,
0
));
}
else
{
isOk
=
false
;
}
/************************************rpa字段************************************/
Map
<
String
,
Object
>
userData
=
new
HashMap
<>();
rpaParams
.
put
(
"isPrintWord"
,
"false"
);
//是否打印word
userData
.
put
(
"isPrintWord"
,
rpaParams
.
get
(
"isPrintWord"
)
!=
null
?
rpaParams
.
get
(
"isPrintWord"
)
:
"false"
);
//申请单位名称
userData
.
put
(
"companyNameByBusiness"
,
rpaParams
.
get
(
"companyNameByBusiness"
)
!=
null
?
rpaParams
.
get
(
"companyNameByBusiness"
)
:
""
);
//申请单位地址
userData
.
put
(
"address"
,
rpaParams
.
get
(
"address"
)
!=
null
?
rpaParams
.
get
(
"address"
)
:
""
);
//法定代表人
userData
.
put
(
"personNameByBusiness"
,
rpaParams
.
get
(
"personNameByBusiness"
)
!=
null
?
rpaParams
.
get
(
"personNameByBusiness"
)
:
""
);
//法定代表人地址
userData
.
put
(
"personAddress"
,
rpaParams
.
get
(
"personAddress"
)
!=
null
?
rpaParams
.
get
(
"personAddress"
)
:
""
);
//委托人姓名
userData
.
put
(
"agentPersonName"
,
rpaParams
.
get
(
"agentPersonName"
)
!=
null
?
rpaParams
.
get
(
"agentPersonName"
)
:
""
);
//委托人办理
if
(!
rc
.
getName
().
equals
(
params
.
get
(
"personNameByBusiness"
)))
{
//委托人手机号
userData
.
put
(
"agentPersonMobile"
,
rc
.
getPhone
());
}
else
{
//本人手机号
userData
.
put
(
"head_phone"
,
rc
.
getPhone
());
//手机号
}
userData
.
put
(
"projectId"
,
rc
.
getProjectId
());
//事项ID
userData
.
put
(
"batchId"
,
rc
.
getBatchId
());
//机器人办件流水号
userData
.
put
(
"serviceId"
,
rc
.
getServiceId
());
//机器人ID
//获取rpa账号列表
JsonResult
authListResult
=
robotCaseApi
.
getAuthList
(
rc
.
getProjectId
());
List
<
Map
<
String
,
String
>>
authList
=
(
List
)
authListResult
.
getObj
();
if
(
authList
.
size
()
>
0
)
{
Map
<
String
,
String
>
authMap
=
authList
.
get
(
new
Random
().
nextInt
(
authList
.
size
()));
userData
.
put
(
"userName"
,
authMap
.
get
(
"userName"
));
//rap账号用户名
userData
.
put
(
"password"
,
authMap
.
get
(
"password"
));
//rap账号用密码
rc
.
setRpaUrl
(
authMap
.
get
(
"rpaUrl"
));
//rpa接口地址
userData
.
put
(
"rpaUrl"
,
authMap
.
get
(
"rpaUrl"
));
}
else
{
userData
.
put
(
"userName"
,
""
);
userData
.
put
(
"password"
,
""
);
}
logger
.
info
(
"userData==========================="
+
userData
.
toString
());
reportResultList
=
getPubProjectService
().
groupResultInfo
(
reportList
);
//错误消息分组
rc
.
setArtificialType
(
"0"
);
rc
.
setIsSkip
(
"0"
);
rc
.
setIsRpa
(
rc
.
getIsRpa
());
// rc.setPageUrl(serverUrl + "lilo/aiCase/skipSanitationRegister?pageUrl=rpaForm/sichuan/web/ZPSZXKAJ_New");//页面跳转路径
logger
.
info
(
"Base64Helper----------"
+
Base64Helper
.
encode
(
JSON
.
toJSONString
(
userData
).
getBytes
()),
"UTF-8"
);
rc
.
setRpaData
(
Base64Helper
.
encode
(
JSON
.
toJSONString
(
userData
).
getBytes
()));
getPubProjectService
().
genCaseResult
(
reportResultList
,
rc
,
isOk
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"经营性道路货物运输驾驶员从业资格证申领资料识别最终结果验证处理异常!"
,
e
);
getPubProjectService
().
genCaseResult
(
null
,
rc
,
false
);
}
}
/**
* 数据解析预处理
* @param dests
* @param result
*/
public
void
preprocessResult
(
Map
<
String
,
Object
>
dests
,
Map
<
String
,
Object
>
result
){
//驾驶证
if
(
dests
.
get
(
"driverLicenseCheckData"
)
==
null
){
dests
.
put
(
"driverLicenseCheckData"
,
new
ArrayList
<>());
}
//申请书
if
(
dests
.
get
(
"petitionCheckData"
)
==
null
){
dests
.
put
(
"petitionCheckData"
,
new
ArrayList
<>());
}
//身份证
if
(
dests
.
get
(
"idcardCheckData"
)
==
null
){
dests
.
put
(
"idcardCheckData"
,
new
ArrayList
<>());
}
//巡游驾驶员证
if
(
dests
.
get
(
"patrolDriverCheckData"
)
==
null
){
dests
.
put
(
"patrolDriverCheckData"
,
new
ArrayList
<>());
}
List
<
Map
<
String
,
String
>>
driverLicenseCheckData
=
(
List
)
dests
.
get
(
"driverLicenseCheckData"
);
//驾驶证
List
<
Map
<
String
,
String
>>
petitionCheckData
=
(
List
)
dests
.
get
(
"petitionCheckData"
);
//申请书
List
<
Map
<
String
,
String
>>
idcardCheckData
=
(
List
)
dests
.
get
(
"idcardCheckData"
);
//身份证
List
<
Map
<
String
,
String
>>
patrolDriverCheckData
=
(
List
)
dests
.
get
(
"patrolDriverCheckData"
);
//巡游驾驶员证
/************************************调用orc接口************************************/
String
fileId
=
result
.
get
(
"fileId"
).
toString
();
String
resultJSONStr
=
result
.
get
(
"result"
)
==
null
?
""
:
result
.
get
(
"result"
).
toString
();
resultJSONStr
=
resultJSONStr
.
replaceAll
(
" "
,
""
);
if
(
StringUtils
.
isNotEmpty
(
resultJSONStr
))
{
log
.
info
(
"fileId:"
+
fileId
);
JSONObject
resultJSON
=
JSONObject
.
parseObject
(
resultJSONStr
);
log
.
info
(
"resultJSONStr:"
+
resultJSONStr
);
if
(
resultJSON
!=
null
&&
StringUtils
.
isNotEmpty
(
resultJSON
.
getString
(
"status"
))
&&
resultJSON
.
getIntValue
(
"status"
)
==
200
)
{
JSONArray
datas
=
resultJSON
.
getJSONArray
(
"data"
);
String
sealImageId
=
resultJSON
.
getString
(
"sealImageId"
);
List
<
String
>
name
=
new
ArrayList
<>();
dests
.
put
(
"artificialType"
,
"0"
);
for
(
Object
data
:
datas
)
{
String
checkDataStr
=
JSON
.
toJSONString
(
data
);
JSONObject
checkData
=
JSONObject
.
parseObject
(
checkDataStr
);
if
(
checkData
!=
null
)
{
Map
<
String
,
String
>
tempCheckData
=
new
HashMap
<>();
tempCheckData
.
put
(
"fileId"
,
fileId
);
String
code
=
checkData
.
getString
(
"code"
);
//表格类
if
(
"table"
.
equals
(
code
))
{
tempCheckData
=
ConvertJsonToMap
.
tableConvertJsonToMap
(
checkData
,
sealImageId
);
if
(
checkDataStr
.
contains
(
"经营性道路货物运输驾驶员"
)
&&
checkDataStr
.
contains
(
"从业资格证"
))
{
petitionCheckData
.
add
(
tempCheckData
);
name
.
add
(
"经营性道路货物运输驾驶员从业资格证登记表申领表"
);
}
else
if
(
checkDataStr
.
contains
(
"中华人民共和国机动车驾驶证"
)){
driverLicenseCheckData
.
add
(
tempCheckData
);
name
.
add
(
"驾驶证"
);
}
else
if
(
checkDataStr
.
contains
(
"发证机关"
)
&&
checkDataStr
.
contains
(
"二维码区"
)
&&
checkDataStr
.
contains
(
"准驾车型"
)){
patrolDriverCheckData
.
add
(
tempCheckData
);
name
.
add
(
"巡游驾驶员证"
);
}
else
{
name
.
add
(
"其他"
);
}
}
else
if
(
"text"
.
equals
(
code
))
{
//文书类
tempCheckData
=
ConvertJsonToMap
.
textConvertJsonToMap
(
checkData
,
sealImageId
);
String
tempStr
=
tempCheckData
.
get
(
"textAll"
);
if
(
tempStr
.
contains
(
"机动车"
)
&&
tempStr
.
contains
(
"驾驶证"
)
||
tempStr
.
contains
(
"驾驶证副页"
))
{
//驾驶证
driverLicenseCheckData
.
add
(
tempCheckData
);
name
.
add
(
"驾驶证"
);
}
else
if
(
tempStr
.
contains
(
"发证机关"
)
&&
tempStr
.
contains
(
"二维码区"
)
)
{
//巡游驾驶员证
patrolDriverCheckData
.
add
(
tempCheckData
);
name
.
add
(
"巡游驾驶员证"
);
}
else
{
name
.
add
(
"其他"
);
}
}
else
if
(
"idcard"
.
equals
(
code
))
{
//身份证
tempCheckData
=
ConvertJsonToMap
.
wordConvertJsonToMap
(
checkData
,
sealImageId
);
idcardCheckData
.
add
(
tempCheckData
);
name
.
add
(
"身份证"
);
}
else
if
(
"js_card"
.
equals
(
code
))
{
//驾驶证
tempCheckData
=
ConvertJsonToMap
.
wordConvertJsonToMap
(
checkData
,
sealImageId
);
driverLicenseCheckData
.
add
(
tempCheckData
);
name
.
add
(
"身份证"
);
}
else
{
name
.
add
(
"其他"
);
}
tempCheckData
.
put
(
"fileId"
,
fileId
);
tempCheckData
.
put
(
"sealImageId"
,
sealImageId
);
}
else
{
logger
.
error
(
"该图片送检分析失败!文件id为:"
+
fileId
);
}
}
}
else
{
logger
.
error
(
"该图片送检分析失败!文件id为:"
+
fileId
);
}
}
else
{
logger
.
error
(
"该图片送检分析失败!文件id为:"
+
fileId
);
}
}
private
boolean
auditSeal
(
String
busiDesc
,
List
<
Map
<
String
,
String
>>
checkData
,
List
<
Map
<
String
,
Object
>>
reportList
)
{
boolean
isApplyFormOk
=
true
;
AtomicReference
<
Boolean
>
isGZ
=
new
AtomicReference
<>(
false
);
checkData
.
forEach
(
signboardData
->
{
String
sealImageId
=
signboardData
.
get
(
"sealImageId"
);
JSONObject
json
=
robotOcrApi
.
approvalSeal
(
sealImageId
);
String
hasJCBGSeal
=
json
.
getString
(
"message"
);
String
officialSeal
=
json
.
getString
(
"officialSeal"
);
if
(
"SUCCESS"
.
equals
(
hasJCBGSeal
))
//
isGZ
.
set
(
true
);
});
if
(!
isGZ
.
get
())
{
isApplyFormOk
=
false
;
reportList
.
add
(
getPubProjectService
().
createResultInfo
(
""
,
busiDesc
,
String
.
format
(
"%s未加盖公章!"
,
busiDesc
),
2
));
}
return
isApplyFormOk
;
}
}
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