数据运维相关接口

main
litao 3 years ago
parent 137a4a68c4
commit 075abef752
  1. 8
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/database/controller/DataBaseController.java
  2. 4
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/database/service/impl/DataBaseServiceImpl.java
  3. 2
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/database/service/impl/DataTableServiceImpl.java
  4. 3
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/system/controller/ProjectInfoController.java
  5. 36
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/system/service/impl/ModuleInfoServiceImpl.java
  6. 21
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/task/controller/TaskInfoController.java
  7. 3
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/controller/WorkOrderController.java
  8. 8
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/excel/WorkOrderExcel.java
  9. 3
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/service/IWorkOrderService.java
  10. 55
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/service/impl/WorkOrderServiceImpl.java

@ -39,6 +39,7 @@ import javax.validation.Valid;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.IOException; import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
@ -175,7 +176,8 @@ public class DataBaseController extends BladeController {
String fileName = UUID.randomUUID().toString() + suffix; String fileName = UUID.randomUUID().toString() + suffix;
// 3、创建一个目录对象 // 3、创建一个目录对象
String basePath = "D://用户签名//"; SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
String basePath = "D://用户签名//" + format.format(new Date());
File dir = new File(basePath); File dir = new File(basePath);
//判断当前目录是否存在 //判断当前目录是否存在
if (!dir.exists()) { if (!dir.exists()) {
@ -185,13 +187,13 @@ public class DataBaseController extends BladeController {
try { try {
// 4、将临时文件转存到指定位置 // 4、将临时文件转存到指定位置
file.transferTo(new File(basePath + fileName)); file.transferTo(new File(basePath + "//" + fileName));
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
UploadReturn uploadReturn = new UploadReturn(); UploadReturn uploadReturn = new UploadReturn();
uploadReturn.setName(originalFilename); uploadReturn.setName(originalFilename);
uploadReturn.setPath(basePath + fileName); uploadReturn.setPath(basePath + "//" + fileName);
uploadReturn.setCreateUser(AuthUtil.getNickName()); uploadReturn.setCreateUser(AuthUtil.getNickName());
uploadReturn.setCreateTime(new Date()); uploadReturn.setCreateTime(new Date());
return R.data(uploadReturn); return R.data(uploadReturn);

@ -51,7 +51,9 @@ public class DataBaseServiceImpl extends BaseServiceImpl<DataBaseMapper, DataBas
LambdaQueryWrapper<DataBase> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<DataBase> wrapper = new LambdaQueryWrapper<>();
wrapper.select(DataBase::getId); wrapper.select(DataBase::getId);
wrapper.eq(DataBase::getDataBaseName, item.getDataBaseName()); wrapper.eq(DataBase::getDataBaseName, item.getDataBaseName());
wrapper.eq(DataBase::getDataBaseType, databaseType); // wrapper.eq(DataBase::getDataBaseType, databaseType);
wrapper.eq(DataBase::getDataBaseIp, item.getDataBaseIp());
wrapper.eq(DataBase::getDataBasePort,item.getDataBasePort());
DataBase base = getOne(wrapper); DataBase base = getOne(wrapper);
if (base == null) { if (base == null) {
// 数据库 // 数据库

@ -25,7 +25,7 @@ public class DataTableServiceImpl extends BaseServiceImpl<DataTableMapper, DataT
@Override @Override
public IPage<DataBaseVO> pageVO(IPage<DataBaseVO> page, DataBase dataBase) { public IPage<DataBaseVO> pageVO(IPage<DataBaseVO> page, DataBase dataBase) {
page.setTotal(dataTableMapper.dataCount(dataBase)); page.setTotal(dataTableMapper.dataCount(dataBase));
return page.setRecords(dataTableMapper.page(dataBase, page.getCurrent(), page.getSize())); return page.setRecords(dataTableMapper.page(dataBase, (page.getCurrent() - 1) * page.getSize(), page.getSize()));
} }
} }

@ -144,7 +144,8 @@ public class ProjectInfoController extends BladeController {
// 系统名称数据 // 系统名称数据
QueryWrapper<ModuleInfo> queryWrapper = new QueryWrapper<>(); QueryWrapper<ModuleInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.select("DISTINCT project_info_id"); queryWrapper.select("DISTINCT project_info_id");
queryWrapper.eq("project_info_id", id); // queryWrapper.eq("project_info_id", id);
queryWrapper.eq("maintenance_dept_id", id);
List<ModuleInfo> moduleInfoList = moduleInfoService.list(queryWrapper); List<ModuleInfo> moduleInfoList = moduleInfoService.list(queryWrapper);
if (CollectionUtils.isNotEmpty(moduleInfoList)) { if (CollectionUtils.isNotEmpty(moduleInfoList)) {
for (ModuleInfo moduleInfo : moduleInfoList) { for (ModuleInfo moduleInfo : moduleInfoList) {

@ -38,33 +38,45 @@ public class ModuleInfoServiceImpl extends BaseServiceImpl<ModuleInfoMapper, Mod
public boolean saveProAndMod(ModuleInfo moduleInfo) { public boolean saveProAndMod(ModuleInfo moduleInfo) {
ProjectInfo projectInfo = projectInfoService.getById(moduleInfo.getProjectName()); ProjectInfo projectInfo = projectInfoService.getById(moduleInfo.getProjectName());
if (projectInfo == null) { if (projectInfo == null) {
LambdaQueryWrapper<ProjectInfo> wrapper = new LambdaQueryWrapper<>(); // LambdaQueryWrapper<ProjectInfo> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProjectInfo::getProjectName, moduleInfo.getProjectName()); // wrapper.eq(ProjectInfo::getProjectName, moduleInfo.getProjectName());
List<ProjectInfo> list = projectInfoService.list(wrapper); // List<ProjectInfo> list = projectInfoService.list(wrapper);
if (CollectionUtils.isEmpty(list)) { // if (CollectionUtils.isEmpty(list)) {
// ProjectInfo info = new ProjectInfo();
// info.setProjectName(moduleInfo.getProjectName());
// projectInfoService.save(info);
// moduleInfo.setProjectInfoId(info.getId());
// } else {
// try {
// throw new Exception("名称重复!");
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
ProjectInfo info = new ProjectInfo(); ProjectInfo info = new ProjectInfo();
info.setProjectName(moduleInfo.getProjectName()); info.setProjectName(moduleInfo.getProjectName());
projectInfoService.save(info); projectInfoService.save(info);
moduleInfo.setProjectInfoId(info.getId()); moduleInfo.setProjectInfoId(info.getId());
} else { } else {
try { moduleInfo.setProjectInfoId(projectInfo.getId());
throw new Exception("名称重复!");
} catch (Exception e) {
e.printStackTrace();
}
}
} else {
moduleInfo.setProjectInfoId(Long.parseLong(moduleInfo.getProjectName()));
} }
List<ModuleInfo> infoList = new ArrayList<>(); List<ModuleInfo> infoList = new ArrayList<>();
List<ModuleInfo> nameList = moduleInfo.getModuleNameList(); List<ModuleInfo> nameList = moduleInfo.getModuleNameList();
if (CollectionUtils.isNotEmpty(nameList)) { if (CollectionUtils.isNotEmpty(nameList)) {
LambdaQueryWrapper<ModuleInfo> wrapper = new LambdaQueryWrapper<>();
for (ModuleInfo name : nameList) { for (ModuleInfo name : nameList) {
wrapper.eq(ModuleInfo::getProjectInfoId, moduleInfo.getProjectInfoId());
wrapper.eq(ModuleInfo::getModuleName, name.getModuleName());
int count = count(wrapper);
if (count == 0) {
ModuleInfo info = BeanUtil.copy(moduleInfo, ModuleInfo.class); ModuleInfo info = BeanUtil.copy(moduleInfo, ModuleInfo.class);
info.setModuleName(name.getModuleName()); info.setModuleName(name.getModuleName());
infoList.add(info); infoList.add(info);
} }
wrapper.clear();
} }
}
return saveBatch(infoList); return saveBatch(infoList);
} }

@ -1,6 +1,7 @@
package org.springblade.plugin.operation.task.controller; package org.springblade.plugin.operation.task.controller;
import com.alibaba.nacos.common.utils.CollectionUtils;
import com.alibaba.nacos.common.utils.StringUtils; import com.alibaba.nacos.common.utils.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -84,10 +85,18 @@ public class TaskInfoController extends BladeController {
@PostMapping("/save") @PostMapping("/save")
@ApiOperationSupport(order = 3) @ApiOperationSupport(order = 3)
@ApiOperation(value = "新增", notes = "传入dataScope") @ApiOperation(value = "新增", notes = "传入dataScope")
public R save(@Valid @RequestBody TaskInfo taskInfo) { public R save(@Valid @RequestBody TaskInfo taskInfo) throws Exception {
LambdaQueryWrapper<TaskInfo> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(TaskInfo::getTaskTypeName, taskInfo.getTaskTypeName());
wrapper.eq(TaskInfo::getTaskParentId, taskInfo.getTaskParentId());
int count = taskInfoService.count(wrapper);
if (count > 0) {
throw new Exception("数据重复!");
} else {
taskInfo.setCreateUserName(AuthUtil.getNickName()); taskInfo.setCreateUserName(AuthUtil.getNickName());
return R.status(taskInfoService.save(taskInfo)); return R.status(taskInfoService.save(taskInfo));
} }
}
/** /**
* 修改 * 修改
@ -96,9 +105,17 @@ public class TaskInfoController extends BladeController {
@PostMapping("/update") @PostMapping("/update")
@ApiOperationSupport(order = 4) @ApiOperationSupport(order = 4)
@ApiOperation(value = "修改", notes = "传入dataScope") @ApiOperation(value = "修改", notes = "传入dataScope")
public R update(@Valid @RequestBody TaskInfo taskInfo) { public R update(@Valid @RequestBody TaskInfo taskInfo) throws Exception {
LambdaQueryWrapper<TaskInfo> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(TaskInfo::getTaskTypeName, taskInfo.getTaskTypeName());
wrapper.eq(TaskInfo::getTaskParentId, taskInfo.getTaskParentId());
TaskInfo info = taskInfoService.getOne(wrapper);
if (info != null && !taskInfo.getId().equals(info.getId())) {
throw new Exception("数据重复!");
} else {
return R.status(taskInfoService.updateById(taskInfo)); return R.status(taskInfoService.updateById(taskInfo));
} }
}
/** /**
* 新增或修改 * 新增或修改

@ -30,6 +30,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.text.ParseException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@ -108,7 +109,7 @@ public class WorkOrderController extends BladeController {
* excel导出 * excel导出
*/ */
@GetMapping("/exportExcel") @GetMapping("/exportExcel")
public void exportExcel(WorkOrder workOrder, HttpServletResponse response) { public void exportExcel(WorkOrder workOrder, HttpServletResponse response) throws ParseException {
workOrderService.exportExcel(workOrder, response); workOrderService.exportExcel(workOrder, response);
} }

@ -11,14 +11,14 @@ public class WorkOrderExcel implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ColumnWidth(20)
@ExcelProperty("任务种类")
private String taskType;
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("任务父类") @ExcelProperty("任务父类")
private String taskParent; private String taskParent;
@ColumnWidth(20)
@ExcelProperty("任务种类")
private String taskType;
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("操作模块") @ExcelProperty("操作模块")
private String operationModule; private String operationModule;

@ -8,6 +8,7 @@ import org.springblade.plugin.operation.workorder.entity.WorkOrder;
import org.springblade.plugin.workflow.process.model.WfProcess; import org.springblade.plugin.workflow.process.model.WfProcess;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.text.ParseException;
import java.util.Map; import java.util.Map;
/** /**
@ -21,5 +22,5 @@ public interface IWorkOrderService {
IPage<WorkOrder> myToDo(WorkOrder workOrder, Query query); IPage<WorkOrder> myToDo(WorkOrder workOrder, Query query);
void exportExcel(WorkOrder workOrder, HttpServletResponse response); void exportExcel(WorkOrder workOrder, HttpServletResponse response) throws ParseException;
} }

@ -12,6 +12,7 @@ import org.flowable.engine.history.HistoricProcessInstance;
import org.flowable.engine.history.HistoricProcessInstanceQuery; import org.flowable.engine.history.HistoricProcessInstanceQuery;
import org.flowable.task.api.Task; import org.flowable.task.api.Task;
import org.flowable.task.api.TaskQuery; import org.flowable.task.api.TaskQuery;
import org.flowable.task.api.history.HistoricTaskInstance;
import org.flowable.task.api.history.HistoricTaskInstanceQuery; import org.flowable.task.api.history.HistoricTaskInstanceQuery;
import org.flowable.variable.api.history.HistoricVariableInstance; import org.flowable.variable.api.history.HistoricVariableInstance;
import org.springblade.core.excel.util.ExcelUtil; import org.springblade.core.excel.util.ExcelUtil;
@ -59,6 +60,8 @@ public class WorkOrderServiceImpl implements IWorkOrderService {
List<Map<String, Object>> workOrders = getList(workOrder); List<Map<String, Object>> workOrders = getList(workOrder);
page.setTotal(workOrders.size());
// 分页 // 分页
workOrders = workOrders.stream().skip((query.getCurrent() - 1) * query.getSize()).limit(query.getSize()).collect(Collectors.toList()); workOrders = workOrders.stream().skip((query.getCurrent() - 1) * query.getSize()).limit(query.getSize()).collect(Collectors.toList());
@ -68,9 +71,9 @@ public class WorkOrderServiceImpl implements IWorkOrderService {
// 数据 // 数据
page.setRecords(workOrders); page.setRecords(workOrders);
// 总条数 // 总条数
page.setTotal(historyService.createHistoricProcessInstanceQuery() // page.setTotal(historyService.createHistoricProcessInstanceQuery()
.processInstanceTenantId(WfTaskUtil.getTenantId()) // .processInstanceTenantId(WfTaskUtil.getTenantId())
.orderByProcessInstanceDuration().desc().list().size()); // .orderByProcessInstanceDuration().desc().list().size());
// 当前页数 // 当前页数
page.setCurrent(query.getCurrent()); page.setCurrent(query.getCurrent());
// 当前条数 // 当前条数
@ -137,7 +140,10 @@ public class WorkOrderServiceImpl implements IWorkOrderService {
} }
order.setCreateTime(historicProcessInstance.getStartTime()); order.setCreateTime(historicProcessInstance.getStartTime());
order.setEndTime(historicProcessInstance.getEndTime()); order.setEndTime(historicProcessInstance.getEndTime());
if (variables.get("qiwangwanchengshijian") != null) {
order.setExpectedCompletionTime(variables.get("qiwangwanchengshijian").toString()); order.setExpectedCompletionTime(variables.get("qiwangwanchengshijian").toString());
}
order.setTaskId(task.getId()); order.setTaskId(task.getId());
order.setProcessInstanceId(task.getProcessInstanceId()); order.setProcessInstanceId(task.getProcessInstanceId());
workOrders.add(order); workOrders.add(order);
@ -183,6 +189,8 @@ public class WorkOrderServiceImpl implements IWorkOrderService {
workOrders = workOrders.stream().filter(s -> (s.getCreateTime().after(workOrder.getStartTime())) && (s.getCreateTime().before(workOrder.getEndTime()))).collect(Collectors.toList()); workOrders = workOrders.stream().filter(s -> (s.getCreateTime().after(workOrder.getStartTime())) && (s.getCreateTime().before(workOrder.getEndTime()))).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((query.getCurrent() - 1) * query.getSize()).limit(query.getSize()).collect(Collectors.toList());
@ -193,11 +201,11 @@ public class WorkOrderServiceImpl implements IWorkOrderService {
page.setRecords(workOrders); page.setRecords(workOrders);
// 总条数 // 总条数
page.setTotal(taskService.createTaskQuery() // page.setTotal(taskService.createTaskQuery()
.orderByTaskCreateTime() // .orderByTaskCreateTime()
.desc() // .desc()
.taskTenantId(WfTaskUtil.getTenantId()) // .taskTenantId(WfTaskUtil.getTenantId())
.active().taskCandidateOrAssigned(taskUser).count()); // .active().taskCandidateOrAssigned(taskUser).count());
// 当前页数 // 当前页数
page.setCurrent(query.getCurrent()); page.setCurrent(query.getCurrent());
@ -208,10 +216,11 @@ public class WorkOrderServiceImpl implements IWorkOrderService {
} }
@Override @Override
public void exportExcel(WorkOrder workOrder, HttpServletResponse response) { public void exportExcel(WorkOrder workOrder, HttpServletResponse response) throws ParseException {
List<WorkOrderExcel> excels = new ArrayList<>(); List<WorkOrderExcel> excels = new ArrayList<>();
List<Map<String, Object>> workOrders = new ArrayList<>(); List<Map<String, Object>> workOrders = new ArrayList<>();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if (StringUtils.isNotBlank(workOrder.getTaskType()) || if (StringUtils.isNotBlank(workOrder.getTaskType()) ||
StringUtils.isNotBlank(workOrder.getTaskParent()) || StringUtils.isNotBlank(workOrder.getTaskParent()) ||
StringUtils.isNotBlank(workOrder.getCurrentResponsiblePerson()) || StringUtils.isNotBlank(workOrder.getCurrentResponsiblePerson()) ||
@ -224,7 +233,7 @@ public class WorkOrderServiceImpl implements IWorkOrderService {
workOrders = getList(workOrder); workOrders = getList(workOrder);
} else { } else {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar c = Calendar.getInstance(); Calendar c = Calendar.getInstance();
//过去三个月 //过去三个月
c.setTime(new Date()); c.setTime(new Date());
@ -306,10 +315,10 @@ public class WorkOrderServiceImpl implements IWorkOrderService {
excel.setCompany(order.get("yunweigongsi").toString()); excel.setCompany(order.get("yunweigongsi").toString());
excel.setSponsor(order.get("startUserId").toString()); excel.setSponsor(order.get("startUserId").toString());
excel.setApprovalStatus(order.get("status").toString()); excel.setApprovalStatus(order.get("status").toString());
excel.setCreateTime(order.get("startTime").toString()); excel.setCreateTime(format.format(order.get("startTime")));
if (order.get("endTime") != null) { if (order.get("endTime") != null) {
excel.setEndTime(order.get("endTime").toString()); excel.setEndTime(format.format(order.get("endTime")));
} else { } else {
excel.setEndTime("未结束"); excel.setEndTime("未结束");
} }
@ -359,7 +368,6 @@ public class WorkOrderServiceImpl implements IWorkOrderService {
} else { } else {
varMap.put("currentResponsiblePerson", "--"); varMap.put("currentResponsiblePerson", "--");
} }
// 审批状态 // 审批状态
if (task.getName().contains("审批")) { if (task.getName().contains("审批")) {
varMap.put("status", "审批中"); varMap.put("status", "审批中");
@ -373,12 +381,31 @@ public class WorkOrderServiceImpl implements IWorkOrderService {
varMap.put("startTime", historicProcessInstance.getStartTime()); varMap.put("startTime", historicProcessInstance.getStartTime());
varMap.put("endTime", historicProcessInstance.getEndTime()); varMap.put("endTime", historicProcessInstance.getEndTime());
varMap.put("startUserId", userClient.userInfoById(Long.parseLong(historicProcessInstance.getStartUserId())).getData().getRealName()); varMap.put("startUserId", userClient.userInfoById(Long.parseLong(historicProcessInstance.getStartUserId())).getData().getRealName());
varMap.put("startDeptId", userClient.userInfoById(Long.parseLong(historicProcessInstance.getStartUserId())).getData().getDeptId());
varMap.put("processInstanceId", historicProcessInstance.getId()); varMap.put("processInstanceId", historicProcessInstance.getId());
varMap.put("taskId", "");
List<HistoricTaskInstance> taskInstanceList = historyService.createHistoricTaskInstanceQuery().processInstanceId(historicProcessInstance.getId()).orderByTaskCreateTime().desc().list();
varMap.put("taskId", taskInstanceList.get(0).getId());
workOrders.add(varMap); workOrders.add(varMap);
} }
} }
// 只看本部门数据权限
List<Map<String, Object>> workOrderList = new ArrayList<>();
List<String> deptIds = Func.toStrList(AuthUtil.getDeptId());
workOrders.forEach(order -> {
List<String> deptId = Func.toStrList(order.get("startDeptId").toString());
for (String s : deptId) {
if (deptIds.contains(s)) {
workOrderList.add(order);
}
}
});
workOrders = workOrderList;
// 任务父类 // 任务父类
if (StringUtils.isNotBlank(workOrder.getTaskParent())) { if (StringUtils.isNotBlank(workOrder.getTaskParent())) {
workOrders = workOrders.stream().filter(s -> s.get("renwufulei").equals(workOrder.getTaskParent())).collect(Collectors.toList()); workOrders = workOrders.stream().filter(s -> s.get("renwufulei").equals(workOrder.getTaskParent())).collect(Collectors.toList());

Loading…
Cancel
Save