zxl
2025-03-03 f20fad8125774e487e133e909b323b43bd11db24
Merge branch 'master' into dev
6个文件已修改
115 ■■■■■ 已修改文件
business/src/main/java/com/ycl/controller/HiddenAdminController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/vo/IndexCustomerTaskVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/vo/ProjectEngineeringVO.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/resources/mapper/ProjectProcessMapper.xml 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/controller/HiddenAdminController.java
@@ -70,7 +70,7 @@
    @GetMapping("/page")
    @ApiOperation(value = "分页", notes = "分页")
    @PreAuthorize("@ss.hasPermi('hiddenAdmin:page')")
//    @PreAuthorize("@ss.hasPermi('hiddenAdmin:page')")
    public Result page(HiddenAdminQuery query) {
        return hiddenAdminService.page(query);
    }
business/src/main/java/com/ycl/domain/vo/IndexCustomerTaskVO.java
@@ -19,7 +19,7 @@
    /**
     * 项目id
     */
    private Long projectId;
    private String projectId;
    /**
     * 项目名称
business/src/main/java/com/ycl/domain/vo/ProjectEngineeringVO.java
@@ -35,6 +35,21 @@
    @ApiModelProperty("工程名称")
    private String projectName;
    @ApiModelProperty("流程实例id")
    private String processInsId;
    @ApiModelProperty("流程定义id")
    private String processDefId;
    @ApiModelProperty("发布id")
    private String deployId;
    @ApiModelProperty("流程名称")
    private String flowableProcessName;
    @ApiModelProperty("流程是否挂起/暂停")
    private boolean suspended;
    /** 项目推进类型 */
    @ApiModelProperty("项目推进类型")
    private String projectType;
