use of io.jpom.model.log.OutGivingLog in project Jpom by dromara.
the class OutGivingItemRun method updateStatus.
/**
* 更新状态
*
* @param logId 日志ID
* @param outGivingId 分发id
* @param outGivingNodeProjectItem 分发项
* @param status 状态
* @param msg 消息描述
*/
public static void updateStatus(String logId, String outGivingId, OutGivingNodeProject outGivingNodeProjectItem, OutGivingNodeProject.Status status, String msg, String userId) {
synchronized (outGivingId.intern()) {
OutGivingServer outGivingServer = SpringUtil.getBean(OutGivingServer.class);
OutGivingModel outGivingModel = outGivingServer.getByKey(outGivingId);
List<OutGivingNodeProject> outGivingNodeProjects = outGivingModel.outGivingNodeProjectList();
Assert.notEmpty(outGivingNodeProjects, "没有分发项目");
OutGivingNodeProject finOutGivingNodeProject = null;
//
for (OutGivingNodeProject outGivingNodeProject : outGivingNodeProjects) {
if (!outGivingNodeProject.getProjectId().equalsIgnoreCase(outGivingNodeProjectItem.getProjectId()) || !outGivingNodeProject.getNodeId().equalsIgnoreCase(outGivingNodeProjectItem.getNodeId())) {
continue;
}
outGivingNodeProject.setStatus(status.getCode());
outGivingNodeProject.setResult(msg);
outGivingNodeProject.setLastOutGivingTime(DateUtil.now());
//
finOutGivingNodeProject = outGivingNodeProject;
}
{
List<OutGivingNodeProject.Status> collect = outGivingNodeProjects.stream().map(outGivingNodeProject -> EnumUtil.likeValueOf(OutGivingNodeProject.Status.class, outGivingNodeProject.getStatus())).collect(Collectors.toList());
OutGivingModel.Status outGivingStatus = CollUtil.contains(collect, OutGivingNodeProject.Status.Ing) ? OutGivingModel.Status.ING : OutGivingModel.Status.DONE;
// 更新分发数据
OutGivingModel outGivingModel1 = new OutGivingModel();
outGivingModel1.setId(outGivingId);
outGivingModel1.setStatus(outGivingStatus.getCode());
outGivingModel1.outGivingNodeProjectList(outGivingNodeProjects);
outGivingServer.update(outGivingModel1);
}
// 更新日志数据
OutGivingLog outGivingLog = new OutGivingLog();
outGivingLog.setId(StrUtil.emptyToDefault(logId, IdUtil.fastSimpleUUID()));
if (finOutGivingNodeProject != null) {
outGivingLog.setNodeId(finOutGivingNodeProject.getNodeId());
outGivingLog.setProjectId(finOutGivingNodeProject.getProjectId());
}
outGivingLog.setModifyUser(userId);
outGivingLog.setOutGivingId(outGivingId);
outGivingLog.setResult(msg);
outGivingLog.setStatus(status.getCode());
DbOutGivingLogService dbOutGivingLogService = SpringUtil.getBean(DbOutGivingLogService.class);
if (status == OutGivingNodeProject.Status.Ing || status == OutGivingNodeProject.Status.Cancel) {
// 开始或者 取消都还没有记录
dbOutGivingLogService.insert(outGivingLog);
} else {
outGivingLog.setEndTime(SystemClock.now());
dbOutGivingLogService.update(outGivingLog);
}
}
}
Aggregations