lyh
3 天以前 548de3053898bc6571c90d014a40050c39a7d195
二保添加流转节点
已修改5个文件
92 ■■■■■ 文件已修改
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamSecondMaintenanceOrder.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamSecondMaintenanceOrderMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java 62 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/xml/FlowMyBusinessMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/mapper/xml/HisWorkTaskMapper.xml 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamSecondMaintenanceOrder.java
@@ -183,4 +183,8 @@
    //型号
    @TableField(exist = false)
    private String equipmentModel;
    //流转节点使用查询
    @TableField(exist = false)
    private String procInstId;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamSecondMaintenanceOrderMapper.xml
@@ -3,10 +3,11 @@
<mapper namespace="org.jeecg.modules.eam.mapper.EamSecondMaintenanceOrderMapper">
    <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamSecondMaintenanceOrder">
        select wmo.*, e.equipment_code, e.equipment_name,e.equipment_model
        select wmo.*, e.equipment_code, e.equipment_name,e.equipment_model,f.process_instance_id as 'procInstId'
        from eam_second_maintenance_order wmo
        inner join eam_equipment e
        on wmo.equipment_id = e.id
        left join flow_my_business f on f.data_id=wmo.id
        ${ew.customSqlSegment}
    </select>
</mapper>
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java
@@ -80,8 +80,6 @@
    @Autowired
    private IEamEquipmentService eamEquipmentService;
    @Autowired
    private IEamReportRepairService eamReportRepairService;
    @Autowired
    private IEamEquipmentExtendService eamEquipmentExtendService;
    @Autowired
    private IEamBaseHFCodeService hfCodeService;
@@ -430,43 +428,52 @@
                    throw new JeecgBootException("设备未存在检查人,无法进入下级审批!");
                }else{
                    userApprovalList= userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                    values.put("NextAssignee", userApprovalList);
                    values.put("dataId", entity.getId());
                    if (StrUtil.isEmpty(request.getDealDescription())){
                        request.setDealDescription("");
                    if (StrUtil.isEmpty(request.getManageUserResult())){
                        request.setManageUserResult("");
                    }
                    values.put("organization",request.getDealDescription());
                    values.put("comment", request.getDealDescription());
                    values.put("comment", request.getManageUserResult());
                    values.put("manageUserResult",request.getManageUserResult());
                    request.setComment(request.getDealDescription());
                    if (request.getManageUserResult().equals("2")){
                        entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.UNDER_MAINTENANCE.name());
                    }else {
                        values.put("NextAssignee", userApprovalList);
                    entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.WAIT_INSPECTOR_CONFIRM.name());
                        entity.setConfirmTime(new Date());
                    entity.setManageUser(user.getUsername());
                    entity.setProblemDescription(request.getProblemDescription());
                    entity.setManageUserResult(request.getManageUserResult());
                    entity.setDealDescription(request.getDealDescription());
                    entity.setConfirmTime(new Date());
                    request.setComment(request.getDealDescription());
                    if (request.getManageUserResult().equals("2")){
                        entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.REJECTED.name());
                    }
                }
                break;
            case WAIT_INSPECTOR_CONFIRM:
                //检查人确认
                if (StrUtil.isEmpty(request.getDealDescription())){
                    request.setDealDescription("");
                if (StrUtil.isEmpty(request.getInspectConfirmComment())){
                    request.setInspectConfirmComment("");
                }
                values.put("dataId", entity.getId());
                values.put("organization",request.getInspectConfirmComment());
                values.put("comment", request.getInspectConfirmComment());
                values.put("inspectorResult",request.getInspectorResult());
                request.setComment(request.getInspectConfirmComment());
                if (request.getInspectorResult().equals("2")){
                    entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.WAIT_ADMIN_CONFIRM.name());
                    userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0004);
                    if (CollectionUtil.isEmpty(userSelectors)) {
                        throw new JeecgBootException("设备未存在管理员,无法进入下级审批!");
                    }else{
                        userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                        values.put("NextAssignee", userApprovalList);
                    }
                }else {
                entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.COMPLETE.name());
                entity.setInspector(user.getUsername());
                entity.setInspectorResult(request.getInspectorResult());
                entity.setInspectConfirmComment(request.getInspectConfirmComment());
                entity.setInspectConfirmTime(new Date());
                request.setComment(request.getDealDescription());
                if (request.getInspectorResult().equals("2")){
                    entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.REJECTED.name());
                }
                break;
            default:
