2023年2月17日18:20:03

main
litao 3 years ago
parent 11a1a4aaf3
commit 23ed93a59c
  1. 66
      lab-ops/lab-log/src/main/java/org/springblade/core/log/controller/LogApiController.java
  2. 2
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/homepage/controller/HomePageController.java
  3. 28
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/database/controller/DataBaseController.java
  4. 3
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/system/controller/ModuleInfoController.java
  5. 20
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/system/controller/ProjectInfoController.java
  6. 4
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/task/controller/TaskInfoController.java
  7. 40
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/controller/WorkOrderController.java
  8. 42
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/entity/WorkOrder.java
  9. 18
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/service/IWorkOrderService.java
  10. 76
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/service/impl/WorkOrderServiceImpl.java
  11. 17
      lab-service/lab-system/src/main/java/org/springblade/system/controller/DeptController.java
  12. 2
      lab-service/lab-system/src/main/java/org/springblade/system/controller/PostController.java
  13. 2
      lab-service/lab-system/src/main/java/org/springblade/system/controller/RoleController.java
  14. 2
      lab-service/lab-user/src/main/java/org/springblade/system/user/controller/UserController.java

@ -2,8 +2,13 @@
package org.springblade.core.log.controller;
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.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.AllArgsConstructor;
import org.springblade.core.log.annotation.ApiLog;
import org.springblade.core.log.model.LogApi;
import org.springblade.core.log.service.ILogApiService;
import org.springblade.core.mp.support.Condition;
@ -16,7 +21,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
import java.util.Map;
import java.util.*;
/**
* 控制器
@ -42,10 +47,65 @@ public class LogApiController {
/**
* 查询多条(分页)
*/
@ApiLog("日志-查看操作日志")
@GetMapping("/list")
public R<IPage<LogApi>> list(@ApiIgnore @RequestParam Map<String, Object> log, Query query) {
IPage<LogApi> pages = logService.page(Condition.getPage(query.setDescs("create_time")), Condition.getQueryWrapper(log, LogApi.class));
public R<IPage<LogApi>> list(@ApiIgnore @RequestParam Map<String, String> log, Query query) {
// IPage<LogApi> pages = logService.page(Condition.getPage(query.setDescs("create_time")), Condition.getQueryWrapper(log, LogApi.class));
LambdaQueryWrapper<LogApi> wrapper = new LambdaQueryWrapper<>();
// 用户
if (StringUtils.isNotBlank(log.get("createBy"))) {
wrapper.eq(LogApi::getCreateBy, log.get("createBy"));
}
// 模块名称
if (StringUtils.isNotBlank(log.get("title"))) {
wrapper.like(LogApi::getTitle, log.get("title") + "-");
}
// IP地址
if (StringUtils.isNotBlank(log.get("remoteIp"))) {
wrapper.eq(LogApi::getRemoteIp, log.get("remoteIp"));
}
// 操作时间范围条件
if (log.get("startTime") != null && log.get("endTime") != null) {
wrapper.between(LogApi::getCreateTime, log.get("startTime"), log.get("endTime"));
}
wrapper.orderByDesc(LogApi::getCreateTime);
IPage<LogApi> pages = logService.page(Condition.getPage(query), wrapper);
return R.data(pages);
}
/**
* 分页列表查询条件数据
*/
@GetMapping("/conditionData")
public R<Map<String, Object>> conditionData() {
Map<String, Object> map = new HashMap<>();
QueryWrapper<LogApi> wrapper = new QueryWrapper<>();
// 用户
wrapper.select("DISTINCT create_by");
map.put("user", logService.list(wrapper));
wrapper.clear();
// 模块名称
wrapper.select("DISTINCT title");
List<LogApi> logApis = logService.list(wrapper);
Set<String> set = new HashSet<>();
if (CollectionUtils.isNotEmpty(logApis)) {
for (LogApi logApi : logApis) {
set.add(logApi.getTitle().split("-")[0]);
}
}
map.put("module", set);
wrapper.clear();
// IP地址
wrapper.select("DISTINCT remote_ip");
map.put("ip", logService.list(wrapper));
return R.data(map);
}
}

