待办
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);
}
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();
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);
}
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);
}
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());
dMap.put("fullMessage", cei.getMessage());
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);
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("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;
}