提交 35c40056 authored 作者: Matrix's avatar Matrix

[核查模块] 增加了检查的新功能

上级 def47d15
......@@ -187,18 +187,19 @@ public class BlockChainUtilImpl implements BlockChainUtil {
@Override
public BcHash sendHash(Integer subCode, String content) {
if ("true".equals(this.useBlockcha)) {
SortedMap<Object, Object> request = getRequest();
request.put("content", HexUtil.hex64(content));
request.put("subCode", subCode);
String s = ApiSignatureUtil.getApiSignature(request, SECRET_KEY);
log.info("apiSignature:{}",s);
request.put("apiSignature", s);
return new RestTemplate().postForObject(
BLOCK_CHAIN_URL + BcUrl.SEND_HASH,
request,
BcHash.class
);
// SortedMap<Object, Object> request = getRequest();
// request.put("content", HexUtil.hex64(content));
// request.put("subCode", subCode);
// String s = ApiSignatureUtil.getApiSignature(request, SECRET_KEY);
// log.info("apiSignature:{}",s);
// request.put("apiSignature", s);
//
// return new RestTemplate().postForObject(
// BLOCK_CHAIN_URL + BcUrl.SEND_HASH,
// request,
// BcHash.class
// );
return new BcHash();
}
else {
return new BcHash(0, "", new BcHashData("000"));
......
......@@ -136,7 +136,21 @@ public enum LogType {
CONFIRM_CHECK_DETAIL_STAT_2(412,CONFIRM_CHECK_STAT.id, CHECK_STAT_1.id, END.id, "地区数据已确认完毕,将统计上传,任务完结"),
ALLOT_BACK_1(57,ALLOT_BACK.id, ORIGIN_STATUS.id, ALLOT_BACKING.id, "发起配发装备退回"),
CONFIRM_CHECK_EXAM_STAT_0(413, CONFIRM_CHECK_STAT.id, ORIGIN_STATUS.id, CHECK_EXAM_STAT_0.id, "检查统计任务开始"),
CONFIRM_CHECK_EXAM_STAT_1(414, CONFIRM_CHECK_STAT.id, CHECK_EXAM_STAT_0.id, CHECK_EXAM_STAT_1.id, "检查统计数据已统计完毕,等待确认"),
CONFIRM_CHECK_EXAM_STAT_2(415, CONFIRM_CHECK_STAT.id, CHECK_EXAM_STAT_1.id, END.id, "检查统计任务数据已确认完毕,任务完结"),
CONFIRM_CHECK_EXAM_DETAIL_0(416, CONFIRM_CHECK_DETAIL.id, ORIGIN_STATUS.id, CHECK_EXAM_DETAIL_0.id, "检查详情任务开始"),
CONFIRM_CHECK_EXAM_DETAIL_1(417, CONFIRM_CHECK_DETAIL.id, CHECK_EXAM_DETAIL_0.id, CHECK_EXAM_DETAIL_1.id, "A岗核查成功,等待专管员B操作"),
CONFIRM_CHECK_EXAM_DETAIL_2(418, CONFIRM_CHECK_DETAIL.id, CHECK_EXAM_DETAIL_1.id, END.id, "专管员B核查成功,该地区的检查任务结束了"),
CONFIRM_CHECK_EXAM_DETAIL_3(419, CONFIRM_CHECK_DETAIL.id, CHECK_EXAM_DETAIL_1.id, CHECK_EXAM_DETAIL_0.id, "B岗审核失败,跳回A岗人员操作"),
ALLOT_BACK_1(57, ALLOT_BACK.id, ORIGIN_STATUS.id, ALLOT_BACKING.id, "发起配发装备退回"),
ALLOT_BACK_2(58,ALLOT_BACK.id, ALLOT_BACKING.id, ALLOT_BACK_CONFIRM.id, "配发退回装备接收成功"),
......@@ -144,14 +158,14 @@ public enum LogType {
ALLOT_BACK_4(60,ALLOT_BACK.id, ALLOT_BACK_CONFIRM.id, ARCHIVE.id, "配发退回装备接收审核失败"),
TRAIN1(61,TRAIN.id, ORIGIN_STATUS.id, TRAIN1000.id, "创建培训成功,等待报名"),
TRAIN2(62,TRAIN.id, TRAIN1000.id, TRAIN1010.id, "报名结束,待培训"),
TRAIN3(63,TRAIN.id, TRAIN1010.id, TRAIN1004.id, "培训中"),
TRAIN4(64,TRAIN.id, TRAIN1004.id, TRAIN1005.id, "市培训成绩录入完成"),
TRAIN5(65,TRAIN.id, TRAIN1005.id, TRAIN1006.id, "市向省申请发证"),
TRAIN6(66,TRAIN.id, TRAIN1006.id, END.id, "市培训完成"),
TRAIN7(67,TRAIN.id, TRAIN1004.id, TRAIN1007.id, "省培训成绩录入完成,等待审核"),
TRAIN8(68,TRAIN.id, TRAIN1007.id, END.id, "省培训完成"),
TRAIN1(61, TRAIN.id, ORIGIN_STATUS.id, TRAIN1000.id, "创建培训成功,等待报名"),
TRAIN2(62, TRAIN.id, TRAIN1000.id, TRAIN1010.id, "报名结束,待培训"),
TRAIN3(63, TRAIN.id, TRAIN1010.id, TRAIN1004.id, "培训中"),
TRAIN4(64, TRAIN.id, TRAIN1004.id, TRAIN1005.id, "市培训成绩录入完成"),
TRAIN5(65, TRAIN.id, TRAIN1005.id, TRAIN1006.id, "市向省申请发证"),
TRAIN6(66, TRAIN.id, TRAIN1006.id, END.id, "市培训完成"),
TRAIN7(67, TRAIN.id, TRAIN1004.id, TRAIN1007.id, "省培训成绩录入完成,等待审核"),
TRAIN8(68, TRAIN.id, TRAIN1007.id, END.id, "省培训完成"),
SEND_BACK_1(69,SEND_BACK_STATISTICAL.id, ORIGIN_STATUS.id, SEND_BACK_1200.id, "省发起清退任务,等待下属单位把需要清退到装备送至省单位"),
SEND_BACK_2(70,SEND_BACK.id, ORIGIN_STATUS.id, SEND_BACK_1201.id, "省发起对市发起清退任务"),
......@@ -167,16 +181,16 @@ public enum LogType {
WORK_H1(79,WORK_HANDOVER.id, ORIGIN_STATUS.id, WORKHANDOVER1011.id, "工作交接任务生成完成,等待上传交接单"),
WORK_H2(80,WORK_HANDOVER.id, WORKHANDOVER1011.id, END.id, "工作交接完成"),
ALLOT_8(82,ALLOT.id, ORIGIN_STATUS.id, ALLOTING.id, "对(%receiveUnit)发起配发"),
ALLOT_9(83,ALLOT.id, ALLOTING.id, END.id, "接收配发装备"),
ALLOT_10(84,ALLOT.id, WAIT_ALLOT.id, ALLOTING.id, "对(%receiveUnit)发起配发"),
ALLOT_11(85,ALLOT.id, ALLOTING.id, ARCHIVE.id, "拒绝接收配发装备"),
ALLOT_BACK_5(86,ALLOT_BACK.id, ALLOT_BACKING.id, END.id, "接收配发退回装备"),
REPAIR_SEND_10(87,REPAIR.id, ORIGIN_STATUS.id, END.id, "向(%receiveUnit)发起装备维修"),
REPAIR_BACK_7(88,REPAIR_BACK.id, ORIGIN_STATUS.id, END.id, "维修退回装备接收并发起入库"),
STORAGE_4(89,STORAGE.id, WAIT_STORAGE.id, ARCHIVE.id, "删除入库草稿"),
WORK_H1(79, WORK_HANDOVER.id, ORIGIN_STATUS.id, WORKHANDOVER1011.id, "工作交接任务生成完成,等待上传交接单"),
WORK_H2(80, WORK_HANDOVER.id, WORKHANDOVER1011.id, END.id, "工作交接完成"),
ALLOT_8(82, ALLOT.id, ORIGIN_STATUS.id, ALLOTING.id, "对(%receiveUnit)发起配发"),
ALLOT_9(83, ALLOT.id, ALLOTING.id, END.id, "接收配发装备"),
ALLOT_10(84, ALLOT.id, WAIT_ALLOT.id, ALLOTING.id, "对(%receiveUnit)发起配发"),
ALLOT_11(85, ALLOT.id, ALLOTING.id, ARCHIVE.id, "拒绝接收配发装备"),
ALLOT_BACK_5(86, ALLOT_BACK.id, ALLOT_BACKING.id, END.id, "接收配发退回装备"),
REPAIR_SEND_10(87, REPAIR.id, ORIGIN_STATUS.id, END.id, "向(%receiveUnit)发起装备维修"),
REPAIR_BACK_7(88, REPAIR_BACK.id, ORIGIN_STATUS.id, END.id, "维修退回装备接收并发起入库"),
STORAGE_4(89, STORAGE.id, WAIT_STORAGE.id, ARCHIVE.id, "删除入库草稿"),
;
public Integer id;
......
......@@ -6,7 +6,6 @@ import com.tykj.dev.config.swagger.AutoDocument;
import com.tykj.dev.device.confirmcheck.common.CheckType;
import com.tykj.dev.device.confirmcheck.common.TaskPeriod;
import com.tykj.dev.device.confirmcheck.entity.cache.AreaCache;
import com.tykj.dev.device.confirmcheck.entity.domain.DeviceCheckBill;
import com.tykj.dev.device.confirmcheck.entity.domain.DeviceCheckDetail;
import com.tykj.dev.device.confirmcheck.entity.domain.DeviceCheckStat;
import com.tykj.dev.device.confirmcheck.entity.vo.*;
......@@ -178,7 +177,7 @@ public class DeviceCheckController {
@ApiOperation(value = "发起核查", notes = "对指定地区发起核查任务")
@PostMapping("/startCheck")
private ResponseEntity<String> startCheckCheck(@RequestBody CheckCheckVo ccVO) {
public ResponseEntity startCheckCheck(@RequestBody CheckCheckVo ccVO) {
//构建省的统计账单
Integer startUnitId = ccVO.getUnitId();
Units startUnit = unitsRepo.findById(startUnitId).get();
......@@ -193,12 +192,12 @@ public class DeviceCheckController {
.collect(toList());
// 构建省的统计任务
TaskBto provStatTask = new Task(CHECK_EXAM_STAT_0.id, CONFIRM_CHECK_STAT.name, 0, ".0.", CONFIRM_CHECK_STAT.id, statId, startUnitId)
TaskBto provStatTask = new Task(CHECK_EXAM_STAT_0.id, "省" + CONFIRM_CHECK_STAT.name, 0, ".0.", CONFIRM_CHECK_STAT.id, statId, startUnitId)
.parse2Bto();
provStatTask.setCustomInfo("manual");
provStatTask.getInvolveUserIdList().add(authenticationUtils.getAuthentication().getCurrentUserInfo().getUserId());
provStatTask.getInvolveUserIdList().add(-1);
provStatTask.setCurrentPoint(1);
provStatTask.setCustomInfo("check");
provStatTask = taskService.start(provStatTask);
//构建市的检查任务
......@@ -210,15 +209,14 @@ public class DeviceCheckController {
log.info("[核查模块] {} 检查统计账单构建完毕,id 为 {}", unit.getName(), cityStatId);
// 构建市的统计任务
TaskBto cityStatTask = new TaskBto(CHECK_EXAM_STAT_0.id, "检查统计任务", provStatTask.getId(), addNode(provStatTask.getNodeIdDetail(), provStatTask.getId()), CONFIRM_CHECK_STAT.id, cityStatId, unit.getUnitId(), 0);
cityStatTask.setCustomInfo("manual");
cityStatTask.getInvolveUserIdList().add(-1);
TaskBto cityStatTask = new TaskBto(CHECK_EXAM_STAT_0.id, unit.getName() + "检查统计任务", provStatTask.getId(), addNode(provStatTask.getNodeIdDetail(), provStatTask.getId()), CONFIRM_CHECK_STAT.id, cityStatId, unit.getUnitId(), 0);
cityStatTask.getInvolveUserIdList().add(0);
cityStatTask.setCurrentPoint(1);
cityStatTask.setCustomInfo("exam");
taskService.start(cityStatTask);
}
return ResponseEntity.ok("发起核查成功");
return ResponseEntity.ok(ImmutableMap.of("msg", "发起核查成功"));
}
/**
......@@ -227,38 +225,66 @@ public class DeviceCheckController {
* <li>2. 构建发起单位的统计账单与Task</>
* <li>3. 构建被核查单位的详情账单与Task</li>
*
* @param billVo 核查发起对象
* @param ceVo 核查发起对象
*/
@ApiOperation(value = "发起检查", notes = "手动发起核查,需要指定参数")
@PostMapping("/startExam")
public ResponseEntity<ResultObj> startManualCheck(@RequestBody CheckBillVo billVo) {
public ResponseEntity<ResultObj> startManualCheck(@RequestBody CheckExamVo ceVo) {
List<Integer> detailIds = new ArrayList<>();
// 1. 添加发起核查bill记录
DeviceCheckBill billDo = transUtil.checkBillVo2Do(billVo);
billRepo.save(billDo);
// DeviceCheckBill billDo = transUtil.checkBillVo2Do(billVo);
// billRepo.save(billDo);
// 构建(设置)发起市的检查统计账单 - 检查统计任务
// 2 构建发起单位的 统计账单 与 统计任务
Integer startUnitId = billVo.getUnitId();
Integer startUnitId = ceVo.getUnitId();
Units startUnit = unitsRepo.findById(startUnitId).get();
List<Units> checkedUnits = unitsRepo.findByAreaIdIn(billVo.getAreaRange());
List<CheckExamDetailVo> examDetailVos = ceVo.getDetail();
List<String> tmpString = new ArrayList<>();
for (CheckExamDetailVo vo : examDetailVos) {
tmpString.add(vo.getGroupName() + "," + vo.getUserNames().stream().collect(joining(",")));
}
String groupUserString = tmpString.stream().collect(joining("|"));
List<Integer> areaIds = examDetailVos.stream().map(CheckExamDetailVo::getAreaId).collect(toList());
List<Units> checkedUnits = unitsRepo.findByAreaIdIn(areaIds);
List<String> checkedUnitNames = checkedUnits.stream().map(Units::getName).collect(toList());
log.info("[核查模块]发起手动核查,发起单位为{},被查单位为{}", startUnit.getName(), checkedUnitNames);
// 2-1 构建发起单位的 统计账单
DeviceCheckStat provinceCheckStat = initStatData(billVo.getCheckTitle(), billVo.getRemark(), billVo.getUserAId(), billVo.getUserBId(), startUnit.getName(), checkedUnits);
DeviceCheckStat provinceCheckStat;
//根据examStatId来判断是update还是create
DeviceCheckStat initCheckStat = initStatData(ceVo.getTitle(), groupUserString, 0, 0, startUnit.getName(), checkedUnits);
if (ceVo.getExamStatId() != 0) {
DeviceCheckStat oriCheckStat = statRepo.findById(ceVo.getExamStatId()).get();
oriCheckStat.setStatInfo(initCheckStat.getStatInfo());
provinceCheckStat = oriCheckStat;
} else {
provinceCheckStat = initCheckStat;
}
Integer statId = statRepo.save(provinceCheckStat).getId();
List<CheckDeviceStatVo> deviceStatVos = Arrays.stream(
Objects.requireNonNull(JacksonUtil.readValue(provinceCheckStat.getStatInfo(), CheckDeviceStatVo[].class)))
.collect(toList());
// 2-2 构建发起单位的 统计任务
TaskBto provStatTask = new Task(CHECK_STAT_0.id, CONFIRM_CHECK_STAT.name, 0, ".0.", CONFIRM_CHECK_STAT.id, statId, startUnitId)
// 根据examStatId来判断要不要重新创建任务
TaskBto cityStatTask;
if (ceVo.getExamStatId() == 0) {
cityStatTask = new Task(CHECK_EXAM_STAT_0.id, CHECK_EXAM_STAT_0.name, 0, ".0.", CONFIRM_CHECK_STAT.id, statId, startUnitId)
.parse2Bto();
provStatTask.setCustomInfo("manual");
provStatTask.getInvolveUserIdList().add(authenticationUtils.getAuthentication().getCurrentUserInfo().getUserId());
provStatTask.getInvolveUserIdList().add(-1);
provStatTask.setCurrentPoint(1);
provStatTask = taskService.start(provStatTask);
cityStatTask.setCustomInfo("exam");
cityStatTask.getInvolveUserIdList().add(authenticationUtils.getAuthentication().getCurrentUserInfo().getUserId());
cityStatTask.getInvolveUserIdList().add(-1);
cityStatTask.setCurrentPoint(1);
cityStatTask = taskService.start(cityStatTask);
} else {
// 将原来的待办改为跟踪
cityStatTask = taskRepo.findByBillIdAndBusinessType(ceVo.getExamStatId(), CONFIRM_CHECK_STAT.id).get().parse2Bto();
cityStatTask.getInvolveUserIdList().add(-1);
cityStatTask.setCurrentPoint(cityStatTask.getCurrentPoint() + 1);
taskService.update(cityStatTask);
}
// 3 构建被查单位的 自查账单 与 自查任务
// 获取所有在库装备与不在库装备
......@@ -272,9 +298,11 @@ public class DeviceCheckController {
// 3. 构建被核查单位的详情账单与Task
// 对每个需要核查的单位构建其detail账单与task
for (Units unit : checkedUnits) {
for (CheckExamDetailVo ed : examDetailVos) {
Units unit = unitsRepo.findByAreaId(ed.getAreaId()).get(0);
String names = ed.getUserNames().stream().collect(joining(","));
// 3-1 构建被查单位的 自查账单
DeviceCheckDetail unitDetailDoc = DeviceCheckDetail.EmptyWithChecker(billVo.getRemark(), billVo.getCheckTitle(), billVo.getUserAId(), billVo.getUserBId(), 0, 0, unit.getName(), devInLib.getOrDefault(unit.getName(), new ArrayList<>()), devNotInLib.getOrDefault(unit.getName(), new ArrayList<>()));
DeviceCheckDetail unitDetailDoc = DeviceCheckDetail.EmptyWithChecker(names + "|" + ed.getRemark(), ceVo.getTitle(), 0, 0, 0, 0, unit.getName(), devInLib.getOrDefault(unit.getName(), new ArrayList<>()), devNotInLib.getOrDefault(unit.getName(), new ArrayList<>()));
DeviceCheckDetail detail = detailRepo.save(unitDetailDoc);
detailIds.add(detail.getId());
// 将id放入统计中去 model -> areaName -> detailId
......@@ -289,18 +317,19 @@ public class DeviceCheckController {
}
// 3-2 构建被查单位的 自查任务 (根据被查单位的级别来区分是县级状态是市级状态)
TaskBto checkedTask = new TaskBto(CHECK_DETAIL_0.id, "自核查任务", provStatTask.getId(), addNode(provStatTask.getNodeIdDetail(), provStatTask.getId()), CONFIRM_CHECK_DETAIL.id, detail.getId(), unit.getUnitId(), 0);
TaskBto checkedTask = new TaskBto(CHECK_EXAM_DETAIL_0.id, "自核查任务", cityStatTask.getId(), addNode(cityStatTask.getNodeIdDetail(), cityStatTask.getId()), CONFIRM_CHECK_DETAIL.id, detail.getId(), unit.getUnitId(), 0);
checkedTask.setCustomInfo("manual");
taskService.start(checkedTask);
}
// 4. 重新设置并保存统计账单
provinceCheckStat.setStatInfo(JacksonUtil.toJSon(deviceStatVos));
statRepo.save(provinceCheckStat);
log.info("[核查模块] {}单位成功发起对 {} 单位的查任务分发", startUnit.getName(), checkedUnitNames);
log.info("[核查模块] {}单位成功发起对 {} 单位的查任务分发", startUnit.getName(), checkedUnitNames);
return ResponseEntity.ok(new ResultObj<>(
ImmutableMap.of("statIds", statId, "detailIds", detailIds),
String.format("[核查模块] [%s]单位成功发起对 [%s] 单位的查任务分发", startUnit.getName(), checkedUnitNames)
String.format("[核查模块] [%s]单位成功发起对 [%s] 单位的查任务分发", startUnit.getName(), checkedUnitNames)
));
}
......@@ -334,7 +363,6 @@ public class DeviceCheckController {
log.info("[核查模块] A岗核查操作成功");
//3.将父级以及父级的父级的状态更改为正在进行 找到父级的stat对象
Integer fatherId = currentTask.getParentTaskId();
Task cityTask = taskRepo.findById(fatherId).get();
Integer cityStatId = cityTask.getBillId();
......@@ -408,7 +436,8 @@ public class DeviceCheckController {
// 审核通过与不通过的逻辑不同
TaskBto currentTask = taskService.get(id, CONFIRM_CHECK_DETAIL.id);
if (!currentTask.getBillStatus().equals(CHECK_DETAIL_1.id)) {
boolean CEDStep1 = currentTask.getBillStatus().equals(CHECK_DETAIL_1.id) || currentTask.getBillStatus().equals(CHECK_EXAM_DETAIL_1.id);
if (!CEDStep1) {
return ResponseEntity.status(400).body(new ResultObj<>(String.format("当前任务的状态异常!当前任务状态为 %s , 任务状态应该为 %s", GlobalMap.getStatusEnumMap().get(currentTask.getBillStatus()), CHECK_DETAIL_1.name)));
}
......
......@@ -52,6 +52,7 @@ public class DeviceCheckStat extends BaseEntity {
/**
* 统计信息以JSON形式存储
*/
@Column(columnDefinition="TEXT")
private String statInfo;
/**
......
......@@ -117,5 +117,8 @@ public class CheckDetailVo {
@ApiModelProperty(value = "核查状态(0:待核查,1:审核失败,2:核查完成)")
private Integer checkStatus;
@ApiModelProperty(value = "备注")
private String remark;
}
......@@ -16,6 +16,9 @@ import java.util.List;
@ApiModel("核查发起细节")
public class CheckExamDetailVo {
@ApiModelProperty(name = "核查组名称")
private String groupName;
@ApiModelProperty(name = "核查组成员名称")
private List<String> userNames;
......
......@@ -19,14 +19,16 @@ import java.util.List;
public class CheckExamVo {
@ApiModelProperty(name = "业务标题", example = "浙江省手动核查测试")
@JSONField(name = "title")
private String checkTitle;
private String title;
@ApiModelProperty(name = "截止时间", example = "2021-01-12")
private LocalDate endTime;
@ApiModelProperty(name = "核查组名称")
private String groupName;
@ApiModelProperty(name = "发起单位的id号")
private Integer unitId;
@ApiModelProperty(name = "检查统计业务id,如果是直接创建则给0",example = "0")
private Integer examStatId;
@ApiModelProperty(name = "发起检查细节")
@JSONField(name = "detail")
......
......@@ -294,6 +294,8 @@ public class ObjTransUtil {
String areaName = auService.findOne(AuExample.UnitName, unitName).getName();
detailVo.setCheckArea(areaName);
detailVo.setRemark(detailDo.getRemark());
return detailVo;
}
......
......@@ -54,11 +54,8 @@ public enum StatusEnum {
CHECK_EXAM_STAT_1(131, "检查统计数据等待确认"),
//以下为检查detail状态
CHECK_EXAM_DETAIL_0(140, "检查统计数据收集中"),
CHECK_EXAM_DETAIL_1(141, "检查统计数据收集中"),
CHECK_EXAM_DETAIL_2(142, "检查统计数据收集中"),
CHECK_EXAM_DETAIL_3(143, "检查统计数据收集中"),
CHECK_EXAM_DETAIL_0(140, "等待专管员A处理"),
CHECK_EXAM_DETAIL_1(141, "等待专管员B处理"),
/**
* 清退任务
......
......@@ -39,9 +39,9 @@ public class TaskLogServiceImpl implements TaskLogService {
@Override
public TaskLogBto addLog(TaskLogBto taskLogBto) {
TaskLog taskLog = taskLogDao.save(taskLogBto.toDo());
BcHash bcText = blockChainUtil.sendHash(1000, JacksonUtil.toJSon(taskLog));
String recordId = bcText.getData().getRecordID();
taskLog.setRecordId(recordId);
// BcHash bcText = blockChainUtil.sendHash(1000, JacksonUtil.toJSon(taskLog));
// String recordId = bcText.getData().getRecordID();
// taskLog.setRecordId(recordId);
// blockChainUtil.appendHash(JacksonUtil.toJSon(taskLog),taskLog.getRecordId());
return taskLogDao.save(taskLog).parse2bto();
}
......
......@@ -268,9 +268,9 @@ public class TaskServiceImpl implements TaskService {
@Log
public TaskBto start(TaskBto taskBto) {
Task task = taskDao.save(taskBto.toDo());
BcHash bcText = blockChainUtil.sendHash(1000, JacksonUtil.toJSon(task));
String recordId = bcText.getData().getRecordID();
task.setRecordId(recordId);
// BcHash bcText = blockChainUtil.sendHash(1000, JacksonUtil.toJSon(task));
// String recordId = bcText.getData().getRecordID();
// task.setRecordId(recordId);
update(task.parse2Bto());
return task.parse2Bto();
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论