检修计划任务下发

温馨提示:本文最后更新于2025-07-09 14:58:07,某些文章具有时效性,若有错误或已失效,请在下方留言

检修计划审批通过后,将任务明细项下发给负责人,负责人进行现场的检修工作。检修计划的流程,如下所示。

检修计划流程
检修计划流程

审批通过后,调用 任务下发接口 ,将检修明细项下发给负责人。

任务下发接口

根据检修计划ID获取检修计划明细项,再根据检修明细项 ID 获取检修明细项实体,然后触发检修计划明细流程。

后台 Java 代码

/**
 * 根据检修计划 ID 获取检修明细,并创建检修明细项流程
 * @param id 检修计划 ID
 * @return ActionResult
 */
@Operation(summary = "创建检修明细项流程")
@PostMapping("/createMaintenanceScheduleItemsFlow")
public ActionResult createMaintenanceScheduleItemsFlow(@RequestParam(value = "id") String id) {
    // 获取检修计划信息
    MaintenanceScheduleEntity info = maintenanceScheduleService.getInfo(id);
    if (ObjectUtil.isNull(info)) {
        return ActionResult.fail(MsgCode.FA001.get());
    }

    // 获取检修明细项列表
    List<MaintenanceScheduleItemsEntity> items = info.getMaintenanceScheduleItems();
    if (items.isEmpty()) {
        return ActionResult.fail("没有检修明细项可供创建流程");
    }

    for (MaintenanceScheduleItemsEntity item : items) {
        // 获取检修明细项的负责人
        String personIncharge = item.getPersonincharge();
        // 关联的检修明细实体
        MaintenanceDetailsEntity entity = maintenanceDetailsService.getInfo(item.getRelationformfield94996e());
        if(entity==null){
            return ActionResult.fail(MsgCode.FA001.get());
        }
        // 设置检修明细项的负责人
        entity.setPersonincharge(personIncharge);
        Map<String, Object> maintenanceDetailsMap=JsonUtil.entityToMap(entity);
        maintenanceDetailsMap.put("id", maintenanceDetailsMap.get("f_id"));
        //副表数据
        //子表数据
        List<MaintenanceDetailsRepairEntity> maintenanceDetailsRepairList = entity.getMaintenanceDetailsRepair();
        maintenanceDetailsMap.put("tableField2fdc6d",JsonUtil.getJsonToList(JsonUtil.getListToJsonArray(maintenanceDetailsRepairList)));
        List<MaintenanceDetailsMaterielEntity> maintenanceDetailsMaterielList = entity.getMaintenanceDetailsMateriel();
        maintenanceDetailsMap.put("tableFieldb6cb30",JsonUtil.getJsonToList(JsonUtil.getListToJsonArray(maintenanceDetailsMaterielList)));
        List<MaintenanceDetailsTasksEntity> maintenanceDetailsTasksList = entity.getMaintenanceDetailsTasks();
        maintenanceDetailsMap.put("tableField560738",JsonUtil.getJsonToList(JsonUtil.getListToJsonArray(maintenanceDetailsTasksList)));
        maintenanceDetailsMap.put("personInCharge", personIncharge);
        maintenanceDetailsMap.put("maintenancePlanID", info.getId());

        // 创建检修明细项流程
        FlowModel fo = new FlowModel();
        fo.setFlowId("712323600488600069");
        fo.setStatus(1);
        fo.setFlowUrgent(1);
        fo.setIsFlow(0);
        fo.setFormData(maintenanceDetailsMap);

        // 设置办理节点人员信息
        try {
            taskService.batchSaveOrSubmit(fo);
            if (ObjectUtil.equals(TaskStatusEnum.RUNNING.getCode(), fo.getStatus())) {
                operatorUtil.event(fo, 1);
            }
            TaskEntity taskEntity = fo.getTaskEntity();
            if (taskEntity.getRejectDataId() == null) {
                operatorUtil.autoAudit(fo);
                operatorUtil.handleEvent();
            }
            List<OperatorEntity> list = fo.getList();
            if (CollectionUtil.isNotEmpty(list)) {
                TimeUtil.timeModel(list, fo, redisUtil);
            }
            String msg = TaskStatusEnum.TO_BE_SUBMIT.getCode().equals(fo.getStatus()) ? MsgCode.SU002.get() : MsgCode.SU006.get();
            TaskEntity task = taskService.getById(taskEntity.getId());
            taskEntity = task == null ? taskEntity : task;
            AuditModel model = taskUtil.getAuditModel(taskEntity.getId(), fo, null);
        } catch (Exception e) {
            log.error("创建检修明细项流程失败", e);
            return ActionResult.fail(MsgCode.FA028.get());
        }

    }
    return ActionResult.success();
}

前端接口配置

基本信息
基本信息

数据配置
数据配置

检修明细项流程

检修明细项流程,如下所示。

流程发起节点的配置
流程发起节点的配置

流程发起节点,表单权限的设置中,负责人以及 巡检计划 ID 必须是可 编辑 的,否接上述接口无法将数据写入数据库。

办理节点的配置
办理节点的配置

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容