填写工单页面相关接口

main
litao 3 years ago
parent d451dfe82e
commit e2553b34ac
  1. 55
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/database/context/CustomCellWriteHandler.java
  2. 93
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/database/context/CustomSheetWriteHandler.java
  3. 199
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/database/controller/DataBaseController.java
  4. 11
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/database/entity/DataBase.java
  5. 62
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/database/entity/DataTable.java
  6. 17
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/database/excel/UploadReturn.java
  7. 14
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/database/mapper/DataTableMapper.java
  8. 6
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/database/mapper/DataTableMapper.xml
  9. 14
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/database/service/IDataTableService.java
  10. 22
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/database/service/impl/DataTableServiceImpl.java
  11. 8
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/system/controller/ModuleInfoController.java
  12. 85
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/system/controller/ProjectInfoController.java
  13. 16
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/task/controller/TaskInfoController.java
  14. 13
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/task/entity/TaskAndDataBase.java
  15. 8
      lab-service/lab-system/src/main/java/org/springblade/system/controller/DeptController.java
  16. 68
      lab-service/lab-user/src/main/java/org/springblade/system/user/controller/UserController.java

@ -0,0 +1,55 @@
package org.springblade.plugin.operation.database.context;
import com.alibaba.excel.metadata.CellData;
import com.alibaba.excel.metadata.Head;
import com.alibaba.excel.write.handler.CellWriteHandler;
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
import com.alibaba.excel.write.metadata.holder.WriteTableHolder;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.common.usermodel.HyperlinkType;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.ss.usermodel.Hyperlink;
import org.apache.poi.ss.usermodel.Row;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
/**
* 自定义拦截器对第一行第一列的头超链接到:https://github.com/alibaba/easyexcel
*
* @author
*/
@Slf4j
public class CustomCellWriteHandler implements CellWriteHandler {
private static final Logger LOGGER = LoggerFactory.getLogger(CustomCellWriteHandler.class);
@Override
public void beforeCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row, Head head, Integer columnIndex, Integer relativeRowIndex, Boolean isHead) {
}
@Override
public void afterCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) {
}
@Override
public void afterCellDataConverted(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, CellData cellData, Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) {
}
@Override
public void afterCellDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, List<CellData> cellDataList, Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) {
// 这里可以对cell进行任何操作
LOGGER.info("第{}行,第{}列写入完成。", cell.getRowIndex(), cell.getColumnIndex());
if (isHead && cell.getColumnIndex() == 0) {
CreationHelper createHelper = writeSheetHolder.getSheet().getWorkbook().getCreationHelper();
Hyperlink hyperlink = createHelper.createHyperlink(HyperlinkType.URL);
hyperlink.setAddress("https://github.com/alibaba/easyexcel");
cell.setHyperlink(hyperlink);
}
}
}

