Search in sources :

Example 1 with DbOutGivingLogService

use of io.jpom.service.dblog.DbOutGivingLogService 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);
        }
    }
}
Also used : HttpStatus(cn.hutool.http.HttpStatus) OutGivingServer(io.jpom.service.node.OutGivingServer) OutGivingNodeProject(io.jpom.model.data.OutGivingNodeProject) OutGivingLog(io.jpom.model.log.OutGivingLog) OutGivingModel(io.jpom.model.data.OutGivingModel) List(java.util.List) DbOutGivingLogService(io.jpom.service.dblog.DbOutGivingLogService)

Aggregations

HttpStatus (cn.hutool.http.HttpStatus)1 OutGivingModel (io.jpom.model.data.OutGivingModel)1 OutGivingNodeProject (io.jpom.model.data.OutGivingNodeProject)1 OutGivingLog (io.jpom.model.log.OutGivingLog)1 DbOutGivingLogService (io.jpom.service.dblog.DbOutGivingLogService)1 OutGivingServer (io.jpom.service.node.OutGivingServer)1 List (java.util.List)1