Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
device-back
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
1
议题
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Matrix
device-back
Commits
f1ba6600
提交
f1ba6600
authored
12月 21, 2022
作者:
zjm
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(上链信息): 添加了清退、丢失、退役、报废销毁等业务等上链验证接口
添加了清退、丢失、退役、报废销毁等业务等上链验证接口
上级
338c7f77
隐藏空白字符变更
内嵌
并排
正在显示
18 个修改的文件
包含
569 行增加
和
24 行删除
+569
-24
pom.xml
dev-decommissioning/pom.xml
+6
-0
DecommissioningQueryController.java
...missioning/controller/DecommissioningQueryController.java
+23
-0
DeviceDecommissioningDetailService.java
...issioning/service/DeviceDecommissioningDetailService.java
+8
-0
DeviceDecommissioningDetailServiceImpl.java
.../service/impl/DeviceDecommissioningDetailServiceImpl.java
+98
-12
DeviceDestroyQueryController.java
...vice/destroy/controller/DeviceDestroyQueryController.java
+23
-0
pom.xml
dev-loss/pom.xml
+6
-0
DeviceLossSelectController.java
...ev/device/loss/controller/DeviceLossSelectController.java
+23
-0
DeviceLoss.java
...va/com/tykj/dev/device/loss/entity/domain/DeviceLoss.java
+6
-0
DeviceLossService.java
...a/com/tykj/dev/device/loss/service/DeviceLossService.java
+4
-0
DeviceLossServiceImpl.java
...j/dev/device/loss/service/impl/DeviceLossServiceImpl.java
+121
-11
pom.xml
dev-scrap/pom.xml
+5
-0
ScrapQueryController.java
...ykj/dev/device/scrap/controller/ScrapQueryController.java
+26
-0
ScrapService.java
.../java/com/tykj/dev/device/scrap/service/ScrapService.java
+5
-0
ScrapBillServiceImpl.java
...j/dev/device/scrap/service/impl/ScrapBillServiceImpl.java
+2
-0
ScrapServiceImpl.java
.../tykj/dev/device/scrap/service/impl/ScrapServiceImpl.java
+102
-0
pom.xml
dev-sendback/pom.xml
+6
-0
DeviceRepelDetailService.java
...dev/device/sendback/service/DeviceRepelDetailService.java
+4
-0
DeviceRepelDetailServiceImpl.java
...e/sendback/service/impl/DeviceRepelDetailServiceImpl.java
+101
-1
没有找到文件。
dev-decommissioning/pom.xml
浏览文件 @
f1ba6600
...
@@ -34,6 +34,12 @@
...
@@ -34,6 +34,12 @@
<artifactId>
dev-apply
</artifactId>
<artifactId>
dev-apply
</artifactId>
</dependency>
</dependency>
<dependency>
<groupId>
com.tykj
</groupId>
<artifactId>
dev-block
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<dependency>
<groupId>
com.tykj
</groupId>
<groupId>
com.tykj
</groupId>
<artifactId>
dev-file
</artifactId>
<artifactId>
dev-file
</artifactId>
...
...
dev-decommissioning/src/main/java/com/tykj/dev/device/decommissioning/controller/DecommissioningQueryController.java
浏览文件 @
f1ba6600
...
@@ -3,6 +3,7 @@ package com.tykj.dev.device.decommissioning.controller;
...
@@ -3,6 +3,7 @@ package com.tykj.dev.device.decommissioning.controller;
import
com.tykj.dev.config.swagger.AutoDocument
;
import
com.tykj.dev.config.swagger.AutoDocument
;
import
com.tykj.dev.device.decommissioning.entity.vo.DecommissioningSelectVo
;
import
com.tykj.dev.device.decommissioning.entity.vo.DecommissioningSelectVo
;
import
com.tykj.dev.device.decommissioning.entity.vo.RepelManagementVo
;
import
com.tykj.dev.device.decommissioning.entity.vo.RepelManagementVo
;
import
com.tykj.dev.device.decommissioning.service.DeviceDecommissioningDetailService
;
import
com.tykj.dev.device.decommissioning.service.DeviceDecommissioningQueryService
;
import
com.tykj.dev.device.decommissioning.service.DeviceDecommissioningQueryService
;
import
com.tykj.dev.device.library.repository.DeviceLibraryDao
;
import
com.tykj.dev.device.library.repository.DeviceLibraryDao
;
import
com.tykj.dev.device.library.service.DeviceLibraryService
;
import
com.tykj.dev.device.library.service.DeviceLibraryService
;
...
@@ -41,6 +42,9 @@ public class DecommissioningQueryController {
...
@@ -41,6 +42,9 @@ public class DecommissioningQueryController {
@Autowired
@Autowired
PackingLibraryService
packingLibraryService
;
PackingLibraryService
packingLibraryService
;
@Autowired
DeviceDecommissioningDetailService
deviceDecommissioningDetailService
;
/**
/**
* 查询退役中办任务
* 查询退役中办任务
*/
*/
...
@@ -136,4 +140,23 @@ public class DecommissioningQueryController {
...
@@ -136,4 +140,23 @@ public class DecommissioningQueryController {
public
ResponseEntity
repelFileMap
(
@PathVariable
Integer
taskId
){
public
ResponseEntity
repelFileMap
(
@PathVariable
Integer
taskId
){
return
ResponseEntity
.
ok
(
deviceDecommissioningQueryService
.
findByTaskIdToFileMapList
(
taskId
));
return
ResponseEntity
.
ok
(
deviceDecommissioningQueryService
.
findByTaskIdToFileMapList
(
taskId
));
}
}
/**
* 区块验证
*/
@GetMapping
(
value
=
"/repel/checkTrueData/{billId}"
)
@ApiOperation
(
value
=
"根据业务id进行对应业务的验证"
,
notes
=
"根据业务id进行对应业务的验证"
)
public
ResponseEntity
checkTrueData
(
@PathVariable
Integer
billId
){
return
ResponseEntity
.
ok
(
deviceDecommissioningDetailService
.
checkTrueData
(
billId
));
}
/**
* 区块溯源
*/
@GetMapping
(
value
=
"/repel/checkTrueData/{billId}"
)
@ApiOperation
(
value
=
"根据业务id进行对应业务的溯源"
,
notes
=
"根据业务id进行对应业务的溯源"
)
public
ResponseEntity
traceabilityParsing
(
@PathVariable
Integer
billId
){
return
ResponseEntity
.
ok
(
deviceDecommissioningDetailService
.
traceabilityParsing
(
billId
));
}
}
}
dev-decommissioning/src/main/java/com/tykj/dev/device/decommissioning/service/DeviceDecommissioningDetailService.java
浏览文件 @
f1ba6600
package
com
.
tykj
.
dev
.
device
.
decommissioning
.
service
;
package
com
.
tykj
.
dev
.
device
.
decommissioning
.
service
;
import
com.tykj.dev.device.block.entity.vo.BlockTraceabilityParsing
;
import
com.tykj.dev.device.decommissioning.entity.DeviceDecommissioningDetail
;
import
com.tykj.dev.device.decommissioning.entity.DeviceDecommissioningDetail
;
import
com.tykj.dev.device.decommissioning.entity.vo.DecommissioningSelectVo
;
import
com.tykj.dev.device.decommissioning.entity.vo.DecommissioningSelectVo
;
import
com.tykj.dev.device.file.entity.FileRet
;
import
com.tykj.dev.device.file.entity.FileRet
;
...
@@ -45,4 +46,11 @@ public interface DeviceDecommissioningDetailService {
...
@@ -45,4 +46,11 @@ public interface DeviceDecommissioningDetailService {
Map
<
String
,
List
<
FileRet
>>
findByIdToFileMapList
(
Integer
id
);
Map
<
String
,
List
<
FileRet
>>
findByIdToFileMapList
(
Integer
id
);
boolean
checkTrueData
(
Integer
billId
);
BlockTraceabilityParsing
traceabilityParsing
(
Integer
billId
);
}
}
dev-decommissioning/src/main/java/com/tykj/dev/device/decommissioning/service/impl/DeviceDecommissioningDetailServiceImpl.java
浏览文件 @
f1ba6600
package
com
.
tykj
.
dev
.
device
.
decommissioning
.
service
.
impl
;
package
com
.
tykj
.
dev
.
device
.
decommissioning
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.serializer.SerializerFeature
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.github.wenhao.jpa.PredicateBuilder
;
import
com.github.wenhao.jpa.PredicateBuilder
;
import
com.github.wenhao.jpa.Specifications
;
import
com.github.wenhao.jpa.Specifications
;
import
com.tykj.dev.blockcha.subject.service.BlockChainUtil
;
import
com.tykj.dev.blockcha.subject.service.BlockChainUtil
;
import
com.tykj.dev.config.base.FileName
;
import
com.tykj.dev.config.base.FileName
;
import
com.tykj.dev.device.block.entity.BlockData
;
import
com.tykj.dev.device.block.entity.bc.BcRecord
;
import
com.tykj.dev.device.block.entity.vo.BlockTraceabilityParsing
;
import
com.tykj.dev.device.block.entity.vo.TraceabilityParsingData
;
import
com.tykj.dev.device.block.service.BlockDataService
;
import
com.tykj.dev.device.block.service.BlockService
;
import
com.tykj.dev.device.decommissioning.entity.DeviceDecommissioningDetail
;
import
com.tykj.dev.device.decommissioning.entity.DeviceDecommissioningDetail
;
import
com.tykj.dev.device.decommissioning.entity.vo.DecommissioningSelectVo
;
import
com.tykj.dev.device.decommissioning.entity.vo.DecommissioningSelectVo
;
import
com.tykj.dev.device.decommissioning.repository.DeviceDecommissioningDetailDao
;
import
com.tykj.dev.device.decommissioning.repository.DeviceDecommissioningDetailDao
;
...
@@ -14,10 +22,13 @@ import com.tykj.dev.device.file.service.FilesUtil;
...
@@ -14,10 +22,13 @@ import com.tykj.dev.device.file.service.FilesUtil;
import
com.tykj.dev.device.library.repository.DeviceLibraryDao
;
import
com.tykj.dev.device.library.repository.DeviceLibraryDao
;
import
com.tykj.dev.device.library.subject.domin.DeviceLibrary
;
import
com.tykj.dev.device.library.subject.domin.DeviceLibrary
;
import
com.tykj.dev.device.library.subject.vo.ScriptSaveVo
;
import
com.tykj.dev.device.library.subject.vo.ScriptSaveVo
;
import
com.tykj.dev.misc.base.BlockBusinessEnum
;
import
com.tykj.dev.misc.base.BusinessEnum
;
import
com.tykj.dev.misc.base.StatusEnum
;
import
com.tykj.dev.misc.base.StatusEnum
;
import
com.tykj.dev.misc.exception.ApiException
;
import
com.tykj.dev.misc.exception.ApiException
;
import
com.tykj.dev.misc.utils.DeviceSeqUtil
;
import
com.tykj.dev.misc.utils.DeviceSeqUtil
;
import
com.tykj.dev.misc.utils.JacksonUtil
;
import
com.tykj.dev.misc.utils.JacksonUtil
;
import
com.tykj.dev.misc.utils.StringSplitUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Page
;
...
@@ -46,23 +57,20 @@ public class DeviceDecommissioningDetailServiceImpl implements DeviceDecommissio
...
@@ -46,23 +57,20 @@ public class DeviceDecommissioningDetailServiceImpl implements DeviceDecommissio
@Autowired
@Autowired
DeviceLibraryDao
deviceLibraryDao
;
DeviceLibraryDao
deviceLibraryDao
;
@Autowired
BlockService
blockService
;
@Autowired
@Autowired
BlockChainUtil
blockChainUtil
;
BlockDataService
blockDataService
;
@Override
@Override
public
DeviceDecommissioningDetail
saveDeviceDecommissioningDetail
(
DeviceDecommissioningDetail
deviceDecommissioningDetail
)
{
public
DeviceDecommissioningDetail
saveDeviceDecommissioningDetail
(
DeviceDecommissioningDetail
deviceDecommissioningDetail
)
{
// log.info("[清退] 详情添加成功");
// log.info("[清退] 详情添加成功");
CompletableFuture
.
runAsync
(()->
{
DeviceDecommissioningDetail
save
=
deviceDecommissioningDetailDao
.
save
(
deviceDecommissioningDetail
);
if
(
deviceDecommissioningDetail
.
getRecordId
()
==
null
||
deviceDecommissioningDetail
.
getRecordId
().
equals
(
""
))
{
sendText
(
save
.
getId
());
deviceDecommissioningDetail
.
setRecordId
(
blockChainUtil
.
sendText
(
1000
,
JacksonUtil
.
toJSon
(
deviceDecommissioningDetail
)).
getData
().
getRecordID
());
return
save
;
deviceDecommissioningDetailDao
.
save
(
deviceDecommissioningDetail
);
log
.
info
(
"[退役]上链数据时间本次"
);
}
else
{
deviceDecommissioningDetail
.
setRecordId
(
blockChainUtil
.
appendText
(
JacksonUtil
.
toJSon
(
deviceDecommissioningDetail
),
deviceDecommissioningDetail
.
getRecordId
()).
getData
().
getRecordID
());
deviceDecommissioningDetailDao
.
save
(
deviceDecommissioningDetail
);
}
});
return
deviceDecommissioningDetailDao
.
save
(
deviceDecommissioningDetail
);
}
}
@Override
@Override
...
@@ -175,4 +183,82 @@ public class DeviceDecommissioningDetailServiceImpl implements DeviceDecommissio
...
@@ -175,4 +183,82 @@ public class DeviceDecommissioningDetailServiceImpl implements DeviceDecommissio
}
}
/**
* 验证接口
*/
@Override
public
BlockTraceabilityParsing
traceabilityParsing
(
Integer
billId
)
{
BlockData
billTypeAndBillId
=
blockDataService
.
findBillTypeAndBillId
(
BusinessEnum
.
DESTROY
.
id
,
billId
);
BcRecord
bcRecord
=
blockService
.
fetchRecord
(
BlockBusinessEnum
.
DESTROY
.
subCode
,
billTypeAndBillId
.
getRecordID
());
DeviceDecommissioningDetail
deviceDecommissioningDetail
=
queryDeviceDecommissioningDetail
(
billId
);
DeviceDecommissioningDetail
deviceDecommissioningDetail1
=
JSON
.
parseObject
(
bcRecord
.
getData
().
getContent
(),
DeviceDecommissioningDetail
.
class
);
BlockTraceabilityParsing
blockTraceabilityParsing
=
bcRecord
.
getData
().
toBlockTraceabilityParsing
();
blockTraceabilityParsing
.
setBusinessTraceabilityParsingData
(
TraceabilityParsingData
.
builder
()
.
billTypeName
(
"退役"
)
.
carrierIds
(
StringSplitUtil
.
stringListToString
(
deviceDecommissioningDetail
.
getScripts
().
stream
().
map
(
ScriptSaveVo:
:
getSeqNumber
).
collect
(
Collectors
.
toList
())))
.
unitName
(
deviceDecommissioningDetail
.
getSendUnit
())
.
documentNo
(
deviceDecommissioningDetail
.
getNum
())
.
operationTime
(
deviceDecommissioningDetail
.
getSendTime
())
.
operatorUserName
(
operatorName
(
deviceDecommissioningDetail
))
.
build
());
blockTraceabilityParsing
.
setBlockTraceabilityParsingData
(
TraceabilityParsingData
.
builder
()
.
billTypeName
(
"退役"
)
.
carrierIds
(
StringSplitUtil
.
stringListToString
(
deviceDecommissioningDetail1
.
getScripts
().
stream
().
map
(
ScriptSaveVo:
:
getSeqNumber
).
collect
(
Collectors
.
toList
())))
.
unitName
(
deviceDecommissioningDetail1
.
getSendUnit
())
.
documentNo
(
deviceDecommissioningDetail1
.
getNum
())
.
operationTime
(
deviceDecommissioningDetail1
.
getSendTime
())
.
operatorUserName
(
operatorName
(
deviceDecommissioningDetail1
))
.
build
());
blockTraceabilityParsing
.
setBlockData
(
deviceDecommissioningDetail1
);
blockTraceabilityParsing
.
setCurrentData
(
deviceDecommissioningDetail
);
return
blockTraceabilityParsing
;
}
private
String
operatorName
(
DeviceDecommissioningDetail
deviceDecommissioningDetail
)
{
StringBuffer
buf
=
new
StringBuffer
();
buf
.
append
(
deviceDecommissioningDetail
.
getSenderUserA
())
.
append
(
","
)
.
append
(
deviceDecommissioningDetail
.
getSenderUserB
())
.
append
(
","
)
.
append
(
deviceDecommissioningDetail
.
getReceiveUserA
())
.
append
(
","
)
.
append
(
deviceDecommissioningDetail
.
getReceiveUserB
());
return
buf
.
toString
();
}
//验真
@Override
public
boolean
checkTrueData
(
Integer
billId
)
{
BlockTraceabilityParsing
blockTraceabilityParsing
=
traceabilityParsing
(
billId
);
boolean
contrast
=
blockDataService
.
contrast
(
blockTraceabilityParsing
);
return
contrast
;
}
/**
* 上链接口
*/
public
void
sendText
(
Integer
id
){
DeviceDecommissioningDetail
deviceDecommissioningDetail
=
queryDeviceDecommissioningDetail
(
id
);
blockService
.
sendText
(
BlockBusinessEnum
.
DECOMMISSIONING
.
subCode
,
JSON
.
toJSONStringWithDateFormat
(
deviceDecommissioningDetail
,
"yyyy-MM-dd HH:mm:ss"
,
SerializerFeature
.
WriteDateUseDateFormat
),
BusinessEnum
.
DECOMMISSIONING
.
id
,
id
,
deviceDecommissioningDetail
.
getSendUnit
());
}
public
DeviceDecommissioningDetail
queryDeviceDecommissioningDetail
(
Integer
decommissioningId
)
{
Optional
<
DeviceDecommissioningDetail
>
optional
=
deviceDecommissioningDetailDao
.
findById
(
decommissioningId
);
if
(
optional
.
isPresent
()){
DeviceDecommissioningDetail
deviceDecommissioningDetail
=
optional
.
get
();
deviceDecommissioningDetail
.
setScripts
(
JacksonUtil
.
readValue
(
deviceDecommissioningDetail
.
getScriptJson
(),
new
TypeReference
<
List
<
ScriptSaveVo
>>()
{
}));
deviceDecommissioningDetail
.
setScriptJson
(
null
);
return
deviceDecommissioningDetail
;
}
else
{
log
.
info
(
"[退役] 详情查看错误,id没有找到{}"
,
decommissioningId
);
throw
new
ApiException
(
ResponseEntity
.
status
(
500
).
body
(
"退役详情id没有找到:"
+
decommissioningId
));
}
}
}
}
dev-destroy/src/main/java/com/tykj/dev/device/destroy/controller/DeviceDestroyQueryController.java
浏览文件 @
f1ba6600
...
@@ -2,6 +2,7 @@ package com.tykj.dev.device.destroy.controller;
...
@@ -2,6 +2,7 @@ package com.tykj.dev.device.destroy.controller;
import
com.tykj.dev.config.swagger.AutoDocument
;
import
com.tykj.dev.config.swagger.AutoDocument
;
import
com.tykj.dev.device.destroy.entity.vo.DestroySelectVo
;
import
com.tykj.dev.device.destroy.entity.vo.DestroySelectVo
;
import
com.tykj.dev.device.destroy.service.DeviceDestroyBillService
;
import
com.tykj.dev.device.destroy.service.DeviceDestroyQueryService
;
import
com.tykj.dev.device.destroy.service.DeviceDestroyQueryService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
...
@@ -20,6 +21,9 @@ public class DeviceDestroyQueryController {
...
@@ -20,6 +21,9 @@ public class DeviceDestroyQueryController {
@Autowired
@Autowired
DeviceDestroyQueryService
deviceDestroyQueryService
;
DeviceDestroyQueryService
deviceDestroyQueryService
;
@Autowired
DeviceDestroyBillService
deviceDestroyBillService
;
/**
/**
* 根据任务id查询销毁业务
* 根据任务id查询销毁业务
*/
*/
...
@@ -52,4 +56,23 @@ public class DeviceDestroyQueryController {
...
@@ -52,4 +56,23 @@ public class DeviceDestroyQueryController {
public
ResponseEntity
repelFileMap
(
@PathVariable
Integer
taskId
){
public
ResponseEntity
repelFileMap
(
@PathVariable
Integer
taskId
){
return
ResponseEntity
.
ok
(
deviceDestroyQueryService
.
findByTaskIdToFileMapList
(
taskId
));
return
ResponseEntity
.
ok
(
deviceDestroyQueryService
.
findByTaskIdToFileMapList
(
taskId
));
}
}
/**
* 区块验证
*/
@GetMapping
(
value
=
"/checkTrueData/{billId}"
)
@ApiOperation
(
value
=
"根据业务id进行对应业务的验证"
,
notes
=
"根据业务id进行对应业务的验证"
)
public
ResponseEntity
checkTrueData
(
@PathVariable
Integer
billId
){
return
ResponseEntity
.
ok
(
deviceDestroyBillService
.
checkTrueData
(
billId
));
}
/**
* 区块溯源
*/
@GetMapping
(
value
=
"/checkTrueData/{billId}"
)
@ApiOperation
(
value
=
"根据业务id进行对应业务的溯源"
,
notes
=
"根据业务id进行对应业务的溯源"
)
public
ResponseEntity
traceabilityParsing
(
@PathVariable
Integer
billId
){
return
ResponseEntity
.
ok
(
deviceDestroyBillService
.
traceabilityParsing
(
billId
));
}
}
}
dev-loss/pom.xml
浏览文件 @
f1ba6600
...
@@ -38,6 +38,12 @@
...
@@ -38,6 +38,12 @@
<artifactId>
dev-file
</artifactId>
<artifactId>
dev-file
</artifactId>
</dependency>
</dependency>
<dependency>
<groupId>
com.tykj
</groupId>
<artifactId>
dev-block
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<dependency>
<groupId>
com.tykj.dev
</groupId>
<groupId>
com.tykj.dev
</groupId>
<artifactId>
config
</artifactId>
<artifactId>
config
</artifactId>
...
...
dev-loss/src/main/java/com/tykj/dev/device/loss/controller/DeviceLossSelectController.java
浏览文件 @
f1ba6600
package
com
.
tykj
.
dev
.
device
.
loss
.
controller
;
package
com
.
tykj
.
dev
.
device
.
loss
.
controller
;
import
com.tykj.dev.config.swagger.AutoDocument
;
import
com.tykj.dev.config.swagger.AutoDocument
;
import
com.tykj.dev.device.loss.service.DeviceLossService
;
import
com.tykj.dev.device.loss.service.LossBillSelectService
;
import
com.tykj.dev.device.loss.service.LossBillSelectService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
...
@@ -26,12 +27,34 @@ public class DeviceLossSelectController {
...
@@ -26,12 +27,34 @@ public class DeviceLossSelectController {
@Autowired
@Autowired
LossBillSelectService
lossBillSelectService
;
LossBillSelectService
lossBillSelectService
;
@Autowired
DeviceLossService
deviceLossService
;
@GetMapping
(
value
=
"/findDeviceLoss/{taskId}"
)
@GetMapping
(
value
=
"/findDeviceLoss/{taskId}"
)
@ApiOperation
(
value
=
"上报上级单位确认接口"
,
notes
=
"上报上级单位确认接口"
)
@ApiOperation
(
value
=
"上报上级单位确认接口"
,
notes
=
"上报上级单位确认接口"
)
public
ResponseEntity
initiateLoss
(
@PathVariable
Integer
taskId
){
public
ResponseEntity
initiateLoss
(
@PathVariable
Integer
taskId
){
return
ResponseEntity
.
ok
(
lossBillSelectService
.
findDeviceLoss
(
taskId
));
return
ResponseEntity
.
ok
(
lossBillSelectService
.
findDeviceLoss
(
taskId
));
}
}
/**
* 区块验证
*/
@GetMapping
(
value
=
"/checkTrueData/{billId}"
)
@ApiOperation
(
value
=
"根据业务id进行对应业务的验证"
,
notes
=
"根据业务id进行对应业务的验证"
)
public
ResponseEntity
checkTrueData
(
@PathVariable
Integer
billId
){
return
ResponseEntity
.
ok
(
deviceLossService
.
checkTrueData
(
billId
));
}
/**
* 区块溯源
*/
@GetMapping
(
value
=
"/checkTrueData/{billId}"
)
@ApiOperation
(
value
=
"根据业务id进行对应业务的溯源"
,
notes
=
"根据业务id进行对应业务的溯源"
)
public
ResponseEntity
traceabilityParsing
(
@PathVariable
Integer
billId
){
return
ResponseEntity
.
ok
(
deviceLossService
.
traceabilityParsing
(
billId
));
}
}
}
dev-loss/src/main/java/com/tykj/dev/device/loss/entity/domain/DeviceLoss.java
浏览文件 @
f1ba6600
...
@@ -13,6 +13,7 @@ import javax.persistence.Column;
...
@@ -13,6 +13,7 @@ import javax.persistence.Column;
import
javax.persistence.Entity
;
import
javax.persistence.Entity
;
import
javax.persistence.EntityListeners
;
import
javax.persistence.EntityListeners
;
import
javax.persistence.Transient
;
import
javax.persistence.Transient
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
/**
/**
...
@@ -34,6 +35,11 @@ public class DeviceLoss extends BaseEntity {
...
@@ -34,6 +35,11 @@ public class DeviceLoss extends BaseEntity {
*/
*/
@ApiModelProperty
(
value
=
"类型 1。丢失 2。找回"
)
@ApiModelProperty
(
value
=
"类型 1。丢失 2。找回"
)
private
Integer
type
;
private
Integer
type
;
@ApiModelProperty
private
Date
lossDate
;
/**
/**
* 发起单位id
* 发起单位id
*/
*/
...
...
dev-loss/src/main/java/com/tykj/dev/device/loss/service/DeviceLossService.java
浏览文件 @
f1ba6600
package
com
.
tykj
.
dev
.
device
.
loss
.
service
;
package
com
.
tykj
.
dev
.
device
.
loss
.
service
;
import
com.tykj.dev.device.block.entity.vo.BlockTraceabilityParsing
;
import
com.tykj.dev.device.loss.entity.domain.DeviceLoss
;
import
com.tykj.dev.device.loss.entity.domain.DeviceLoss
;
import
java.util.List
;
import
java.util.List
;
...
@@ -26,4 +27,7 @@ public interface DeviceLossService {
...
@@ -26,4 +27,7 @@ public interface DeviceLossService {
List
<
DeviceLoss
>
findByListLossUnitId
(
Integer
unitId
);
List
<
DeviceLoss
>
findByListLossUnitId
(
Integer
unitId
);
boolean
checkTrueData
(
Integer
billId
);
BlockTraceabilityParsing
traceabilityParsing
(
Integer
billId
);
}
}
dev-loss/src/main/java/com/tykj/dev/device/loss/service/impl/DeviceLossServiceImpl.java
浏览文件 @
f1ba6600
package
com
.
tykj
.
dev
.
device
.
loss
.
service
.
impl
;
package
com
.
tykj
.
dev
.
device
.
loss
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.serializer.SerializerFeature
;
import
com.tykj.dev.blockcha.subject.service.BlockChainUtil
;
import
com.tykj.dev.blockcha.subject.service.BlockChainUtil
;
import
com.tykj.dev.device.block.entity.BlockData
;
import
com.tykj.dev.device.block.entity.bc.BcRecord
;
import
com.tykj.dev.device.block.entity.vo.BlockTraceabilityParsing
;
import
com.tykj.dev.device.block.entity.vo.TraceabilityParsingData
;
import
com.tykj.dev.device.block.service.BlockDataService
;
import
com.tykj.dev.device.block.service.BlockService
;
import
com.tykj.dev.device.library.repository.DeviceLibraryDao
;
import
com.tykj.dev.device.library.subject.domin.DeviceLibrary
;
import
com.tykj.dev.device.library.subject.vo.ScriptSaveVo
;
import
com.tykj.dev.device.loss.entity.domain.DeviceLoss
;
import
com.tykj.dev.device.loss.entity.domain.DeviceLoss
;
import
com.tykj.dev.device.loss.entity.vo.DeviceLossVo
;
import
com.tykj.dev.device.loss.repository.LossDao
;
import
com.tykj.dev.device.loss.repository.LossDao
;
import
com.tykj.dev.device.loss.service.DeviceLossService
;
import
com.tykj.dev.device.loss.service.DeviceLossService
;
import
com.tykj.dev.device.loss.util.StringUtils
;
import
com.tykj.dev.misc.base.BeanHelper
;
import
com.tykj.dev.misc.base.BlockBusinessEnum
;
import
com.tykj.dev.misc.base.BusinessEnum
;
import
com.tykj.dev.misc.utils.JacksonUtil
;
import
com.tykj.dev.misc.utils.JacksonUtil
;
import
com.tykj.dev.misc.utils.StringSplitUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.modelmapper.ModelMapper
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
import
java.util.List
;
import
java.util.concurrent.CompletableFuture
;
import
java.util.concurrent.CompletableFuture
;
import
java.util.stream.Collectors
;
/**
/**
* @author zjm
* @author zjm
...
@@ -27,19 +46,20 @@ public class DeviceLossServiceImpl implements DeviceLossService {
...
@@ -27,19 +46,20 @@ public class DeviceLossServiceImpl implements DeviceLossService {
@Autowired
@Autowired
BlockChainUtil
blockChainUtil
;
BlockChainUtil
blockChainUtil
;
@Autowired
DeviceLibraryDao
deviceLibraryDao
;
@Autowired
BlockService
blockService
;
@Autowired
BlockDataService
blockDataService
;
@Override
@Override
public
DeviceLoss
save
(
DeviceLoss
deviceLoss
)
{
public
DeviceLoss
save
(
DeviceLoss
deviceLoss
)
{
CompletableFuture
.
runAsync
(()->
{
DeviceLoss
save
=
lossDao
.
save
(
deviceLoss
);
if
(
deviceLoss
.
getRecordId
()
==
null
||
deviceLoss
.
getRecordId
().
equals
(
""
))
{
sendText
(
save
.
getId
());
deviceLoss
.
setRecordId
(
blockChainUtil
.
sendText
(
1000
,
JacksonUtil
.
toJSon
(
deviceLoss
)).
getData
().
getRecordID
());
return
save
;
lossDao
.
save
(
deviceLoss
);
log
.
info
(
"[丢失-找回]上链数据时间本次"
);
}
else
{
deviceLoss
.
setRecordId
(
blockChainUtil
.
appendText
(
JacksonUtil
.
toJSon
(
deviceLoss
),
deviceLoss
.
getRecordId
()).
getData
().
getRecordID
());
lossDao
.
save
(
deviceLoss
);
}
});
return
lossDao
.
save
(
deviceLoss
);
}
}
@Override
@Override
...
@@ -57,4 +77,94 @@ public class DeviceLossServiceImpl implements DeviceLossService {
...
@@ -57,4 +77,94 @@ public class DeviceLossServiceImpl implements DeviceLossService {
return
lossDao
.
findAllByUnitId
(
unitId
);
return
lossDao
.
findAllByUnitId
(
unitId
);
}
}
/**
* 验证接口
*/
@Override
public
BlockTraceabilityParsing
traceabilityParsing
(
Integer
billId
)
{
BlockData
billTypeAndBillId
=
blockDataService
.
findBillTypeAndBillId
(
BusinessEnum
.
LOSS
.
id
,
billId
);
BcRecord
bcRecord
=
blockService
.
fetchRecord
(
BlockBusinessEnum
.
LOSS
.
subCode
,
billTypeAndBillId
.
getRecordID
());
DeviceLoss
deviceLoss
=
queryDeviceLossId
(
billId
);
DeviceLoss
deviceLoss1
=
JSON
.
parseObject
(
bcRecord
.
getData
().
getContent
(),
DeviceLoss
.
class
);
BlockTraceabilityParsing
blockTraceabilityParsing
=
bcRecord
.
getData
().
toBlockTraceabilityParsing
();
blockTraceabilityParsing
.
setBusinessTraceabilityParsingData
(
TraceabilityParsingData
.
builder
()
.
billTypeName
(
toBillName
(
deviceLoss
.
getType
()))
.
carrierIds
(
StringSplitUtil
.
stringListToString
(
deviceLoss
.
getDeviceLossVoList
().
stream
().
map
(
DeviceLossVo:
:
getSeqNumber
).
collect
(
Collectors
.
toList
())))
.
unitName
(
deviceLoss
.
getUnitName
())
.
documentNo
(
String
.
valueOf
(
deviceLoss
.
getId
()))
.
operationTime
(
deviceLoss
.
getLossDate
())
.
operatorUserName
(
operatorName
(
deviceLoss
))
.
build
());
blockTraceabilityParsing
.
setBlockTraceabilityParsingData
(
TraceabilityParsingData
.
builder
()
.
billTypeName
(
toBillName
(
deviceLoss1
.
getType
()))
.
carrierIds
(
StringSplitUtil
.
stringListToString
(
deviceLoss1
.
getDeviceLossVoList
().
stream
().
map
(
DeviceLossVo:
:
getSeqNumber
).
collect
(
Collectors
.
toList
())))
.
unitName
(
deviceLoss1
.
getUnitName
())
.
documentNo
(
String
.
valueOf
(
deviceLoss1
.
getId
()))
.
operationTime
(
deviceLoss1
.
getLossDate
())
.
operatorUserName
(
operatorName
(
deviceLoss1
))
.
build
());
blockTraceabilityParsing
.
setBlockData
(
deviceLoss1
);
blockTraceabilityParsing
.
setCurrentData
(
deviceLoss
);
return
blockTraceabilityParsing
;
}
private
String
toBillName
(
Integer
flag
){
if
(
flag
==
1
){
// 丢失
return
"丢失"
;
}
else
{
return
"找回"
;
}
}
private
String
operatorName
(
DeviceLoss
deviceLoss
)
{
StringBuffer
buf
=
new
StringBuffer
();
// buf.append(deviceLoss.())
// .append(",")
// .append(deviceDestroyBill.getLeader())
// .append(",")
// .append(deviceDestroyBill.getUndertaker())
// .append(",")
// .append(deviceDestroyBill.getAgent());
return
buf
.
toString
();
}
//验真
@Override
public
boolean
checkTrueData
(
Integer
billId
)
{
BlockTraceabilityParsing
blockTraceabilityParsing
=
traceabilityParsing
(
billId
);
boolean
contrast
=
blockDataService
.
contrast
(
blockTraceabilityParsing
);
return
contrast
;
}
/**
* 上链接口
*/
public
void
sendText
(
Integer
id
){
DeviceLoss
deviceDestroyBill
=
queryDeviceLossId
(
id
);
blockService
.
sendText
(
BlockBusinessEnum
.
LOSS
.
subCode
,
JSON
.
toJSONStringWithDateFormat
(
deviceDestroyBill
,
"yyyy-MM-dd HH:mm:ss"
,
SerializerFeature
.
WriteDateUseDateFormat
),
BusinessEnum
.
LOSS
.
id
,
id
,
deviceDestroyBill
.
getUnitName
());
}
private
DeviceLoss
queryDeviceLossId
(
Integer
deviceLossId
){
DeviceLoss
byDeviceLoss
=
findByDeviceLoss
(
deviceLossId
);
byDeviceLoss
.
setDeviceLossVoList
(
deviceLibraryDao
.
findAllById
(
StringUtils
.
stringToList
(
byDeviceLoss
.
getDevIds
()))
.
stream
().
map
(
this
::
toDeviceLossVo
).
collect
(
Collectors
.
toList
()));
return
byDeviceLoss
;
}
private
DeviceLossVo
toDeviceLossVo
(
DeviceLibrary
deviceLibrary
){
ModelMapper
mapper
=
BeanHelper
.
getUserMapper
();
DeviceLossVo
deviceLossVo
=
mapper
.
map
(
deviceLibrary
,
DeviceLossVo
.
class
);
deviceLossVo
.
setTypeName
(
deviceLibrary
.
setConfigName
().
getTypeName
());
return
deviceLossVo
;
}
}
}
dev-scrap/pom.xml
浏览文件 @
f1ba6600
...
@@ -36,6 +36,11 @@
...
@@ -36,6 +36,11 @@
<groupId>
com.tykj
</groupId>
<groupId>
com.tykj
</groupId>
<artifactId>
dev-task
</artifactId>
<artifactId>
dev-task
</artifactId>
</dependency>
</dependency>
<dependency>
<groupId>
com.tykj
</groupId>
<artifactId>
dev-block
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<dependency>
<groupId>
com.tykj
</groupId>
<groupId>
com.tykj
</groupId>
<artifactId>
dev-file
</artifactId>
<artifactId>
dev-file
</artifactId>
...
...
dev-scrap/src/main/java/com/tykj/dev/device/scrap/controller/ScrapQueryController.java
浏览文件 @
f1ba6600
...
@@ -2,6 +2,7 @@ package com.tykj.dev.device.scrap.controller;
...
@@ -2,6 +2,7 @@ package com.tykj.dev.device.scrap.controller;
import
com.tykj.dev.config.swagger.AutoDocument
;
import
com.tykj.dev.config.swagger.AutoDocument
;
import
com.tykj.dev.device.scrap.service.ScrapQueryService
;
import
com.tykj.dev.device.scrap.service.ScrapQueryService
;
import
com.tykj.dev.device.scrap.service.ScrapService
;
import
com.tykj.dev.device.scrap.subject.vo.ScrapSelectVo
;
import
com.tykj.dev.device.scrap.subject.vo.ScrapSelectVo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
...
@@ -25,6 +26,9 @@ public class ScrapQueryController {
...
@@ -25,6 +26,9 @@ public class ScrapQueryController {
@Autowired
@Autowired
ScrapQueryService
scrapQueryService
;
ScrapQueryService
scrapQueryService
;
@Autowired
ScrapService
scrapService
;
@GetMapping
(
value
=
"/detail/{taskId}"
)
@GetMapping
(
value
=
"/detail/{taskId}"
)
@ApiOperation
(
value
=
"查询报废单据详情"
,
notes
=
"查询报废单据详情"
)
@ApiOperation
(
value
=
"查询报废单据详情"
,
notes
=
"查询报废单据详情"
)
public
ResponseEntity
clearedList4
(
@PathVariable
Integer
taskId
){
public
ResponseEntity
clearedList4
(
@PathVariable
Integer
taskId
){
...
@@ -52,4 +56,26 @@ public class ScrapQueryController {
...
@@ -52,4 +56,26 @@ public class ScrapQueryController {
public
ResponseEntity
repelFileMap
(
@PathVariable
Integer
taskId
){
public
ResponseEntity
repelFileMap
(
@PathVariable
Integer
taskId
){
return
ResponseEntity
.
ok
(
scrapQueryService
.
findByTaskIdToFileMapList
(
taskId
));
return
ResponseEntity
.
ok
(
scrapQueryService
.
findByTaskIdToFileMapList
(
taskId
));
}
}
/**
* 区块验证
*/
@GetMapping
(
value
=
"/checkTrueData/{billId}"
)
@ApiOperation
(
value
=
"根据业务id进行对应业务的验证"
,
notes
=
"根据业务id进行对应业务的验证"
)
public
ResponseEntity
checkTrueData
(
@PathVariable
Integer
billId
){
return
ResponseEntity
.
ok
(
scrapService
.
checkTrueData
(
billId
));
}
/**
* 区块溯源
*/
@GetMapping
(
value
=
"/checkTrueData/{billId}"
)
@ApiOperation
(
value
=
"根据业务id进行对应业务的溯源"
,
notes
=
"根据业务id进行对应业务的溯源"
)
public
ResponseEntity
traceabilityParsing
(
@PathVariable
Integer
billId
){
return
ResponseEntity
.
ok
(
scrapService
.
traceabilityParsing
(
billId
));
}
}
}
dev-scrap/src/main/java/com/tykj/dev/device/scrap/service/ScrapService.java
浏览文件 @
f1ba6600
package
com
.
tykj
.
dev
.
device
.
scrap
.
service
;
package
com
.
tykj
.
dev
.
device
.
scrap
.
service
;
import
com.tykj.dev.device.block.entity.vo.BlockTraceabilityParsing
;
import
com.tykj.dev.device.file.entity.FileRet
;
import
com.tykj.dev.device.file.entity.FileRet
;
import
com.tykj.dev.device.scrap.subject.domin.Scrap
;
import
com.tykj.dev.device.scrap.subject.domin.Scrap
;
import
com.tykj.dev.device.scrap.subject.vo.ScrapSelectVo
;
import
com.tykj.dev.device.scrap.subject.vo.ScrapSelectVo
;
...
@@ -44,4 +45,8 @@ public interface ScrapService {
...
@@ -44,4 +45,8 @@ public interface ScrapService {
Map
<
String
,
List
<
FileRet
>>
findByIdToFileMapList
(
Integer
id
);
Map
<
String
,
List
<
FileRet
>>
findByIdToFileMapList
(
Integer
id
);
boolean
checkTrueData
(
Integer
billId
);
BlockTraceabilityParsing
traceabilityParsing
(
Integer
billId
);
}
}
dev-scrap/src/main/java/com/tykj/dev/device/scrap/service/impl/ScrapBillServiceImpl.java
浏览文件 @
f1ba6600
...
@@ -101,4 +101,6 @@ public class ScrapBillServiceImpl implements ScrapBillService {
...
@@ -101,4 +101,6 @@ public class ScrapBillServiceImpl implements ScrapBillService {
predicateBuilder
.
eq
(
"destroyStatus"
,
StatusEnum
.
END
.
id
);
predicateBuilder
.
eq
(
"destroyStatus"
,
StatusEnum
.
END
.
id
);
return
scrapBillDao
.
findAll
(
predicateBuilder
.
build
(),
scrapSelectVo
.
getPageable
());
return
scrapBillDao
.
findAll
(
predicateBuilder
.
build
(),
scrapSelectVo
.
getPageable
());
}
}
}
}
dev-scrap/src/main/java/com/tykj/dev/device/scrap/service/impl/ScrapServiceImpl.java
浏览文件 @
f1ba6600
package
com
.
tykj
.
dev
.
device
.
scrap
.
service
.
impl
;
package
com
.
tykj
.
dev
.
device
.
scrap
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.serializer.SerializerFeature
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.github.wenhao.jpa.PredicateBuilder
;
import
com.github.wenhao.jpa.PredicateBuilder
;
import
com.github.wenhao.jpa.Specifications
;
import
com.github.wenhao.jpa.Specifications
;
import
com.tykj.dev.blockcha.subject.service.BlockChainUtil
;
import
com.tykj.dev.blockcha.subject.service.BlockChainUtil
;
import
com.tykj.dev.config.base.FileName
;
import
com.tykj.dev.config.base.FileName
;
import
com.tykj.dev.device.block.entity.BlockData
;
import
com.tykj.dev.device.block.entity.bc.BcRecord
;
import
com.tykj.dev.device.block.entity.vo.BlockTraceabilityParsing
;
import
com.tykj.dev.device.block.entity.vo.TraceabilityParsingData
;
import
com.tykj.dev.device.block.service.BlockDataService
;
import
com.tykj.dev.device.block.service.BlockService
;
import
com.tykj.dev.device.file.entity.FileRet
;
import
com.tykj.dev.device.file.entity.FileRet
;
import
com.tykj.dev.device.file.service.FilesUtil
;
import
com.tykj.dev.device.file.service.FilesUtil
;
import
com.tykj.dev.device.library.repository.DeviceLibraryDao
;
import
com.tykj.dev.device.library.repository.DeviceLibraryDao
;
...
@@ -14,13 +22,17 @@ import com.tykj.dev.device.scrap.repository.ScrapDao;
...
@@ -14,13 +22,17 @@ import com.tykj.dev.device.scrap.repository.ScrapDao;
import
com.tykj.dev.device.scrap.service.ScrapService
;
import
com.tykj.dev.device.scrap.service.ScrapService
;
import
com.tykj.dev.device.scrap.subject.domin.Scrap
;
import
com.tykj.dev.device.scrap.subject.domin.Scrap
;
import
com.tykj.dev.device.scrap.subject.vo.ScrapSelectVo
;
import
com.tykj.dev.device.scrap.subject.vo.ScrapSelectVo
;
import
com.tykj.dev.misc.base.BlockBusinessEnum
;
import
com.tykj.dev.misc.base.BusinessEnum
;
import
com.tykj.dev.misc.base.StatusEnum
;
import
com.tykj.dev.misc.base.StatusEnum
;
import
com.tykj.dev.misc.exception.ApiException
;
import
com.tykj.dev.misc.exception.ApiException
;
import
com.tykj.dev.misc.utils.DeviceSeqUtil
;
import
com.tykj.dev.misc.utils.DeviceSeqUtil
;
import
com.tykj.dev.misc.utils.JacksonUtil
;
import
com.tykj.dev.misc.utils.JacksonUtil
;
import
com.tykj.dev.misc.utils.StringSplitUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.jpa.domain.Specification
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
@@ -47,6 +59,12 @@ public class ScrapServiceImpl implements ScrapService {
...
@@ -47,6 +59,12 @@ public class ScrapServiceImpl implements ScrapService {
@Autowired
@Autowired
BlockChainUtil
blockChainUtil
;
BlockChainUtil
blockChainUtil
;
@Autowired
BlockService
blockService
;
@Autowired
BlockDataService
blockDataService
;
@Override
@Override
public
Scrap
saveScrap
(
Scrap
scrap
)
{
public
Scrap
saveScrap
(
Scrap
scrap
)
{
CompletableFuture
.
runAsync
(()->
{
CompletableFuture
.
runAsync
(()->
{
...
@@ -151,6 +169,89 @@ public class ScrapServiceImpl implements ScrapService {
...
@@ -151,6 +169,89 @@ public class ScrapServiceImpl implements ScrapService {
}
}
/**
* 验证接口
*/
@Override
public
BlockTraceabilityParsing
traceabilityParsing
(
Integer
billId
)
{
BlockData
billTypeAndBillId
=
blockDataService
.
findBillTypeAndBillId
(
BusinessEnum
.
SCRAP
.
id
,
billId
);
BcRecord
bcRecord
=
blockService
.
fetchRecord
(
BlockBusinessEnum
.
SCRAP
.
subCode
,
billTypeAndBillId
.
getRecordID
());
Scrap
scrap
=
queryScrap
(
billId
);
Scrap
scrap1
=
JSON
.
parseObject
(
bcRecord
.
getData
().
getContent
(),
Scrap
.
class
);
BlockTraceabilityParsing
blockTraceabilityParsing
=
bcRecord
.
getData
().
toBlockTraceabilityParsing
();
blockTraceabilityParsing
.
setBusinessTraceabilityParsingData
(
TraceabilityParsingData
.
builder
()
.
billTypeName
(
"报废"
)
.
carrierIds
(
StringSplitUtil
.
stringListToString
(
scrap
.
getScripts
().
stream
().
map
(
ScriptSaveVo:
:
getSeqNumber
).
collect
(
Collectors
.
toList
())))
.
unitName
(
scrap
.
getSendUnit
())
.
documentNo
(
scrap
.
getNum
())
.
operationTime
(
scrap
.
getSendTime
())
.
operatorUserName
(
operatorName
(
scrap
))
.
build
());
blockTraceabilityParsing
.
setBlockTraceabilityParsingData
(
TraceabilityParsingData
.
builder
()
.
billTypeName
(
"报废"
)
.
carrierIds
(
StringSplitUtil
.
stringListToString
(
scrap1
.
getScripts
().
stream
().
map
(
ScriptSaveVo:
:
getSeqNumber
).
collect
(
Collectors
.
toList
())))
.
unitName
(
scrap1
.
getSendUnit
())
.
documentNo
(
scrap1
.
getNum
())
.
operationTime
(
scrap1
.
getSendTime
())
.
operatorUserName
(
operatorName
(
scrap1
))
.
build
());
blockTraceabilityParsing
.
setBlockData
(
scrap1
);
blockTraceabilityParsing
.
setCurrentData
(
scrap
);
return
blockTraceabilityParsing
;
}
private
String
operatorName
(
Scrap
scrap
)
{
StringBuffer
buf
=
new
StringBuffer
();
buf
.
append
(
scrap
.
getSenderUserA
())
.
append
(
","
)
.
append
(
scrap
.
getSenderUserB
())
.
append
(
","
)
.
append
(
scrap
.
getReceiveUserA
())
.
append
(
","
)
.
append
(
scrap
.
getReceiveUserB
());
return
buf
.
toString
();
}
//验真
@Override
public
boolean
checkTrueData
(
Integer
billId
)
{
BlockTraceabilityParsing
blockTraceabilityParsing
=
traceabilityParsing
(
billId
);
boolean
contrast
=
blockDataService
.
contrast
(
blockTraceabilityParsing
);
return
contrast
;
}
/**
* 上链接口
*/
public
void
sendText
(
Integer
id
){
Scrap
scrap
=
queryScrap
(
id
);
blockService
.
sendText
(
BlockBusinessEnum
.
SCRAP
.
subCode
,
JSON
.
toJSONStringWithDateFormat
(
scrap
,
"yyyy-MM-dd HH:mm:ss"
,
SerializerFeature
.
WriteDateUseDateFormat
),
BusinessEnum
.
DESTROY
.
id
,
id
,
scrap
.
getSendUnit
());
}
private
Scrap
queryScrap
(
Integer
scrapId
){
Optional
<
Scrap
>
optional
=
scrapDao
.
findById
(
scrapId
);
if
(
optional
.
isPresent
()){
Scrap
scrap
=
optional
.
get
();
List
<
ScriptSaveVo
>
scriptSaveVos
=
JacksonUtil
.
readValue
(
scrap
.
getScriptJson
(),
new
TypeReference
<
List
<
ScriptSaveVo
>>()
{
});
scrap
.
setScripts
(
scriptSaveVos
);
return
scrap
;
}
else
{
log
.
info
(
"[报废] 详情查看错误,id没有找到{}"
,
scrapId
);
throw
new
ApiException
(
ResponseEntity
.
status
(
500
).
body
(
"报废详情id没有找到:"
+
scrapId
));
}
}
private
List
<
DeviceLibrary
>
findInvoleDevice
(
String
involeDevice
){
private
List
<
DeviceLibrary
>
findInvoleDevice
(
String
involeDevice
){
if
(
involeDevice
!=
null
&&
!
involeDevice
.
equals
(
","
)
)
{
if
(
involeDevice
!=
null
&&
!
involeDevice
.
equals
(
","
)
)
{
List
<
String
>
idStringList
=
Arrays
.
asList
(
involeDevice
.
split
(
","
));
List
<
String
>
idStringList
=
Arrays
.
asList
(
involeDevice
.
split
(
","
));
...
@@ -162,4 +263,5 @@ public class ScrapServiceImpl implements ScrapService {
...
@@ -162,4 +263,5 @@ public class ScrapServiceImpl implements ScrapService {
return
new
ArrayList
<>();
return
new
ArrayList
<>();
}
}
}
}
}
}
dev-sendback/pom.xml
浏览文件 @
f1ba6600
...
@@ -37,6 +37,11 @@
...
@@ -37,6 +37,11 @@
<groupId>
com.tykj.dev
</groupId>
<groupId>
com.tykj.dev
</groupId>
<artifactId>
config
</artifactId>
<artifactId>
config
</artifactId>
</dependency>
</dependency>
<dependency>
<groupId>
com.tykj
</groupId>
<artifactId>
dev-block
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
</dependencies>
</dependencies>
</project>
</project>
\ No newline at end of file
dev-sendback/src/main/java/com/tykj/dev/device/sendback/service/DeviceRepelDetailService.java
浏览文件 @
f1ba6600
package
com
.
tykj
.
dev
.
device
.
sendback
.
service
;
package
com
.
tykj
.
dev
.
device
.
sendback
.
service
;
import
com.tykj.dev.device.block.entity.vo.BlockTraceabilityParsing
;
import
com.tykj.dev.device.file.entity.FileRet
;
import
com.tykj.dev.device.file.entity.FileRet
;
import
com.tykj.dev.device.sendback.entity.domain.DeviceRepelDetail
;
import
com.tykj.dev.device.sendback.entity.domain.DeviceRepelDetail
;
import
com.tykj.dev.device.sendback.entity.vo.RepelDetailSelectVo
;
import
com.tykj.dev.device.sendback.entity.vo.RepelDetailSelectVo
;
...
@@ -53,4 +54,7 @@ public interface DeviceRepelDetailService {
...
@@ -53,4 +54,7 @@ public interface DeviceRepelDetailService {
List
<
DeviceRepelDetail
>
queryDeviceRepelDetailList
(
Integer
unitId
,
Date
startTime
,
Date
endTime
);
List
<
DeviceRepelDetail
>
queryDeviceRepelDetailList
(
Integer
unitId
,
Date
startTime
,
Date
endTime
);
boolean
checkTrueData
(
Integer
billId
);
BlockTraceabilityParsing
traceabilityParsing
(
Integer
billId
);
}
}
dev-sendback/src/main/java/com/tykj/dev/device/sendback/service/impl/DeviceRepelDetailServiceImpl.java
浏览文件 @
f1ba6600
package
com
.
tykj
.
dev
.
device
.
sendback
.
service
.
impl
;
package
com
.
tykj
.
dev
.
device
.
sendback
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.serializer.SerializerFeature
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.github.wenhao.jpa.PredicateBuilder
;
import
com.github.wenhao.jpa.PredicateBuilder
;
import
com.github.wenhao.jpa.Specifications
;
import
com.github.wenhao.jpa.Specifications
;
import
com.tykj.dev.config.base.FileName
;
import
com.tykj.dev.config.base.FileName
;
import
com.tykj.dev.device.block.entity.BlockData
;
import
com.tykj.dev.device.block.entity.bc.BcRecord
;
import
com.tykj.dev.device.block.entity.vo.BlockTraceabilityParsing
;
import
com.tykj.dev.device.block.entity.vo.TraceabilityParsingData
;
import
com.tykj.dev.device.block.service.BlockDataService
;
import
com.tykj.dev.device.block.service.BlockService
;
import
com.tykj.dev.device.file.entity.FileRet
;
import
com.tykj.dev.device.file.entity.FileRet
;
import
com.tykj.dev.device.file.service.FilesUtil
;
import
com.tykj.dev.device.file.service.FilesUtil
;
import
com.tykj.dev.device.library.repository.DeviceLibraryDao
;
import
com.tykj.dev.device.library.repository.DeviceLibraryDao
;
...
@@ -13,8 +21,11 @@ import com.tykj.dev.device.sendback.entity.domain.DeviceRepelDetail;
...
@@ -13,8 +21,11 @@ import com.tykj.dev.device.sendback.entity.domain.DeviceRepelDetail;
import
com.tykj.dev.device.sendback.entity.vo.RepelDetailSelectVo
;
import
com.tykj.dev.device.sendback.entity.vo.RepelDetailSelectVo
;
import
com.tykj.dev.device.sendback.repository.DeviceRepelDetailDao
;
import
com.tykj.dev.device.sendback.repository.DeviceRepelDetailDao
;
import
com.tykj.dev.device.sendback.service.DeviceRepelDetailService
;
import
com.tykj.dev.device.sendback.service.DeviceRepelDetailService
;
import
com.tykj.dev.misc.base.BlockBusinessEnum
;
import
com.tykj.dev.misc.base.BusinessEnum
;
import
com.tykj.dev.misc.exception.ApiException
;
import
com.tykj.dev.misc.exception.ApiException
;
import
com.tykj.dev.misc.utils.JacksonUtil
;
import
com.tykj.dev.misc.utils.JacksonUtil
;
import
com.tykj.dev.misc.utils.StringSplitUtil
;
import
com.tykj.dev.misc.utils.StringUtils
;
import
com.tykj.dev.misc.utils.StringUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -42,10 +53,18 @@ public class DeviceRepelDetailServiceImpl implements DeviceRepelDetailService {
...
@@ -42,10 +53,18 @@ public class DeviceRepelDetailServiceImpl implements DeviceRepelDetailService {
@Autowired
@Autowired
DeviceLibraryDao
deviceLibraryDao
;
DeviceLibraryDao
deviceLibraryDao
;
@Autowired
BlockService
blockService
;
@Autowired
BlockDataService
blockDataService
;
@Override
@Override
public
DeviceRepelDetail
saveDeviceRepelDetail
(
DeviceRepelDetail
deviceRepelDetail
)
{
public
DeviceRepelDetail
saveDeviceRepelDetail
(
DeviceRepelDetail
deviceRepelDetail
)
{
log
.
info
(
"[清退] 详情添加成功"
);
log
.
info
(
"[清退] 详情添加成功"
);
return
deviceRepelDetailDao
.
save
(
deviceRepelDetail
);
DeviceRepelDetail
save
=
deviceRepelDetailDao
.
save
(
deviceRepelDetail
);
sendText
(
save
.
getId
());
return
save
;
}
}
@Override
@Override
...
@@ -184,4 +203,85 @@ public class DeviceRepelDetailServiceImpl implements DeviceRepelDetailService {
...
@@ -184,4 +203,85 @@ public class DeviceRepelDetailServiceImpl implements DeviceRepelDetailService {
return
new
ArrayList
<>();
return
new
ArrayList
<>();
}
}
}
}
/**
* 验证接口
*/
@Override
public
BlockTraceabilityParsing
traceabilityParsing
(
Integer
billId
)
{
BlockData
billTypeAndBillId
=
blockDataService
.
findBillTypeAndBillId
(
BusinessEnum
.
SEND_BACK
.
id
,
billId
);
BcRecord
bcRecord
=
blockService
.
fetchRecord
(
BlockBusinessEnum
.
SEND_BACK
.
subCode
,
billTypeAndBillId
.
getRecordID
());
DeviceRepelDetail
deviceRepelDetail
=
queryDeviceRepelDetail
(
billId
);
DeviceRepelDetail
deviceRepelDetail1
=
JSON
.
parseObject
(
bcRecord
.
getData
().
getContent
(),
DeviceRepelDetail
.
class
);
BlockTraceabilityParsing
blockTraceabilityParsing
=
bcRecord
.
getData
().
toBlockTraceabilityParsing
();
blockTraceabilityParsing
.
setBusinessTraceabilityParsingData
(
TraceabilityParsingData
.
builder
()
.
billTypeName
(
"清退"
)
.
carrierIds
(
StringSplitUtil
.
stringListToString
(
deviceRepelDetail
.
getScripts
().
stream
().
map
(
ScriptSaveVo:
:
getSeqNumber
).
collect
(
Collectors
.
toList
())))
.
unitName
(
deviceRepelDetail
.
getSendUnit
())
.
documentNo
(
deviceRepelDetail
.
getNum
())
.
operationTime
(
deviceRepelDetail
.
getSendTime
())
.
operatorUserName
(
operatorName
(
deviceRepelDetail
))
.
build
());
blockTraceabilityParsing
.
setBlockTraceabilityParsingData
(
TraceabilityParsingData
.
builder
()
.
billTypeName
(
"清退"
)
.
carrierIds
(
StringSplitUtil
.
stringListToString
(
deviceRepelDetail1
.
getScripts
().
stream
().
map
(
ScriptSaveVo:
:
getSeqNumber
).
collect
(
Collectors
.
toList
())))
.
unitName
(
deviceRepelDetail1
.
getSendUnit
())
.
documentNo
(
deviceRepelDetail1
.
getNum
())
.
operationTime
(
deviceRepelDetail1
.
getSendTime
())
.
operatorUserName
(
operatorName
(
deviceRepelDetail1
))
.
build
());
blockTraceabilityParsing
.
setBlockData
(
deviceRepelDetail1
);
blockTraceabilityParsing
.
setCurrentData
(
deviceRepelDetail
);
return
blockTraceabilityParsing
;
}
private
String
operatorName
(
DeviceRepelDetail
deviceRepelDetail
)
{
StringBuffer
buf
=
new
StringBuffer
();
buf
.
append
(
deviceRepelDetail
.
getSenderUserA
())
.
append
(
","
)
.
append
(
deviceRepelDetail
.
getSenderUserB
())
.
append
(
","
)
.
append
(
deviceRepelDetail
.
getReceiveUserA
())
.
append
(
","
)
.
append
(
deviceRepelDetail
.
getReceiveUserB
());
return
buf
.
toString
();
}
//验真
@Override
public
boolean
checkTrueData
(
Integer
billId
)
{
BlockTraceabilityParsing
blockTraceabilityParsing
=
traceabilityParsing
(
billId
);
boolean
contrast
=
blockDataService
.
contrast
(
blockTraceabilityParsing
);
return
contrast
;
}
/**
* 上链接口
*/
public
void
sendText
(
Integer
id
){
DeviceRepelDetail
deviceRepelDetail
=
queryDeviceRepelDetail
(
id
);
blockService
.
sendText
(
BlockBusinessEnum
.
SEND_BACK
.
subCode
,
JSON
.
toJSONStringWithDateFormat
(
deviceRepelDetail
,
"yyyy-MM-dd HH:mm:ss"
,
SerializerFeature
.
WriteDateUseDateFormat
),
BusinessEnum
.
DESTROY
.
id
,
id
,
deviceRepelDetail
.
getSendUnit
());
}
private
DeviceRepelDetail
queryDeviceRepelDetail
(
Integer
repelDetailId
)
{
Optional
<
DeviceRepelDetail
>
optional
=
deviceRepelDetailDao
.
findById
(
repelDetailId
);
if
(
optional
.
isPresent
()){
DeviceRepelDetail
deviceRepelDetail
=
optional
.
get
();
deviceRepelDetail
.
setScripts
(
JacksonUtil
.
readValue
(
deviceRepelDetail
.
getScriptJson
(),
new
TypeReference
<
List
<
ScriptSaveVo
>>()
{
}));
deviceRepelDetail
.
setDeviceIds
(
null
);
deviceRepelDetail
.
setScriptJson
(
null
);
return
deviceRepelDetail
;
}
else
{
log
.
info
(
"[清退] 详情查看错误,id没有找到{}"
,
repelDetailId
);
throw
new
ApiException
(
ResponseEntity
.
status
(
500
).
body
(
"清退详情id没有找到:"
+
repelDetailId
));
}
}
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论