@@ -77,7 +92,7 @@
    private String unitName;
    /** 工程列表 */
    @ApiModelProperty("工程列表")
    @ApiModelProperty("子工程列表")
    private List<ProjectEngineeringVO> children = new ArrayList<ProjectEngineeringVO>();
    public static ProjectEngineeringVO getVoByEntity(@NonNull ProjectEngineering entity, ProjectEngineeringVO vo) {
business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java
@@ -155,28 +155,18 @@
            return AjaxResult.error("项目流程未绑定");
        }
        Map<String, Object> processVariables = new HashMap<>();
        //查出字典中需要注入的字段信息
        List<String> dictList = sysDictDService.selectDictDataByType("flow_variables").stream().map(SysDictData::getDictValue).collect(Collectors.toList());
        Map<String, Object> newV = new HashMap<>(2);
        if (!org.springframework.util.CollectionUtils.isEmpty(variables)) {
            for (String key : variables.keySet()) {
                newV.put(task.getTaskDefinitionKey() + "&" + key, variables.get(key));
                //字典里有就放入流程变量中
                // 字典里有就不做处理
                if (!CollectionUtils.isEmpty(dictList) && dictList.contains(key)) {
                    if ("money".equals(key)) {
                        // 万元转元
                        Object w = variables.get(key);
                        BigDecimal y = new BigDecimal(w.toString()).multiply(new BigDecimal(10000));
                        processVariables.put(key, y);
                    } else {
                        processVariables.put(key,variables.get(key));
                    newV.put(key,variables.get(key));
                    }
                }
            }
        }
        //添加流程变量
        if(!processVariables.isEmpty()) taskService.setVariables(taskId,processVariables);
        taskService.addComment(taskId, task.getProcessInstanceId(), FlowComment.SUBMIT.getType(), "完成提交");
        if (DelegationState.PENDING.equals(task.getDelegationState())) {
            taskService.resolveTask(taskId, newV);
@@ -1282,8 +1272,14 @@
            if (node.getCurrent()) {
                return Boolean.TRUE;
            }
            HistoricTaskInstance beforeTask = historyService.createHistoricTaskInstanceQuery().processInstanceId(finalProcessInsId).finished().taskDefinitionKey(node.getBeforeNodeDefId()).singleResult();
            return Objects.nonNull(beforeTask);
            List<HistoricTaskInstance> beforeTasks = historyService.createHistoricTaskInstanceQuery()
                    .processInstanceId(finalProcessInsId)
                    .finished()
                    .taskDefinitionKey(node.getBeforeNodeDefId())
                    .orderByTaskCreateTime()
                    .desc()
                    .list();
            return CollectionUtils.isNotEmpty(beforeTasks) && Objects.nonNull(beforeTasks.get(0));
        }).collect(Collectors.toList());
        List<DoFormDetailVO> vos = beforeNodes.stream().map(node -> {
            if (node.getCurrent()) {
@@ -1354,8 +1350,14 @@
                if (node.getCurrent()) {
                    return Boolean.TRUE;
                }
                HistoricTaskInstance beforeTask = historyService.createHistoricTaskInstanceQuery().processInstanceId(task.getProcessInstanceId()).finished().taskDefinitionKey(node.getBeforeNodeDefId()).singleResult();
                return Objects.nonNull(beforeTask);
                List<HistoricTaskInstance> beforeTaskList = historyService.createHistoricTaskInstanceQuery()
                        .processInstanceId(task.getProcessInstanceId())
                        .finished()
                        .taskDefinitionKey(node.getBeforeNodeDefId())
                        .orderByTaskCreateTime()
                        .desc()
                        .list();
                return CollectionUtils.isNotEmpty(beforeTaskList) && Objects.nonNull(beforeTaskList.get(0));
            }).collect(Collectors.toList());
            List<DoFormDetailVO> vos = dataList.stream().map(node -> {
                if (node.getCurrent()) {
business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
@@ -19,9 +19,7 @@
import com.ycl.domain.entity.*;
import com.ycl.domain.form.*;
import com.ycl.domain.json.*;
import com.ycl.domain.vo.CustomerTaskVO;
import com.ycl.domain.vo.IndexCustomerTaskVO;
import com.ycl.domain.vo.ProjectProcessDetailVO;
import com.ycl.domain.vo.*;
import com.ycl.event.event.TaskLogEvent;
import com.ycl.mapper.ProjectEngineeringMapper;
import com.ycl.mapper.ProjectInfoMapper;
@@ -29,7 +27,6 @@
import com.ycl.service.*;
import com.ycl.common.base.Result;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.domain.vo.ProjectProcessVO;
import com.ycl.domain.query.ProjectProcessQuery;
import com.ycl.service.common.TaskCommonService;
import com.ycl.system.service.ISysDeptService;
@@ -105,9 +102,20 @@
        IPage<ProjectProcessVO> page = PageUtil.getPage(query, ProjectProcessVO.class);
        baseMapper.getPage(query, page);
        for (ProjectProcessVO vo : page.getRecords()) {
            vo.setChildren(TreeUtil.treeForProjectEng(baseMapper.getEngineeringList(vo.getId())));
            List<ProjectEngineeringVO> childList = baseMapper.getEngineeringList(vo.getId());
            childList.stream().forEach(child -> {
                if (StringUtils.isNotBlank(child.getProcessDefId())) {
                    ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(child.getProcessDefId()).singleResult();
                    if (Objects.nonNull(processDefinition)) {
                        child.setSuspended(processDefinition.isSuspended());
                        child.setFlowableProcessName(processDefinition.getName() + "(v" + processDefinition.getVersion() + ")");
                        child.setDeployId(processDefinition.getDeploymentId());
                    }
                }
            });
            vo.setChildren(TreeUtil.treeForProjectEng(childList));
            vo.setStatus(vo.getProjectStatus());
            if (Objects.nonNull(vo.getProcessDefId())) {
            if (StringUtils.isNotBlank(vo.getProcessDefId())) {
                ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(vo.getProcessDefId()).singleResult();
                if (Objects.nonNull(processDefinition)) {
                    vo.setSuspended(processDefinition.isSuspended());
@@ -148,7 +156,6 @@
        Long unitId = null;
        if (ProjectProcessTypeEnum.PROJECT.equals(form.getProjectType())) {
            ProjectInfo project = new LambdaQueryChainWrapper<>(projectInfoMapper)
                    .select(ProjectInfo::getProjectOwnerUnit)
                    .eq(ProjectInfo::getId, form.getProjectId())
                    .one();
            if (Objects.isNull(project)) {
@@ -157,7 +164,6 @@
            unitId = project.getProjectOwnerUnit();
        } else if (ProjectProcessTypeEnum.ENGINEERING.equals(form.getProjectType())) {
            ProjectEngineering projectEngineering = new LambdaQueryChainWrapper<>(projectEngineeringMapper)
                    .select(ProjectEngineering::getDepartment)
                    .eq(ProjectEngineering::getId, form.getProjectId())
                    .one();
            if (Objects.isNull(projectEngineering)) {
@@ -188,7 +194,6 @@
        Long unitId = null;
        if (ProjectProcessTypeEnum.PROJECT.equals(form.getProjectType())) {
            ProjectInfo project = new LambdaQueryChainWrapper<>(projectInfoMapper)
                    .select(ProjectInfo::getProjectOwnerUnit)
                    .eq(ProjectInfo::getId, form.getProjectId())
                    .one();
            if (Objects.isNull(project)) {
@@ -197,7 +202,6 @@
            unitId = project.getProjectOwnerUnit();
        } else if (ProjectProcessTypeEnum.ENGINEERING.equals(form.getProjectType())) {
            ProjectEngineering projectEngineering = new LambdaQueryChainWrapper<>(projectEngineeringMapper)
                    .select(ProjectEngineering::getDepartment)
                    .eq(ProjectEngineering::getId, form.getProjectId())
                    .one();
            if (Objects.isNull(projectEngineering)) {
@@ -243,6 +247,7 @@
        variables.put(ProcessConstants.PROCESS_INITIATOR, sysUser.getUserId());
        // 将该项目的申请人(业主方)作为流程中某些环节的处理人
        variables.put(ProcessConstants.DATA_LAUNCH, "dept:" + createBy);
        variables.put("a", 1);
        ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefId, projectId + "", variables);
        return processInstance.getId();
    }
@@ -394,13 +399,28 @@
            taskVO.setTaskDefinitionKey(task.getTaskDefinitionKey());
            // 流程项目信息
            ProjectInfo project = baseMapper.getProjectInfo(task.getProcessInstanceId());
            ProjectProcess projectProcess = new LambdaQueryChainWrapper<>(baseMapper)
                    .eq(ProjectProcess::getProcessInsId, task.getProcessInstanceId())
                    .one();
            String projectId = "";
            String projectName = "";
            if (Objects.nonNull(projectProcess)) {
                if (projectProcess.getProjectType().equals(ProjectProcessTypeEnum.PROJECT)) {
                    ProjectInfo project = projectInfoMapper.selectById(projectProcess.getProjectId());
            if (Objects.nonNull(project)) {
                taskVO.setProjectId(project.getId());
                taskVO.setProjectName(project.getProjectName());
            } else {
                continue;
                        projectId = projectProcess.getProjectId();
                        projectName = project.getProjectName();
            }
                } else if (projectProcess.getProjectType().equals(ProjectProcessTypeEnum.ENGINEERING)) {
                    ProjectEngineering engineering = projectEngineeringMapper.selectById(projectProcess.getProjectId());
                    if (Objects.nonNull(engineering)) {
                        projectId = projectProcess.getProjectId();
                        projectName = engineering.getProjectName();
                    }
                }
            }
            taskVO.setProjectId(projectId);
            taskVO.setProjectName(projectName);
            // 流程发起人信息
            this.setPromoterInfo(taskVO);
business/src/main/resources/mapper/ProjectProcessMapper.xml
@@ -77,6 +77,8 @@
        <result column="parent_id" property="parent" />
        <result column="project_owner_unit_name" property="projectOwnerUnitName" />
        <result column="competent_department_name" property="competentDepartmentName" />
        <result column="process_ins_id" property="processInsId" />
        <result column="process_def_id" property="processDefId" />
    </resultMap>
    <select id="getProjectEngineeringList" parameterType="string" resultMap="EngineeringMap">
@@ -111,9 +113,11 @@
        SELECT
            TT.id, TT.project_info_id, TT.project_name, TT.project_type, TT.investment_amount, TT.status, TT.unit, TT.department, TT.parent_id, TT.year, TT.gmt_create,
            (SELECT  SD.dept_name FROM sys_dept SD WHERE SD.dept_id = TT.unit) AS project_owner_unit_name,
            (SELECT  SD.dept_name FROM sys_dept SD WHERE SD.dept_id = TT.department) AS competent_department_name
            (SELECT  SD.dept_name FROM sys_dept SD WHERE SD.dept_id = TT.department) AS competent_department_name,
            TPP.process_ins_id, TPP.process_def_id
        FROM
            temp_table TT
                LEFT JOIN t_project_process TPP ON TPP.project_id = TT.id AND TPP.deleted = 0 AND TPP.project_type = 'ENGINEERING'
        ORDER BY
            TT.gmt_create DESC
    </select>
@@ -169,7 +173,9 @@
    <select id="getNormalInsIds" resultType="string">
        SELECT TPP.process_ins_id FROM t_project_info TPI INNER JOIN t_project_process TPP ON TPI.id = TPP.project_id AND TPI.deleted = 0
        SELECT TPP.process_ins_id FROM t_project_info TPI INNER JOIN t_project_process TPP ON TPI.id = TPP.project_id AND TPI.deleted = 0 AND TPP.project_type = 'PROJECT'
        UNION ALL
        SELECT TPP.process_ins_id FROM t_project_engineering TPE INNER JOIN t_project_process TPP ON TPE.id = TPP.project_id AND TPE.deleted = 0 AND TPP.project_type = 'ENGINEERING'
    </select>
</mapper>