@ -5,11 +5,9 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R;
import org.springblade.plugin.homepage.service.IHomePageService;
import org.springblade.plugin.operation.system.entity.ModuleInfo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@ -3,48 +3,36 @@ package org.springblade.plugin.operation.database.controller;
import com.alibaba.excel.EasyExcel;
import com.alibaba.nacos.common.utils.CollectionUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.models.auth.In;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.cache.utils.CacheUtil;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.log.annotation.ApiLog;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.plugin.operation.database.context.CustomCellWriteHandler;
import org.springblade.plugin.operation.database.context.CustomSheetWriteHandler;
import org.springblade.plugin.operation.database.entity.DataBase;
import org.springblade.plugin.operation.database.entity.DataTable;
import org.springblade.plugin.operation.database.excel.DatabaseExcel;
import org.springblade.plugin.operation.database.excel.UploadReturn;
import org.springblade.plugin.operation.database.service.IDataBaseService;
import org.springblade.plugin.operation.database.service.IDataTableService;
import org.springblade.plugin.operation.database.vo.DataBaseVO;
import org.springblade.plugin.operation.task.entity.TaskInfo;
import org.springblade.system.cache.DictBizCache;
import org.springblade.system.entity.Dept;
import org.springblade.system.entity.DictBiz;
import org.springblade.system.feign.ISysClient;
import org.springblade.system.user.entity.User;
import org.springblade.system.user.feign.IUserClient;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
@ -53,7 +41,6 @@ import java.io.FileInputStream;
import java.io.IOException;
import java.util.*;
import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
/**
*
@ -76,6 +63,7 @@ public class DataBaseController extends BladeController {
/**
* 分页
*/
@ApiLog("数据运维-查看数据库列表")
@GetMapping("/list")
public R<IPage<DataBaseVO>> list(DataBase dataBase, Query query) {
IPage<DataBaseVO> pages = dataTableService.pageVO(Condition.getPage(query), dataBase);
@ -139,6 +127,7 @@ public class DataBaseController extends BladeController {
/**
* excel导入
*/
@ApiLog("数据运维-导入数据库Excel模板")
@PostMapping("/dataImport")
public R dataImport(MultipartFile file) {
return R.status(dataBaseService.dataImport(file));
@ -147,6 +136,7 @@ public class DataBaseController extends BladeController {
/**
* excel导出模板
*/
@ApiLog("数据运维-下载数据库Excel模板")
@GetMapping("/exportTemplate")
public void exportUser(HttpServletResponse response) {
List<DatabaseExcel> excels = new ArrayList<>();
@ -231,7 +221,6 @@ public class DataBaseController extends BladeController {
String fileName = split[split.length - 1];
// String[] split1 = fileName.split(".");
// String s = split1[0];
if (file2.exists()) {
FileInputStream in = null;
HttpServletResponse response = resp;
@ -268,10 +257,17 @@ public class DataBaseController extends BladeController {
} catch (IOException e) {
System.out.println("resp返回前端信息异常");
}
}
}
/**
* 删除文件
*/
@GetMapping("/fileDelete")
public R fileDelete(String path) {
return R.status(new File(path).delete());
}
/**
* 列表数据返回
*/

@ -13,6 +13,7 @@ import lombok.AllArgsConstructor;
import org.codehaus.janino.Java;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.cache.utils.CacheUtil;
import org.springblade.core.log.annotation.ApiLog;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tenant.annotation.NonDS;
@ -72,6 +73,7 @@ public class ModuleInfoController extends BladeController {
/**
* 分页
*/
@ApiLog("数据运维-查看系统列表")
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "分页", notes = "传入dataScope")
@ -92,6 +94,7 @@ public class ModuleInfoController extends BladeController {
/**
* 新增
*/
@ApiLog("数据运维-新增系统模块")
@PostMapping("/save")
@ApiOperationSupport(order = 3)
@ApiOperation(value = "新增", notes = "传入dataScope")

@ -124,10 +124,13 @@ public class ProjectInfoController extends BladeController {
* 组合数据库和系统数据
*/
@GetMapping("/projectAndDataBase")
public R taskAndDataBase() {
public R taskAndDataBase(String id) {
List<TaskAndDataBase> list = new ArrayList<>();
// 数据库数据
List<DataBase> dataBaseList = dataBaseService.list();
LambdaQueryWrapper<DataBase> wrapper = new LambdaQueryWrapper<>();
wrapper.select(DataBase::getId, DataBase::getDataBaseName, DataBase::getDataBaseIp);
wrapper.eq(DataBase::getCompany, id);
List<DataBase> dataBaseList = dataBaseService.list(wrapper);
if (CollectionUtils.isNotEmpty(dataBaseList)) {
for (DataBase dataBase : dataBaseList) {
TaskAndDataBase taskAndDataBase = new TaskAndDataBase();
@ -139,12 +142,15 @@ public class ProjectInfoController extends BladeController {
}
// 系统名称数据
List<ProjectInfo> projectInfoList = projectInfoService.list();
if (CollectionUtils.isNotEmpty(projectInfoList)) {
for (ProjectInfo projectInfo : projectInfoList) {
QueryWrapper<ModuleInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.select("DISTINCT project_info_id");
queryWrapper.eq("project_info_id", id);
List<ModuleInfo> moduleInfoList = moduleInfoService.list(queryWrapper);
if (CollectionUtils.isNotEmpty(moduleInfoList)) {
for (ModuleInfo moduleInfo : moduleInfoList) {
TaskAndDataBase taskAndDataBase = new TaskAndDataBase();
taskAndDataBase.setId(projectInfo.getId());
taskAndDataBase.setName(projectInfo.getProjectName());
taskAndDataBase.setId(moduleInfo.getProjectInfoId());
taskAndDataBase.setName(projectInfoService.getById(moduleInfo.getProjectInfoId()).getProjectName());
taskAndDataBase.setType(1);
list.add(taskAndDataBase);
}

@ -13,6 +13,7 @@ import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.log.annotation.ApiLog;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
@ -76,6 +77,7 @@ public class TaskInfoController extends BladeController {
/**
* 新增
*/
@ApiLog("数据运维-新增任务种类")
@PostMapping("/save")
@ApiOperationSupport(order = 3)
@ApiOperation(value = "新增", notes = "传入dataScope")
@ -87,6 +89,7 @@ public class TaskInfoController extends BladeController {
/**
* 修改
*/
@ApiLog("数据运维-修改任务种类")
@PostMapping("/update")
@ApiOperationSupport(order = 4)
@ApiOperation(value = "修改", notes = "传入dataScope")
@ -107,6 +110,7 @@ public class TaskInfoController extends BladeController {
/**
* 删除
*/
@ApiLog("数据运维-删除任务种类")
@PostMapping("/remove")
@ApiOperationSupport(order = 6)
@ApiOperation(value = "逻辑删除", notes = "传入ids")

@ -0,0 +1,40 @@
package org.springblade.plugin.operation.workorder.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.AllArgsConstructor;
import org.flowable.engine.history.HistoricProcessInstance;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R;
import org.springblade.plugin.operation.workorder.entity.WorkOrder;
import org.springblade.plugin.operation.workorder.service.IWorkOrderService;
import org.springblade.plugin.workflow.process.model.WfProcess;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 工单
* @Description
* @Author lt
* @Date 2023年2月17日09:46:45
*/
@NonDS
@RestController
@AllArgsConstructor
@RequestMapping("/workOrder")
public class WorkOrderController extends BladeController {
private final IWorkOrderService workOrderService;
/**
* 历史工单
*/
@GetMapping("/historyWorkOrder")
public R<IPage<WorkOrder>> historyWorkOrder(WorkOrder workOrder, Query query) {
return R.data(workOrderService.historyWorkOrder(workOrder, query));
}
}

@ -0,0 +1,42 @@
package org.springblade.plugin.operation.workorder.entity;
import lombok.Data;
import java.util.Date;
@Data
public class WorkOrder {
// 任务种类
private String taskType;
// 任务父类
private String taskParent;
// 操作模块
private String operationModule;
// 当前责任人
private String currentResponsiblePerson;
// 分管部门
private String dept;
// 运维公司
private String company;
// 发起人
private String sponsor;
// 审批状态
private String approvalStatus;
// 创建时间
private Date createTime;
// 结束时间
private Date endTime;
// 期望完成时间
private String expectedCompletionTime;
}

@ -0,0 +1,18 @@
package org.springblade.plugin.operation.workorder.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.flowable.engine.history.HistoricProcessInstance;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.plugin.operation.workorder.entity.WorkOrder;
import org.springblade.plugin.workflow.process.model.WfProcess;
/**
* @Description
* @Author lt
* @Date 2023-2-17 09:49:24
*/
public interface IWorkOrderService {
IPage<WorkOrder> historyWorkOrder(WorkOrder workOrder, Query query);
}

@ -0,0 +1,76 @@
package org.springblade.plugin.operation.workorder.service.impl;
import com.alibaba.nacos.common.utils.CollectionUtils;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.AllArgsConstructor;
import org.flowable.engine.HistoryService;
import org.flowable.engine.RuntimeService;
import org.flowable.engine.TaskService;
import org.flowable.engine.history.HistoricProcessInstance;
import org.springblade.core.mp.support.Query;
import org.springblade.plugin.operation.workorder.entity.WorkOrder;
import org.springblade.plugin.operation.workorder.service.IWorkOrderService;
import org.springblade.plugin.workflow.core.utils.WfTaskUtil;
import org.springblade.plugin.workflow.process.model.WfProcess;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @Description
* @Author lt
* @Date 2023-2-17 09:49:42
*/
@Service
@AllArgsConstructor
public class WorkOrderServiceImpl implements IWorkOrderService {
private final TaskService taskService;
private final HistoryService historyService;
private final RuntimeService runtimeService;
@Override
public IPage<WorkOrder> historyWorkOrder(WorkOrder workOrder, Query query) {
IPage<WorkOrder> page = new Page<>();
List<HistoricProcessInstance> list = historyService.createHistoricProcessInstanceQuery()
.orderByProcessInstanceDuration()
.desc()
// .processInstanceTenantId(WfTaskUtil.getTenantId())
.listPage((query.getCurrent() - 1) * query.getSize(), (query.getCurrent() - 1) * query.getSize() + query.getSize());
List<WorkOrder> workOrders = new ArrayList<>();
if (CollectionUtils.isNotEmpty(list)) {
for (HistoricProcessInstance historicProcessInstance : list) {
Map<String, Object> variables = historicProcessInstance.getProcessVariables();
WorkOrder order = new WorkOrder();
order.setTaskType(variables.get("$renwuzhonglei").toString());
order.setTaskParent(variables.get("renwufulei").toString());
order.setOperationModule(variables.get("xitongmokuaishujubiao").toString());
order.setCurrentResponsiblePerson("");
order.setDept(variables.get("$quanlibumen").toString());
order.setCompany(variables.get("yunweigongsi").toString());
order.setSponsor(variables.get("applyUser").toString());
order.setApprovalStatus(variables.get("").toString());
order.setCreateTime(historicProcessInstance.getStartTime());
order.setEndTime(historicProcessInstance.getEndTime());
order.setExpectedCompletionTime(variables.get("qiwangwanchengshijian").toString());
workOrders.add(order);
}
}
// 数据
page.setRecords(workOrders);
// 总条数
page.setTotal(historyService.createHistoricProcessInstanceQuery()
// .processInstanceTenantId(WfTaskUtil.getTenantId())
.orderByProcessInstanceDuration().desc().list().size());
// 当前页数
page.setCurrent(query.getCurrent());
// 当前条数
page.setSize(query.getSize());
return page;
}
}

@ -3,15 +3,18 @@ package org.springblade.system.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.*;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.cache.utils.CacheUtil;
import org.springblade.core.log.annotation.ApiLog;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.annotation.PreAuth;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.constant.BladeConstant;
@ -22,12 +25,14 @@ import org.springblade.system.cache.DictCache;
import org.springblade.system.entity.Dept;
import org.springblade.system.enums.DictEnum;
import org.springblade.system.service.IDeptService;
import org.springblade.system.user.feign.IUserClient;
import org.springblade.system.vo.DeptVO;
import org.springblade.system.wrapper.DeptWrapper;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@ -48,6 +53,8 @@ public class DeptController extends BladeController {
private final IDeptService deptService;
private final IUserClient userClient;
/**
* 详情
*/
@ -90,6 +97,7 @@ public class DeptController extends BladeController {
/**
* 懒加载列表
*/
@ApiLog("人事管理-查看部门列表")
@GetMapping("/lazy-list")
@ApiImplicitParams({
@ApiImplicitParam(name = "deptName", value = "部门名称", paramType = "query", dataType = "string"),
@ -172,7 +180,14 @@ public class DeptController extends BladeController {
public R<List<Dept>> getBases(String id) {
LambdaQueryWrapper<Dept> wrapper = new LambdaQueryWrapper<>();
wrapper.in(Dept::getId, Func.toLongList(id));
return R.data(deptService.list(wrapper));
List<Dept> depts = deptService.list(wrapper);
if (CollectionUtils.isEmpty(depts)) {
wrapper.clear();
String deptId = userClient.userInfoById(Long.parseLong(id)).getData().getDeptId();
wrapper.in(Dept::getId, Func.toLongList(deptId));
depts = deptService.list(wrapper);
}
return R.data(depts);
}
}

@ -10,6 +10,7 @@ import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.cache.utils.CacheUtil;
import org.springblade.core.log.annotation.ApiLog;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.BladeUser;
@ -55,6 +56,7 @@ public class PostController extends BladeController {
/**
* 分页 岗位表
*/
@ApiLog("人事管理-查看岗位列表")
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "分页", notes = "传入post")

@ -7,6 +7,7 @@ import io.swagger.annotations.*;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.cache.utils.CacheUtil;
import org.springblade.core.log.annotation.ApiLog;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.annotation.PreAuth;
@ -59,6 +60,7 @@ public class RoleController extends BladeController {
/**
* 列表
*/
@ApiLog("人事管理-查看角色列表")
@GetMapping("/list")
@ApiImplicitParams({
@ApiImplicitParam(name = "roleName", value = "参数名称", paramType = "query", dataType = "string"),

@ -142,7 +142,7 @@ public class UserController {
/**
* 自定义用户列表
*/
@ApiLog("查看用户列表")
@ApiLog("人事管理-查看用户列表")
@GetMapping("/page")
@ApiImplicitParams({
@ApiImplicitParam(name = "account", value = "账号名", paramType = "query", dataType = "string"),

Loading…
Cancel
Save