工作流-待办,已办,我发起的

待办

public Map queryDb(String name, String role_id, String create_start, String create_end, String processInstanceId
            , String projName, String applyName, String apply_start, String apply_end, Integer firstResult, Integer maxResults,Integer is_cost) throws ParseException {
        Map data = new HashMap();
        TaskQuery tq = taskService.createTaskQuery().active();
        if (StringUtils.isNotEmpty(name)) {
            tq.taskNameLike("%" + name + "%");
        }
        if (create_start != null) {
            tq.taskCreatedAfter(DateUtils.parseDate(create_start, "yyyy-MM-dd"));
        }
        if (create_end != null) {
            tq.taskCreatedBefore(DateUtils.parseDate(create_end, "yyyy-MM-dd"));
        }
        if (StringUtils.isNotEmpty(processInstanceId)) {
            tq.processInstanceId(processInstanceId);
        }
        if (StringUtils.isNotEmpty(role_id)) {
            tq.taskCandidateGroupIn(Arrays.asList(role_id.split(",")));
        }
        // 当前登录人
        String userId = String.valueOf(SecurityUtils.getUserId());
        if (StringUtils.isNotEmpty(userId)) {
            // 根据处理人查询任务列表
            tq.taskCandidateOrAssigned(userId);
        }
        if(is_cost == 0){
            tq.taskVariableValueGreaterThanOrEqual(APPLY_COST, 0.0);
        } else {
            tq.taskVariableValueEquals(IS_COST, 1);
        }
        // todo: 项目名称、材料上报人、材料上报日期
        if (StringUtils.isNotEmpty(projName)) {
            tq.taskVariableValueLike(PROJECT_NAME, "%" + projName + "%");
        }
        if (StringUtils.isNotEmpty(applyName)) {
            tq.taskVariableValueLike(APPLY_NAME, "%" + applyName + "%");
        }
        if (StringUtils.isNotEmpty(apply_start)) {
            Date startDate = DateUtils.convert2Date(apply_start);
            tq.taskVariableValueGreaterThan(APPLY_TIME, null != startDate ? startDate : DateUtils.getNowDate());
        }
        if (StringUtils.isNotEmpty(apply_end)) {
            Date endDate = DateUtils.convert2Date(apply_end);
            tq.taskVariableValueLessThanOrEqual(APPLY_TIME, null != endDate ? endDate : DateUtils.getNowDate());
        }
        // 获取待办的任务列表
        List<Task> tasks = tq.orderByTaskCreateTime().desc().listPage(firstResult, maxResults);
        List tlist = new ArrayList();
        for (Task t : tasks) {
            TaskEntityImpl tei = (TaskEntityImpl) t;
            t.getAssignee();
            Map m = new HashMap();
            m.put("id", tei.getId());
            m.put("name", tei.getName());
            m.put("c_time", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", tei.getCreateTime()));
            List<IdentityLink> ils = taskService.getIdentityLinksForTask(tei.getId());
            List<Map> ils_map = new ArrayList<Map>();
            for (IdentityLink il : ils) {
                Map ilm = new HashMap();
                ilm.put("group_id", il.getGroupId());
                ilm.put("type", il.getType());
                ilm.put("user_id", il.getUserId());
                ils_map.add(ilm);
            }
            m.put("candidate", ils_map);
            m.put("assignee", t.getAssignee());
            m.put("insid", tei.getProcessInstanceId());
            if(StringUtils.isNotEmpty(tei.getProcessInstanceId())){
                HistoricProcessInstance hpi = historyService.createHistoricProcessInstanceQuery().processInstanceId(tei.getProcessInstanceId()).singleResult();
                if (hpi != null) {
                    m.put("processDefinitionKey", hpi.getProcessDefinitionKey());
                }
            }
            Map<String, Object> varsMap = taskService.getVariables(tei.getId());
            m.put("pdname", varsMap.containsKey(INSTANCE_TITLE) ? (String) varsMap.get(INSTANCE_TITLE) : "");
            m.put(PROJECT_NAME, varsMap.containsKey(PROJECT_NAME) ? (String) varsMap.get(PROJECT_NAME) : "");
            m.put(APPLY_TIME, varsMap.containsKey(APPLY_TIME) ? DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", (Date) varsMap.get(APPLY_TIME)) : "");
            m.put(APPLY_NAME, varsMap.containsKey(APPLY_NAME) ? (String) varsMap.get(APPLY_NAME) : "");
            if(is_cost == 0 && varsMap.containsKey(APPLY_COST)){
                m.put(APPLY_COST, varsMap.get(APPLY_COST));
                tlist.add(m);
            }else if(is_cost !=0 && !varsMap.containsKey(APPLY_COST)){
                tlist.add(m);
            }
        }
        data.put("tasks", tlist);
        data.put("total", tq.count());
        return data;
    }

已办

public Map queryYb(String name, String role_id, String create_start, String create_end, String processInstanceId
            , String projName, String applyName, String apply_start, String apply_end, Integer firstResult, Integer maxResults,Integer is_cost) throws ParseException {
        Map data = new HashMap();
        List<HistoricTaskInstance> tasks = new ArrayList<HistoricTaskInstance>();
        HistoricTaskInstanceQuery htiq = historyService.createHistoricTaskInstanceQuery().includeTaskLocalVariables().finished();
        // 因为PROJECT_ID:项目id为long类型,所以查询的时候要把projectId转成long类型,否则查询不到数据
        htiq.taskVariableValueEquals(PROJECT_ID, Long.valueOf(projectId));
        if (StringUtils.isNotEmpty(name)) {
            htiq.taskNameLike("%" + name + "%");
        }
        if (create_start != null) {
            htiq.taskCreatedAfter(DateUtils.parseDate(create_start, "yyyy-MM-dd"));
        }
        if (create_end != null) {
            htiq.taskCreatedBefore(DateUtils.parseDate(create_end, "yyyy-MM-dd"));
        }
        if (StringUtils.isNotEmpty(processInstanceId)) {
            htiq.processInstanceId(processInstanceId);
        }
//        if (StringUtils.isNotEmpty(role_id)) {
//            //htiq.taskAssignee(role_id);
//            htiq.taskAssigneeIds(Arrays.asList(role_id.split(",")));
//            //htiq.taskCandidateGroupIn(Arrays.asList(role_id.split(",")));
//        }
        // 当前登录人
        String userId = String.valueOf(SecurityUtils.getUserId());
        if(StringUtils.isEmpty(processInstanceId)){
            if (StringUtils.isNotEmpty(userId)) {
                // 根据处理人查询任务列表
                htiq.taskOwner(userId);
            }
        }
        if(is_cost == 0){
            htiq.taskVariableValueGreaterThanOrEqual(APPLY_COST, 0.0);
        } else {
            htiq.taskVariableValueEquals(IS_COST, 1);
        }
        // todo: 项目名称、材料上报人、材料上报日期
        if (StringUtils.isNotEmpty(projName)) {
            htiq.taskVariableValueLike(PROJECT_NAME, "%" + projName + "%");
        }
        if (StringUtils.isNotEmpty(applyName)) {
            htiq.taskVariableValueLike(APPLY_NAME, "%" + applyName + "%");
        }
        if (StringUtils.isNotEmpty(apply_start)) {
            Date startDate = DateUtils.convert2Date(apply_start);
            htiq.taskVariableValueGreaterThan(APPLY_TIME, null != startDate ? startDate : DateUtils.getNowDate());
        }
        if (StringUtils.isNotEmpty(apply_end)) {
            Date endDate = DateUtils.convert2Date(apply_end);
            htiq.taskVariableValueLessThanOrEqual(APPLY_TIME, null != endDate ? endDate : DateUtils.getNowDate());
        }

        tasks = htiq.orderByHistoricTaskInstanceEndTime().desc().listPage(firstResult, maxResults);
        List tlist = new ArrayList();
        for (HistoricTaskInstance t : tasks) {
            HistoricTaskInstanceEntityImpl tei = (HistoricTaskInstanceEntityImpl) t;
            Map m = new HashMap();
            m.put("id", tei.getId());
            m.put("name", tei.getName());
            m.put("c_time", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", tei.getCreateTime()));
            m.put("e_time", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", tei.getEndTime()));
            m.put("assignee", tei.getOwner());
            m.put("insid", tei.getProcessInstanceId());
            List<Comment> comments = taskService.getTaskComments(tei.getId());
            List<Map<String, Object>> commentList = new ArrayList<>();
            for (Comment c : comments) {
                CommentEntityImpl cei = (CommentEntityImpl) c;
                Map<String, Object> dMap = new HashMap<>();
                dMap.put("taskId", c.getTaskId()); //任务id
                dMap.put("fullMessage", cei.getMessage()); //审批意见(必须取实现类中的消息,getFullMessage中文乱码)
                dMap.put("time", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", c.getTime())); //审批时间
                dMap.put("userId", c.getUserId());  //审批人
                commentList.add(dMap);
            }
            List<ActTBusiness> list = businessService.list(new QueryWrapper<ActTBusiness>().eq("proc_inst_id", tei.getProcessInstanceId()));
            if(list != null && list.size() > 0){
                m.put("approvalStatus", list.get(0).getApprovalStatus());
            }
            m.put("spnr", commentList);
            m.put("spnr", commentList);
            HistoricProcessInstance hpi = historyService.createHistoricProcessInstanceQuery().processInstanceId(tei.getProcessInstanceId()).singleResult();
            if (hpi != null) {
                m.put("processDefinitionKey", hpi.getProcessDefinitionKey());
            }
            // 流程参数字典
            Map<String, Object> varsMap = this.historicVariablesMap(tei.getId());
            m.put("pdname", varsMap.containsKey(INSTANCE_TITLE) ? (String) varsMap.get(INSTANCE_TITLE) : "");
            m.put(PROJECT_NAME, varsMap.containsKey(PROJECT_NAME) ? (String) varsMap.get(PROJECT_NAME) : "");
            m.put(APPLY_TIME, varsMap.containsKey(APPLY_TIME) ? DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", (Date) varsMap.get(APPLY_TIME)) : "");
            m.put(APPLY_NAME, varsMap.containsKey(APPLY_NAME) ? (String) varsMap.get(APPLY_NAME) : "");
            if(is_cost == 0 && varsMap.containsKey(APPLY_COST)){
                m.put(APPLY_COST, varsMap.get(APPLY_COST));
                tlist.add(m);
            }else if(is_cost !=0 && !varsMap.containsKey(APPLY_COST)){
                tlist.add(m);
            }
        }
        data.put("tasks", tlist);
        data.put("total", htiq.count());
        return data;
    }

我发起的

public Map queryMy(String name, String instance_title, String role_id, String create_start, String create_end, String processInstanceId
            , String projName, String applyName, String apply_start, String apply_end, Integer firstResult, Integer maxResults,Integer is_cost) throws ParseException {
        Map data = new HashMap();
        // 当前登录人
        String userId = String.valueOf(SecurityUtils.getUserId());
        HistoricProcessInstanceQuery hpi = historyService.createHistoricProcessInstanceQuery();
        hpi.startedBy(userId);
        // todo: 项目名称、材料上报人、材料上报日期
        if (StringUtils.isNotEmpty(projName)) {
            hpi.variableValueLike(WorkFlowService.PROJECT_NAME, "%" + projName + "%");
        }
        if (StringUtils.isNotEmpty(instance_title)) {
            hpi.variableValueLike(WorkFlowService.INSTANCE_TITLE, "%" + instance_title + "%");
        }
        if (StringUtils.isNotEmpty(applyName)) {
            hpi.variableValueLike(WorkFlowService.APPLY_NAME, "%" + applyName + "%");
        }
        if (StringUtils.isNotEmpty(apply_start)) {
            Date startDate = DateUtils.convert2Date(apply_start);
            hpi.variableValueGreaterThanOrEqual(WorkFlowService.APPLY_TIME, null != startDate ? startDate : DateUtils.getNowDate());
        }
        if (StringUtils.isNotEmpty(apply_end)) {
            Date endDate = DateUtils.convert2Date(apply_end);
            hpi.variableValueLessThanOrEqual(WorkFlowService.APPLY_TIME, null != endDate ? endDate : DateUtils.getNowDate());
        }
        List<HistoricProcessInstance> tasks = new ArrayList<>();
        tasks = hpi.orderByProcessInstanceStartTime().desc().listPage(firstResult, maxResults);
        List tlist = new ArrayList();
        for (HistoricProcessInstance t : tasks) {
            HistoricProcessInstanceEntityImpl hpiei = (HistoricProcessInstanceEntityImpl) t;
            Map m = new HashMap();
            m.put("id", hpiei.getId());
            m.put("c_time", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", hpiei.getStartTime()));
//            m.put("e_time", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", tei.getEndTime()));
            m.put("assignee", hpiei.getStartUserId());
            m.put("insid", hpiei.getProcessInstanceId());
            m.put("processDefinitionKey", hpiei.getProcessDefinitionKey());
            m.put("processDefinitionName", hpiei.getProcessDefinitionName());
            HistoricTaskInstanceQuery htiq = historyService.createHistoricTaskInstanceQuery();
            htiq.processInstanceId(hpiei.getProcessInstanceId());
            List<HistoricTaskInstance> htiss = htiq.orderByHistoricTaskInstanceStartTime().desc().listPage(firstResult, 1);
            if(org.apache.commons.collections4.CollectionUtils.isNotEmpty( htiss )){
                // 流程参数字典
                Map<String, Object> varsMap = this.historicVariablesMap(htiss.get(0).getId());
                m.put("pdname", varsMap.containsKey(INSTANCE_TITLE) ? (String) varsMap.get(INSTANCE_TITLE) : hpiei.getProcessDefinitionName());
                m.put("name", htiss.get(0).getName());
                m.put(WorkFlowService.PROJECT_NAME, varsMap.containsKey(WorkFlowService.PROJECT_NAME) ? (String) varsMap.get(WorkFlowService.PROJECT_NAME) : "");
                m.put(WorkFlowService.APPLY_TIME, varsMap.containsKey(WorkFlowService.APPLY_TIME) ? DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", (Date) varsMap.get(WorkFlowService.APPLY_TIME)) : "");
                m.put(WorkFlowService.APPLY_NAME, varsMap.containsKey(WorkFlowService.APPLY_NAME) ? (String) varsMap.get(WorkFlowService.APPLY_NAME) : "");
                if(is_cost == 0 && varsMap.containsKey(WorkFlowService.APPLY_COST)){
                    m.put(WorkFlowService.APPLY_COST, varsMap.get(WorkFlowService.APPLY_COST));
                }
            }
            List<ActTBusiness> list = businessService.list(new QueryWrapper<ActTBusiness>().eq("proc_inst_id", hpiei.getProcessInstanceId()));
            if(list != null && list.size() > 0){
                m.put("approvalStatus", list.get(0).getApprovalStatus());
                m.put("approvalStatus", list.get(0).getApprovalStatus());
                if(list.get(0).getIsCost() == 0){
                    m.put(APPLY_COST, list.get(0).getApplyCost());
                }
            }
            tlist.add(m);
        }
        data.put("tasks", tlist);
        data.put("total", hpi.count());
        return data;
    }

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FlowShop(工作程管理系统软件)是一个面向企业管理信息化的设计工具和运行平台。利用该平台可以通过程定义、表单定义、操作界面定义、功能权限定义、菜单定义、组织人员定义等功能快速实现企业实际管理上的计算机信息化。轻松、快速地构建符合实际管理运营需要的ERP、OA、CRM、SCM等管理信息系统,真正动态自适应的BPR(业务程再造系统)平台。 FlowShop采用跨平台的J2EE架构,适应各种软硬件环境,通过标准的JDBC连接关系型数据库,广泛适应各种计算机平台和系统软件的运行环境。  包含企业组织机构管理系统,灵活定义树状结构的组织机构、人员、角色、相关属性信息;  包含系统功能、菜单定义模块,灵活发布实现的功能模块(表单程);  包含企业基础信息管理系统,动态地根据用户定义的企业基本信息结构生成各种数据库表,包括:帐套信息、仓库信息、供应商信息、客户信息、员工信息、资产信息、各种经济活动规则信息等;  包含业务程管理系统,用户可以根据自身的情况设定各种业务程,各个程环节的任务分派规则,自动根据用户定义的表单结构信息生成数据库表,并且可以自行定义各个操作环节的操作界面;  包含工作程调度引擎,业务人员发起某项工作后,系统自动根据设定的分派规则推出相关人员的“待办事项”,用户登录系统后直接点击待办事项进行事务处理,大大提高了业务人员的工作效率;  包含企业信息查询管理系统,用户可以定义各种数据库信息查询,支持跨数据库查询的设计平台,个性化查询结果定义,个性化查询条件设定,支持“超连接”的深度查询设计,支持查询结果的Excel/文本导出功能;

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值