@ -0,0 +1,93 @@
package org.springblade.plugin.operation.database.context;
import com.alibaba.excel.write.handler.SheetWriteHandler;
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder;
import com.alibaba.nacos.common.utils.CollectionUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.DataValidation;
import org.apache.poi.ss.usermodel.DataValidationConstraint;
import org.apache.poi.ss.usermodel.DataValidationHelper;
import org.apache.poi.ss.util.CellRangeAddressList;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.plugin.operation.database.utils.UserAndDept;
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.beans.factory.annotation.Autowired;
import java.util.ArrayList;
import java.util.List;
/**
* 自定义拦截器.对第一列第一行和第二行的数据新增下拉框显示 测试1 测试2
* @author
*/
@Slf4j
public class CustomSheetWriteHandler implements SheetWriteHandler {
private static final Logger LOGGER = LoggerFactory.getLogger(CustomSheetWriteHandler.class);
@Override
public void beforeSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
}
@Override
public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
LOGGER.info("第{}个Sheet写入成功。", writeSheetHolder.getSheetNo());
// 数据库类型
List<DictBiz> dictBizList = DictBizCache.getList("database_type");
List<String> names = new ArrayList<>();
if (CollectionUtils.isNotEmpty(dictBizList)) {
for (DictBiz dictBiz : dictBizList) {
if (!"-1".equals(dictBiz.getDictKey())) {
names.add(dictBiz.getDictValue());
}
}
}
// 区间设置 第一列第一行和第二行的数据。由于第一行是头,所以第一、二行的数据实际上是第二三行
CellRangeAddressList cellRangeAddressList = new CellRangeAddressList(1, 100, 3, 3);
DataValidationHelper helper = writeSheetHolder.getSheet().getDataValidationHelper();
DataValidationConstraint constraint = helper.createExplicitListConstraint(names.stream().toArray(String[]::new));
DataValidation dataValidation = helper.createValidation(constraint, cellRangeAddressList);
// 部门
// List<Dept> depts = sysClient.getDepts().getData();
List<Dept> depts = UserAndDept.depts();
List<String> deptNames = new ArrayList<>();
if (CollectionUtils.isNotEmpty(depts)) {
for (Dept dept : depts) {
deptNames.add(dept.getDeptName());
}
}
CellRangeAddressList cellRangeAddressList1 = new CellRangeAddressList(1, 100, 7, 7);
DataValidationHelper helper1 = writeSheetHolder.getSheet().getDataValidationHelper();
DataValidationConstraint constraint1 = helper1.createExplicitListConstraint(deptNames.stream().toArray(String[]::new));
DataValidation dataValidation1 = helper1.createValidation(constraint1, cellRangeAddressList1);
// 运维公司
// List<User> userList = userClient.listRolebyId("运维公司").getData();
List<User> userList = UserAndDept.users();
if (CollectionUtils.isNotEmpty(userList)) {
List<String> userNames = new ArrayList<>();
for (User user : userList) {
userNames.add(user.getRealName());
}
CellRangeAddressList cellRangeAddressList2 = new CellRangeAddressList(1, 100, 8, 8);
DataValidationHelper helper2 = writeSheetHolder.getSheet().getDataValidationHelper();
DataValidationConstraint constraint2 = helper2.createExplicitListConstraint(userNames.stream().toArray(String[]::new));
DataValidation dataValidation2 = helper2.createValidation(constraint2, cellRangeAddressList2);
writeSheetHolder.getSheet().addValidationData(dataValidation2);
}
writeSheetHolder.getSheet().addValidationData(dataValidation);
writeSheetHolder.getSheet().addValidationData(dataValidation1);
}
}