@@ -478,6 +485,31 @@
        if (!result.isSuccess()) {
            throw new JeecgBootException("审批失败,请刷新查看!");
        }
        if (user.getPost().equals(BusinessCodeConst.PCR0004)&&request.getManageUserResult().equals("2")){
            //管理员拒绝,会签节点修改对应关系
            List<FlowMyBusiness> list = flowMyBusinessService.list(new LambdaQueryWrapper<FlowMyBusiness>().eq(FlowMyBusiness::getProcessInstanceId, request.getInstanceId()));
            if (CollectionUtils.isNotEmpty(list)) {
                list.forEach(item -> {
                    if (item.getTaskNameId().equals("maintenance_task")) {
                        //获取维修工岗位用户
                        List<UserSelector> userSelectorList = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0002);
                        if (!CollectionUtils.isEmpty(userSelectorList)) {
                            List<String> usernameList = userSelectorList.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                            item.setTodoUsers(JSON.toJSONString(usernameList));
                        }
                    }
                    if (item.getTaskNameId().equals("operator_task")) {
                        //获取操作人岗位用户
                        List<UserSelector> userSelectorList = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0001);
                        if (!CollectionUtils.isEmpty(userSelectorList)) {
                            List<String> usernameList = userSelectorList.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                            item.setTodoUsers(JSON.toJSONString(usernameList));
                        }
                    }
                });
                flowMyBusinessService.updateBatchById(list);
            }
        }
        //保存工单
        eamSecondMaintenanceOrderMapper.updateById(entity);
        return entity;
lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/xml/FlowMyBusinessMapper.xml
@@ -47,7 +47,7 @@
    <select id="ListMyBusiness" resultType="org.jeecg.modules.flowable.domain.dto.FlowTaskDto">
        SELECT
        latest_task.ID_ AS 'taskId',
        latest_task.PROC_DEF_ID_ AS 'procInstId',
        latest_task.PROC_INST_ID_ AS 'procInstId',
        latest_task.PROC_DEF_ID_ AS 'processInstanceId',
        ACT_RE_PROCDEF.CATEGORY_ AS 'category',
        ACT_RE_PROCDEF.NAME_ AS 'procDefName',
lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/mapper/xml/HisWorkTaskMapper.xml
@@ -28,8 +28,7 @@
            SELECT
                p.PROC_INST_ID_ AS procInstId,
                p.BUSINESS_KEY_ AS businessKey,
                p.START_TIME_ AS procStartTime,
                p.END_TIME_ AS procEndTime,
                a.EXECUTION_ID_ AS executionId,
                a.ACT_ID_,
                COALESCE ( a.ACT_NAME_, a.ACT_ID_ ) AS actName,
                a.ACT_TYPE_ AS actType,
@@ -38,10 +37,12 @@
                c.NAME_ AS taskName,
                c.ASSIGNEE_ AS assignee,
                c.DESCRIPTION_ AS description,
-- 使用 LEAD 获取下一个活动信息
                LEAD ( COALESCE ( a.ACT_NAME_, a.ACT_ID_ ) ) OVER ( PARTITION BY p.PROC_INST_ID_ ORDER BY a.START_TIME_ ) AS nextActName,
                LEAD ( a.ACT_TYPE_ ) OVER ( PARTITION BY p.PROC_INST_ID_ ORDER BY a.START_TIME_ ) AS nextActType,
                LEAD ( a.START_TIME_ ) OVER ( PARTITION BY p.PROC_INST_ID_ ORDER BY a.START_TIME_ ) AS nextActStartTime
                LEAD ( COALESCE ( a.ACT_NAME_, a.ACT_ID_ ) ) OVER ( PARTITION BY p.PROC_INST_ID_, a.EXECUTION_ID_
                    ORDER BY a.START_TIME_ ) AS nextActName,
                LEAD ( a.ACT_TYPE_ ) OVER ( PARTITION BY p.PROC_INST_ID_, a.EXECUTION_ID_
                    ORDER BY a.START_TIME_ ) AS nextActType,
                LEAD ( a.START_TIME_ ) OVER ( PARTITION BY p.PROC_INST_ID_, a.EXECUTION_ID_
                    ORDER BY a.START_TIME_ ) AS nextActStartTime
            FROM
                act_hi_procinst p
                    LEFT JOIN act_hi_actinst a ON p.PROC_INST_ID_ = a.PROC_INST_ID_
@@ -52,23 +53,19 @@
        ) SELECT
              procInstId,
              businessKey,
-- 当前活动(userTask)信息
              actName AS userTaskName,
              taskName,
              assignee,
              actStartTime,
              actEndTime,
              description,
-- 下一个活动(sequenceFlow)信息
              nextActName AS sequenceFlowName,
              nextActStartTime AS sequenceFlowStartTime
        FROM
            ActivitySequence
        WHERE
            actType = 'userTask' -- 筛选当前活动为 userTask
          AND nextActType = 'sequenceFlow' -- 且下一个活动为 sequenceFlow
            actType = 'userTask'
          AND nextActType = 'sequenceFlow'
        ORDER BY
            actStartTime;
    </select>