main
litao 3 years ago
parent e1456bdf93
commit 400abc21f9
  1. 4
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/homepage/enumutil/WorkingStatusEnum.java
  2. 23
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/homepage/service/impl/HomePageServiceImpl.java
  3. 27
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/listener/ProcessEndListener.java
  4. 55
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/database/service/impl/DataBaseServiceImpl.java
  5. 2
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/system/controller/ProjectInfoController.java
  6. 12
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/task/controller/TaskInfoController.java
  7. 58
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/excel/OrderExcel.java
  8. 228
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/service/impl/WorkOrderServiceImpl.java
  9. 14
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/workflow/process/service/impl/WfProcessService.java

@ -18,8 +18,10 @@ package org.springblade.plugin.homepage.enumutil;
* @Date 2023/2/24 0024 17:18
*/
public enum WorkingStatusEnum {
进行中("#4CA3FB"),
已驳回("#F87171"),
审批中("#FF9130"),
审批结束("#5774C4"),
待实施("#4CA3FB"),
已完成("#2EE27C");
private String colorCode;

@ -262,8 +262,7 @@ public class HomePageServiceImpl implements IHomePageService {
}
LambdaQueryWrapper<WorkOrder> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(WorkOrder::getManagement, deptId);
wrapper.eq(WorkOrder::getIsFinish, 0);
wrapper.in(WorkOrder::getManagement, nowUserDepts);
wrapper.between(WorkOrder::getCreateTime, startTime(), endTime());
int count = workOrderService.count(wrapper);
@ -300,7 +299,7 @@ public class HomePageServiceImpl implements IHomePageService {
LambdaQueryWrapper<WorkOrder> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(WorkOrder::getManagement, deptId);
wrapper.in(WorkOrder::getManagement, nowUserDepts);
wrapper.eq(WorkOrder::getIsFinish, 1);
wrapper.between(WorkOrder::getFinishTime, startTime(), endTime());
int count = workOrderService.count(wrapper);
@ -562,18 +561,32 @@ public class HomePageServiceImpl implements IHomePageService {
collect.forEach(hi -> {
HistoricActivityInstance historicActivityInstance = historyService.createHistoricActivityInstanceQuery().processInstanceId(hi.getId()).unfinished().singleResult();
if (historicActivityInstance == null) {
map.put("已完成", map.get("已完成") == null ? 1 : map.get("已完成") + 1);
map.put("审批结束", map.get("审批结束") == null ? 1 : map.get("审批结束") + 1);
} else {
String activityName = historicActivityInstance.getActivityName();
if (StringUtils.contains(historicActivityInstance.getActivityName(), "审批")) {
map.put("审批中", map.get("审批中") == null ? 1 : map.get("审批中") + 1);
} else {
map.put("进行中", map.get("进行中") == null ? 1 : map.get("进行中") + 1);
map.put("已驳回", map.get("已驳回") == null ? 1 : map.get("已驳回") + 1);
}
// map.put(historicActivityInstance.getActivityName(), map.get(historicActivityInstance.getActivityName()) == null ? 1 : map.get(historicActivityInstance.getActivityName()) + 1);
}
});
LambdaQueryWrapper<WorkOrder> wrapper = new LambdaQueryWrapper<>();
wrapper.in(WorkOrder::getManagement, nowUserDeptList);
wrapper.ge(WorkOrder::getCreateTime, lastMonthDate);
List<WorkOrder> orders = workOrderService.list(wrapper);
if (CollectionUtils.isNotEmpty(orders)) {
orders.forEach(workOrder -> {
if (workOrder.getIsFinish() == 1) {
map.put("已完成", map.get("已完成") == null ? 1 : map.get("已完成") + 1);
} else {
map.put("待实施", map.get("待实施") == null ? 1 : map.get("待实施") + 1);
}
});
}
Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, Integer> next = iterator.next();

@ -17,7 +17,6 @@ import java.util.Map;
/**
* @Description 流程结束监听器
* 流程结束时进行相关判断如果是重复任务才会在autoStartModel表中建立记录
*
* @Author ytl
* @Date 2023/3/2 0002 15:05
*/
@ -28,29 +27,29 @@ public class ProcessEndListener implements ExecutionListener {
public void notify(DelegateExecution delegateExecution) {
String event = delegateExecution.getEventName();
String processInstanceId = delegateExecution.getProcessInstanceId();
Map<String,Object> variables = delegateExecution.getVariables();
Map<String,Object> variablesMap = new HashMap<>();
Map<String, Object> variables = delegateExecution.getVariables();
Map<String, Object> variablesMap = new HashMap<>();
variablesMap.putAll(variables);
switch (event) {
case "start" :
IAutoStartModelService autoStartModelService = (IAutoStartModelService)SpringContextHolder.getBean(AutoStartModelServiceImpl.class);
case "start":
System.out.println("ProcessEndListener-start event-------------------");
//判断工作流的的重复模式
if(Func.isNotEmpty(variablesMap.get("chongfumoshi")) && !StringUtils.equals(RepeatEnum.不重复.getCode(),variablesMap.get("chongfumoshi").toString())){
break;
case "end":
IAutoStartModelService autoStartModelService = (IAutoStartModelService) SpringContextHolder.getBean(AutoStartModelServiceImpl.class);
//判断工作流的的重复模式1
if (Func.isNotEmpty(variablesMap.get("chongfumoshi")) && !StringUtils.equals(RepeatEnum.不重复.getCode(), variablesMap.get("chongfumoshi").toString())) {
//保存任务信息使任务工单可以被自动创建,测试一下是不是跟预想的一样是第一个执行的时候,第二个任务还有
autoStartModelService.saveStartProcess(processInstanceId,variablesMap);
autoStartModelService.saveStartProcess(processInstanceId, variablesMap);
//使任务可以自动开启,这里不用新建工单,因为TaskConfig会自动创建
// autoStartModelService.updateAutoStartModel(processInstanceId,variables);
}else{//不重复任务
autoStartModelService.newWorkOrder(processInstanceId,variablesMap);
} else {//不重复任务
autoStartModelService.newWorkOrder(processInstanceId, variablesMap);
}
break;
case "end" :
System.out.println("ProcessEndListener-end event----------------------");
break;
case "take" :
case "take":
System.out.println("ProcessEndListener-take event---------------------");
break;
}

@ -2,12 +2,11 @@
package org.springblade.plugin.operation.database.service.impl;
import com.alibaba.nacos.common.utils.CollectionUtils;
import com.alibaba.nacos.common.utils.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.AllArgsConstructor;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.plugin.operation.database.entity.DataBase;
@ -24,12 +23,10 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.List;
/**
* 服务实现类
*
* @author BladeX
*/
@Service
@ -48,7 +45,11 @@ public class DataBaseServiceImpl extends BaseServiceImpl<DataBaseMapper, DataBas
List<DatabaseExcel> excelList = ExcelUtil.read(file, DatabaseExcel.class);
if (CollectionUtils.isNotEmpty(excelList)) {
// List<DataTable> dataTableList = new ArrayList<>();
excelList.forEach(item -> {
for (DatabaseExcel item : excelList) {
// 如果数据库类型不存在,跳过这条数据
if (StringUtils.isBlank(DictBizCache.getKey("database_type", item.getDataBaseType()))) {
continue;
}
Integer databaseType = Integer.parseInt(DictBizCache.getKey("database_type", item.getDataBaseType()));
LambdaQueryWrapper<DataBase> wrapper = new LambdaQueryWrapper<>();
wrapper.select(DataBase::getId);
@ -85,7 +86,49 @@ public class DataBaseServiceImpl extends BaseServiceImpl<DataBaseMapper, DataBas
// dataTableList.add(dataTable);
}
}
});
}
// excelList.forEach(item -> {
// String key = DictBizCache.getKey("database_type", item.getDataBaseType());
// if (StringUtils.isBlank(key)) {
//
// }
// Integer databaseType = Integer.parseInt(DictBizCache.getKey("database_type", item.getDataBaseType()));
// LambdaQueryWrapper<DataBase> wrapper = new LambdaQueryWrapper<>();
// wrapper.select(DataBase::getId);
// wrapper.eq(DataBase::getDataBaseName, item.getDataBaseName());
//// wrapper.eq(DataBase::getDataBaseType, databaseType);
// wrapper.eq(DataBase::getDataBaseIp, item.getDataBaseIp());
// wrapper.eq(DataBase::getDataBasePort,item.getDataBasePort());
// DataBase base = getOne(wrapper);
// if (base == null) {
// // 数据库
// DataBase dataBase = BeanUtil.copy(item, DataBase.class);
// String data = sysClient.getDeptIds(AuthUtil.getTenantId(), item.getDeptId()).getData();
// User user = userClient.userInfoByName(AuthUtil.getTenantId(), item.getCompany()).getData();
// dataBase.setDataBaseType(databaseType);
// dataBase.setDeptId(Long.parseLong(data));
// dataBase.setCompany(user.getId());
// save(dataBase);
//
// // 数据表
// DataTable dataTable = BeanUtil.copy(item, DataTable.class);
// dataTable.setDataBaseId(dataBase.getId());
//// dataTableList.add(dataTable);
// dataTableService.save(dataTable);
// } else {
// LambdaQueryWrapper<DataTable> queryWrapper = new LambdaQueryWrapper<>();
// queryWrapper.eq(DataTable::getDataBaseId, base.getId());
// queryWrapper.eq(DataTable::getDataTableName, item.getDataTableName());
// int count = dataTableService.count(queryWrapper);
// if (count <= 0) {
// // 数据表
// DataTable dataTable = BeanUtil.copy(item, DataTable.class);
// dataTable.setDataBaseId(base.getId());
// dataTableService.save(dataTable);
//// dataTableList.add(dataTable);
// }
// }
// });
// return dataTableService.saveBatch(dataTableList);
return true;
}

@ -190,7 +190,7 @@ public class ProjectInfoController extends BladeController {
for (DataTable dataTable : dataTableList) {
TaskAndDataBase taskAndDataBase = new TaskAndDataBase();
taskAndDataBase.setId(dataTable.getId());
taskAndDataBase.setName(dataTable.getDataTableName());
taskAndDataBase.setName(dataTable.getDataTableAlias() + "(" + dataTable.getDataTableName() + ")");
list.add(taskAndDataBase);
}
}

@ -144,13 +144,13 @@ public class TaskInfoController extends BladeController {
@GetMapping("/taskTypeData")
public R taskTypeData(String parentId) {
QueryWrapper<TaskInfo> wrapper = new QueryWrapper<>();
// if (StringUtils.isNotBlank(parentId)) {
if (StringUtils.isNotBlank(parentId)) {
wrapper.eq("task_parent_id", parentId);
// } else {
// wrapper.select("DISTINCT task_type_name");
// }
if (!"运维公司".equals(AuthUtil.getUser().getRoleName())) {
wrapper.ne("task_level", 1625035000825049090L);
if (!"运维公司".equals(AuthUtil.getUser().getRoleName())) {
wrapper.ne("task_level", 1625035000825049090L);
}
} else {
wrapper.select("DISTINCT task_type_name");
}
return R.data(taskInfoService.list(wrapper));
}

@ -0,0 +1,58 @@
package org.springblade.plugin.operation.workorder.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data;
import java.io.Serializable;
@Data
public class OrderExcel implements Serializable {
private static final long serialVersionUID = 1L;
@ColumnWidth(20)
@ExcelProperty("任务父类")
private String taskParent;
@ColumnWidth(20)
@ExcelProperty("任务种类")
private String taskType;
@ColumnWidth(20)
@ExcelProperty("操作模块")
private String operationModule;
@ColumnWidth(20)
@ExcelProperty("分管部门")
private String dept;
@ColumnWidth(20)
@ExcelProperty("任务等级")
private String level;
@ColumnWidth(20)
@ExcelProperty("运维公司")
private String company;
@ColumnWidth(20)
@ExcelProperty("发起人")
private String sponsor;
@ColumnWidth(20)
@ExcelProperty("审批状态")
private String approvalStatus;
@ColumnWidth(20)
@ExcelProperty("创建时间")
private String createTime;
@ColumnWidth(20)
@ExcelProperty("结束时间")
private String endTime;
@ColumnWidth(20)
@ExcelProperty("期望完成时间")
private String expectedCompletionTime;
}

@ -29,6 +29,7 @@ import org.springblade.plugin.operation.system.service.IModuleInfoService;
import org.springblade.plugin.operation.system.service.IProjectInfoService;
import org.springblade.plugin.operation.task.service.ITaskInfoService;
import org.springblade.plugin.operation.workorder.entity.WorkOrder;
import org.springblade.plugin.operation.workorder.excel.OrderExcel;
import org.springblade.plugin.operation.workorder.excel.WorkOrderExcel;
import org.springblade.plugin.operation.workorder.mapper.WorkOrderMapper;
import org.springblade.plugin.operation.workorder.service.IWorkOrderService;
@ -147,7 +148,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
if (task.getName().contains("审批")) {
order.setApprovalStatus("审批中");
} else {
order.setApprovalStatus("待实施");
order.setApprovalStatus("已驳回");
}
order.setCreateTime(historicProcessInstance.getStartTime());
order.setEndTime(historicProcessInstance.getEndTime());
@ -167,24 +168,24 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
}
// 工单记录
// Page<WorkOrder> objectPage = new Page<>(query.getCurrent() - (count / query.getSize()), query.getSize());
// Page<WorkOrder> objectPage = new Page<>(query.getCurrent() - (workOrders.size() / query.getSize()), query.getSize());
LambdaQueryWrapper<WorkOrder> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(WorkOrder::getMaintenanceCompany, AuthUtil.getUserId());
wrapper.eq(WorkOrder::getIsFinish, 0);
wrapper.orderByDesc(WorkOrder::getCreateTime);
if (workOrder.getIsBecomeDue() == 1) {
wrapper.le(WorkOrder::getExpectedCompletionTime, new Date());
}
// IPage<WorkOrder> iPage = page(objectPage, wrapper);
wrapper.orderByDesc(WorkOrder::getCreateTime);
List<WorkOrder> records = list(wrapper);
// IPage<WorkOrder> iPage = page(objectPage, wrapper);
// List<WorkOrder> orders = iPage.getRecords();
setAllName(records);
workOrders.addAll(records);
if (workOrder.getIsBecomeDue() == 1) {
workOrders = workOrders.stream().filter(s -> new Date().after(s.getExpectedCompletionTime())).collect(Collectors.toList());
}
@ -224,15 +225,168 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
workOrders = workOrders.stream().filter(s -> (s.getCreateTime().after(workOrder.getStartTime())) && (s.getCreateTime().before(workOrder.getEndTime()))).collect(Collectors.toList());
}
// 排序
workOrders = workOrders.stream().sorted(Comparator.comparing(WorkOrder::getCreateTime).reversed()).collect(Collectors.toList());
// 总条数
page.setTotal(workOrders.size());
// 分页
workOrders = workOrders.stream().skip((query.getCurrent() - 1) * query.getSize()).limit(query.getSize()).collect(Collectors.toList());
// workOrders = workOrders.stream().skip(0).limit(query.getSize()).collect(Collectors.toList());
// 数据
page.setRecords(workOrders);
// 当前页数
page.setCurrent(query.getCurrent());
// 当前条数
page.setSize(query.getSize());
return page;
}
public IPage<WorkOrder> myToDo2(WorkOrder workOrder, Query query) {
IPage<WorkOrder> page = new Page<>();
String taskUser = WfTaskUtil.getTaskUser();
// String taskGroup = WfTaskUtil.getCandidateGroup();
//当前获取登录人deptid
// String deptId = AuthUtil.getDeptId();
// List<Long> nowUserDepts = Func.toLongList(deptId);
TaskQuery taskQuery = taskService.createTaskQuery()
.orderByTaskCreateTime()
.desc()
.taskTenantId(WfTaskUtil.getTenantId())
.active();
taskQuery.taskCandidateOrAssigned(taskUser);
// long count = taskQuery.count();
// List<Task> listNeedDo = taskQuery.listPage((query.getCurrent() - 1) * query.getSize(), query.getSize());
List<Task> listNeedDo = taskQuery.list();
List<WorkOrder> workOrders = new ArrayList<>();
for (Task task : listNeedDo) {
HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(task.getProcessInstanceId()).singleResult();
WorkOrder order = new WorkOrder();
String executionId = task.getExecutionId();
System.out.println("executionid--" + executionId);
Map<String, Object> variables = runtimeService.getVariables(task.getExecutionId());
// 任务种类
order.setTaskTypeName(variables.get("$renwuzhonglei").toString());
// 任务父类
order.setTaskParentName(DictBizCache.getById(Long.parseLong(variables.get("renwufulei").toString())).getDictValue());
// 操作模块
ProjectInfo projectInfo = projectInfoService.getById(variables.get("xitongmingchengshujuku").toString());
if (projectInfo != null) {
order.setOperateSysName(projectInfo.getProjectName());
} else {
order.setOperateSysName(dataBaseService.getById(variables.get("xitongmingchengshujuku").toString()).getDataBaseName());
}
// 当前责任人
order.setCurrentResponsiblePerson(userClient.userInfoById(Long.parseLong(task.getAssignee())).getData().getRealName());
order.setManagementName(variables.get("$guanlibumen").toString());
// 运维公司
order.setMaintenanceCompanyName(userClient.userInfoById(Long.parseLong(variables.get("yunweigongsi").toString())).getData().getRealName());
order.setApplyUserName(userClient.userInfoById(Long.parseLong(historicProcessInstance.getStartUserId())).getData().getRealName());
if (task.getName().contains("审批")) {
order.setApprovalStatus("审批中");
} else {
order.setApprovalStatus("已驳回");
}
order.setCreateTime(historicProcessInstance.getStartTime());
order.setEndTime(historicProcessInstance.getEndTime());
if (variables.get("qiwangwanchengshijian") != null) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
order.setExpectedCompletionTime(dateFormat.parse(variables.get("qiwangwanchengshijian").toString()));
} catch (ParseException e) {
e.printStackTrace();
}
}
order.setTaskId(task.getId());
order.setProcessInstanceId(task.getProcessInstanceId());
order.setStatus(0);
workOrders.add(order);
}
if (workOrder.getIsBecomeDue() == 1) {
workOrders = workOrders.stream().filter(s -> new Date().after(s.getExpectedCompletionTime())).collect(Collectors.toList());
}
// 任务父类
if (StringUtils.isNotBlank(workOrder.getTaskParentName())) {
workOrders = workOrders.stream().filter(s -> s.getTaskParentName().equals(workOrder.getTaskParentName())).collect(Collectors.toList());
}
// 任务种类
if (StringUtils.isNotBlank(workOrder.getTaskTypeName())) {
workOrders = workOrders.stream().filter(s -> s.getTaskTypeName().equals(workOrder.getTaskTypeName())).collect(Collectors.toList());
}
// 当前责任人
if (StringUtils.isNotBlank(workOrder.getCurrentResponsiblePerson())) {
workOrders = workOrders.stream().filter(s -> s.getCurrentResponsiblePerson().equals(workOrder.getCurrentResponsiblePerson())).collect(Collectors.toList());
}
// 管理部门
if (StringUtils.isNotBlank(workOrder.getManagementName())) {
workOrders = workOrders.stream().filter(s -> s.getManagementName().equals(workOrder.getManagementName())).collect(Collectors.toList());
}
// 审批状态
if (StringUtils.isNotBlank(workOrder.getApprovalStatus())) {
workOrders = workOrders.stream().filter(s -> s.getApprovalStatus().equals(workOrder.getApprovalStatus())).collect(Collectors.toList());
}
// 发起人
if (StringUtils.isNotBlank(workOrder.getApplyUserName())) {
workOrders = workOrders.stream().filter(s -> s.getApplyUserName().equals(workOrder.getApplyUserName())).collect(Collectors.toList());
}
// 创建时间范围
if (workOrder.getStartTime() != null && workOrder.getEndTime() != null) {
workOrders = workOrders.stream().filter(s -> (s.getCreateTime().after(workOrder.getStartTime())) && (s.getCreateTime().before(workOrder.getEndTime()))).collect(Collectors.toList());
}
// 排序
workOrders = workOrders.stream().sorted(Comparator.comparing(WorkOrder::getCreateTime).reversed()).collect(Collectors.toList());
// 工单记录
Page<WorkOrder> objectPage = new Page<>(query.getCurrent() - (workOrders.size() / query.getSize()), query.getSize());
LambdaQueryWrapper<WorkOrder> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(WorkOrder::getMaintenanceCompany, AuthUtil.getUserId());
wrapper.eq(WorkOrder::getIsFinish, 0);
if (workOrder.getIsBecomeDue() == 1) {
wrapper.le(WorkOrder::getExpectedCompletionTime, new Date());
}
wrapper.orderByDesc(WorkOrder::getCreateTime);
List<WorkOrder> records = list(wrapper);
IPage<WorkOrder> iPage = page(objectPage, wrapper);
List<WorkOrder> orders = iPage.getRecords();
setAllName(orders);
// 总条数
page.setTotal(workOrders.size() + iPage.getTotal());
workOrders.addAll(orders);
// 分页
workOrders = workOrders.stream().skip((query.getCurrent() - 1) * query.getSize()).limit(query.getSize()).collect(Collectors.toList());
// workOrders = workOrders.stream().skip(0).limit(query.getSize()).collect(Collectors.toList());
// workOrders = workOrders.stream().skip((query.getCurrent() - 1) * query.getSize()).limit(query.getSize()).collect(Collectors.toList());
workOrders = workOrders.stream().skip(0).limit(query.getSize()).collect(Collectors.toList());
// 数据
page.setRecords(workOrders);
@ -317,7 +471,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
if (task.getName().contains("审批")) {
varMap.put("status", "审批中");
} else {
varMap.put("status", "进行中");
varMap.put("status", "已驳回");
}
} else {
varMap.put("currentResponsiblePerson", "--");
@ -364,12 +518,11 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
@Override
public IPage<WorkOrder> myPage(WorkOrder workOrder, Query query) {
LambdaQueryWrapper<WorkOrder> wrapper = new LambdaQueryWrapper<>(workOrder);
wrapper.eq(WorkOrder::getManagement, AuthUtil.getDeptId());
wrapper.in(WorkOrder::getManagement, Func.toStrList(AuthUtil.getDeptId()));
if (workOrder.getStartTime() != null && workOrder.getEndTime() != null) {
wrapper.between(WorkOrder::getCreateTime, workOrder.getStartTime(), workOrder.getEndTime());
}
if (workOrder.getStartTime2() != null && workOrder.getEndTime2() != null) {
wrapper.between(WorkOrder::getFinishTime, workOrder.getStartTime2(), workOrder.getEndTime2());
wrapper.ge(WorkOrder::getCreateTime, workOrder.getStartTime());
wrapper.le(WorkOrder::getFinishTime, workOrder.getEndTime());
}
wrapper.orderByDesc(WorkOrder::getCreateTime);
IPage<WorkOrder> page = page(Condition.getPage(query), wrapper);
@ -380,11 +533,11 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
@Override
public void workOrderExcel(HttpServletResponse response, List<WorkOrder> workOrderList) {
List<WorkOrderExcel> excels = new ArrayList<>();
List<OrderExcel> excels = new ArrayList<>();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if (com.baomidou.mybatisplus.core.toolkit.CollectionUtils.isNotEmpty(workOrderList)) {
if (CollectionUtils.isNotEmpty(workOrderList)) {
for (WorkOrder record : workOrderList) {
WorkOrderExcel excel = new WorkOrderExcel();
OrderExcel excel = new OrderExcel();
excel.setTaskType(taskInfoService.getById(record.getTaskType()).getTaskTypeName());
excel.setTaskParent(DictBizCache.getById(Long.parseLong(record.getTaskParent())).getDictValue());
if (record.getType() == 1) {
@ -412,7 +565,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
excels.add(excel);
}
}
ExcelUtil.export(response, "工单记录" + DateUtil.time(), "工单记录", excels, WorkOrderExcel.class);
ExcelUtil.export(response, "工单记录" + DateUtil.time(), "工单记录", excels, OrderExcel.class);
}
private void setAllName(List<WorkOrder> records) {
@ -483,11 +636,11 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
varMap.put("currentResponsiblePerson", "--");
}
// 审批状态
// if (task.getName().contains("审批")) {
if (task.getName().contains("审批")) {
varMap.put("status", "审批中");
// } else {
// varMap.put("status", "进行中");
// }
} else {
varMap.put("status", "已驳回");
}
} else {
varMap.put("currentResponsiblePerson", "--");
varMap.put("status", "已完成");
@ -560,24 +713,10 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
if (workOrder.getStartTime() != null && workOrder.getEndTime() != null) {
workOrders = workOrders.stream().filter(s ->
{
format.format(s.get("startTime"));
try {
return (format.parse(format.format(s.get("startTime"))).after(workOrder.getStartTime())) &&
(format.parse(format.format(s.get("startTime"))).before(workOrder.getEndTime()));
} catch (ParseException e) {
e.printStackTrace();
}
return false;
}).collect(Collectors.toList());
}
// 结束时间范围
if (workOrder.getStartTime2() != null && workOrder.getEndTime2() != null) {
workOrders = workOrders.stream().filter(s -> {
if (s.get("endTime") != null) {
try {
return (format.parse(format.format(s.get("endTime"))).after(workOrder.getStartTime2())) &&
(format.parse(format.format(s.get("endTime"))).before(workOrder.getEndTime2()));
return (format.parse(format.format(s.get("startTime"))).after(workOrder.getStartTime())) &&
(format.parse(format.format(s.get("endTime"))).before(workOrder.getEndTime()));
} catch (ParseException e) {
e.printStackTrace();
}
@ -585,6 +724,21 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
return false;
}).collect(Collectors.toList());
}
// 结束时间范围
// if (workOrder.getEndTime() != null) {
// workOrders = workOrders.stream().filter(s ->
// {
// if (s.get("endTime") != null) {
// try {
// return format.parse(format.format(s.get("endTime"))).before(workOrder.getEndTime());
// } catch (ParseException e) {
// e.printStackTrace();
// }
// }
// return false;
// }).collect(Collectors.toList());
// }
return workOrders;
}
}

@ -1150,18 +1150,18 @@ public class WfProcessService implements IWfProcessService {
.finished();
// ======start======只允许撤回一次,若需无限撤回可注释此段代码======
long count = query.count();
if (count > 1) {
return false;
}
// long count = query.count();
// if (count > 1) {
// return false;
// }
// ======end======
List<HistoricTaskInstance> list = query.list();
for (HistoricTaskInstance t : list) { // 判断已完成的任务是否都是当前登录人处理的,若是则可撤回
if (StringUtil.isNotBlank(t.getAssignee())) {
if (!currentUser.equals(t.getAssignee())) {
return false;
}
// if (!currentUser.equals(t.getAssignee())) {
// return false;
// }
} else {
WfTaskUser taskUser = this.getTaskUser(t.getProcessDefinitionId(), t.getProcessInstanceId(), t.getTaskDefinitionKey());
List<User> userList = taskUser.getUserList();

Loading…
Cancel
Save