@ -3,6 +3,7 @@ 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.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.Api;
@ -24,22 +25,32 @@ 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.system.cache.DictBizCache;
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;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.*;
import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
/**
*
*
*/
@NonDS
@ -51,16 +62,11 @@ public class DataBaseController extends BladeController {
private final IDataBaseService dataBaseService;
/**
* 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "详情", notes = "传入dataScope")
public R<DataBase> detail(DataBase dataBase) {
DataBase detail = dataBaseService.getOne(Condition.getQueryWrapper(dataBase));
return R.data(detail);
}
private final IDataTableService dataTableService;
private final ISysClient sysClient;
private final IUserClient userClient;
/**
* 分页
@ -68,8 +74,23 @@ public class DataBaseController extends BladeController {
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "分页", notes = "传入dataScope")
public R<IPage<DataBase>> list(DataBase dataBase, Query query) {
IPage<DataBase> pages = dataBaseService.page(Condition.getPage(query), Condition.getQueryWrapper(dataBase));
public R<IPage<DataTable>> list(DataTable dataTable, Query query) {
IPage<DataTable> pages = dataTableService.page(Condition.getPage(query.setDescs("create_time")), Condition.getQueryWrapper(dataTable));
List<DataTable> dataTableList = pages.getRecords();
if (CollectionUtils.isNotEmpty(dataTableList)) {
for (DataTable table : dataTableList) {
DataBase dataBase = dataBaseService.getById(table.getDataBaseId());
table.setDataBaseName(dataBase.getDataBaseName());
table.setDataBaseAlias(dataBase.getDataBaseAlias());
table.setDataBaseType(dataBase.getDataBaseType());
table.setDataBaseIp(dataBase.getDataBaseIp());
table.setDataBasePort(dataBase.getDataBasePort());
table.setSystemName(dataBase.getSystemName());
table.setDeptName(sysClient.getDeptName(table.getDeptId()).getData());
table.setCompanyName(userClient.userInfoById(table.getCompany()).getData().getRealName());
}
pages.setRecords(dataTableList);
}
return R.data(pages);
}
@ -93,16 +114,6 @@ public class DataBaseController extends BladeController {
return R.status(dataBaseService.updateById(dataBase));
}
/**
* 新增或修改
*/
@PostMapping("/submit")
@ApiOperationSupport(order = 5)
@ApiOperation(value = "新增或修改", notes = "传入dataScope")
public R submit(@Valid @RequestBody DataBase dataBase) {
return R.status(dataBaseService.saveOrUpdate(dataBase));
}
/**
* 删除
*/
@ -116,16 +127,27 @@ public class DataBaseController extends BladeController {
/**
* excel导入
*/
@PostMapping("dataImport")
@PostMapping("/dataImport")
public R importUser(MultipartFile file) {
List<DatabaseExcel> excelList = ExcelUtil.read(file, DatabaseExcel.class);
if (CollectionUtils.isNotEmpty(excelList)) {
List<DataBase> dataBaseList = new ArrayList<>();
List<DataTable> dataTableList = new ArrayList<>();
excelList.forEach(item -> {
// String data = sysClient.getDeptIds(AuthUtil.getTenantId(), item.getDeptId()).getData();
// User user = userClient.userInfoByName(AuthUtil.getTenantId(), item.getCompany()).getData();
// 数据库
DataBase dataBase = BeanUtil.copy(item, DataBase.class);
dataBase.setDataBaseType(Integer.parseInt(DictBizCache.getKey("database_type", item.getDataBaseType())));
dataBaseList.add(dataBase);
// 数据表
DataTable dataTable = BeanUtil.copy(item, DataTable.class);
dataTableList.add(dataTable);
});
dataBaseService.saveBatch(dataBaseList);
dataTableService.saveBatch(dataTableList);
}
return R.success("操作成功");
}
@ -133,21 +155,18 @@ public class DataBaseController extends BladeController {
/**
* excel导出模板
*/
@GetMapping("exportTemplate")
@GetMapping("/exportTemplate")
public void exportUser(HttpServletResponse response) {
List<DatabaseExcel> excels = new ArrayList<>();
DatabaseExcel excel = new DatabaseExcel();
// excel.setDataBaseIp("127.0.0.1");
// excel.setDataBasePort("1000");
// excel.setDataBaseName("work_order");
// excel.setDataBaseType("mysql");
// excel.setDataBaseAlias("工单数据库");
// excel.setSystemName("工单系统");
// excel.setSystemModuleName("数据运维");
// excel.setDeptId("数据科");
// excel.setCompany("A公司");
// excel.setDataTableName("t_task_info");
// excel.setDataTableAlias("任务种类");
excel.setDataBaseIp("127.0.0.1");
excel.setDataBasePort("1000");
excel.setDataBaseName("work_order");
excel.setDataBaseAlias("工单数据库");
excel.setSystemName("工单系统");
excel.setSystemModuleName("数据运维");
excel.setDataTableName("t_task_info");
excel.setDataTableAlias("任务种类");
excels.add(excel);
// ExcelUtil.export(response, "数据库数据" + DateUtil.time(), "数据库数据", excels, DatabaseExcel.class);
@ -155,6 +174,108 @@ public class DataBaseController extends BladeController {
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭
EasyExcel.write(fileName, DatabaseExcel.class).registerWriteHandler(new CustomSheetWriteHandler())
.registerWriteHandler(new CustomCellWriteHandler()).sheet("模板").doWrite(excels);
download(fileName, response);
}
/**
* 文件上传
*/
@PostMapping("/upload")
public R<UploadReturn> upload(MultipartFile file) {
// 1、获取文件的原始文件名, 通过原始文件名获取文件后缀 例如:abc.jpg
String originalFilename = file.getOriginalFilename();
String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
// 2、使用UUID重新生成文件名,防止文件名称重复造成文件覆盖
String fileName = UUID.randomUUID().toString() + suffix;
// 3、创建一个目录对象
String basePath = "D://用户签名//";
File dir = new File(basePath);
//判断当前目录是否存在
if (!dir.exists()) {
//目录不存在,需要创建
dir.mkdirs();
}
try {
// 4、将临时文件转存到指定位置
file.transferTo(new File(basePath + fileName));
} catch (IOException e) {
e.printStackTrace();
}
UploadReturn uploadReturn = new UploadReturn();
uploadReturn.setName(originalFilename);
uploadReturn.setPath(basePath + fileName);
uploadReturn.setCreateUser(AuthUtil.getNickName());
uploadReturn.setCreateTime(new Date());
return R.data(uploadReturn);
}
/**
* 查看文件
*/
@GetMapping("/download")
public void download(String path, HttpServletResponse resp) {
// CtglPlaninfo ctglPlaninfo = ctglPlaninfoMapper.queryRecord(fid);
// String fapath = "//" + ctglPlaninfo.getFapath();
// 通过id 查询 数据表 地址
//获取配置文件地址
// 文件地址 = 配置文件地址+数据表地址
// File file = new File(path);
// if (!file.exists()) {
// try {
// file.mkdirs();
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
File file2 = new File(path);
//获取文件名
String[] split = path.split("//");
String fileName = split[split.length - 1];
// String[] split1 = fileName.split(".");
// String s = split1[0];
if (file2.exists()) {
FileInputStream in = null;
HttpServletResponse response = resp;
response.setCharacterEncoding("UTF-8");
response.setContentType("application/octet-stream;charset=utf-8");
response.setHeader("Content-disposition", "attachment;filename=" + fileName);
try {
in = new FileInputStream(path);
byte[] a = new byte[1024];
int b;
while ((b = in.read(a)) != -1) {
response.getOutputStream().write(a, 0, b);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != in) {
try {
in.close();
} catch (IOException e2) {
System.out.println("关闭输入流错误");
}
try {
response.getOutputStream().close();
} catch (IOException e) {
System.out.println("输出流关闭错误");
}
}
}
} else {
try {
resp.getWriter().println("查不到文件");
} catch (IOException e) {
System.out.println("resp返回前端信息异常");
}
}
}
}

@ -47,15 +47,4 @@ public class DataBase extends TenantEntity {
*/
private String systemName;
/**
* 管理部门id
*/
private Long deptId;
/**
* 运维公司id
*/
private Long company;
}

@ -1,5 +1,6 @@
package org.springblade.plugin.operation.database.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -12,6 +13,11 @@ public class DataTable extends TenantEntity {
private static final long serialVersionUID = 1L;
/**
* 数据库id
*/
private Long dataBaseId;
/**
* 模块名称
*/
@ -27,4 +33,60 @@ public class DataTable extends TenantEntity {
*/
private String dataTableAlias;
/**
* 管理部门id
*/
private Long deptId;
/**
* 管理部门
*/
private String deptName;
/**
* 运维公司id
*/
private Long company;
/**
* 运维公司
*/
private String companyName;
/**
* 数据库名称
*/
@TableField(exist = false)
private String dataBaseName;
/**
* 数据库中文别名
*/
@TableField(exist = false)
private String dataBaseAlias;
/**
* 数据库类型
*/
@TableField(exist = false)
private Integer dataBaseType;
/**
* 数据库ip
*/
@TableField(exist = false)
private String dataBaseIp;
/**
* 数据库端口
*/
@TableField(exist = false)
private String dataBasePort;
/**
* 系统名称
*/
@TableField(exist = false)
private String systemName;
}

@ -0,0 +1,17 @@
package org.springblade.plugin.operation.database.excel;
import lombok.Data;
import java.util.Date;
@Data
public class UploadReturn {
private String name;
private String path;
private String createUser;
private Date createTime;
}

@ -0,0 +1,14 @@
package org.springblade.plugin.operation.database.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.plugin.operation.database.entity.DataTable;
/**
* Mapper 接口
*
* @author BladeX
*/
public interface DataTableMapper extends BaseMapper<DataTable> {
}

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.plugin.operation.database.mapper.DataTableMapper">
</mapper>

@ -0,0 +1,14 @@
package org.springblade.plugin.operation.database.service;
import org.springblade.core.mp.base.BaseService;
import org.springblade.plugin.operation.database.entity.DataTable;
/**
* 服务类
*
* @author BladeX
*/
public interface IDataTableService extends BaseService<DataTable> {
}

@ -0,0 +1,22 @@
package org.springblade.plugin.operation.database.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.plugin.operation.database.entity.DataBase;
import org.springblade.plugin.operation.database.entity.DataTable;
import org.springblade.plugin.operation.database.mapper.DataBaseMapper;
import org.springblade.plugin.operation.database.mapper.DataTableMapper;
import org.springblade.plugin.operation.database.service.IDataBaseService;
import org.springblade.plugin.operation.database.service.IDataTableService;
import org.springframework.stereotype.Service;
/**
* 服务实现类
*
* @author BladeX
*/
@Service
public class DataTableServiceImpl extends BaseServiceImpl<DataTableMapper, DataTable> implements IDataTableService {
}

@ -2,6 +2,7 @@
package org.springblade.plugin.operation.system.controller;
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;
@ -9,6 +10,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
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.mp.support.Condition;
@ -74,13 +76,13 @@ public class ModuleInfoController extends BladeController {
@ApiOperationSupport(order = 2)
@ApiOperation(value = "分页", notes = "传入dataScope")
public R<IPage<ModuleInfo>> list(ModuleInfo moduleInfo, Query query) {
IPage<ModuleInfo> pages = moduleInfoService.page(Condition.getPage(query), Condition.getQueryWrapper(moduleInfo));
LambdaQueryWrapper<ModuleInfo> wrapper = new LambdaQueryWrapper<>(moduleInfo);
wrapper.orderByDesc(ModuleInfo::getCreateTime);
IPage<ModuleInfo> pages = moduleInfoService.page(Condition.getPage(query), wrapper);
List<ModuleInfo> infoList = pages.getRecords();
if (CollectionUtils.isNotEmpty(infoList)) {
infoList.forEach(item -> {
item.setProjectName(projectInfoService.getById(item.getProjectInfoId()).getProjectName());
// item.setDeptName(sysClient.getDeptName(item.getManageDeptId()).getData());
// item.setMaintenanceDeptName(userClient.userInfoById(item.getMaintenanceDeptId()).getData().getRealName());
item.setCreateName(userClient.userInfoById(item.getCreateUser()).getData().getRealName());
});
}

@ -1,6 +1,8 @@
package org.springblade.plugin.operation.system.controller;
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;
@ -15,14 +17,22 @@ import org.springblade.core.mp.support.Query;
import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.plugin.operation.database.entity.DataBase;
import org.springblade.plugin.operation.database.entity.DataTable;
import org.springblade.plugin.operation.database.service.IDataBaseService;
import org.springblade.plugin.operation.database.service.IDataTableService;
import org.springblade.plugin.operation.system.entity.ModuleInfo;
import org.springblade.plugin.operation.system.entity.ProjectInfo;
import org.springblade.plugin.operation.system.service.IModuleInfoService;
import org.springblade.plugin.operation.system.service.IProjectInfoService;
import org.springblade.plugin.operation.task.entity.TaskAndDataBase;
import org.springblade.plugin.operation.task.entity.TaskInfo;
import org.springblade.plugin.operation.task.service.ITaskInfoService;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -42,6 +52,12 @@ public class ProjectInfoController extends BladeController {
private final IProjectInfoService projectInfoService;
private final IDataBaseService dataBaseService;
private final IModuleInfoService moduleInfoService;
private final IDataTableService dataTableService;
/**
* 详情
*/
@ -104,5 +120,74 @@ public class ProjectInfoController extends BladeController {
return R.status(projectInfoService.deleteLogic(Func.toLongList(ids)));
}
/**
* 组合数据库和系统数据
*/
@GetMapping("/projectAndDataBase")
public R taskAndDataBase() {
List<TaskAndDataBase> list = new ArrayList<>();
// 数据库数据
List<DataBase> dataBaseList = dataBaseService.list();
if (CollectionUtils.isNotEmpty(dataBaseList)) {
for (DataBase dataBase : dataBaseList) {
TaskAndDataBase taskAndDataBase = new TaskAndDataBase();
taskAndDataBase.setId(dataBase.getId());
taskAndDataBase.setName(dataBase.getSystemName());
taskAndDataBase.setType(2);
list.add(taskAndDataBase);
}
}
// 系统名称数据
List<ProjectInfo> projectInfoList = projectInfoService.list();
if (CollectionUtils.isNotEmpty(projectInfoList)) {
for (ProjectInfo projectInfo : projectInfoList) {
TaskAndDataBase taskAndDataBase = new TaskAndDataBase();
taskAndDataBase.setId(projectInfo.getId());
taskAndDataBase.setName(projectInfo.getProjectName());
taskAndDataBase.setType(1);
list.add(taskAndDataBase);
}
}
return R.data(list);
}
/**
* 获取系统模块或数据表
*/
@GetMapping("/moduleAndDataTable")
public R moduleAndDataTable(String id, Integer type) {
List<TaskAndDataBase> list = new ArrayList<>();
// 查模块信息
if (type == 1) {
LambdaQueryWrapper<ModuleInfo> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ModuleInfo::getProjectInfoId, id);
List<ModuleInfo> moduleInfoList = moduleInfoService.list(wrapper);
if (CollectionUtils.isNotEmpty(moduleInfoList)) {
for (ModuleInfo moduleInfo : moduleInfoList) {
TaskAndDataBase taskAndDataBase = new TaskAndDataBase();
taskAndDataBase.setId(moduleInfo.getId());
taskAndDataBase.setName(moduleInfo.getModuleName());
list.add(taskAndDataBase);
}
}
return R.data(list);
}
// 查数据表信息
else {
LambdaQueryWrapper<DataTable> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(DataTable::getDataBaseId, id);
List<DataTable> dataTableList = dataTableService.list(wrapper);
if (CollectionUtils.isNotEmpty(dataTableList)) {
for (DataTable dataTable : dataTableList) {
TaskAndDataBase taskAndDataBase = new TaskAndDataBase();
taskAndDataBase.setId(dataTable.getId());
taskAndDataBase.setName(dataTable.getDataTableName());
list.add(taskAndDataBase);
}
}
return R.data(list);
}
}
}

@ -1,6 +1,7 @@
package org.springblade.plugin.operation.task.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;
@ -21,16 +22,21 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.plugin.operation.database.entity.DataBase;
import org.springblade.plugin.operation.database.service.IDataBaseService;
import org.springblade.plugin.operation.system.entity.ProjectInfo;
import org.springblade.plugin.operation.system.service.IProjectInfoService;
import org.springblade.plugin.operation.task.entity.TaskAndDataBase;
import org.springblade.plugin.operation.task.entity.TaskInfo;
import org.springblade.plugin.operation.task.service.ITaskInfoService;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;
import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
/**
*
*
*/
@NonDS
@ -120,9 +126,15 @@ public class TaskInfoController extends BladeController {
* 任务种类去重返回
*/
@GetMapping("/taskTypeData")
public R taskTypeData() {
public R taskTypeData(String parentId) {
QueryWrapper<TaskInfo> wrapper = new QueryWrapper<>();
if (StringUtils.isNotBlank(parentId)) {
wrapper.eq("task_parent_id", parentId);
} else {
wrapper.select("DISTINCT task_type_name");
}
return R.data(taskInfoService.list(wrapper));
}
}

@ -0,0 +1,13 @@
package org.springblade.plugin.operation.task.entity;
import lombok.Data;
@Data
public class TaskAndDataBase {
private Long id;
private String name;
private Integer type;
}

@ -166,12 +166,12 @@ public class DeptController extends BladeController {
}
/**
* 获取所有基地信息
* 获取运维公司所对应的部门信息
*/
@GetMapping("/getBases")
public R<List<Dept>> getBases(Integer type) {
@GetMapping("/getDepts")
public R<List<Dept>> getBases(String id) {
LambdaQueryWrapper<Dept> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(Dept::getDeptCategory, type);
wrapper.in(Dept::getId, Func.toLongList(id));
return R.data(deptService.list(wrapper));
}

@ -26,6 +26,7 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.constant.BladeConstant;
import org.springblade.core.tool.constant.RoleConstant;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringPool;
import org.springblade.system.feign.ISysClient;
import org.springblade.system.user.entity.User;
@ -100,7 +101,6 @@ public class UserController {
/**
* 用户列表
*/
@GetMapping("/list")
@ApiImplicitParams({
@ApiImplicitParam(name = "account", value = "账号名", paramType = "query", dataType = "string"),
@ -157,22 +157,6 @@ public class UserController {
return R.data(UserWrapper.build().pageVO(pages));
}
// @GetMapping("/page")
// public R<IPage<UserVO>> newPage(User user, Query query) {
// LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>(user);
// if (AuthUtil.getUserId() != 1530823299437965313L) {
// wrapper.ne(User::getId, 1530823299437965313L);
// }
// if (user.getDeptId() != null && !"".equals(user.getDeptId())) {
// wrapper.eq(User::getDeptId, user.getDeptId());
// }
// wrapper.eq(User::getTenantId, AuthUtil.getTenantId());
// wrapper.orderByDesc(User::getCreateTime);
// IPage<User> page = userService.page(Condition.getPage(query), wrapper);
// return R.data(UserWrapper.build().pageVO(page));
// }
/**
* 新增或修改
*/
@ -434,37 +418,27 @@ public class UserController {
}
/**
* 人员统计
* 运维公司
*/
@GetMapping("/user/statistics")
public R<Map<String, Object>> user() {
Map<String, Object> map = new HashMap<>();
// 实际人员数量
@GetMapping("/maintenanceCompany")
public R<List<User>> maintenanceCompany() {
BladeUser user = AuthUtil.getUser();
List<User> users = new ArrayList<>();
// 判断是否运维公司
if ("运维公司".equals(user.getRoleName())) {
User byId = userService.getById(user.getUserId());
users.add(byId);
return R.data(users);
} else {
// 获取运维公司角色id
String roleId = sysClient.getRoleIdByAlias(AuthUtil.getTenantId(), "运维公司").getData();
// 查当前操作人部门下的运维公司
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(User::getIsDeleted, 0);
wrapper.eq(User::getTenantId, 704067L);
int count = userService.count(wrapper);
// 额定人数
double rated = 40.00;
double actual = 0.00;
actual += count;
// 满编率
int rate = 0;
if (rated > 0) {
rate = (int) (actual / rated * 100);
}
// 硕士及以上人数
wrapper.clear();
wrapper.eq(User::getTenantId, 704067L);
wrapper.eq(User::getEducation, "2");
int count1 = userService.count(wrapper);
// 硕士以下人数
int count2 = count - count1;
map.put("rated", 40);
map.put("actual", count);
map.put("rate", rate);
map.put("masterUp", count1);
map.put("masterLo", count2);
return R.data(map);
wrapper.in(User::getDeptId, Func.toStrList(user.getDeptId()));
wrapper.eq(User::getRoleId, roleId);
users = userService.list(wrapper);
return R.data(users);
}
}
}

Loading…
Cancel
Save