zhangherong
2025-05-20 bb957f15fa76b5eac4de84bbef2b5d95c900df38
art: 设备管理-二保-启动流程实例
已修改6个文件
236 ■■■■■ 文件已修改
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/EquipmentMaintenanceStatus.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/SecondMaintenanceStatusEnum.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ThirdMaintenanceStatusEnum.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamSecondMaintenanceOrder.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java 187 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/EquipmentMaintenanceStatus.java
@@ -5,6 +5,13 @@
 */
public enum EquipmentMaintenanceStatus {
    NORMAL,
    UNDER_MAINTENANCE,
    WAIT_CONFIRM,;
    UNDER_INSPECTION, //点检中
    INSPECTION_CONFIRM, //点检确认中
    UNDER_WEEK_MAINTENANCE, //周保中
    WEEK_MAINTENANCE_WAIT_CONFIRM, //周保确认中
    UNDER_SECOND_MAINTENANCE, //二保中
    SECOND_MAINTENANCE_WAIT_CONFIRM, //二保确认中
    UNDER_THIRD_MAINTENANCE, //三保中
    THIRD_MAINTENANCE_WAIT_CONFIRM, //三保确认中
    ;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/SecondMaintenanceStatusEnum.java
@@ -4,11 +4,9 @@
    WAIT_MAINTENANCE, //待保养
    UNDER_MAINTENANCE, //保养中
    WAIT_CONFIRM, //待确认
    WAIT_INITIAL_ACCEPTANCE, // 待初验
    WAIT_FINAL_ACCEPTANCE, //待终验
    WAIT_LEADER_CONFIRM, // 待领导确认
    COMPLETE,  //已完成
    ABOLISH, //已作废
    EXPIRED, //已过期
    ;
    public static SecondMaintenanceStatusEnum getInstance(String code) {
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ThirdMaintenanceStatusEnum.java
@@ -3,12 +3,10 @@
public enum ThirdMaintenanceStatusEnum {
    WAIT_MAINTENANCE, //待保养
    UNDER_MAINTENANCE, //保养中
    WAIT_CONFIRM, //待确认
    WAIT_INITIAL_ACCEPTANCE, // 待初验
    WAIT_FINAL_ACCEPTANCE, //待终验
    WAIT_CONFIRM, //待管理员确认
    WAIT_LEADER_CONFIRM, // 待领导确认
    COMPLETE,  //已完成
    ABOLISH, //已作废
    EXPIRED, //已过期
    ;
    public static ThirdMaintenanceStatusEnum getInstance(String code) {
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamSecondMaintenanceOrder.java
@@ -142,6 +142,26 @@
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date confirmTime;
    /**
     * 单位领导确认
     */
    @Excel(name = "单位领导确认", width = 15)
    @ApiModelProperty(value = "单位领导确认")
    @Dict(dicCode = "sys_user, realname, username")
    private String confirmLeader;
    /**
     * 领导意见
     */
    @ApiModelProperty(value = "领导意见")
    private String leaderConfirmComment;
    /**
     * 领导确认时间
     */
    @ApiModelProperty(value = "领导确认时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date leaderConfirmTime;
    /**
     * 保养上传图片
     */
    @Excel(name = "保养上传图片", width = 15)
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java
@@ -1,6 +1,7 @@
package org.jeecg.modules.eam.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -8,12 +9,14 @@
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.flowable.engine.TaskService;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.constant.DataBaseConstant;
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.constant.BusinessCodeConst;
import org.jeecg.modules.eam.constant.EquipmentMaintenanceStatus;
import org.jeecg.modules.eam.constant.SecondMaintenanceStatusEnum;
import org.jeecg.modules.eam.entity.EamEquipment;
import org.jeecg.modules.eam.entity.EamSecondMaintenanceOrder;
@@ -22,7 +25,9 @@
import org.jeecg.modules.eam.request.EamSecondMaintenanceQuery;
import org.jeecg.modules.eam.request.EamSecondMaintenanceRequest;
import org.jeecg.modules.eam.service.*;
import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness;
import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService;
import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI;
import org.jeecg.modules.flowable.apithird.service.FlowCommonService;
import org.jeecg.modules.flowable.service.IFlowDefinitionService;
import org.jeecg.modules.flowable.service.IFlowTaskService;
@@ -32,10 +37,7 @@
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -44,8 +46,8 @@
 * @Date:   2025-04-29
 * @Version: V1.0
 */
@Service
public class EamSecondMaintenanceOrderServiceImpl extends ServiceImpl<EamSecondMaintenanceOrderMapper, EamSecondMaintenanceOrder> implements IEamSecondMaintenanceOrderService {
@Service("IEamSecondMaintenanceOrderService")
public class EamSecondMaintenanceOrderServiceImpl extends ServiceImpl<EamSecondMaintenanceOrderMapper, EamSecondMaintenanceOrder> implements IEamSecondMaintenanceOrderService, FlowCallBackServiceI {
    @Resource
    private EamSecondMaintenanceOrderMapper eamSecondMaintenanceOrderMapper;
    @Autowired
@@ -152,32 +154,32 @@
        }
        //判断是否存在保养人 如果存在则启动流程
        if (StringUtils.isNotBlank(order.getOperator())) {
            //启动流程 TODO
//            flowCommonService.initActBusiness("工单号:" + order.getOrderNum() + ";设备编号: " + equipment.getEquipmentCode() + ";进行设备二保",
//                    order.getId(), "IEamWeekMaintenanceOrderService", "week_maintenance_process", null);
//            Map<String, Object> variables = new HashMap<>();
//            variables.put("dataId", order.getId());
//            if (StrUtil.isEmpty(order.getRemark())) {
//                variables.put("organization", "新增周保工单默认启动流程");
//                variables.put("comment", "新增周保工单默认启动流程");
//            } else {
//                variables.put("organization", order.getRemark());
//                variables.put("comment", order.getRemark());
//            }
//            variables.put("proofreading", true);
//            List<String> usernames = new ArrayList<>();
//            usernames.add(order.getOperator());
//            variables.put("NextAssignee", usernames);
//            Result result = flowDefinitionService.startProcessInstanceByKey("week_maintenance_process", variables);
//            if (result != null) {
//                //更新周保状态
//                order.setMaintenanceStatus(WeekMaintenanceStatusEnum.UNDER_MAINTENANCE.name());
//                order.setActualStartTime(new Date());
//                eamWeekMaintenanceOrderMapper.updateById(order);
//                //更新设备保养状态
//                eamEquipmentExtendService.updateEquipmentMaintenanceStatus(order.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name());
//                return result.isSuccess();
//            }
            //启动流程
            flowCommonService.initActBusiness("工单号:" + order.getOrderNum() + ";设备编号: " + equipment.getEquipmentCode() + ";进行设备二保",
                    order.getId(), "IEamSecondMaintenanceOrderService", "second_maintenance_process", null);
            Map<String, Object> variables = new HashMap<>();
            variables.put("dataId", order.getId());
            if (StrUtil.isEmpty(order.getRemark())) {
                variables.put("organization", "新增二保工单默认启动流程");
                variables.put("comment", "新增二保工单默认启动流程");
            } else {
                variables.put("organization", order.getRemark());
                variables.put("comment", order.getRemark());
            }
            variables.put("proofreading", true);
            List<String> usernames = new ArrayList<>();
            usernames.add(order.getOperator());
            variables.put("NextAssignee", usernames);
            Result result = flowDefinitionService.startProcessInstanceByKey("second_maintenance_process", variables);
            if (result != null) {
                //更新周保状态
                order.setMaintenanceStatus(SecondMaintenanceStatusEnum.UNDER_MAINTENANCE.name());
                order.setActualStartTime(new Date());
                eamSecondMaintenanceOrderMapper.updateById(order);
                //更新设备保养状态
                eamEquipmentExtendService.updateEquipmentMaintenanceStatus(order.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_SECOND_MAINTENANCE.name());
                return result.isSuccess();
            }
        }
        return true;
@@ -227,32 +229,32 @@
        }
        //判断是否存在保养人 如果存在则启动流程
        if (StringUtils.isNotBlank(entity.getOperator())) {
            //启动流程 TODO
//            flowCommonService.initActBusiness("工单号:" + entity.getOrderNum() + ";设备编号: " + equipment.getEquipmentCode() + ";进行设备周保",
//                    entity.getId(), "IEamWeekMaintenanceOrderService", "week_maintenance_process", null);
//            Map<String, Object> variables = new HashMap<>();
//            variables.put("dataId", entity.getId());
//            if (StrUtil.isEmpty(entity.getRemark())) {
//                variables.put("organization", "新增周保工单默认启动流程");
//                variables.put("comment", "新增周保工单默认启动流程");
//            } else {
//                variables.put("organization", entity.getRemark());
//                variables.put("comment", entity.getRemark());
//            }
//            variables.put("proofreading", true);
//            List<String> usernames = new ArrayList<>();
//            usernames.add(entity.getOperator());
//            variables.put("NextAssignee", usernames);
//            Result result = flowDefinitionService.startProcessInstanceByKey("week_maintenance_process", variables);
//            if (result != null) {
//                //更新周保状态
//                entity.setMaintenanceStatus(WeekMaintenanceStatusEnum.UNDER_MAINTENANCE.name());
//                entity.setActualStartTime(new Date());
//                eamWeekMaintenanceOrderMapper.updateById(entity);
//                //更新设备保养状态
//                eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name());
//                return result.isSuccess();
//            }
            //启动流程
            flowCommonService.initActBusiness("工单号:" + entity.getOrderNum() + ";设备编号: " + equipment.getEquipmentCode() + ";进行设备二保",
                    entity.getId(), "IEamSecondMaintenanceOrderService", "second_maintenance_process", null);
            Map<String, Object> variables = new HashMap<>();
            variables.put("dataId", entity.getId());
            if (StrUtil.isEmpty(entity.getRemark())) {
                variables.put("organization", "新增二保工单默认启动流程");
                variables.put("comment", "新增二保工单默认启动流程");
            } else {
                variables.put("organization", entity.getRemark());
                variables.put("comment", entity.getRemark());
            }
            variables.put("proofreading", true);
            List<String> usernames = new ArrayList<>();
            usernames.add(entity.getOperator());
            variables.put("NextAssignee", usernames);
            Result result = flowDefinitionService.startProcessInstanceByKey("second_maintenance_process", variables);
            if (result != null) {
                //更新周保状态
                entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.UNDER_MAINTENANCE.name());
                entity.setActualStartTime(new Date());
                eamSecondMaintenanceOrderMapper.updateById(entity);
                //更新设备保养状态
                eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_SECOND_MAINTENANCE.name());
                return result.isSuccess();
            }
        }
        return true;
@@ -281,28 +283,53 @@
        entity.setActualStartTime(new Date());
        eamSecondMaintenanceOrderMapper.updateById(entity);
//        //启动流程
//        flowCommonService.initActBusiness("工单号:" + entity.getOrderNum() + ";设备编号: " + equipment.getEquipmentCode() + ";进行设备周保",
//                entity.getId(), "IEamWeekMaintenanceOrderService", "week_maintenance_process", null);
//        Map<String, Object> variables = new HashMap<>();
//        variables.put("dataId", entity.getId());
//        if (StrUtil.isEmpty(entity.getRemark())) {
//            variables.put("organization", "新增周保工单默认启动流程");
//            variables.put("comment", "新增周保工单默认启动流程");
//        } else {
//            variables.put("organization", entity.getRemark());
//            variables.put("comment", entity.getRemark());
//        }
//        variables.put("proofreading", true);
//        List<String> usernames = new ArrayList<>();
//        usernames.add(entity.getOperator());
//        variables.put("NextAssignee", usernames);
//        Result result = flowDefinitionService.startProcessInstanceByKey("week_maintenance_process", variables);
//        if (result != null) {
//            //更新设备保养状态
//            eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name());
//            return result.isSuccess();
//        }
        //启动流程
        flowCommonService.initActBusiness("工单号:" + entity.getOrderNum() + ";设备编号: " + equipment.getEquipmentCode() + ";进行设备二保",
                entity.getId(), "IEamSecondMaintenanceOrderService", "second_maintenance_process", null);
        Map<String, Object> variables = new HashMap<>();
        variables.put("dataId", entity.getId());
        if (StrUtil.isEmpty(entity.getRemark())) {
            variables.put("organization", "新增二保工单默认启动流程");
            variables.put("comment", "新增二保工单默认启动流程");
        } else {
            variables.put("organization", entity.getRemark());
            variables.put("comment", entity.getRemark());
        }
        variables.put("proofreading", true);
        List<String> usernames = new ArrayList<>();
        usernames.add(entity.getOperator());
        variables.put("NextAssignee", usernames);
        Result result = flowDefinitionService.startProcessInstanceByKey("second_maintenance_process", variables);
        if (result != null) {
            //更新设备保养状态
            eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_SECOND_MAINTENANCE.name());
            return result.isSuccess();
        }
        return true;
    }
    @Override
    public void afterFlowHandle(FlowMyBusiness business) {
        business.getTaskNameId();//接下来审批的节点
        business.getValues();//前端传进来的参数
        business.getActStatus();
    }
    @Override
    public Object getBusinessDataById(String dataId) {
        return this.getById(dataId);
    }
    @Override
    public Map<String, Object> flowValuesOfTask(String taskNameId, Map<String, Object> values) {
        return null;
    }
    @Override
    public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) {
        //业务是否干预流程,业务干预,流程干预,指定人员进行处理
        //获取下一步处理人
        Object object = values.get("NextAssignee");
        return (List<String>) object;
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderServiceImpl.java
@@ -134,7 +134,7 @@
                order.setActualStartTime(new Date());
                eamWeekMaintenanceOrderMapper.updateById(order);
                //更新设备保养状态
                eamEquipmentExtendService.updateEquipmentMaintenanceStatus(order.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name());
                eamEquipmentExtendService.updateEquipmentMaintenanceStatus(order.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_WEEK_MAINTENANCE.name());
                return result.isSuccess();
            }
        }
@@ -260,7 +260,7 @@
                entity.setActualStartTime(new Date());
                eamWeekMaintenanceOrderMapper.updateById(entity);
                //更新设备保养状态
                eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name());
                eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_WEEK_MAINTENANCE.name());
                return result.isSuccess();
            }
@@ -310,7 +310,7 @@
        Result result = flowDefinitionService.startProcessInstanceByKey("week_maintenance_process", variables);
        if (result != null) {
            //更新设备保养状态
            eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_MAINTENANCE.name());
            eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_WEEK_MAINTENANCE.name());
            return result.isSuccess();
        }
        return true;
@@ -388,7 +388,7 @@
                    eamWeekMaintenanceOrderDetailService.updateBatchById(request.getTableDetailList());
                }
                //更新设备保养状态
                eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.WAIT_CONFIRM.name());
                eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.WEEK_MAINTENANCE_WAIT_CONFIRM.name());
                break;
            case WAIT_CONFIRM:
                if (StringUtils.isBlank(equipment.getEquipmentManager())) {