Commit d05c1fef authored by kiritoausna's avatar kiritoausna

2022-5.18

parent a9a15a16
package me.zhengjie.base;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang3.builder.ToStringBuilder;
......@@ -19,9 +20,9 @@ public class BaseDTO implements Serializable {
private String createBy;
private String updateBy;
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Timestamp createTime;
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Timestamp updateTime;
@Override
......
......@@ -15,6 +15,7 @@
*/
package me.zhengjie.base;
import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
......
......@@ -19,7 +19,9 @@ import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.poi.excel.BigExcelWriter;
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.StyleSet;
import me.zhengjie.exception.BadRequestException;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.util.IOUtils;
import org.apache.poi.xssf.streaming.SXSSFSheet;
import org.slf4j.Logger;
......@@ -154,7 +156,7 @@ public class FileUtil extends cn.hutool.core.io.FileUtil {
/**
* inputStream 转 File
*/
static File inputStreamToFile(InputStream ins, String name){
static File inputStreamToFile(InputStream ins, String name) {
File file = new File(SYS_TEM_DIR + name);
if (file.exists()) {
return file;
......@@ -182,7 +184,7 @@ public class FileUtil extends cn.hutool.core.io.FileUtil {
*/
public static File upload(MultipartFile file, String filePath) {
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHS");
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
String name = getFileNameNoEx(file.getOriginalFilename());
String suffix = getExtensionName(file.getOriginalFilename());
String nowStr = "-" + format.format(date);
......@@ -213,13 +215,69 @@ public class FileUtil extends cn.hutool.core.io.FileUtil {
String tempPath = SYS_TEM_DIR + IdUtil.fastSimpleUUID() + ".xlsx";
File file = new File(tempPath);
BigExcelWriter writer = ExcelUtil.getBigWriter(file);
Map<String, Object> stringObjectMap = list.get(0);
CellStyle headCellStyle = writer.getHeadCellStyle();
Font font = writer.createFont();
font.setColor(Font.COLOR_RED);
headCellStyle.setFont(font);
for (int i = 0; i < stringObjectMap.size(); i++) {
writer.setColumnWidth(i, 20);
}
writer.merge(list.get(0).size() - 1, "导出测试:TEST");
// 一次性写出内容,使用默认样式,强制输出标题
writer.write(list, true);
SXSSFSheet sheet = (SXSSFSheet)writer.getSheet();
SXSSFSheet sheet = (SXSSFSheet) writer.getSheet();
//上面需要强转SXSSFSheet 不然没有trackAllColumnsForAutoSizing方法
sheet.trackAllColumnsForAutoSizing();
//列宽自适应
writer.autoSizeColumnAll();
//writer.autoSizeColumnAll();
//response为HttpServletResponse对象
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
//test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码
response.setHeader("Content-Disposition", "attachment;filename=file.xlsx");
ServletOutputStream out = response.getOutputStream();
// 终止后删除临时文件
file.deleteOnExit();
writer.flush(out, true);
//此处记得关闭输出Servlet流
IoUtil.close(out);
}
/**
* 导出excel
*/
public static void downloadExcel(List<Map<String, Object>> list, String title, HttpServletResponse response) throws IOException {
String tempPath = SYS_TEM_DIR + IdUtil.fastSimpleUUID() + ".xlsx";
File file = new File(tempPath);
BigExcelWriter writer = ExcelUtil.getBigWriter(file);
Map<String, Object> stringObjectMap = list.get(0);
CellStyle headCellStyle = writer.getHeadCellStyle();
Font font = writer.createFont();
font.setBold(true);
font.setFontHeightInPoints((short) 14);
//font.setColor(Font.COLOR_RED);
headCellStyle.setFont(font);
for (int i = 0; i < stringObjectMap.size(); i++) {
writer.setColumnWidth(i, 20);
}
// 定义数据行的样式
StyleSet style = writer.getStyleSet();
Font font1 = writer.createFont();
font1.setFontName("等线");
style.setBackgroundColor(IndexedColors.YELLOW, false);
style.setAlign(HorizontalAlignment.CENTER, VerticalAlignment.CENTER);
style.setFont(font1, true);
// 设置单元格文本内容自动换行
style.setWrapText();
writer.merge(list.get(0).size() - 1, title);
// 一次性写出内容,使用默认样式,强制输出标题
writer.write(list, true);
SXSSFSheet sheet = (SXSSFSheet) writer.getSheet();
//上面需要强转SXSSFSheet 不然没有trackAllColumnsForAutoSizing方法
sheet.trackAllColumnsForAutoSizing();
//列宽自适应
//writer.autoSizeColumnAll();
//response为HttpServletResponse对象
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
//test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码
......@@ -264,7 +322,7 @@ public class FileUtil extends cn.hutool.core.io.FileUtil {
public static boolean check(File file1, File file2) {
String img1Md5 = getMd5(file1);
String img2Md5 = getMd5(file2);
if(img1Md5 != null){
if (img1Md5 != null) {
return img1Md5.equals(img2Md5);
}
return false;
......@@ -351,6 +409,37 @@ public class FileUtil extends cn.hutool.core.io.FileUtil {
}
}
public static HttpServletResponse download(String path, HttpServletResponse response) {
try {
// path是指欲下载的文件的路径。
File file = new File(path);
// 取得文件名。
String filename = file.getName();
// 取得文件的后缀名。
String ext = filename.substring(filename.lastIndexOf(".") + 1).toUpperCase();
// 以流的形式下载文件。
InputStream fis = new BufferedInputStream(new FileInputStream(path));
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
// 清空response
response.reset();
// 设置response的Header
//response.addHeader("Access-Control-Allow-Origin", "*");
response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes()));
response.addHeader("Content-Length", "" + file.length());
OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
response.setContentType("application/octet-stream");
toClient.write(buffer);
toClient.flush();
toClient.close();
} catch (IOException ex) {
ex.printStackTrace();
}
return response;
}
public static String getMd5(File file) {
return getMd5(getByte(file));
}
......
......@@ -90,7 +90,7 @@ public class GeneratorController {
@PostMapping(value = "/{tableName}/{type}")
public ResponseEntity<Object> generatorCode(@PathVariable String tableName, @PathVariable Integer type, HttpServletRequest request, HttpServletResponse response){
if(!generatorEnabled && type == 0){
throw new BadRequestException("此环境不允许生成代码,请选择预览或者下载查看!");
throw new BadRequestException("此环境String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);if(tailInfoNo==null){return null;}生成代码,请选择预览或者下载查看!");
}
switch (type){
// 生成代码
......
......@@ -15,6 +15,7 @@
*/
package me.zhengjie.domain;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
......@@ -72,6 +73,7 @@ public class Log implements Serializable {
/** 创建日期 */
@CreationTimestamp
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Timestamp createTime;
public Log(String logType, Long time) {
......
......@@ -151,7 +151,7 @@ public class LogServiceImpl implements LogService {
map.put("创建日期", log.getCreateTime());
list.add(map);
}
FileUtil.downloadExcel(list, response);
FileUtil.downloadExcel(list, "日志信息",response);
}
@Override
......
......@@ -18,7 +18,6 @@ package me.zhengjie;
import io.swagger.annotations.Api;
import me.zhengjie.annotation.rest.AnonymousGetMapping;
import me.zhengjie.utils.SpringContextHolder;
import org.apache.ibatis.annotations.Mapper;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.CommandLineRunner;
......@@ -79,7 +78,7 @@ public class AppRun implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
// new NettyServer().start(port);
// new NettyServer().start(port);
//System.out.println("======服务已经启动========");
}
}
......@@ -43,7 +43,9 @@ import java.util.List;
@EnableWebMvc
public class ConfigurerAdapter implements WebMvcConfigurer {
/** 文件配置 */
/**
* 文件配置
*/
private final FileProperties properties;
public ConfigurerAdapter(FileProperties properties) {
......@@ -65,8 +67,8 @@ public class ConfigurerAdapter implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
FileProperties.ElPath path = properties.getPath();
String avatarUtl = "file:" + path.getAvatar().replace("\\","/");
String pathUtl = "file:" + path.getPath().replace("\\","/");
String avatarUtl = "file:" + path.getAvatar().replace("\\", "/");
String pathUtl = "file:" + path.getPath().replace("\\", "/");
registry.addResourceHandler("/avatar/**").addResourceLocations(avatarUtl).setCachePeriod(0);
registry.addResourceHandler("/file/**").addResourceLocations(pathUtl).setCachePeriod(0);
registry.addResourceHandler("/**").addResourceLocations("classpath:/META-INF/resources/").setCachePeriod(0);
......
......@@ -26,8 +26,8 @@ import org.springframework.web.socket.server.standard.ServerEndpointExporter;
@Configuration
public class WebSocketConfig {
@Bean
public ServerEndpointExporter serverEndpointExporter() {
return new ServerEndpointExporter();
}
@Bean
public ServerEndpointExporter serverEndpointExporter() {
return new ServerEndpointExporter();
}
}
......@@ -26,6 +26,7 @@ import java.util.concurrent.ThreadPoolExecutor;
/**
* 异步任务线程池装配类
*
* @author https://juejin.im/entry/5abb8f6951882555677e9da2
* @date 2019年10月31日15:06:18
*/
......@@ -56,8 +57,8 @@ public class AsyncTaskExecutePool implements AsyncConfigurer {
@Override
public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {
return (throwable, method, objects) -> {
log.error("===="+throwable.getMessage()+"====", throwable);
log.error("exception method:"+method.getName());
log.error("====" + throwable.getMessage() + "====", throwable);
log.error("exception method:" + method.getName());
};
}
}
......@@ -21,6 +21,7 @@ import org.springframework.stereotype.Component;
/**
* 线程池配置属性类
*
* @author https://juejin.im/entry/5abb8f6951882555677e9da2
* @date 2019年10月31日14:58:18
*/
......
......@@ -22,6 +22,7 @@ import java.util.concurrent.atomic.AtomicInteger;
/**
* 自定义线程名称
*
* @author Zheng Jie
* @date 2019年10月31日17:49:55
*/
......@@ -37,7 +38,7 @@ public class TheadFactoryName implements ThreadFactory {
this("el-pool");
}
private TheadFactoryName(String name){
private TheadFactoryName(String name) {
SecurityManager s = System.getSecurityManager();
group = (s != null) ? s.getThreadGroup() :
Thread.currentThread().getThreadGroup();
......@@ -50,7 +51,7 @@ public class TheadFactoryName implements ThreadFactory {
public Thread newThread(Runnable r) {
//此时线程的名字 就是 namePrefix + -thread- + 这个线程池中第几个执行的线程
Thread t = new Thread(group, r,
namePrefix + "-thread-"+threadNumber.getAndIncrement(),
namePrefix + "-thread-" + threadNumber.getAndIncrement(),
0);
if (t.isDaemon()) {
t.setDaemon(false);
......
......@@ -21,12 +21,13 @@ import java.util.concurrent.TimeUnit;
/**
* 用于获取自定义线程池
*
* @author Zheng Jie
* @date 2019年10月31日18:16:47
*/
public class ThreadPoolExecutorUtil {
public static ThreadPoolExecutor getPoll(){
public static ThreadPoolExecutor getPoll() {
return new ThreadPoolExecutor(
AsyncTaskProperties.corePoolSize,
AsyncTaskProperties.maxPoolSize,
......
......@@ -53,16 +53,16 @@ class JacksonHttpMessageConverter extends MappingJackson2HttpMessageConverter {
}
}
/**
/* *//**
* 处理字符串等类型的null值
*/
*//*
public class NullNumberJsonSerializer extends JsonSerializer<Object> {
@Override
public void serialize(Object o, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
jsonGenerator.writeNumber(0);
}
}
}*/
/**
* 处理字符串等类型的null值
......@@ -88,9 +88,9 @@ class JacksonHttpMessageConverter extends MappingJackson2HttpMessageConverter {
if (isArrayType(writer)) {
//给writer注册一个自己的nullSerializer
writer.assignNullSerializer(new NullArrayJsonSerializer());
} else if (isNumberType(writer)) {
} /*else if (isNumberType(writer)) {
writer.assignNullSerializer(new NullNumberJsonSerializer());
} else if (isBooleanType(writer)) {
} */ else if (isBooleanType(writer)) {
writer.assignNullSerializer(new NullBooleanJsonSerializer());
} else if (isStringType(writer)) {
writer.assignNullSerializer(new NullStringJsonSerializer());
......@@ -156,8 +156,8 @@ public class WebMvcConfig implements WebMvcConfigurer {
SerializerFeature.WriteNullStringAsEmpty,
// Boolean字段如果为null,输出为false,而非null
SerializerFeature.WriteNullBooleanAsFalse,
// 数值字段如果为null,输出为0,而非null
SerializerFeature.WriteNullNumberAsZero,
/* // 数值字段如果为null,输出为0,而非null
SerializerFeature.WriteNullNumberAsZero,*/
// 消除对同一对象循环引用的问题,默认为false
SerializerFeature.DisableCircularReferenceDetect,
// List字段如果为null,输出为[],而非null
......
......@@ -39,16 +39,16 @@ public class ArtificialDataController {
@ApiOperation(value = "人工监测数据表分页列表", response = ArtificialData.class)
@GetMapping()
public ResponseEntity<Object> list(DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
HashMap<String, Object> data = artificialDataService.plist(dataQueryCriteria,request);
HashMap<String, Object> data = artificialDataService.plist(dataQueryCriteria, request);
return new ResponseEntity<>(new PageResult().success(data), HttpStatus.OK);
}
@Log(value = "新增人工监测数据")
@ApiOperation(value = "人工监测数据表新增")
@PostMapping()
public Object add(@Valid @RequestBody ArtificialData param,HttpServletRequest request) {
public Object add(@Valid @RequestBody ArtificialData param, HttpServletRequest request) {
param.setAddtime(new Date());
boolean result = artificialDataService.add(param,request);
boolean result = artificialDataService.add(param, request);
if (result) {
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
} else {
......@@ -59,9 +59,9 @@ public class ArtificialDataController {
@Log(value = "修改人工监测数据")
@ApiOperation(value = "人工监测数据表修改")
@PutMapping()
public Object modify(@Valid @RequestBody ArtificialData param,HttpServletRequest request) {
public Object modify(@Valid @RequestBody ArtificialData param, HttpServletRequest request) {
param.setAddtime(new Date());
boolean result = artificialDataService.modify(param,request);
boolean result = artificialDataService.modify(param, request);
if (result) {
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
} else {
......
......@@ -8,6 +8,7 @@ import me.zhengjie.gemho.entity.artificial.ArtificialPoint;
import me.zhengjie.gemho.service.artificial.ArtificialPointService;
import me.zhengjie.gemho.util.PageResult;
import me.zhengjie.gemho.util.PostOrPutResult;
import me.zhengjie.gemho.util.TailNoForInfoUtil;
import me.zhengjie.gemho.x_datavo.data.DataQueryCriteria;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
......@@ -48,6 +49,10 @@ public class ArtificialPointController {
@ApiOperation(value = "人工监测点位表新增")
@PostMapping()
public Object add(@Valid @RequestBody ArtificialPoint param, HttpServletRequest request) {
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo();
if (tailInfoNo == null) {
return new ResponseEntity<>(new PostOrPutResult().noTailFailed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
param.setTime(new Date());
boolean result = artificialPointService.add(param, request);
if (result) {
......
......@@ -52,63 +52,63 @@ public class DataVisController {
ResponseEntity<Object> real = dbDataController.real(child.getRange(), child.getValues(), child.getDeviceid(), child.getSubitem());
RealVo body = (RealVo) real.getBody();
DataVo dataVo = body.getBody();
map.put("t_1"+child.getRange(),dataVo);
map.put("t_1" + child.getRange(), dataVo);
break;
}
case "t_2": {
ResponseEntity<Object> all = wtDataController.getAll(child.getRange(), child.getValues(), child.getDeviceid(), child.getSubitem());
RealVo body = (RealVo) all.getBody();
DataVo dataVo = body.getBody();
map.put("t_2"+child.getRange(),dataVo);
map.put("t_2" + child.getRange(), dataVo);
break;
}
case "t_3": {
ResponseEntity<Object> real = mpDataController.real(child.getRange(), child.getValues(), child.getDeviceid(), child.getSubitem());
RealVo body = (RealVo) real.getBody();
DataVo dataVo = body.getBody();
map.put("t_3"+child.getRange(),dataVo);
map.put("t_3" + child.getRange(), dataVo);
break;
}
case "t_4": {
ResponseEntity<Object> real = dmDataController.real(child.getRange(), child.getValues(), child.getDeviceid(), child.getSubitem());
RealVo body = (RealVo) real.getBody();
DataVo dataVo = body.getBody();
map.put("t_4"+child.getRange(),dataVo);
map.put("t_4" + child.getRange(), dataVo);
break;
}
case "t_5": {
ResponseEntity<Object> all = stDataController.getAll(child.getRange(), child.getValues(), child.getDeviceid(), child.getSubitem());
RealVo body = (RealVo) all.getBody();
DataVo dataVo = body.getBody();
map.put("t_5"+child.getRange(),dataVo);
map.put("t_5" + child.getRange(), dataVo);
break;
}
case "t_6": {
ResponseEntity<Object> daping = rgDataController.daping(child.getRange(), child.getValues(), child.getDeviceid(), child.getSubitem());
RealVo body = (RealVo) daping.getBody();
DataVo dataVo = body.getBody();
map.put("t_6"+child.getRange(),dataVo);
map.put("t_6" + child.getRange(), dataVo);
break;
}
case "t_7": {
ResponseEntity<Object> getall = pslDataController.getall(child.getRange(), child.getValues(), child.getDeviceid(), child.getSubitem());
RealVo body = (RealVo) getall.getBody();
DataVo dataVo = body.getBody();
map.put("t_7"+child.getRange(),dataVo);
map.put("t_7" + child.getRange(), dataVo);
break;
}
case "t_8": {
ResponseEntity<Object> all = szDataController.getAll(child.getRange(), child.getValues(), child.getDeviceid(), child.getSubitem(),request);
ResponseEntity<Object> all = szDataController.getAll(child.getRange(), child.getValues(), child.getDeviceid(), child.getSubitem(), request);
RealVo body = (RealVo) all.getBody();
DataVo dataVo = body.getBody();
map.put("t_8"+child.getRange(),dataVo);
map.put("t_8" + child.getRange(), dataVo);
break;
}
case "t_9": {
ResponseEntity<Object> getall = slDataController.getall(child.getRange(), child.getValues(), child.getDeviceid(), child.getSubitem());
RealVo body = (RealVo) getall.getBody();
DataVo dataVo = body.getBody();
map.put("t_9"+child.getRange(),dataVo);
map.put("t_9" + child.getRange(), dataVo);
break;
}
}
......
......@@ -93,8 +93,8 @@ public class DbDataController {
@ApiOperation(value = "图标历史")
@GetMapping("imghistory")
public ResponseEntity<Object> imgList(DataQueryCriteria dataQueryCriteria,HttpServletRequest request) {
ImgDataVo dbData = dbDataService.imgList(dataQueryCriteria,request);
public ResponseEntity<Object> imgList(DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
ImgDataVo dbData = dbDataService.imgList(dataQueryCriteria, request);
return new ResponseEntity<>(new PageResult().success(dbData), HttpStatus.OK);
}
......
......@@ -94,15 +94,15 @@ public class DmDataController {
@ApiOperation(value = "图标历史")
@GetMapping("imghistory")
public ResponseEntity<Object> imgList(DataQueryCriteria dataQueryCriteria,HttpServletRequest request) {
ImgDataVo dbData = dmDataService.imgList(dataQueryCriteria,request);
public ResponseEntity<Object> imgList(DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
ImgDataVo dbData = dmDataService.imgList(dataQueryCriteria, request);
return new ResponseEntity<>(new PageResult().success(dbData), HttpStatus.OK);
}
@ApiOperation(value = "导出excel")
@GetMapping("download")
public void download(HttpServletResponse response, DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
dmDataService.download(response, dataQueryCriteria,request);
dmDataService.download(response, dataQueryCriteria, request);
}
}
......
......@@ -170,7 +170,7 @@ public class MpDataController {
@ApiOperation(value = "导出excel")
@GetMapping("download")
public void download(HttpServletResponse response, DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
mpDataService.download(response, dataQueryCriteria,request);
mpDataService.download(response, dataQueryCriteria, request);
}
}
......@@ -4,19 +4,22 @@ package me.zhengjie.gemho.controller.data;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import me.zhengjie.gemho.entity.data.PslData;
import me.zhengjie.gemho.service.data.PslDataService;
import me.zhengjie.gemho.util.PageResult;
import me.zhengjie.gemho.util.PostOrPutResult;
import me.zhengjie.gemho.util.RealVo;
import me.zhengjie.gemho.x_datavo.DataVo;
import me.zhengjie.gemho.x_datavo.data.DataQueryCriteria;
import me.zhengjie.gemho.x_datavo.data.ImgDataVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
/**
......@@ -68,104 +71,17 @@ public class PslDataController {
}
/**
* 新增排水量人工巡检数据
* 排流量分页历史
*
* @param pslData
* @return
*/
@ApiOperation(value = "新增排水量人工巡检数据", response = PostOrPutResult.class)
@PostMapping
public ResponseEntity<Object> add(@RequestBody PslData pslData) {
try {
Date time = pslData.getTime();
String format = sdf.format(time);
int i = Integer.parseInt(format);
pslData.setId(i);
pslData.setCreatetime(new Date());
pslData.setUpdatetime(new Date());
pslData.setDatasource(0);
boolean b = pslDataService.saveOrUpdate(pslData);
if (b) {
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
}
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
} catch (NumberFormatException e) {
e.printStackTrace();
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
}
/**
* 修改排水量人工巡检数据
*
* @param pslData
* @return
*/
@ApiOperation(value = "修改排水量人工巡检数据", response = PostOrPutResult.class)
@PutMapping
public ResponseEntity<Object> updata(@RequestBody PslData pslData) {
try {
pslData.setUpdatetime(new Date());
boolean b = pslDataService.saveOrUpdate(pslData);
if (b) {
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
}
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
} catch (Exception e) {
e.printStackTrace();
}
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
/**
* 删除排水量人工巡检数据
*
* @param map
* @return
*/
@ApiOperation(value = "删除排水量人工巡检数据", response = PostOrPutResult.class)
@DeleteMapping
public ResponseEntity<Object> deletedb(@RequestBody HashMap<String, Integer> map) {
try {
Integer id = map.get("id");
boolean b = pslDataService.removeById(id);
if (b) {
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
}
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
} catch (Exception e) {
e.printStackTrace();
}
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
/**
* 获取排水量的历史数据
*
* @param page
* @param size
* @param searchName
* @param searchValue
* @param limit
* @param timeSpace
* @param sort
* @param datasource
* @param dataQueryCriteria
* @param request
* @return
*/
@ApiOperation("获取排水量的历史数据")
@GetMapping("history")
public ResponseEntity<Object> gethistory(@ApiParam(value = "分页参数,页数", required = true) String page,
@ApiParam(value = "分页参数,数量", required = true) String size,
@ApiParam(value = "查询条件字段") String searchName,
@ApiParam(value = "查询条件数值") String searchValue,
@ApiParam(value = "查询条件精准或者模糊") String limit,
@ApiParam(value = "查询条件时间区间") String timeSpace,
@ApiParam(value = "查询条件正序或者倒序") String sort,
@ApiParam(value = "数据来源, 1 历史数据 2人工巡检历史数据", required = true) String datasource) {
public ResponseEntity<Object> gethistory(DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
try {
long l = Long.parseLong(page);
long l1 = Long.parseLong(size);
HashMap<String, Object> map = pslDataService.pageall(searchName, searchValue, limit, timeSpace, sort, l, l1, datasource);
HashMap<String, Object> map = pslDataService.pageall(dataQueryCriteria, request);
return new ResponseEntity<>(new PageResult().success(map), HttpStatus.OK);
} catch (NumberFormatException e) {
e.printStackTrace();
......@@ -173,5 +89,17 @@ public class PslDataController {
return new ResponseEntity<>(new PageResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
@ApiOperation(value = "图标历史")
@GetMapping("imghistory")
public ResponseEntity<Object> imgList(DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
ImgDataVo dbData = pslDataService.imgList(dataQueryCriteria, request);
return new ResponseEntity<>(new PageResult().success(dbData), HttpStatus.OK);
}
@ApiOperation(value = "导出excel")
@GetMapping("download")
public void download(HttpServletResponse response, DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
pslDataService.download(response, dataQueryCriteria, request);
}
}
......@@ -47,7 +47,10 @@ public class RealDataController {
@Autowired
private SlDataService slDataService;
@Autowired
private WpbDataService wpbDataService;
@Autowired
private RedisUtils redisUtils;
@GetMapping
public ResponseEntity<Object> real(HttpServletRequest request) {
//创建返回对象
......@@ -65,7 +68,7 @@ public class RealDataController {
QueryWrapper<SlData> slDataQueryWrapper = new QueryWrapper<>();*/
//获取当前登录用户 根据当前用户获取尾矿库id
String username = SecurityUtils.getCurrentUsername();
String gettailno = onlineUserService.gettailno(username,request);
String gettailno = onlineUserService.gettailno(username, request);
//获取相应尾矿库下的所有设备
List<String> equipnos = drybeachequipinforService.getequipno(gettailno);
//获取所有检测项
......@@ -78,37 +81,41 @@ public class RealDataController {
for (SysType sysType : list) {
switch (sysType.getCode()) {
case "1":
List<RealDataVo> dbdatas = dbDataService.real(sysType.getTypeno(),request);
List<RealDataVo> dbdatas = dbDataService.real(sysType.getTypeno(), request);
realDataVos.addAll(dbdatas);
break;
case "2":
List<RealDataVo> wtdatas = wtDataService.real(sysType.getTypeno(),request);
List<RealDataVo> wtdatas = wtDataService.real(sysType.getTypeno(), request);
realDataVos.addAll(wtdatas);
break;
case "3":
List<RealDataVo> mpdatas = mpDataService.real(sysType.getTypeno(),request);
List<RealDataVo> mpdatas = mpDataService.real(sysType.getTypeno(), request);
realDataVos.addAll(mpdatas);
break;
case "4":
List<RealDataVo> dmdatas = dmDataService.real(sysType.getTypeno(),request);
List<RealDataVo> dmdatas = dmDataService.real(sysType.getTypeno(), request);
realDataVos.addAll(dmdatas);
break;
case "5":
List<RealDataVo> stdatas = stDataService.real(sysType.getTypeno(),request);
List<RealDataVo> stdatas = stDataService.real(sysType.getTypeno(), request);
realDataVos.addAll(stdatas);
break;
case "6":
List<RealDataVo> rgdatas = rgDataService.real(sysType.getTypeno(),request);
List<RealDataVo> rgdatas = rgDataService.real(sysType.getTypeno(), request);
realDataVos.addAll(rgdatas);
break;
case "7":
List<RealDataVo> psldatas = pslDataService.real(sysType.getTypeno(),request);
List<RealDataVo> psldatas = pslDataService.real(sysType.getTypeno(), request);
realDataVos.addAll(psldatas);
break;
case "9":
List<RealDataVo> sldatas = slDataService.real(sysType.getTypeno(),request);
List<RealDataVo> sldatas = slDataService.real(sysType.getTypeno(), request);
realDataVos.addAll(sldatas);
break;
case "16":
List<RealDataVo> wpbdatas = wpbDataService.real(sysType.getTypeno(), request);
realDataVos.addAll(wpbdatas);
break;
}
}
for (RealDataVo realDataVo : realDataVos) {
......
......@@ -10,11 +10,15 @@ import me.zhengjie.gemho.util.PageResult;
import me.zhengjie.gemho.util.PostOrPutResult;
import me.zhengjie.gemho.util.RealVo;
import me.zhengjie.gemho.x_datavo.DataVo;
import me.zhengjie.gemho.x_datavo.data.DataQueryCriteria;
import me.zhengjie.gemho.x_datavo.data.ImgDataVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
......@@ -112,31 +116,36 @@ public class RgDataController {
public ResponseEntity<Object> updata(@RequestBody RgData rgData) {
rgData.setUpdatetime(new Date());
boolean b = rgDataService.saveOrUpdate(rgData);
if (b){
if (b) {
}
return null;
}
@ApiOperation(value = "降雨量人工巡检历史数据")
@ApiOperation(value = "分页查看")
@GetMapping("history")
public ResponseEntity<Object> gethistory(@ApiParam(value = "分页参数,页数", required = true) String page,
@ApiParam(value = "分页参数,数量", required = true) String size,
@ApiParam(value = "查询条件字段") String searchName,
@ApiParam(value = "查询条件数值") String searchValue,
@ApiParam(value = "查询条件精准或者模糊") String limit,
@ApiParam(value = "查询条件时间区间") String timeSpace,
@ApiParam(value = "查询条件正序或者倒序") String sort,
@ApiParam(value = "数据来源, 1 历史数据 2人工巡检历史数据", required = true) String datasource) {
public ResponseEntity<Object> getall(DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
try {
long l = Long.parseLong(page);
long l1 = Long.parseLong(size);
HashMap<String, Object> map = rgDataService.pageall(searchName, searchValue, limit, timeSpace, sort, l, l1, datasource);
HashMap<String, Object> map = rgDataService.pageall(dataQueryCriteria, request);
return new ResponseEntity<>(new PageResult().success(map), HttpStatus.OK);
} catch (NumberFormatException e) {
System.out.println(e);
e.printStackTrace();
}
return new ResponseEntity<>(new PageResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
@ApiOperation(value = "图标历史")
@GetMapping("imghistory")
public ResponseEntity<Object> imgList(DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
ImgDataVo dbData = rgDataService.imgList(dataQueryCriteria, request);
return new ResponseEntity<>(new PageResult().success(dbData), HttpStatus.OK);
}
@ApiOperation(value = "导出excel")
@GetMapping("download")
public void download(HttpServletResponse response, DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
rgDataService.download(response, dataQueryCriteria, request);
}
}
......@@ -4,19 +4,22 @@ package me.zhengjie.gemho.controller.data;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import me.zhengjie.gemho.entity.data.SlData;
import me.zhengjie.gemho.service.data.SlDataService;
import me.zhengjie.gemho.util.PageResult;
import me.zhengjie.gemho.util.PostOrPutResult;
import me.zhengjie.gemho.util.RealVo;
import me.zhengjie.gemho.x_datavo.DataVo;
import me.zhengjie.gemho.x_datavo.data.DataQueryCriteria;
import me.zhengjie.gemho.x_datavo.data.ImgDataVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
/**
......@@ -67,111 +70,32 @@ public class SlDataController {
return new ResponseEntity<>(new RealVo().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
/**
* 新增渗流量人工巡检数据
*
* @param slData
* @return
*/
@ApiOperation(value = "新增渗流量人工巡检数据", response = PostOrPutResult.class)
@PostMapping
public ResponseEntity<Object> add(@RequestBody SlData slData) {
try {
Date time = slData.getTime();
String format = sdf.format(time);
int i = Integer.parseInt(format);
slData.setId(i);
slData.setCreatetime(new Date());
slData.setUpdatetime(new Date());
slData.setDatasource(0);
boolean b = slDataService.saveOrUpdate(slData);
if (b) {
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
}
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
} catch (NumberFormatException e) {
e.printStackTrace();
}
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
/**
* 删除渗流量人工巡检数据
*
* @param map
* @return
*/
@ApiOperation(value = "删除渗流量人工巡检数据", response = PostOrPutResult.class)
@DeleteMapping
public ResponseEntity<Object> deletedata(@RequestBody HashMap<String, Integer> map) {
try {
Integer id = map.get("id");
boolean b = slDataService.removeById(id);
if (b) {
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
}
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
} catch (Exception e) {
e.printStackTrace();
}
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
/**
* 修改渗流量人工巡检数据
*
* @param slData
* @return
*/
@ApiOperation(value = "修改渗流量人工巡检数据",response = PostOrPutResult.class)
@PutMapping
public ResponseEntity<Object> updata(@RequestBody SlData slData) {
try {
slData.setUpdatetime(new Date());
boolean b = slDataService.saveOrUpdate(slData);
if (b) {
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
}
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
} catch (Exception e) {
e.printStackTrace();
}
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
/**
* 获取渗流量的历史记录
*
* @param page
* @param size
* @param searchName
* @param searchValue
* @param limit
* @param timeSpace
* @param sort
* @param datasource
* @return
*/
@ApiOperation(value = "获取渗流量的历史记录")
@GetMapping(value = "histoty")
public ResponseEntity<Object> gethistory(@ApiParam(value = "分页参数,页数", required = true) String page,
@ApiParam(value = "分页参数,数量", required = true) String size,
@ApiParam(value = "查询条件字段") String searchName,
@ApiParam(value = "查询条件数值") String searchValue,
@ApiParam(value = "查询条件精准或者模糊") String limit,
@ApiParam(value = "查询条件时间区间") String timeSpace,
@ApiParam(value = "查询条件正序或者倒序") String sort,
@ApiParam(value = "数据来源, 1 历史数据 2人工巡检历史数据", required = true) String datasource) {
@GetMapping(value = "history")
public ResponseEntity<Object> gethistory(DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
try {
long l = Long.parseLong(page);
long l1 = Long.parseLong(size);
HashMap<String, Object> map = slDataService.pageall(searchName, searchValue, limit, timeSpace, sort, l, l1, datasource);
HashMap<String, Object> map = slDataService.pageall(dataQueryCriteria, request);
return new ResponseEntity<>(new PageResult().success(map), HttpStatus.OK);
} catch (NumberFormatException e) {
e.printStackTrace();
}
return new ResponseEntity<>(new PageResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
@ApiOperation(value = "图标历史")
@GetMapping("imghistory")
public ResponseEntity<Object> imgList(DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
ImgDataVo dbData = slDataService.imgList(dataQueryCriteria, request);
return new ResponseEntity<>(new PageResult().success(dbData), HttpStatus.OK);
}
@ApiOperation(value = "导出excel")
@GetMapping("download")
public void download(HttpServletResponse response, DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
slDataService.download(response, dataQueryCriteria, request);
}
}
......@@ -4,10 +4,8 @@ package me.zhengjie.gemho.controller.data;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import me.zhengjie.gemho.entity.data.StData;
import me.zhengjie.gemho.service.data.StDataService;
import me.zhengjie.gemho.util.PageResult;
import me.zhengjie.gemho.util.PostOrPutResult;
import me.zhengjie.gemho.util.RealVo;
import me.zhengjie.gemho.x_datavo.DataVo;
import me.zhengjie.gemho.x_datavo.data.DataQueryCriteria;
......@@ -15,12 +13,13 @@ import me.zhengjie.gemho.x_datavo.data.ImgDataVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
/**
......@@ -75,6 +74,7 @@ public class StDataController {
}
return new ResponseEntity<>(new PageResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
@ApiOperation(value = "图标历史")
@GetMapping("imghistory")
public ResponseEntity<Object> imgList(DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
......@@ -85,7 +85,7 @@ public class StDataController {
@ApiOperation(value = "导出excel")
@GetMapping("download")
public void download(HttpServletResponse response, DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
stDataService.download(response, dataQueryCriteria,request);
stDataService.download(response, dataQueryCriteria, request);
}
}
......@@ -4,21 +4,20 @@ package me.zhengjie.gemho.controller.data;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import me.zhengjie.gemho.entity.data.SzData;
import me.zhengjie.gemho.service.data.SzDataService;
import me.zhengjie.gemho.util.PageResult;
import me.zhengjie.gemho.util.PostOrPutResult;
import me.zhengjie.gemho.util.RealVo;
import me.zhengjie.gemho.x_datavo.DataVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
/**
......@@ -45,86 +44,13 @@ public class SzDataController {
@ApiParam("检测项") String subitem, HttpServletRequest request) {
ArrayList<HashMap<String, Object>> maps = new ArrayList<>();
try {
maps = szDataService.real(deviceid,request);
maps = szDataService.real(deviceid, request);
return new ResponseEntity<>(new PageResult().nopagesuccess(maps), HttpStatus.OK);
} catch (Exception e) {
e.printStackTrace();
}
return new ResponseEntity<>(new RealVo().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
@ApiOperation(value = "新增水质人工巡检数据")
@PostMapping
public ResponseEntity<Object> add(@RequestBody SzData szData) {
try {
Date time = szData.getTime();
String format = sdf.format(time);
int i = Integer.parseInt(format);
szData.setId(i);
szData.setDatasource(0);
szData.setCreatetime(new Date());
szData.setUpdatetime(new Date());
boolean b = szDataService.saveOrUpdate(szData);
if (b) {
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
}
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.OK);
} catch (NumberFormatException e) {
e.printStackTrace();
}
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.OK);
}
@ApiOperation(value = "删除水质人工巡检数据")
@DeleteMapping
public ResponseEntity<Object> deletedata(@RequestBody HashMap<String, Integer> map) {
try {
Integer id = map.get("id");
boolean b = szDataService.removeById(id);
if (b) {
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
}
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
} catch (Exception e) {
e.printStackTrace();
}
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
@ApiOperation(value = "修改水质人工巡检数据")
@PutMapping
public ResponseEntity<Object> updata(@RequestBody SzData szData) {
try {
szData.setUpdatetime(new Date());
boolean b = szDataService.saveOrUpdate(szData);
if (b) {
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
}
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
} catch (Exception e) {
e.printStackTrace();
}
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
@ApiOperation(value = "分页查看")
@GetMapping("history")
public ResponseEntity<Object> getall(@ApiParam(value = "分页参数,页数", required = true) String page,
@ApiParam(value = "分页参数,数量", required = true) String size,
@ApiParam(value = "查询条件字段") String searchName,
@ApiParam(value = "查询条件数值") String searchValue,
@ApiParam(value = "查询条件精准或者模糊") String limit,
@ApiParam(value = "查询条件时间区间") String timeSpace,
@ApiParam(value = "查询条件正序或者倒序") String sort,
@ApiParam(value = "数据来源, 1 历史数据 2人工巡检历史数据", required = true) String datasource) {
try {
long l = Long.parseLong(page);
long l1 = Long.parseLong(size);
HashMap<String, Object> map = szDataService.pageall(searchName, searchValue, limit, timeSpace, sort, l, l1, datasource);
return new ResponseEntity<>(new PageResult().success(map), HttpStatus.OK);
} catch (NumberFormatException e) {
e.printStackTrace();
}
return new ResponseEntity<>(new PageResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
}
package me.zhengjie.gemho.controller.data;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
import me.zhengjie.gemho.service.data.WpbDataService;
import me.zhengjie.gemho.util.PageResult;
import me.zhengjie.gemho.util.RealVo;
import me.zhengjie.gemho.x_datavo.DataVo;
import me.zhengjie.gemho.x_datavo.data.DataQueryCriteria;
import me.zhengjie.gemho.x_datavo.data.ImgDataVo;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
/**
* <p>
* 外坡比数据 前端控制器
* </p>
*
* @author llj
* @since 2022-05-12
*/
@RequiredArgsConstructor
@RestController
@RequestMapping("data/wpb")
public class WpbDataController {
private final WpbDataService wpbDataService;
@ApiOperation(value = "获取指定日期的库水位数据", response = DataVo.class)
@GetMapping
public ResponseEntity<Object> getAll(@ApiParam("日期范围") String range,
@ApiParam("监测值") String values,
@ApiParam("设备id") String deviceid,
@ApiParam("检测项") String subitem) {
DataVo dataVo = new DataVo();
String date = range;
try {
if (date.equals("day")) {
dataVo = wpbDataService.day(date, values, deviceid, subitem);
} else if (date.equals("week")) {
dataVo = wpbDataService.week(date, values, deviceid, subitem);
} else if (date.equals("month")) {
dataVo = wpbDataService.month(date, values, deviceid, subitem);
}
return new ResponseEntity<>(new RealVo().nopagesuccess(dataVo), HttpStatus.OK);
} catch (Exception e) {
e.printStackTrace();
}
return new ResponseEntity<>(new RealVo().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
@ApiOperation(value = "分页查看")
@GetMapping("history")
public ResponseEntity<Object> getall(DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
try {
HashMap<String, Object> map = wpbDataService.pageall(dataQueryCriteria, request);
return new ResponseEntity<>(new PageResult().success(map), HttpStatus.OK);
} catch (NumberFormatException e) {
e.printStackTrace();
}
return new ResponseEntity<>(new PageResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
@ApiOperation(value = "图标历史")
@GetMapping("imghistory")
public ResponseEntity<Object> imgList(DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
ImgDataVo dbData = wpbDataService.imgList(dataQueryCriteria, request);
return new ResponseEntity<>(new PageResult().success(dbData), HttpStatus.OK);
}
@ApiOperation(value = "导出excel")
@GetMapping("download")
public void download(HttpServletResponse response, DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
wpbDataService.download(response, dataQueryCriteria, request);
}
}
......@@ -4,10 +4,8 @@ package me.zhengjie.gemho.controller.data;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import me.zhengjie.gemho.entity.data.WtData;
import me.zhengjie.gemho.service.data.WtDataService;
import me.zhengjie.gemho.util.PageResult;
import me.zhengjie.gemho.util.PostOrPutResult;
import me.zhengjie.gemho.util.RealVo;
import me.zhengjie.gemho.x_datavo.DataVo;
import me.zhengjie.gemho.x_datavo.data.DataQueryCriteria;
......@@ -15,12 +13,13 @@ import me.zhengjie.gemho.x_datavo.data.ImgDataVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
/**
......@@ -62,60 +61,6 @@ public class WtDataController {
return new ResponseEntity<>(new RealVo().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
@ApiOperation(value = "新增水质人工巡检数据")
@PostMapping
public ResponseEntity<Object> add(@RequestBody WtData wtData) {
try {
Date time = wtData.getTime();
String format = sdf.format(time);
int i = Integer.parseInt(format);
wtData.setId(i);
wtData.setDatasource(0);
wtData.setCreatetime(new Date());
wtData.setUpdatetime(new Date());
boolean b = wtDataService.saveOrUpdate(wtData);
if (b) {
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
}
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.OK);
} catch (NumberFormatException e) {
e.printStackTrace();
}
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.OK);
}
@ApiOperation(value = "删除水质人工巡检数据")
@DeleteMapping
public ResponseEntity<Object> deletedata(@RequestBody HashMap<String, Integer> map) {
try {
Integer id = map.get("id");
boolean b = wtDataService.removeById(id);
if (b) {
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
}
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
} catch (Exception e) {
e.printStackTrace();
}
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
@ApiOperation(value = "修改水质人工巡检数据")
@PutMapping
public ResponseEntity<Object> updata(@RequestBody WtData wtData) {
try {
wtData.setUpdatetime(new Date());
boolean b = wtDataService.saveOrUpdate(wtData);
if (b) {
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
}
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
} catch (Exception e) {
e.printStackTrace();
}
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
@ApiOperation(value = "分页查看")
@GetMapping("history")
public ResponseEntity<Object> getall(DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
......@@ -139,7 +84,7 @@ public class WtDataController {
@ApiOperation(value = "导出excel")
@GetMapping("download")
public void download(HttpServletResponse response, DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
wtDataService.download(response, dataQueryCriteria,request);
wtDataService.download(response, dataQueryCriteria, request);
}
}
......
package me.zhengjie.gemho.controller.dic;
import lombok.RequiredArgsConstructor;
import me.zhengjie.gemho.entity.dic.AlarmLevel;
import me.zhengjie.gemho.entity.dic.AlarmState;
import me.zhengjie.gemho.service.dic.IAlarmLevelService;
import me.zhengjie.gemho.service.dic.IAlarmStateService;
import me.zhengjie.gemho.util.PageResult;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author llj
* @since 2022-05-05
*/
@RequiredArgsConstructor
@RestController
@RequestMapping("dic/alarm")
public class AlarmLevelController {
private final IAlarmLevelService alarmLevelService;
private final IAlarmStateService alarmStateService;
@GetMapping(value = "level")
public ResponseEntity<Object> level() {
List<AlarmLevel> list = alarmLevelService.list();
return new ResponseEntity<>(new PageResult().nopagesuccess(list), HttpStatus.OK);
}
@GetMapping(value = "status")
public ResponseEntity<Object> status() {
List<AlarmState> list = alarmStateService.list();
return new ResponseEntity<>(new PageResult().nopagesuccess(list), HttpStatus.OK);
}
}
......@@ -7,6 +7,7 @@ import me.zhengjie.gemho.entity.ins.InsData;
import me.zhengjie.gemho.service.ins.InsDataService;
import me.zhengjie.gemho.util.PageResult;
import me.zhengjie.gemho.util.PostOrPutResult;
import me.zhengjie.gemho.util.TailNoForInfoUtil;
import me.zhengjie.gemho.x_datavo.data.DataQueryCriteria;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
......@@ -17,7 +18,6 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.File;
import java.io.FileInputStream;
import java.util.Date;
import java.util.HashMap;
......@@ -41,18 +41,22 @@ public class InsDataController {
@ApiOperation(value = "分页列表", response = InsData.class)
@GetMapping()
public ResponseEntity<Object> list(DataQueryCriteria dataQueryCriteria,HttpServletRequest request) {
HashMap<String, Object> data = insDataService.plist(dataQueryCriteria,request);
public ResponseEntity<Object> list(DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
HashMap<String, Object> data = insDataService.plist(dataQueryCriteria, request);
return new ResponseEntity<>(new PageResult().success(data), HttpStatus.OK);
}
@ApiOperation(value = "新增")
@PostMapping()
public Object add(@Valid @RequestBody InsData param,HttpServletRequest request) {
public Object add(@Valid @RequestBody InsData param, HttpServletRequest request) {
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo();
if (tailInfoNo == null) {
return new ResponseEntity<>(new PostOrPutResult().noTailFailed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
param.setAdd_time(new Date());
param.setUpdate_time(new Date());
boolean result = insDataService.add(param,request);
boolean result = insDataService.add(param, request);
if (result) {
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
} else {
......@@ -62,9 +66,9 @@ public class InsDataController {
@ApiOperation(value = "修改")
@PutMapping()
public Object modify(@Valid @RequestBody InsData param,HttpServletRequest request) {
public Object modify(@Valid @RequestBody InsData param, HttpServletRequest request) {
param.setUpdate_time(new Date());
boolean result = insDataService.modify(param,request);
boolean result = insDataService.modify(param, request);
if (result) {
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
} else {
......@@ -93,14 +97,14 @@ public class InsDataController {
@ApiOperation(value = "文件上传")
@PostMapping("inupload")
public ResponseEntity<Object> inupload(FileInputStream fileInputStream,MultipartFile file) {
public ResponseEntity<Object> inupload(FileInputStream fileInputStream, MultipartFile file) {
String upload = insDataService.upload(file);
return new ResponseEntity<>(upload, HttpStatus.OK);
}
@ApiOperation(value = "文件下载")
@GetMapping("download")
public void download(HttpServletResponse response, HttpServletRequest request,Integer id) {
public void download(HttpServletResponse response, HttpServletRequest request, Integer id) {
HttpServletResponse download = insDataService.download(response, request, id);
// return download;
}
......
......@@ -31,7 +31,7 @@ public class SysSelectController {
@Log(value = "修改配置大屏检测项")
@PostMapping
public ResponseEntity<Object> add(@RequestBody HashMap<String, Object> map, HttpServletRequest request) {
boolean updata = sysSelectService.updata(map,request);
boolean updata = sysSelectService.updata(map, request);
if (updata) {
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
}
......
......@@ -71,6 +71,9 @@ public class SysSummaryController {
public ResponseEntity<Object> add(@RequestBody SysSummary sysSummary, HttpServletRequest request) {
String currentUsername = SecurityUtils.getCurrentUsername();
String gettailno = onlineUserService.gettailno(currentUsername, request);
if(gettailno==null){
return new ResponseEntity<>(new PostOrPutResult().noTailFailed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
sysSummary.setCreatetime(LocalDateTime.now());
sysSummary.setUpdatetime(LocalDateTime.now());
String title = sysSummary.getTitle();
......
......@@ -70,6 +70,9 @@ public class AbnormalController {
@GetMapping("typelist")
public ResponseEntity<Object> typelist(HttpServletRequest request) {
List<HashMap<String, Object>> statistics1 = tabAbnormalService.statistics1(request);
if (statistics1 == null) {
return new ResponseEntity<>(new PageResult().nullfailed(), HttpStatus.OK);
}
HashMap<String, Integer> map = new HashMap<>();
for (HashMap<String, Object> stringObjectHashMap : statistics1) {
String devicetype = (String) stringObjectHashMap.get("code");
......@@ -100,6 +103,9 @@ public class AbnormalController {
}
}
List<HashMap<String, Object>> typelist = tabAbnormalService.typelist(request);
if (typelist == null) {
return new ResponseEntity<>(new PageResult().nullfailed(), HttpStatus.OK);
}
for (HashMap<String, Object> statistic : typelist) {
String code = (String) statistic.get("code");
Integer integer = map.get(code);
......@@ -121,7 +127,7 @@ public class AbnormalController {
@ApiOperation(value = "获取设备的四级报警")
@GetMapping("level")
public ResponseEntity<Object> alarmlevel(DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
HashMap<String, Object> level = drybeachequipinforService.level(dataQueryCriteria,request);
HashMap<String, Object> level = drybeachequipinforService.level(dataQueryCriteria, request);
return new ResponseEntity<>(new PageResult().nopagesuccess(level), HttpStatus.OK);
}
......
package me.zhengjie.gemho.entity;
package me.zhengjie.gemho.controller.tab;
import me.zhengjie.gemho.util.PostOrPutResult;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
......@@ -20,8 +21,25 @@ import java.util.Date;
* @since 2021-12-22
*/
@RestController
@RequestMapping("back")
@RequestMapping("tab/back")
public class DataBack {
@Value(value = "${filepath}")
String filepath;
@PostMapping
public ResponseEntity<Object> deal() {
System.out.println("备份数据库开始执行");
try {
String backName = new SimpleDateFormat("yyMMddHHmmss").format(new Date()) + ".sql";
dbBackup("root", "jinghe2021//", "mdm_1_db", "d:/file/", backName);
} catch (Exception ex) {
System.out.println("备份异常");
ex.printStackTrace();
}
System.out.println("备份数据库结束");
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
}
public static Process linuxEnv(String command) {
Process ps = null;
try {
......@@ -77,8 +95,7 @@ public class DataBack {
}
}
@PostMapping
public ResponseEntity<Object> deal() {
public static void main(String[] args) {
System.out.println("备份数据库开始执行");
try {
String backName = new SimpleDateFormat("yyMMddHHmmss").format(new Date()) + ".sql";
......@@ -88,6 +105,7 @@ public class DataBack {
ex.printStackTrace();
}
System.out.println("备份数据库结束");
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
}
}
......@@ -15,11 +15,14 @@ import me.zhengjie.gemho.service.tab.DrybeachequipinforService;
import me.zhengjie.gemho.service.tab.TabAbnormalService;
import me.zhengjie.gemho.util.PageResult;
import me.zhengjie.gemho.util.PostOrPutResult;
import me.zhengjie.gemho.util.TailNoForInfoUtil;
import me.zhengjie.gemho.x_datavo.DryVo;
import me.zhengjie.gemho.x_datavo.data.DataQueryCriteria;
import me.zhengjie.gemho.x_datavo.tab.DrybeachequipinforVo;
import me.zhengjie.modules.security.service.OnlineUserService;
import me.zhengjie.utils.RedisUtils;
import me.zhengjie.utils.SecurityUtils;
import me.zhengjie.utils.SpringContextHolder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
......@@ -64,8 +67,14 @@ public class DrybeachequipinforController {
@Log("新增设备")
@ApiOperation(value = "新增设备", response = PostOrPutResult.class)
@PostMapping
public ResponseEntity<Object> add(@RequestBody Drybeachequipinfor drybeachequipinfor) {
public ResponseEntity<Object> add(@RequestBody Drybeachequipinfor drybeachequipinfor, HttpServletRequest request) {
try {
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return new ResponseEntity<>(new PostOrPutResult().noTailFailed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
drybeachequipinfor.setTailingid(tailInfoNo);
drybeachequipinfor.setInitialstateno("0");
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String format = simpleDateFormat.format(new Date());
int i = new Random().nextInt(8999) + 1000;
......@@ -75,6 +84,9 @@ public class DrybeachequipinforController {
drybeachequipinfor.setUpdatetime(new Date());
boolean save = drybeachequipinforService.save(drybeachequipinfor);
if (save) {
RedisUtils redisUtils = SpringContextHolder.getBean(RedisUtils.class);
redisUtils.del("NoName" + tailInfoNo);
redisUtils.del("NoDan" + tailInfoNo);
onlineUserService.clearMenu();
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
} else {
......@@ -95,7 +107,7 @@ public class DrybeachequipinforController {
@ApiOperation(value = "删除设备", response = PostOrPutResult.class)
@PreAuthorize("@el.check('delect:dry')")
@DeleteMapping
public ResponseEntity<Object> deleteone(@RequestBody HashMap<String, String> map) {
public ResponseEntity<Object> deleteone(@RequestBody HashMap<String, String> map, HttpServletRequest request) {
try {
boolean b = false;
Integer id = Integer.parseInt(map.get("id"));
......@@ -110,6 +122,13 @@ public class DrybeachequipinforController {
b = drybeachequipinforService.deleteall(equipno);
}
if (b) {
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
RedisUtils redisUtils = SpringContextHolder.getBean(RedisUtils.class);
redisUtils.del("NoName" + tailInfoNo);
redisUtils.del("NoDan" + tailInfoNo);
onlineUserService.clearMenu();
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
} else {
......@@ -129,12 +148,20 @@ public class DrybeachequipinforController {
@Log("修改设备")
@ApiOperation(value = "修改设备", response = PostOrPutResult.class)
@PutMapping
public ResponseEntity<Object> updateone(@RequestBody Drybeachequipinfor drybeachequipinfor) {
public ResponseEntity<Object> updateone(@RequestBody Drybeachequipinfor drybeachequipinfor, HttpServletRequest request) {
try {
drybeachequipinfor.setUpdatetime(new Date());
//drybeachequipinfor.setCreatetime(new Date());
boolean save = drybeachequipinforService.saveOrUpdate(drybeachequipinfor);
if (save) {
//清空缓存
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
RedisUtils redisUtils = SpringContextHolder.getBean(RedisUtils.class);
redisUtils.del("NoName" + tailInfoNo);
redisUtils.del("NoDan" + tailInfoNo);
onlineUserService.clearMenu();
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
} else {
......@@ -223,6 +250,17 @@ public class DrybeachequipinforController {
return new ResponseEntity<>(new PageResult().success(map), HttpStatus.OK);
}
@ApiOperation(value = "强制在线")
@PutMapping("enforce")
public ResponseEntity<Object> enforceOnline(@RequestBody HashMap<String, String> map) {
boolean b = drybeachequipinforService.enforceOnline(map);
if (b) {
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
} else {
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
}
}
package me.zhengjie.gemho.controller.tab;
import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import me.zhengjie.gemho.entity.tab.JrxDissect;
import me.zhengjie.gemho.service.tab.JrxDissectService;
import me.zhengjie.gemho.util.PageResult;
import me.zhengjie.gemho.util.PostOrPutResult;
import me.zhengjie.gemho.util.TailNoForInfoUtil;
import me.zhengjie.gemho.x_datavo.data.DataQueryCriteria;
import me.zhengjie.gemho.x_datavo.data.JrxQueryCriteria;
import me.zhengjie.gemho.x_datavo.tab.visual.JrxDissectVisualVO;
import me.zhengjie.gemho.x_datavo.tab.visual.JrxStepsListVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.HashMap;
import java.util.List;
/**
* <p>
* 浸润线坡面 前端控制器
* </p>
*
* @author llj
* @since 2022-05-13
*/
@Api(tags = "浸润线坡面")
@RequiredArgsConstructor
@RestController
@RequestMapping("tab/jrx/dissect")
public class JrxDissectController {
@Autowired
private JrxDissectService tabJrxDissectService;
@ApiOperation(value = "浸润线坡面分页列表", response = JrxDissect.class)
@GetMapping
public ResponseEntity<Object> list(DataQueryCriteria dataQueryCriteria) {
HashMap<String, Object> data = tabJrxDissectService.plist(dataQueryCriteria);
return new ResponseEntity<>(new PageResult().success(data), HttpStatus.OK);
}
@ApiOperation(value = "浸润线坡面新增")
@PostMapping()
public Object add(@Valid @RequestBody JrxDissect param) {
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo();
if (tailInfoNo == null) {
return null;
}
param.setPondid(tailInfoNo);
param.setDry_s(JSONObject.toJSONString(param.getDrys()));
boolean result = tabJrxDissectService.add(param);
if (result) {
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
} else {
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
}
@ApiOperation(value = "浸润线坡面修改")
@PutMapping()
public Object modify(@Valid @RequestBody JrxDissect param) {
param.setDry_s(JSONObject.toJSONString(param.getDrys()));
boolean result = tabJrxDissectService.modify(param);
if (result) {
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
} else {
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
}
@ApiOperation(value = "浸润线坡面删除(单个条目)")
@DeleteMapping()
public Object remove(@RequestBody HashMap<String, Object> map) {
Integer id = Integer.valueOf(map.get("id").toString());
boolean result = tabJrxDissectService.removeById(id);
if (result) {
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
} else {
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
}
@ApiOperation(value = "浸润线坡面大屏", response = JrxDissect.class)
@GetMapping("visual")
public ResponseEntity<Object> visual(JrxQueryCriteria jrxQueryCriteria) {
JrxDissectVisualVO visual = tabJrxDissectService.visual(jrxQueryCriteria);
return new ResponseEntity<>(new PageResult().success(visual), HttpStatus.OK);
}
@GetMapping("list")
public ResponseEntity<Object> stepsList() {
List<JrxStepsListVo> jrxStepsListVos = tabJrxDissectService.stepsList();
return new ResponseEntity<>(new PageResult().nopagesuccess(jrxStepsListVos), HttpStatus.OK);
}
}
package me.zhengjie.gemho.controller.tab;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import me.zhengjie.gemho.entity.tab.JrxSteps;
import me.zhengjie.gemho.service.tab.IJrxStepsService;
import me.zhengjie.gemho.util.PageResult;
import me.zhengjie.gemho.util.PostOrPutResult;
import me.zhengjie.gemho.x_datavo.data.DataQueryCriteria;
import me.zhengjie.gemho.x_datavo.tab.visual.JrxStepsListVo;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author llj
* @since 2022-05-10
*/
@RequiredArgsConstructor
@RestController
@RequestMapping("tab/jrx/steps")
public class JrxStepsController {
private final IJrxStepsService iJrxStepsService;
@ApiOperation(value = "新增浸润线台阶")
@PostMapping
public ResponseEntity<Object> add(HttpServletRequest request, @RequestBody JrxSteps jrxSteps) {
boolean result = iJrxStepsService.add(jrxSteps, request);
if (result) {
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
} else {
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
}
@ApiOperation("删除浸润线台阶")
@DeleteMapping
public ResponseEntity<Object> deleteOne(@RequestBody HashMap<String, Object> map, HttpServletRequest request) {
Integer id = Integer.valueOf(map.get("id").toString());
boolean result = iJrxStepsService.removeById(id);
if (result) {
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
} else {
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
}
@ApiOperation(value = "修改浸润线台阶")
@PutMapping
public ResponseEntity<Object> updateOne(@RequestBody JrxSteps param, HttpServletRequest request) {
boolean result = iJrxStepsService.modify(param, request);
if (result) {
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
} else {
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
}
@ApiOperation(value = "查询浸润线台阶数据")
@GetMapping
public ResponseEntity<Object> pageAll(DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
HashMap<String, Object> plist = iJrxStepsService.plist(dataQueryCriteria, request);
return new ResponseEntity<>(new PageResult().success(plist), HttpStatus.OK);
}
@GetMapping("list")
public ResponseEntity<Object> stepsList() {
List<JrxStepsListVo> jrxStepsListVos = iJrxStepsService.stepsList();
return new ResponseEntity<>(new PageResult().nopagesuccess(jrxStepsListVos), HttpStatus.OK);
}
}
package me.zhengjie.gemho.controller.tab;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import me.zhengjie.gemho.entity.tab.JrxWater;
import me.zhengjie.gemho.service.tab.JrxWaterService;
import me.zhengjie.gemho.util.PageResult;
import me.zhengjie.gemho.util.PostOrPutResult;
import me.zhengjie.gemho.util.TailNoForInfoUtil;
import me.zhengjie.gemho.x_datavo.data.DataQueryCriteria;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.HashMap;
/**
* <p>
* 浸润线坡面水区 前端控制器
* </p>
*
* @author llj
* @since 2022-05-13
*/
@Api(tags = "浸润线坡面水区")
@RequiredArgsConstructor
@RestController
@RequestMapping("tab/jrx/water")
public class JrxWaterController {
@Autowired
private JrxWaterService tabJrxWaterService;
@ApiOperation(value = "浸润线坡面水区分页列表", response = JrxWater.class)
@GetMapping()
public ResponseEntity<Object> list(DataQueryCriteria dataQueryCriteria) {
HashMap<String, Object> data = tabJrxWaterService.plist(dataQueryCriteria);
return new ResponseEntity<>(new PageResult().success(data), HttpStatus.OK);
}
@ApiOperation(value = "浸润线坡面水区新增")
@PostMapping()
public Object add(@Valid @RequestBody JrxWater param) {
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo();
if (tailInfoNo == null) {
return null;
}
param.setPondid(tailInfoNo);
boolean result = tabJrxWaterService.add(param);
if (result) {
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
} else {
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
}
@ApiOperation(value = "浸润线坡面水区修改")
@PutMapping()
public Object modify(@Valid @RequestBody JrxWater param) {
boolean result = tabJrxWaterService.modify(param);
if (result) {
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
} else {
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
}
@ApiOperation(value = "浸润线坡面水区删除(单个条目)")
@DeleteMapping()
public Object remove(@RequestBody HashMap<String, Object> map) {
Integer id = Integer.valueOf(map.get("id").toString());
boolean result = tabJrxWaterService.removeById(id);
if (result) {
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
} else {
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
}
}
......@@ -217,7 +217,7 @@ public class TailpondinforController {
@GetMapping("dryinfo")
public ResponseEntity<Object> change(HttpServletRequest request) {
String currentUsername = SecurityUtils.getCurrentUsername();
String gettailno = onlineUserService.gettailno(currentUsername,request);
String gettailno = onlineUserService.gettailno(currentUsername, request);
HashMap<String, Object> getzuobiao = tailpondinforService.getzuobiao(gettailno);
return new ResponseEntity<>(new PageResult().nopagesuccess(getzuobiao), HttpStatus.OK);
}
......
......@@ -4,7 +4,6 @@ package me.zhengjie.gemho.controller.tab;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import me.zhengjie.annotation.Log;
import me.zhengjie.gemho.entity.tab.UserTailpon;
import me.zhengjie.gemho.service.tab.TailpondinforService;
import me.zhengjie.gemho.service.tab.UserTailponService;
......
......@@ -31,7 +31,7 @@ public class WeatherController {
@GetMapping
public ResponseEntity<Object> getWeather(HttpServletRequest request) {
String currentUsername = SecurityUtils.getCurrentUsername();
String gettailno = onlineUserService.gettailno(currentUsername,request);
String gettailno = onlineUserService.gettailno(currentUsername, request);
QueryWrapper<Tailpondinfor> tailpondinforQueryWrapper = new QueryWrapper<>();
tailpondinforQueryWrapper.eq("tailingno", gettailno);
Tailpondinfor one = tailpondinforService.getOne(tailpondinforQueryWrapper);
......
......@@ -8,6 +8,7 @@ import me.zhengjie.gemho.entity.web.WebMonitorChart;
import me.zhengjie.gemho.service.web.IWebMonitorChartService;
import me.zhengjie.gemho.util.PageResult;
import me.zhengjie.gemho.util.PostOrPutResult;
import me.zhengjie.gemho.util.TailNoForInfoUtil;
import me.zhengjie.gemho.x_datavo.web.MonitorChartVo;
import me.zhengjie.modules.security.service.OnlineUserService;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -40,6 +41,10 @@ public class WebMonitorChartController {
@ApiOperation(value = "新增/修改监测点模块信息")
@PostMapping
public ResponseEntity<Object> add(@RequestBody WebMonitorChart webMonitorChart, HttpServletRequest request) {
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo();
if (tailInfoNo == null) {
return new ResponseEntity<>(new PostOrPutResult().noTailFailed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
boolean save = iWebMonitorChartService.deal(webMonitorChart, request);
if (save) {
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
......
......@@ -56,6 +56,6 @@ public class WebMonitorPointsController {
if (remove) {
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
}
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
return new ResponseEntity<>(new PostOrPutResult().deleteFailed(), HttpStatus.CREATED);
}
}
\ No newline at end of file
......@@ -117,6 +117,8 @@ public class DbData implements Serializable {
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
@TableField(exist = false)
private Date jctime;
@TableField(exist = false)
public String danwei;
public static void main(String[] args) {
LocalDateTime start = LocalDateTime.now();
......
......@@ -104,7 +104,8 @@ public class DmData implements Serializable {
*/
@ApiModelProperty(value = "数据来源,1在线设备,0人工巡检", hidden = true)
public Integer datasource;
@TableField(exist = false)
public String danwei;
/**
* 报警级别
*/
......
......@@ -174,8 +174,8 @@ public class MpData implements Serializable {
*/
@ApiModelProperty("报警级别")
public String bjjb;
@TableField(exist = false)
public String danwei;
@TableField(exist = false)
private String jcziitemname;
......
package me.zhengjie.gemho.entity.data;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
......@@ -40,6 +42,8 @@ public class PslData implements Serializable {
@ApiModelProperty("设备id")
public String sensorid;
public String sensorname;
/**
* 测量时间
*/
......@@ -75,12 +79,21 @@ public class PslData implements Serializable {
*/
@ApiModelProperty(value = "数据创建时间", hidden = true)
public Date createtime;
@TableField(exist = false)
public String danwei;
/**
* 修改时间
*/
@ApiModelProperty(value = "数据修改时间", hidden = true)
public Date updatetime;
@TableField(exist = false)
private String jcziitemname;
@TableField(exist = false)
private String jcvalue;
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
@TableField(exist = false)
private Date jctime;
}
package me.zhengjie.gemho.entity.data;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
......@@ -40,6 +42,9 @@ public class RgData implements Serializable {
@ApiModelProperty("设备id")
private String sensorid;
@ApiModelProperty(value = "设备名称")
public String sensorname;
/**
* 测量时间
*/
......@@ -50,7 +55,7 @@ public class RgData implements Serializable {
* 据上一次统计到现在的降雨量(mm)
*/
@ApiModelProperty("降雨量(mm)")
private Double rainfall;
public Double rainfall;
/**
* 创建时间
......@@ -83,5 +88,17 @@ public class RgData implements Serializable {
@ApiModelProperty(value = "数据来源,1在线设备,0人工巡检", hidden = true)
private Integer datasource;
@TableField(exist = false)
public String jcziitemname;
@TableField(exist = false)
public String jcvalue;
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
@TableField(exist = false)
public Date jctime;
@TableField(exist = false)
public String danwei;
}
package me.zhengjie.gemho.entity.data;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
......@@ -39,6 +41,8 @@ public class SlData implements Serializable {
*/
@ApiModelProperty("设备id")
public String sensorid;
public String sensorname;
/**
* 测量时间
......@@ -46,6 +50,7 @@ public class SlData implements Serializable {
@ApiModelProperty("测量时间")
public Date time;
/**
* 测量值(m),
*/
......@@ -82,5 +87,15 @@ public class SlData implements Serializable {
@ApiModelProperty(value = "数据更新时间", hidden = true)
public Date updatetime;
@TableField(exist = false)
private String jcziitemname;
@TableField(exist = false)
private String jcvalue;
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
@TableField(exist = false)
private Date jctime;
@TableField(exist = false)
public String danwei;
}
......@@ -102,6 +102,7 @@ public class StData implements Serializable {
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
@TableField(exist = false)
public Date jctime;
@TableField(exist = false)
public String danwei;
}
package me.zhengjie.gemho.entity.data;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
/**
* <p>
* 外坡比数据
* </p>
*
* @author llj
* @since 2022-05-12
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_wpb_data")
@ApiModel(value = "WpbData对象", description = "外坡比数据")
public class WpbData implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键,自增")
@TableId(value = "id", type = IdType.AUTO)
public Integer id;
@ApiModelProperty(value = "监测点编号(外键),tb_drybeachequipinfor 的id")
public String sensorid;
@ApiModelProperty(value = "设备名称")
public String sensorname;
@ApiModelProperty(value = " 测量时间")
public Date time;
@ApiModelProperty(value = "监测值(m)")
public String value;
@ApiModelProperty(value = "创建时间")
public LocalDateTime createtime;
@ApiModelProperty(value = "修改时间")
public LocalDateTime updatetime;
@ApiModelProperty(value = "是否报警")
public Integer state;
@ApiModelProperty(value = "报警级别")
public String bjjb;
@ApiModelProperty(value = "数据来源,1在线设备,0人工巡检")
public Integer datasource;
@TableField(exist = false)
public String jcziitemname;
@TableField(exist = false)
public String jcvalue;
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
@TableField(exist = false)
public Date jctime;
@TableField(exist = false)
public String danwei;
}
......@@ -88,13 +88,14 @@ public class WtData implements Serializable {
@TableField(exist = false)
private String jcziitemname;
public String jcziitemname;
@TableField(exist = false)
private String jcvalue;
public String jcvalue;
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
@TableField(exist = false)
private Date jctime;
public Date jctime;
@TableField(exist = false)
public String danwei;
}
......@@ -11,7 +11,7 @@ import java.sql.Blob;
/**
* <p>
*
*
* </p>
*
* @author llj
......
......@@ -10,7 +10,7 @@ import java.io.Serializable;
/**
* <p>
*
*
* </p>
*
* @author llj
......
package me.zhengjie.gemho.entity.dic;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* <p>
*
* </p>
*
* @author llj
* @since 2022-05-05
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tab_dict_alarm_level")
@ApiModel(value = "AlarmLevel对象", description = "")
public class AlarmLevel implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "ID")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "报警等级名称(红色报警)")
@TableField("name")
private String name;
@ApiModelProperty(value = "报警等级值(对应报警表 alarmlevel)")
@TableField("value")
private Integer value;
@ApiModelProperty(value = "报警等级颜色")
@TableField("color")
private String color;
@ApiModelProperty(value = "备注")
@TableField("remark")
private String remark;
}
package me.zhengjie.gemho.entity.dic;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* <p>
*
* </p>
*
* @author llj
* @since 2022-05-05
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tab_dict_alarm_state")
@ApiModel(value = "AlarmState对象", description = "")
public class AlarmState implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "报警状态名称")
@TableField("name")
private String name;
@ApiModelProperty(value = "报警状态值(对应报警表 state)")
@TableField("value")
private Integer value;
@ApiModelProperty(value = "备注")
@TableField("remark")
private String remark;
}
......@@ -23,7 +23,7 @@ import java.io.Serializable;
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("c_jcjd")
@ApiModel(value="Jcjd对象", description="检测项_字典")
@ApiModel(value = "Jcjd对象", description = "检测项_字典")
public class Jcjd implements Serializable {
private static final long serialVersionUID = 1L;
......
package me.zhengjie.gemho.entity.ins;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
......
package me.zhengjie.gemho.entity.ins;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
......
......@@ -269,6 +269,19 @@ public class Drybeachequipinfor implements Serializable {
*/
@ApiModelProperty(value = "干滩安全超高,只用于干滩监测")
private String gtsafeheight;
/**
* .浸润线设备到开孔位置的距离
*/
private Double jrx_burial;
/**
* 浸润线开孔深度
*/
private Double jrx_trepanning;
/**
* 设备距离坡面左侧距离(单位:m)
*/
private Double jrx_coord_x;
/**
* 排水量流速(单位是m/s),只用于排水量,表示流速
......
package me.zhengjie.gemho.entity.tab;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
/**
* <p>
* 浸润线坡面
* </p>
*
* @author llj
* @since 2022-05-13
*/
@Getter
@Setter
@TableName("tab_jrx_dissect")
public class JrxDissect implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 剖面ID
*/
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 剖面名称
*/
private String name;
/**
* 剖面编号
*/
private String code;
private Double height;
private Double width;
/**
* 水区扇形起始角度
*/
private Double sdeg;
/**
* 总直径
*/
private Double diameter;
/**
* 尾矿库ID
*/
private String pondid;
/**
* 坡面关联的设备编号(多个设备编号用逗号隔开)
*/
@TableField(exist = false)
private String[] drys;
@JSONField(serialize = false)
@TableField(value = "drys")
private String dry_s;
}
package me.zhengjie.gemho.entity.tab;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
*
* </p>
*
* @author llj
* @since 2022-05-10
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tab_jrx_steps")
@ApiModel(value = "JrxSteps对象", description = "")
public class JrxSteps implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "台阶名称")
private String name;
@ApiModelProperty(value = "台阶编号")
private Integer code;
@TableField(updateStrategy = FieldStrategy.IGNORED, insertStrategy = FieldStrategy.IGNORED)
@ApiModelProperty(value = "高度(米)")
private Double height;
@TableField(updateStrategy = FieldStrategy.IGNORED, insertStrategy = FieldStrategy.IGNORED)
@ApiModelProperty(value = "宽度(米)")
private Double width;
@ApiModelProperty(value = "坡度(deg)")
private Double slope;
private Integer dissectid;
@JSONField(serialize = false)
private String pondid;
private LocalDateTime time;
}
package me.zhengjie.gemho.entity.tab;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
/**
* <p>
* 浸润线坡面水区
* </p>
*
* @author llj
* @since 2022-05-13
*/
@Getter
@Setter
@TableName("tab_jrx_water")
public class JrxWater implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 剖面id
*/
private Integer dissectid;
/**
* 水区扇形起始角度
*/
private Double sdeg;
/**
* 总直径
*/
private Double diameter;
private String pondid;
}
......@@ -11,7 +11,7 @@ import java.io.Serializable;
/**
* <p>
*
*
* </p>
*
* @author llj
......@@ -25,7 +25,7 @@ public class UserTailpon implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
......
......@@ -12,7 +12,7 @@ import java.io.Serializable;
/**
* <p>
*
*
* </p>
*
* @author llj
......@@ -21,7 +21,7 @@ import java.io.Serializable;
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="WebMonitorIcon对象", description="")
@ApiModel(value = "WebMonitorIcon对象", description = "")
public class WebMonitorIcon implements Serializable {
private static final long serialVersionUID = 1L;
......
......@@ -13,7 +13,7 @@ import java.io.Serializable;
/**
* <p>
*
*
* </p>
*
* @author llj
......@@ -22,7 +22,7 @@ import java.io.Serializable;
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="WebMonitorLink对象", description="")
@ApiModel(value = "WebMonitorLink对象", description = "")
public class WebMonitorLink implements Serializable {
private static final long serialVersionUID = 1L;
......
package me.zhengjie.gemho.mapper.artificial;
import me.zhengjie.gemho.entity.artificial.ArtificialData;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import me.zhengjie.gemho.entity.artificial.ArtificialData;
import org.apache.ibatis.annotations.Mapper;
/**
......
package me.zhengjie.gemho.mapper.artificial;
import me.zhengjie.gemho.entity.artificial.ArtificialPoint;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import me.zhengjie.gemho.entity.artificial.ArtificialPoint;
import org.apache.ibatis.annotations.Mapper;
/**
......
......@@ -19,9 +19,9 @@ import java.util.List;
@Mapper
public interface DbDataMapper extends BaseMapper<DbData> {
@Select("SELECT * FROM (SELECT * FROM `tb_db_data` where datasource =#{datasource} ORDER BY time DESC)a where sensorid=#{deviceid} and time>=#{start} and time <=#{end}GROUP BY DATE_FORMAT(a.time,'%y-%m-%d')")
List<DbData> dealmonth(String deviceid, String start, String end, int datasource);
@Select("SELECT * FROM (SELECT * FROM `tb_db_data` ORDER BY time DESC)a where sensorid=#{deviceid} and time>=#{start} and time <=#{end}GROUP BY DATE_FORMAT(a.time,'%y-%m-%d')")
List<DbData> dealmonth(String deviceid, String start, String end);
@Select(value = "SELECT r.* from(select b.eqdanwei as eqdanwei,b.equipno equipno,a.sensorname,a.lenth as `lenth`,a.angle as angle ,a.safeheight as safeheight ,DATE_FORMAT(a.time,'%y-%m-%d %H:%m:%m') as time from tb_db_data a join tb_drybeachequipinfor b on a.sensorid=b.equipno where a.datasource =1 and b.tailingid=#{tailingid} ORDER BY time DESC) r GROUP BY r.sensorname")
@Select(value = "SELECT r.* from(select b.eqdanwei as eqdanwei,b.equipno equipno,b.equipname as sensorname,a.lenth as `lenth`,a.angle as angle ,a.safeheight as safeheight ,DATE_FORMAT(a.time,'%y-%m-%d %H:%m:%m') as time from tb_db_data a join tb_drybeachequipinfor b on a.sensorid=b.equipno where a.datasource =1 and b.tailingid=#{tailingid} ORDER BY time DESC) r GROUP BY r.sensorname")
List<HashMap<String, Object>> real(String tailingid);
}
......@@ -19,9 +19,9 @@ import java.util.List;
@Mapper
public interface DmDataMapper extends BaseMapper<DmData> {
@Select("SELECT * FROM (SELECT * FROM `tb_dm_data` where datasource =#{datasource} ORDER BY time DESC)a where sensorid=#{sensorid} and time>=#{start} and time <=#{end}GROUP BY DATE_FORMAT(a.time,'%y-%m-%d')")
List<DmData> dealmonth(String sensorid, String start, String end, int datasource);
@Select("SELECT * FROM (SELECT * FROM `tb_dm_data` ORDER BY time DESC)a where sensorid=#{sensorid} and time>=#{start} and time <=#{end}GROUP BY DATE_FORMAT(a.time,'%y-%m-%d')")
List<DmData> dealmonth(String sensorid, String start, String end);
@Select(value = "SELECT r.* from(select b.eqdanwei as eqdanwei,a.sensorname,b.equipno equipno,a.dispA as dispA,a.dispB as dispB , DATE_FORMAT(a.time,'%y-%m-%d %H:%m:%m') as time from tb_dm_data a join tb_drybeachequipinfor b on a.sensorid=b.equipno where a.datasource =1 and b.tailingid=#{tailingid} ORDER BY time DESC) r GROUP BY r.sensorname")
@Select(value = "SELECT r.* from(select b.eqdanwei as eqdanwei,b.equipname as sensorname,b.equipno equipno,a.dispA as dispA,a.dispB as dispB , DATE_FORMAT(a.time,'%y-%m-%d %H:%m:%m') as time from tb_dm_data a join tb_drybeachequipinfor b on a.sensorid=b.equipno where a.datasource =1 and b.tailingid=#{tailingid} ORDER BY time DESC) r GROUP BY r.sensorname")
List<HashMap<String, Object>> real(String tailingid);
}
......@@ -22,10 +22,10 @@ public interface MpDataMapper extends BaseMapper<MpData> {
/* @Results({
@Result(column = "acceler_x", property = "accelerx", typeHandler = AESEncryptHandler.class)
})*/
@Select("SELECT a.disp_x as dispx ,a.disp_y as dispy,a.disp_h as disph ,a.time as time FROM (SELECT * FROM `tb_mp_data` where datasource =#{datasource} ORDER BY time DESC)a where sensorid=#{deviceid} and time>=#{start} and time <=#{end}GROUP BY DATE_FORMAT(a.time,'%y-%m-%d')")
List<MpData> dealmonth(String deviceid, String start, String end, int datasource);
@Select("SELECT a.disp_x as dispx ,a.disp_y as dispy,a.disp_h as disph ,a.time as time FROM (SELECT * FROM `tb_mp_data` ORDER BY time DESC)a where sensorid=#{deviceid} and time>=#{start} and time <=#{end}GROUP BY DATE_FORMAT(a.time,'%y-%m-%d')")
List<MpData> dealmonth(String deviceid, String start, String end);
@Select(value = "SELECT r.* from(select b.eqdanwei as eqdanwei,b.equipno equipno,a.sensorname,a.disp_x as disp_x , a.disp_y as disp_y ,a.disp_h as disp_h ,DATE_FORMAT(a.time,'%y-%m-%d %H:%m:%m') as time from tb_mp_data a join tb_drybeachequipinfor b on a.sensorid=b.equipno where a.datasource =1 and b.tailingid=#{tailingid} ORDER BY time DESC) r GROUP BY r.sensorname")
@Select(value = "SELECT r.* from(select b.eqdanwei as eqdanwei,b.equipno equipno,b.equipname as sensorname,a.disp_x as disp_x , a.disp_y as disp_y ,a.disp_h as disp_h ,DATE_FORMAT(a.time,'%y-%m-%d %H:%m:%m') as time from tb_mp_data a join tb_drybeachequipinfor b on a.sensorid=b.equipno where a.datasource =1 and b.tailingid=#{tailingid} ORDER BY time DESC) r GROUP BY r.sensorname")
List<HashMap<String, Object>> real(String tailingid);
}
......@@ -19,9 +19,9 @@ import java.util.List;
@Mapper
public interface PslDataMapper extends BaseMapper<PslData> {
@Select("SELECT * FROM (SELECT * FROM `tb_psl_data` where datasource =#{datasource} ORDER BY time DESC)a where sensorid=#{deviceid} and time>=#{start} and time <=#{end}GROUP BY DATE_FORMAT(a.time,'%y-%m-%d')")
List<PslData> dealmonth(String deviceid, String start, String end, int datasource);
@Select("SELECT * FROM (SELECT * FROM `tb_psl_data` ORDER BY time DESC)a where sensorid=#{deviceid} and time>=#{start} and time <=#{end}GROUP BY DATE_FORMAT(a.time,'%y-%m-%d')")
List<PslData> dealmonth(String deviceid, String start, String end);
@Select(value = "SELECT r.* from(select b.eqdanwei as eqdanwei,b.equipno equipno,a.sensorname,a.pslvalue as `value`, DATE_FORMAT(a.time,'%y-%m-%d %H:%m:%m')as time from tb_psl_data a join tb_drybeachequipinfor b on a.sensorid=b.equipno where a.datasource =1 and b.tailingid=#{tailingid} ORDER BY time DESC) r GROUP BY r.sensorname")
@Select(value = "SELECT r.* from(select b.eqdanwei as eqdanwei,b.equipno equipno,b.equipname as sensorname,a.pslvalue as `value`, DATE_FORMAT(a.time,'%y-%m-%d %H:%m:%m')as time from tb_psl_data a join tb_drybeachequipinfor b on a.sensorid=b.equipno where a.datasource =1 and b.tailingid=#{tailingid} ORDER BY time DESC) r GROUP BY r.sensorname")
List<HashMap<String, Object>> real(String tailingid);
}
......@@ -19,6 +19,6 @@ import java.util.List;
@Mapper
public interface RgDataMapper extends BaseMapper<RgData> {
@Select(value = "SELECT r.* from(select b.eqdanwei as eqdanwei,b.equipno equipno,a.sensorname,a.rainfall as `rainfall` ,DATE_FORMAT(a.time,'%y-%m-%d %H:%m:%m') as time from tb_rg_data a join tb_drybeachequipinfor b on a.sensorid=b.equipno where a.datasource =1 and b.tailingid=#{tailingid} ORDER BY time DESC) r GROUP BY r.sensorname")
List<HashMap<String, Object>> real(String tailingid);
@Select(value = "SELECT r.* from(select b.eqdanwei as eqdanwei,b.equipno equipno,b.equipname as sensorname,a.rainfall as `rainfall` ,DATE_FORMAT(a.time,'%y-%m-%d %H:%m:%m') as time from tb_rg_data a join tb_drybeachequipinfor b on a.sensorid=b.equipno where a.datasource =1 and b.tailingid=#{tailingid} ORDER BY time DESC) r GROUP BY r.sensorname")
List<HashMap<String, Object>> real(String tailingid);
}
......@@ -19,9 +19,9 @@ import java.util.List;
@Mapper
public interface SlDataMapper extends BaseMapper<SlData> {
@Select("SELECT * FROM (SELECT * FROM `tb_sl_data` where datasource =#{datasource} ORDER BY time DESC)a where sensorid=#{deviceid} and time>=#{start} and time <=#{end}GROUP BY DATE_FORMAT(a.time,'%y-%m-%d')")
List<SlData> dealmonth(String deviceid, String start, String end, int datasource);
@Select("SELECT * FROM (SELECT * FROM `tb_sl_data` ORDER BY time DESC)a where sensorid=#{deviceid} and time>=#{start} and time <=#{end}GROUP BY DATE_FORMAT(a.time,'%y-%m-%d')")
List<SlData> dealmonth(String deviceid, String start, String end);
@Select(value = "SELECT r.* from(select b.eqdanwei as eqdanwei,b.equipno equipno,a.sensorname,a.sllvalue as `value`, DATE_FORMAT(a.time,'%y-%m-%d %H:%m:%m') as time from tb_sl_data a join tb_drybeachequipinfor b on a.sensorid=b.equipno where a.datasource =1 and b.tailingid=#{tailingid} ORDER BY time DESC) r GROUP BY r.sensorname")
@Select(value = "SELECT r.* from(select b.eqdanwei as eqdanwei,b.equipno equipno,b.equipname as sensorname,a.sllvalue as `value`, DATE_FORMAT(a.time,'%y-%m-%d %H:%m:%m') as time from tb_sl_data a join tb_drybeachequipinfor b on a.sensorid=b.equipno where a.datasource =1 and b.tailingid=#{tailingid} ORDER BY time DESC) r GROUP BY r.sensorname")
List<HashMap<String, Object>> real(String tailingid);
}
......@@ -2,6 +2,7 @@ package me.zhengjie.gemho.mapper.data;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import me.zhengjie.gemho.entity.data.StData;
import me.zhengjie.gemho.x_datavo.tab.visual.JrxDryVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
......@@ -18,9 +19,11 @@ import java.util.List;
*/
@Mapper
public interface StDataMapper extends BaseMapper<StData> {
@Select("SELECT * FROM (SELECT * FROM `tb_st_data` where datasource =#{datasource} ORDER BY time DESC)a where sensorid=#{deviceid} and time>=#{start} and time <=#{end}GROUP BY DATE_FORMAT(a.time,'%y-%m-%d')")
List<StData> dealmonth(String deviceid, String start, String end, int datasource);
@Select("SELECT * FROM (SELECT * FROM `tb_st_data` ORDER BY time DESC)a where sensorid=#{deviceid} and time>=#{start} and time <=#{end}GROUP BY DATE_FORMAT(a.time,'%y-%m-%d')")
List<StData> dealmonth(String deviceid, String start, String end);
@Select(value = "SELECT r.* from(select b.eqdanwei as eqdanwei,b.equipno equipno,a.sensorname,a.stage as stage,a.depth as depth ,DATE_FORMAT(a.time,'%y-%m-%d %H:%m:%m') as time from tb_st_data a join tb_drybeachequipinfor b on a.sensorid=b.equipno where a.datasource =1 and b.tailingid=#{tailingid} ORDER BY time DESC) r GROUP BY r.sensorname")
@Select(value = "SELECT r.* from(select b.eqdanwei as eqdanwei,b.equipno equipno,b.equipname as sensorname,a.stage as stage,a.depth as depth ,DATE_FORMAT(a.time,'%y-%m-%d %H:%m:%m') as time from tb_st_data a join tb_drybeachequipinfor b on a.sensorid=b.equipno where a.datasource =1 and b.tailingid=#{tailingid} ORDER BY time DESC) r GROUP BY r.sensorname")
List<HashMap<String, Object>> real(String tailingid);
List<JrxDryVo> getStageDepth(List<String> sensorids);
}
......@@ -3,7 +3,6 @@ package me.zhengjie.gemho.mapper.data;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import me.zhengjie.gemho.entity.data.SzData;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.ArrayList;
import java.util.HashMap;
......@@ -19,6 +18,5 @@ import java.util.HashMap;
@Mapper
public interface SzDataMapper extends BaseMapper<SzData> {
@Select(value = "select c.`value` as `value`,c.name as name from (select a.svalue as `value`,b.equipname as `name` ,b.equipno as equipno ,DATE_FORMAT(a.time,'%y-%m-%d %H:%m:%m') as time from tb_sz_data a join tb_drybeachequipinfor b on a.sensorid =b.equipno WHERE b.devicetype=8 and b.tailingid=#{tailingid} ORDER BY time DESC) c GROUP BY c.equipno")
ArrayList<HashMap<String, Object>> real(String tailingid);
}
package me.zhengjie.gemho.mapper.data;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import me.zhengjie.gemho.entity.data.WpbData;
import org.apache.ibatis.annotations.Select;
import java.util.HashMap;
import java.util.List;
/**
* <p>
* 外坡比数据 Mapper 接口
* </p>
*
* @author llj
* @since 2022-05-12
*/
public interface WpbDataMapper extends BaseMapper<WpbData> {
@Select("SELECT * FROM (SELECT * FROM `tb_wpb_data` ORDER BY time DESC)a where sensorid=#{deviceid} and time>=#{start} and time <=#{end}GROUP BY DATE_FORMAT(a.time,'%y-%m-%d')")
List<WpbData> dealmonth(String deviceid, String start, String end);
@Select(value = "SELECT r.* from(select b.eqdanwei as eqdanwei,b.equipno equipno,b.equipname as sensorname,a.value as `value` ,DATE_FORMAT(a.time,'%y-%m-%d %H:%m:%m') as time from tb_wpb_data a join tb_drybeachequipinfor b on a.sensorid=b.equipno where a.datasource =1 and b.tailingid=#{tailingid} ORDER BY time DESC) r GROUP BY r.sensorname")
List<HashMap<String, Object>> real(String tailingid);
}
......@@ -18,9 +18,9 @@ import java.util.List;
*/
@Mapper
public interface WtDataMapper extends BaseMapper<WtData> {
@Select("SELECT * FROM (SELECT * FROM `tb_wt_data` where datasource =#{datasource} ORDER BY time DESC)a where sensorid=#{deviceid} and time>=#{start} and time <=#{end}GROUP BY DATE_FORMAT(a.time,'%y-%m-%d')")
List<WtData> dealmonth(String deviceid, String start, String end, int datasource);
@Select("SELECT * FROM (SELECT * FROM `tb_wt_data` ORDER BY time DESC)a where sensorid=#{deviceid} and time>=#{start} and time <=#{end}GROUP BY DATE_FORMAT(a.time,'%y-%m-%d')")
List<WtData> dealmonth(String deviceid, String start, String end);
@Select(value = "SELECT r.* from(select b.eqdanwei as eqdanwei,b.equipno equipno,a.sensorname,a.stage as `stage` ,DATE_FORMAT(a.time,'%y-%m-%d %H:%m:%m') as time from tb_wt_data a join tb_drybeachequipinfor b on a.sensorid=b.equipno where a.datasource =1 and b.tailingid=#{tailingid} ORDER BY time DESC) r GROUP BY r.sensorname")
@Select(value = "SELECT r.* from(select b.eqdanwei as eqdanwei,b.equipno equipno,b.equipname as sensorname,a.stage as `stage` ,DATE_FORMAT(a.time,'%y-%m-%d %H:%m:%m') as time from tb_wt_data a join tb_drybeachequipinfor b on a.sensorid=b.equipno where a.datasource =1 and b.tailingid=#{tailingid} ORDER BY time DESC) r GROUP BY r.sensorname")
List<HashMap<String, Object>> real(String tailingid);
}
......@@ -6,7 +6,7 @@ import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* Mapper 接口
* Mapper 接口
* </p>
*
* @author llj
......
......@@ -6,7 +6,7 @@ import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* Mapper 接口
* Mapper 接口
* </p>
*
* @author llj
......
package me.zhengjie.gemho.mapper.dic;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import me.zhengjie.gemho.entity.dic.AlarmLevel;
/**
* <p>
* Mapper 接口
* </p>
*
* @author llj
* @since 2022-05-05
*/
public interface AlarmLevelMapper extends BaseMapper<AlarmLevel> {
}
package me.zhengjie.gemho.mapper.dic;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import me.zhengjie.gemho.entity.dic.AlarmState;
/**
* <p>
* Mapper 接口
* </p>
*
* @author llj
* @since 2022-05-05
*/
public interface AlarmStateMapper extends BaseMapper<AlarmState> {
}
......@@ -89,4 +89,6 @@ public interface DrybeachequipinforMapper extends BaseMapper<Drybeachequipinfor>
List<HashMap<String, Object>> dryStateCount(String tailingid);
Integer dryUnCount(String tailingid);
int enforceOnline(String equipno);
}
package me.zhengjie.gemho.mapper.tab;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import me.zhengjie.gemho.entity.tab.JrxDissect;
import me.zhengjie.gemho.x_datavo.sys.TypeVo;
import org.apache.ibatis.annotations.Mapper;
import java.util.ArrayList;
/**
* <p>
* 浸润线坡面 Mapper 接口
* </p>
*
* @author llj
* @since 2022-05-13
*/
@Mapper
public interface JrxDissectMapper extends BaseMapper<JrxDissect> {
ArrayList<TypeVo> getsubs(String pondid);
}
package me.zhengjie.gemho.mapper.tab;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import me.zhengjie.gemho.entity.tab.JrxSteps;
import java.util.List;
/**
* <p>
* Mapper 接口
* </p>
*
* @author llj
* @since 2022-05-10
*/
public interface JrxStepsMapper extends BaseMapper<JrxSteps> {
List<JrxSteps> getByCode(Integer code);
}
package me.zhengjie.gemho.mapper;
package me.zhengjie.gemho.mapper.tab;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import me.zhengjie.gemho.entity.DataBack;
import me.zhengjie.gemho.entity.tab.JrxWater;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* Mapper 接口
* 浸润线坡面水区 Mapper 接口
* </p>
*
* @author llj
* @since 2021-12-22
* @since 2022-05-13
*/
@Mapper
public interface TestMapper extends BaseMapper<DataBack> {
public interface JrxWaterMapper extends BaseMapper<JrxWater> {
}
......@@ -54,6 +54,7 @@ public interface TailpondinforMapper extends BaseMapper<Tailpondinfor> {
/**
* 获取大屏标题
*
* @return
*/
@Select(value = "SELECT screen_title from tb_tailpondinfor where tailingno=#{tailingno}")
......@@ -61,10 +62,11 @@ public interface TailpondinforMapper extends BaseMapper<Tailpondinfor> {
/**
* 修改大屏标题
*
* @param title
* @param tailingno
* @return
*/
@Update(value = "update tb_tailpondinfor set screen_title= #{title} where tailingno=#{tailingno}")
int updateTitle(String title,String tailingno);
int updateTitle(String title, String tailingno);
}
......@@ -6,7 +6,7 @@ import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* Mapper 接口
* Mapper 接口
* </p>
*
* @author llj
......
......@@ -32,7 +32,7 @@ public interface ArtificialDataService extends IService<ArtificialData> {
* @param param 根据需要进行传值
* @return
*/
boolean add(ArtificialData param,HttpServletRequest request);
boolean add(ArtificialData param, HttpServletRequest request);
/**
* 人工监测数据表修改
......@@ -40,6 +40,6 @@ public interface ArtificialDataService extends IService<ArtificialData> {
* @param param 根据需要进行传值
* @return
*/
boolean modify(ArtificialData param,HttpServletRequest request);
boolean modify(ArtificialData param, HttpServletRequest request);
}
......@@ -33,7 +33,7 @@ public interface ArtificialPointService extends IService<ArtificialPoint> {
* @param param 根据需要进行传值
* @return
*/
boolean add(ArtificialPoint param,HttpServletRequest request);
boolean add(ArtificialPoint param, HttpServletRequest request);
/**
* 人工监测点位表修改
......@@ -41,7 +41,7 @@ public interface ArtificialPointService extends IService<ArtificialPoint> {
* @param param 根据需要进行传值
* @return
*/
boolean modify(ArtificialPoint param,HttpServletRequest request);
boolean modify(ArtificialPoint param, HttpServletRequest request);
/**
* 人工监测点位下拉列表
......
......@@ -49,6 +49,9 @@ public class ArtificialDataServiceImpl extends ServiceImpl<ArtificialDataMapper,
public HashMap<String, Object> plist(DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
//获取当前尾矿库
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
//查询所有的检测子项
List<Jczx> jczxes = jczxMapper.selectList(null);
long size = dataQueryCriteria.getSize();
......@@ -94,9 +97,12 @@ public class ArtificialDataServiceImpl extends ServiceImpl<ArtificialDataMapper,
* @return
*/
@Override
public boolean add(ArtificialData param,HttpServletRequest request) {
public boolean add(ArtificialData param, HttpServletRequest request) {
//获取当前尾矿库编码
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return false;
}
param.setTailingid(tailInfoNo);
int result = artificialDataMapper.insert(param);
if (result > 0) {
......@@ -112,9 +118,12 @@ public class ArtificialDataServiceImpl extends ServiceImpl<ArtificialDataMapper,
* @return
*/
@Override
public boolean modify(ArtificialData param,HttpServletRequest request) {
public boolean modify(ArtificialData param, HttpServletRequest request) {
//获取当前尾矿库编码
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return false;
}
param.setTailingid(tailInfoNo);
QueryWrapper<ArtificialData> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id", param.getId());
......
......@@ -43,6 +43,9 @@ public class ArtificialPointServiceImpl extends ServiceImpl<ArtificialPointMappe
public HashMap<String, Object> plist(DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
//获取当前尾矿库
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
long size = dataQueryCriteria.getSize();
long page = dataQueryCriteria.getPage();
Page<ArtificialPoint> ArtificialPointPage = new Page<>(page + 1, size);
......@@ -69,6 +72,9 @@ public class ArtificialPointServiceImpl extends ServiceImpl<ArtificialPointMappe
public boolean add(ArtificialPoint param, HttpServletRequest request) {
//获取当前尾矿库
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return false;
}
param.setTailingid(tailInfoNo);
int result = artificialPointMapper.insert(param);
if (result > 0) {
......@@ -87,6 +93,9 @@ public class ArtificialPointServiceImpl extends ServiceImpl<ArtificialPointMappe
public boolean modify(ArtificialPoint param, HttpServletRequest request) {
//获取当前尾矿库
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return false;
}
param.setTailingid(tailInfoNo);
QueryWrapper<ArtificialPoint> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id", param.getId());
......@@ -100,6 +109,12 @@ public class ArtificialPointServiceImpl extends ServiceImpl<ArtificialPointMappe
@Override
public List pointList() {
ArrayList<PointListVo> pointListVos = new ArrayList<>();
QueryWrapper<ArtificialPoint> artificialPointQueryWrapper = new QueryWrapper<>();
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo();
if (tailInfoNo == null) {
return null;
}
artificialPointQueryWrapper.eq("tailingid", tailInfoNo);
List<ArtificialPoint> artificialPoints = artificialPointMapper.selectList(null);
for (ArtificialPoint artificialPoint : artificialPoints) {
PointListVo pointListVo = new PointListVo();
......
......@@ -60,7 +60,7 @@ public interface DmDataService extends IService<DmData> {
* @param dataQueryCriteria
* @return
*/
HashMap<String, Object> pageall(DataQueryCriteria dataQueryCriteria,HttpServletRequest request);
HashMap<String, Object> pageall(DataQueryCriteria dataQueryCriteria, HttpServletRequest request);
/**
* 实时数据
......@@ -75,8 +75,8 @@ public interface DmDataService extends IService<DmData> {
* @param dataQueryCriteria
* @return
*/
ImgDataVo imgList(DataQueryCriteria dataQueryCriteria,HttpServletRequest request);
ImgDataVo imgList(DataQueryCriteria dataQueryCriteria, HttpServletRequest request);
void download(HttpServletResponse response, DataQueryCriteria dataQueryCriteria,HttpServletRequest request);
void download(HttpServletResponse response, DataQueryCriteria dataQueryCriteria, HttpServletRequest request);
}
......@@ -4,8 +4,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
import me.zhengjie.gemho.entity.data.PslData;
import me.zhengjie.gemho.x_datavo.DataVo;
import me.zhengjie.gemho.x_datavo.RealDataVo;
import me.zhengjie.gemho.x_datavo.data.DataQueryCriteria;
import me.zhengjie.gemho.x_datavo.data.ImgDataVo;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.List;
......@@ -52,22 +55,29 @@ public interface PslDataService extends IService<PslData> {
DataVo month(String date, String values, String deviceid, String subitem);
/**
* 分页历史记录
* 分页历史
*
* @param searchName
* @param searchValue
* @param limit
* @param timeSpace
* @param sort
* @param page
* @param size
* @param datasource
* @param dataQueryCriteria
* @param request
* @return
*/
HashMap<String, Object> pageall(String searchName, String searchValue, String limit, String timeSpace, String sort, long page, long size, String datasource);
HashMap<String, Object> pageall(DataQueryCriteria dataQueryCriteria, HttpServletRequest request);
/**
* 图表数据
*
* @param dataQueryCriteria
* @param request
* @return
*/
ImgDataVo imgList(DataQueryCriteria dataQueryCriteria, HttpServletRequest request);
void download(HttpServletResponse response, DataQueryCriteria dataQueryCriteria, HttpServletRequest request);
/**
* 实时数据
*
* @return
*/
List<RealDataVo> real(String equipno, HttpServletRequest request);
......
......@@ -4,8 +4,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
import me.zhengjie.gemho.entity.data.RgData;
import me.zhengjie.gemho.x_datavo.DataVo;
import me.zhengjie.gemho.x_datavo.RealDataVo;
import me.zhengjie.gemho.x_datavo.data.DataQueryCriteria;
import me.zhengjie.gemho.x_datavo.data.ImgDataVo;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.List;
......@@ -48,20 +51,27 @@ public interface RgDataService extends IService<RgData> {
*/
DataVo month(String date, String values, String deviceid);
/**
* 分页历史
*
* @param dataQueryCriteria
* @param request
* @return
*/
HashMap<String, Object> pageall(DataQueryCriteria dataQueryCriteria, HttpServletRequest request);
/**
* 分页查询历史数据
* 图表数据
*
* @param searchName
* @param searchValue
* @param limit
* @param timeSpace
* @param sort
* @param page
* @param size
* @param datasource
* @param dataQueryCriteria
* @param request
* @return
*/
HashMap<String, Object> pageall(String searchName, String searchValue, String limit, String timeSpace, String sort, long page, long size, String datasource);
ImgDataVo imgList(DataQueryCriteria dataQueryCriteria, HttpServletRequest request);
void download(HttpServletResponse response, DataQueryCriteria dataQueryCriteria, HttpServletRequest request);
/**
* 实时数据
......
......@@ -4,8 +4,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
import me.zhengjie.gemho.entity.data.SlData;
import me.zhengjie.gemho.x_datavo.DataVo;
import me.zhengjie.gemho.x_datavo.RealDataVo;
import me.zhengjie.gemho.x_datavo.data.DataQueryCriteria;
import me.zhengjie.gemho.x_datavo.data.ImgDataVo;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.List;
......@@ -53,18 +56,20 @@ public interface SlDataService extends IService<SlData> {
/**
* 分页历史记录
*/
HashMap<String, Object> pageall(DataQueryCriteria dataQueryCriteria, HttpServletRequest request);
/**
* 图表数据
*
* @param searchName
* @param searchValue
* @param limit
* @param timeSpace
* @param sort
* @param page
* @param size
* @param datasource
* @param dataQueryCriteria
* @param request
* @return
*/
HashMap<String, Object> pageall(String searchName, String searchValue, String limit, String timeSpace, String sort, long page, long size, String datasource);
ImgDataVo imgList(DataQueryCriteria dataQueryCriteria, HttpServletRequest request);
void download(HttpServletResponse response, DataQueryCriteria dataQueryCriteria, HttpServletRequest request);
/**
* 实时数据
......
......@@ -55,7 +55,8 @@ public interface StDataService extends IService<StData> {
DataVo month(String date, String values, String deviceid, String subitem);
/**
* 分页历史记录
* 分页历史记录
*
* @param dataQueryCriteria
* @param request
* @return
......@@ -69,6 +70,7 @@ public interface StDataService extends IService<StData> {
* @return
*/
List<RealDataVo> real(String equipno, HttpServletRequest request);
/**
* 图表数据
*
......
......@@ -52,10 +52,12 @@ public interface SzDataService extends IService<SzData> {
/**
* 实时数据
*
* @param deviceid
* @return
*/
ArrayList<HashMap<String, Object>> real(String deviceid, HttpServletRequest request);
/**
* 分页历史记录
*
......
package me.zhengjie.gemho.service.data;
import com.baomidou.mybatisplus.extension.service.IService;
import me.zhengjie.gemho.entity.data.WpbData;
import me.zhengjie.gemho.x_datavo.DataVo;
import me.zhengjie.gemho.x_datavo.RealDataVo;
import me.zhengjie.gemho.x_datavo.data.DataQueryCriteria;
import me.zhengjie.gemho.x_datavo.data.ImgDataVo;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.List;
/**
* <p>
* 外坡比数据 服务类
* </p>
*
* @author llj
* @since 2022-05-12
*/
public interface WpbDataService extends IService<WpbData> {
/**
* 日统计
*
* @param date
* @param values
* @param deviceid
* @param subitem
* @return
*/
DataVo day(String date, String values, String deviceid, String subitem);
/**
* 周统计
*
* @param date
* @param values
* @param deviceid
* @param subitem
* @return
*/
DataVo week(String date, String values, String deviceid, String subitem);
/**
* 月统计
*
* @param date
* @param values
* @param deviceid
* @param subitem
* @return
*/
DataVo month(String date, String values, String deviceid, String subitem);
/**
* 分页历史
*
* @param dataQueryCriteria
* @param request
* @return
*/
HashMap<String, Object> pageall(DataQueryCriteria dataQueryCriteria, HttpServletRequest request);
/**
* 图表数据
*
* @param dataQueryCriteria
* @param request
* @return
*/
ImgDataVo imgList(DataQueryCriteria dataQueryCriteria, HttpServletRequest request);
void download(HttpServletResponse response, DataQueryCriteria dataQueryCriteria, HttpServletRequest request);
/**
* 实时数据
*
* @return
*/
List<RealDataVo> real(String equipno, HttpServletRequest request);
}
......@@ -53,6 +53,7 @@ public interface WtDataService extends IService<WtData> {
* @return
*/
DataVo month(String date, String values, String deviceid, String subitem);
/**
* 分页历史
*
......
......@@ -23,6 +23,7 @@ import me.zhengjie.utils.FileUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
......@@ -75,12 +76,8 @@ public class DbDataServiceImpl extends ServiceImpl<DbDataMapper, DbData> impleme
String s1 = end + ":59:59";
//获取时间范围的实时数据
QueryWrapper<DbData> dbDataQueryWrapper1 = new QueryWrapper<>();
dbDataQueryWrapper1.ge("time", sdf1.parse(s)).le("time", sdf1.parse(s1)).eq("datasource", 1).eq("sensorid", deviceid);
dbDataQueryWrapper1.ge("time", sdf1.parse(s)).le("time", sdf1.parse(s1)).eq("sensorid", deviceid);
List<DbData> dbData1 = dbDataMapper.selectList(dbDataQueryWrapper1);
//获取时间范围的人工巡检的数据
QueryWrapper<DbData> dbDataQueryWrapper2 = new QueryWrapper<>();
dbDataQueryWrapper2.ge("time", sdf1.parse(s)).le("time", sdf1.parse(s1)).eq("datasource", 0).eq("sensorid", deviceid);
List<DbData> dbData2 = dbDataMapper.selectList(dbDataQueryWrapper2);
List<String> strings = DateUtil.getdayBetweenDates(start, end);
//遍历时间
for (String string : strings) {
......@@ -124,6 +121,9 @@ public class DbDataServiceImpl extends ServiceImpl<DbDataMapper, DbData> impleme
}
nameVos = DataUtil.dbdatanames(nameVos, subitem);
HashMap<String, Object> dealalarm = DataUtil.dealalarm(deviceid);
HashMap<String, String> noDan = ServiceUtil.getNoDan();
String unit = noDan.get(deviceid);
dataVo.setUnit(unit);
dataVo.setAlarm(dealalarm);
dataVo.setNames(nameVos);
dataVo.setDevid(deviceid);
......@@ -159,9 +159,7 @@ public class DbDataServiceImpl extends ServiceImpl<DbDataMapper, DbData> impleme
String end = map.get("end");
String s1 = end + " 23:59:59";
//获取时间范围的实时数据
List<DbData> dbData1 = dbDataMapper.dealmonth(deviceid, s, s1, 1);
//获取时间范围的人工巡检的数据
List<DbData> dbData2 = dbDataMapper.dealmonth(deviceid, s, s1, 0);
List<DbData> dbData1 = dbDataMapper.dealmonth(deviceid, s, s1);
List<String> strings = DateUtil.getWeekBetweenDates(start, end);
//遍历时间
for (String string : strings) {
......@@ -182,28 +180,17 @@ public class DbDataServiceImpl extends ServiceImpl<DbDataMapper, DbData> impleme
}
}
}
/* if (!dbData2.isEmpty()) {
for (DbData data2 : dbData2) {
String format = sdf.format(data2.getTime());
if (string.equals(format)) {
for (Field declaredField : data2.getClass().getDeclaredFields()) {
if (declaredField.getName().equals(dbdata)) {
hashMap.put("p_" + dbdata, Double.parseDouble((String) declaredField.get(data2)));
}
}
break;
}
}
}*/
Date parse = sdf1.parse(string + " 00:00:00");
result.setValues(hashMap);
String deal = deal(parse);
result.setDate(parse);
result.setDateUnit(string.split("-")[1] + "-" + string.split("-")[2]);
results.add(result);
}
nameVos = DataUtil.dbdatanames(nameVos, subitem);
HashMap<String, Object> dealalarm = DataUtil.dealalarm(deviceid);
HashMap<String, String> noDan = ServiceUtil.getNoDan();
String unit = noDan.get(deviceid);
dataVo.setUnit(unit);
dataVo.setAlarm(dealalarm);
dataVo.setNames(nameVos);
dataVo.setDevid(deviceid);
......@@ -240,9 +227,7 @@ public class DbDataServiceImpl extends ServiceImpl<DbDataMapper, DbData> impleme
String end = map.get("end");
String s1 = end + " 23:59:59";
//获取时间范围的实时数据
List<DbData> dbData1 = dbDataMapper.dealmonth(deviceid, s, s1, 1);
//获取时间范围的人工巡检的数据
List<DbData> dbData2 = dbDataMapper.dealmonth(deviceid, s, s1, 0);
List<DbData> dbData1 = dbDataMapper.dealmonth(deviceid, s, s1);
List<String> strings = DateUtil.getMonthBetweenDates(start, end);
//遍历时间
for (String string : strings) {
......@@ -263,19 +248,6 @@ public class DbDataServiceImpl extends ServiceImpl<DbDataMapper, DbData> impleme
}
}
}
/* if (!dbData2.isEmpty()) {
for (DbData data2 : dbData2) {
String format = sdf.format(data2.getTime());
if (string.equals(format)) {
for (Field declaredField : data2.getClass().getDeclaredFields()) {
if (declaredField.getName().equals(dbdata)) {
hashMap.put("p_" + dbdata, Double.parseDouble((String) declaredField.get(data2)));
}
}
break;
}
}
}*/
Date parse = sdf1.parse(string + " 00:00:00");
result.setValues(hashMap);
result.setDate(parse);
......@@ -284,6 +256,9 @@ public class DbDataServiceImpl extends ServiceImpl<DbDataMapper, DbData> impleme
}
nameVos = DataUtil.dbdatanames(nameVos, subitem);
HashMap<String, Object> dealalarm = DataUtil.dealalarm(deviceid);
HashMap<String, String> noDan = ServiceUtil.getNoDan();
String unit = noDan.get(deviceid);
dataVo.setUnit(unit);
dataVo.setAlarm(dealalarm);
dataVo.setNames(nameVos);
dataVo.setDevid(deviceid);
......@@ -310,6 +285,7 @@ public class DbDataServiceImpl extends ServiceImpl<DbDataMapper, DbData> impleme
long total = dbDataPage.getTotal();
//获取编码-名字map
HashMap<String, String> noName = ServiceUtil.getNoName(request);
HashMap<String, String> noDan = ServiceUtil.getNoDan(request);
//判断是否需要人工监测数据
String checkArtificial = ServiceUtil.checkArtificial(dataQueryCriteria);
if (checkArtificial != null) {
......@@ -319,6 +295,7 @@ public class DbDataServiceImpl extends ServiceImpl<DbDataMapper, DbData> impleme
List<ArtificialData> artificialDataList = ServiceUtil.artificialDataDeal(page, size, checkArtificial, dataQueryCriteria);
for (DbData record : records) {
record.setSensorname(noName.get(record.getSensorid()));
record.setDanwei(noDan.get(record.getSensorid()));
Date time = record.getTime();
for (ArtificialData artificialData : artificialDataList) {
boolean b = false;
......@@ -339,6 +316,7 @@ public class DbDataServiceImpl extends ServiceImpl<DbDataMapper, DbData> impleme
} else {
for (DbData record : records) {
record.setSensorname(noName.get(record.getSensorid()));
record.setDanwei(noDan.get(record.getSensorid()));
}
}
map.put("list", records);
......@@ -352,6 +330,9 @@ public class DbDataServiceImpl extends ServiceImpl<DbDataMapper, DbData> impleme
if (code == null) {
//获取当前尾矿库
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
QueryWrapper<Drybeachequipinfor> drybeachequipinforQueryWrapper = new QueryWrapper<>();
drybeachequipinforQueryWrapper.eq("devicetype", "1").eq("tailingid", tailInfoNo).orderByDesc("id");
Drybeachequipinfor drybeachequipinfor = drybeachequipinforMapper.selectList(drybeachequipinforQueryWrapper).get(0);
......@@ -362,7 +343,9 @@ public class DbDataServiceImpl extends ServiceImpl<DbDataMapper, DbData> impleme
List<DbData> dbData = dbDataMapper.selectList(dbDataQueryWrapper);
//获取编码-名
HashMap<String, String> noName = ServiceUtil.getNoName(request);
HashMap<String, String> noDan = ServiceUtil.getNoDan(request);
String sensorname = noName.get(dataQueryCriteria.getCode());
String danwei = noDan.get(dataQueryCriteria.getCode());
//封装处理数据
HashMap<String, List<Map>> realdata = ReadJsonFileUtil.getMap("realdata");
List<Map> dbdata = realdata.get("dbdata");
......@@ -393,12 +376,16 @@ public class DbDataServiceImpl extends ServiceImpl<DbDataMapper, DbData> impleme
imgDataVo.setLists(results);
imgDataVo.setSensorname(sensorname);
imgDataVo.setNames(dbdata);
imgDataVo.setDanwei(danwei);
return imgDataVo;
}
@Override
public List<RealDataVo> real(String equipno1, HttpServletRequest request) {
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
List<HashMap<String, Object>> reals = dbDataMapper.real(tailInfoNo);
HashMap<String, List<Map>> realdata = ReadJsonFileUtil.getMap("realdata");
Object keys1 = realdata.get("dbdata");
......@@ -433,21 +420,23 @@ public class DbDataServiceImpl extends ServiceImpl<DbDataMapper, DbData> impleme
List<DbData> dbdatas = (List<DbData>) pageall.get("list");
String checkArtificial = ServiceUtil.checkArtificial(dataQueryCriteria);
List<Map<String, Object>> list = new ArrayList<>();
for (DbData dbdata : dbdatas) {
Map<String, Object> map = new LinkedHashMap<>();
map.put("设备编号", dbdata.getSensorid());
map.put("设备名称", dbdata.getSensorname());
map.put("测量时间", dbdata.getTime());
map.put("干滩长度", dbdata.getLenth());
map.put("坡度角", dbdata.getAngle());
map.put("安全超高", dbdata.getSafeheight());
map.put("是否报警", dbdata.getState() == 0 ? "否" : "是");
if (checkArtificial != null) {
map.put("人工监测项", dbdata.getJcziitemname());
map.put("人工监测值", dbdata.getJcvalue());
map.put("人工监测时间", dbdata.getJctime());
if (ObjectUtils.isEmpty(dbdatas)) {
for (DbData dbdata : dbdatas) {
Map<String, Object> map = new LinkedHashMap<>();
map.put("设备编号", dbdata.getSensorid());
map.put("设备名称", dbdata.getSensorname());
map.put("测量时间", dbdata.getTime());
map.put("干滩长度", dbdata.getLenth());
map.put("坡度角", dbdata.getAngle());
map.put("安全超高", dbdata.getSafeheight());
map.put("是否报警", dbdata.getState() == 0 ? "否" : "是");
if (checkArtificial != null) {
map.put("人工监测项", dbdata.getJcziitemname());
map.put("人工监测值", dbdata.getJcvalue());
map.put("人工监测时间", dbdata.getJctime());
}
list.add(map);
}
list.add(map);
}
FileUtil.downloadExcel(list, "监测数据: 干滩", response);
}
......
......@@ -20,6 +20,7 @@ import me.zhengjie.gemho.x_datavo.data.ImgDataVo;
import me.zhengjie.utils.FileUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
......@@ -69,7 +70,7 @@ public class DmDataServiceImpl extends ServiceImpl<DmDataMapper, DmData> impleme
String s1 = end + ":59:59";
//获取时间范围的实时数据
QueryWrapper<DmData> dbDataQueryWrapper1 = new QueryWrapper<>();
dbDataQueryWrapper1.ge("time", sdf1.parse(s)).le("time", sdf1.parse(s1)).eq("datasource", 1).eq("sensorid", deviceid);
dbDataQueryWrapper1.ge("time", sdf1.parse(s)).le("time", sdf1.parse(s1)).eq("sensorid", deviceid);
List<DmData> dmData1 = dmDataMapper.selectList(dbDataQueryWrapper1);
//获取时间范围的人工巡检的数据
/* QueryWrapper<DmData> dbDataQueryWrapper2 = new QueryWrapper<>();
......@@ -121,6 +122,9 @@ public class DmDataServiceImpl extends ServiceImpl<DmDataMapper, DmData> impleme
results.add(result);
}
HashMap<String, Object> dealalarm = DataUtil.dealalarm(deviceid);
HashMap<String, String> noDan = ServiceUtil.getNoDan();
String unit = noDan.get(deviceid);
dataVo.setUnit(unit);
dataVo.setAlarm(dealalarm);
dataVo.setLists(results);
dataVo.setDevid(deviceid);
......@@ -160,7 +164,7 @@ public class DmDataServiceImpl extends ServiceImpl<DmDataMapper, DmData> impleme
String end = map.get("end");
String s1 = end + " 23:59:59";
//获取时间范围的实时数据
List<DmData> dmData1 = dmDataMapper.dealmonth(deviceid, s, s1, 1);
List<DmData> dmData1 = dmDataMapper.dealmonth(deviceid, s, s1);
//获取时间范围的人工巡检的数据
// List<DmData> dmData2 = dmDataMapper.dealmonth(deviceid, s, s1, 0);
List<String> strings = DateUtil.getWeekBetweenDates(start, end);
......@@ -211,6 +215,9 @@ public class DmDataServiceImpl extends ServiceImpl<DmDataMapper, DmData> impleme
results.add(result);
}
HashMap<String, Object> dealalarm = DataUtil.dealalarm(deviceid);
HashMap<String, String> noDan = ServiceUtil.getNoDan();
String unit = noDan.get(deviceid);
dataVo.setUnit(unit);
dataVo.setAlarm(dealalarm);
dataVo.setLists(results);
dataVo.setDevid(deviceid);
......@@ -248,7 +255,7 @@ public class DmDataServiceImpl extends ServiceImpl<DmDataMapper, DmData> impleme
String end = map.get("end");
String s1 = end + " 23:59:59";
//获取时间范围的实时数据
List<DmData> dmData1 = dmDataMapper.dealmonth(deviceid, s, s1, 1);
List<DmData> dmData1 = dmDataMapper.dealmonth(deviceid, s, s1);
//获取时间范围的人工巡检的数据
// List<DmData> dmData2 = dmDataMapper.dealmonth(deviceid, s, s1, 0);
List<String> strings = DateUtil.getMonthBetweenDates(start, end);
......@@ -296,6 +303,9 @@ public class DmDataServiceImpl extends ServiceImpl<DmDataMapper, DmData> impleme
results.add(result);
}
HashMap<String, Object> dealalarm = DataUtil.dealalarm(deviceid);
HashMap<String, String> noDan = ServiceUtil.getNoDan();
String unit = noDan.get(deviceid);
dataVo.setUnit(unit);
dataVo.setAlarm(dealalarm);
dataVo.setLists(results);
dataVo.setDevid(deviceid);
......@@ -320,6 +330,7 @@ public class DmDataServiceImpl extends ServiceImpl<DmDataMapper, DmData> impleme
List<DmData> records = dmDataPage.getRecords();
//获取编码-名字map
HashMap<String, String> noName = ServiceUtil.getNoName(request);
HashMap<String, String> noDan = ServiceUtil.getNoDan(request);
//处理人工监测数据
String checkArtificial = ServiceUtil.checkArtificial(dataQueryCriteria);
if (checkArtificial != null) {
......@@ -328,6 +339,7 @@ public class DmDataServiceImpl extends ServiceImpl<DmDataMapper, DmData> impleme
List<ArtificialData> artificialDataList = ServiceUtil.artificialDataDeal(page, size, checkArtificial, dataQueryCriteria);
for (DmData record : records) {
record.setSensorname(noName.get(record.getSensorid()));
record.setDanwei(noDan.get(record.getSensorid()));
Date time = record.getTime();
for (ArtificialData artificialData : artificialDataList) {
boolean b = false;
......@@ -348,6 +360,7 @@ public class DmDataServiceImpl extends ServiceImpl<DmDataMapper, DmData> impleme
} else {
for (DmData record : records) {
record.setSensorname(noName.get(record.getSensorid()));
record.setDanwei(noDan.get(record.getSensorid()));
}
}
map.put("list", records);
......@@ -358,6 +371,9 @@ public class DmDataServiceImpl extends ServiceImpl<DmDataMapper, DmData> impleme
@Override
public List<RealDataVo> real(String equipno1, HttpServletRequest request) {
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
List<HashMap<String, Object>> reals = dmDataMapper.real(tailInfoNo);
Map dbdata = ReadJsonFileUtil.getMap("realdata");
Object keys1 = dbdata.get("dmdata");
......@@ -391,6 +407,9 @@ public class DmDataServiceImpl extends ServiceImpl<DmDataMapper, DmData> impleme
if (code == null) {
//获取当前尾矿库编码
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
QueryWrapper<Drybeachequipinfor> drybeachequipinforQueryWrapper = new QueryWrapper<>();
drybeachequipinforQueryWrapper.eq("devicetype", "4").eq("tailingid", tailInfoNo).orderByDesc("id");
Drybeachequipinfor drybeachequipinfor = drybeachequipinforMapper.selectList(drybeachequipinforQueryWrapper).get(0);
......@@ -401,9 +420,11 @@ public class DmDataServiceImpl extends ServiceImpl<DmDataMapper, DmData> impleme
List<DmData> dmData = dmDataMapper.selectList(dmDataQueryWrapper);
//获取编码-名
HashMap<String, String> noName = ServiceUtil.getNoName(request);
HashMap<String, String> noDan = ServiceUtil.getNoDan(request);
String sensorname = noName.get(dataQueryCriteria.getCode());
String danwei = noDan.get(dataQueryCriteria.getCode());
//处理封装数据
ImgDataVo dmdata = ServiceUtil.deal("dmdata", sensorname, dmData);
ImgDataVo dmdata = ServiceUtil.deal("dmdata", sensorname, dmData, danwei);
return dmdata;
}
......@@ -425,15 +446,17 @@ public class DmDataServiceImpl extends ServiceImpl<DmDataMapper, DmData> impleme
List<DmData> list = (List<DmData>) pageall(dataQueryCriteria, request).get("list");
String checkArtificial = ServiceUtil.checkArtificial(dataQueryCriteria);
ArrayList<Map<String, Object>> maps = new ArrayList<>();
for (DmData dmData : list) {
Map<String, Object> map = new LinkedHashMap<>();
map.put("设备编号", dmData.getSensorid());
map.put("设备名称", dmData.getSensorname());
map.put("a轴变化量", dmData.getDispA());
map.put("b轴变化量", dmData.getDispB());
map.put("是否报警", dmData.getState() == 0 ? "否" : "是");
map.put("监测时间", dmData.getTime());
maps.add(map);
if (ObjectUtils.isEmpty(list)) {
for (DmData dmData : list) {
Map<String, Object> map = new LinkedHashMap<>();
map.put("设备编号", dmData.getSensorid());
map.put("设备名称", dmData.getSensorname());
map.put("a轴变化量", dmData.getDispA());
map.put("b轴变化量", dmData.getDispB());
map.put("是否报警", dmData.getState() == 0 ? "否" : "是");
map.put("监测时间", dmData.getTime());
maps.add(map);
}
}
FileUtil.downloadExcel(maps, "数据监测: 内部位移", response);
}
......
......@@ -21,6 +21,7 @@ import me.zhengjie.gemho.x_datavo.data.ImgDataVo;
import me.zhengjie.utils.FileUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
......@@ -75,7 +76,7 @@ public class MpDataServiceImpl extends ServiceImpl<MpDataMapper, MpData> impleme
List<String> strings = DateUtil.getdayBetweenDates(start, end);
//获取时间区间的实时数据
QueryWrapper<MpData> mpDataQueryWrapper1 = new QueryWrapper<>();
mpDataQueryWrapper1.ge("time", sdf1.parse(s)).le("time", sdf1.parse(s1)).eq("datasource", 1).eq("sensorid", deviceid);
mpDataQueryWrapper1.ge("time", sdf1.parse(s)).le("time", sdf1.parse(s1)).eq("sensorid", deviceid);
List<MpData> mpData1 = mpDataMapper.selectList(mpDataQueryWrapper1);
//获取时间区间的人工巡检数据
/* QueryWrapper<MpData> mpDataQueryWrapper2 = new QueryWrapper<MpData>();
......@@ -129,6 +130,9 @@ public class MpDataServiceImpl extends ServiceImpl<MpDataMapper, MpData> impleme
results.add(result);
}
HashMap<String, Object> dealalarm = DataUtil.dealalarm(deviceid);
HashMap<String, String> noDan = ServiceUtil.getNoDan();
String unit = noDan.get(deviceid);
dataVo.setUnit(unit);
dataVo.setAlarm(dealalarm);
dataVo.setNames(nameVos);
dataVo.setDevid(deviceid);
......@@ -171,7 +175,7 @@ public class MpDataServiceImpl extends ServiceImpl<MpDataMapper, MpData> impleme
String s1 = end + " 23:59:59";
List<String> weekBetweenDates = DateUtil.getWeekBetweenDates(start, end);
//获取时间区间的实时数据
List<MpData> mpData1 = mpDataMapper.dealmonth(deviceid, s, s1, 1);
List<MpData> mpData1 = mpDataMapper.dealmonth(deviceid, s, s1);
//获取时间区间的人工巡检数据
//List<MpData> mpData2 = mpDataMapper.dealmonth(deviceid, s, s1, 0);
for (String weekBetweenDate : weekBetweenDates) {
......@@ -222,6 +226,9 @@ public class MpDataServiceImpl extends ServiceImpl<MpDataMapper, MpData> impleme
results.add(result);
}
HashMap<String, Object> dealalarm = DataUtil.dealalarm(deviceid);
HashMap<String, String> noDan = ServiceUtil.getNoDan();
String unit = noDan.get(deviceid);
dataVo.setUnit(unit);
dataVo.setAlarm(dealalarm);
dataVo.setLists(results);
dataVo.setDevid(deviceid);
......@@ -263,7 +270,7 @@ public class MpDataServiceImpl extends ServiceImpl<MpDataMapper, MpData> impleme
String s1 = end + "23:59:59";
List<String> weekBetweenDates = DateUtil.getMonthBetweenDates(start, end);
//获取时间区间的实时数据
List<MpData> mpData1 = mpDataMapper.dealmonth(deviceid, s, s1, 1);
List<MpData> mpData1 = mpDataMapper.dealmonth(deviceid, s, s1);
//获取时间区间的人工巡检数据
//List<MpData> mpData2 = mpDataMapper.dealmonth(deviceid, s, s1, 0);
for (String weekBetweenDate : weekBetweenDates) {
......@@ -312,6 +319,9 @@ public class MpDataServiceImpl extends ServiceImpl<MpDataMapper, MpData> impleme
results.add(result);
}
HashMap<String, Object> dealalarm = DataUtil.dealalarm(deviceid);
HashMap<String, String> noDan = ServiceUtil.getNoDan();
String unit = noDan.get(deviceid);
dataVo.setUnit(unit);
dataVo.setAlarm(dealalarm);
dataVo.setLists(results);
dataVo.setDevid(deviceid);
......@@ -348,6 +358,7 @@ public class MpDataServiceImpl extends ServiceImpl<MpDataMapper, MpData> impleme
String checkArtificial = ServiceUtil.checkArtificial(dataQueryCriteria);
//获取编码-名字map
HashMap<String, String> noName = ServiceUtil.getNoName(request);
HashMap<String, String> noDan = ServiceUtil.getNoDan(request);
//处理人工巡检
if (checkArtificial != null) {
//获取所有的检测子项id 和 name的hashmap
......@@ -360,6 +371,7 @@ public class MpDataServiceImpl extends ServiceImpl<MpDataMapper, MpData> impleme
//
for (MpData record : records) {
record.setSensorname(noName.get(record.getSensorid()));
record.setDanwei(noDan.get(record.getSensorid()));
Date time = record.getTime();
for (ArtificialData artificialDataPageRecord : artificialDataPageRecords) {
Date time1 = artificialDataPageRecord.getTime();
......@@ -380,6 +392,7 @@ public class MpDataServiceImpl extends ServiceImpl<MpDataMapper, MpData> impleme
} else {
for (MpData record : records) {
record.setSensorname(noName.get(record.getSensorid()));
record.setDanwei(noDan.get(record.getSensorid()));
}
}
map.put("list", records);
......@@ -390,6 +403,9 @@ public class MpDataServiceImpl extends ServiceImpl<MpDataMapper, MpData> impleme
@Override
public List<RealDataVo> real(String equipno1, HttpServletRequest request) {
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
List<HashMap<String, Object>> reals = mpDataMapper.real(tailInfoNo);
Map dbdata = ReadJsonFileUtil.getMap("realdata");
Object keys1 = dbdata.get("mpdata");
......@@ -423,6 +439,9 @@ public class MpDataServiceImpl extends ServiceImpl<MpDataMapper, MpData> impleme
if (code == null) {
//获取当前尾矿库
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
QueryWrapper<Drybeachequipinfor> drybeachequipinforQueryWrapper = new QueryWrapper<>();
drybeachequipinforQueryWrapper.eq("devicetype", "3").eq("tailingid", tailInfoNo).orderByDesc("id");
Drybeachequipinfor drybeachequipinfor = drybeachequipinforMapper.selectList(drybeachequipinforQueryWrapper).get(0);
......@@ -433,9 +452,12 @@ public class MpDataServiceImpl extends ServiceImpl<MpDataMapper, MpData> impleme
List<MpData> mpData = mpDataMapper.selectList(mpDataQueryWrapper);
//获取编码-名
HashMap<String, String> noName = ServiceUtil.getNoName(request);
HashMap<String, String> noDan = ServiceUtil.getNoDan(request);
String sensorname = noName.get(dataQueryCriteria.getCode());
String danwei = noDan.get(dataQueryCriteria.getCode());
//处理封装数据
ImgDataVo mpdata = ServiceUtil.deal("mpdata1", sensorname, mpData);
ImgDataVo mpdata = ServiceUtil.deal("mpdata1", sensorname, mpData, danwei);
return mpdata;
}
......@@ -450,21 +472,23 @@ public class MpDataServiceImpl extends ServiceImpl<MpDataMapper, MpData> impleme
result = true;
}
ArrayList<Map<String, Object>> list = new ArrayList<>();
for (MpData mpDatum : mpData) {
Map<String, Object> map = new LinkedHashMap<>();
map.put("设备名称", mpDatum.getSensorname());
map.put("设备ID", mpDatum.getSensorid());
map.put("x变化量", mpDatum.getDispx());
map.put("y变化量", mpDatum.getDispy());
map.put("z变化量", mpDatum.getDisph());
map.put("是否报警", mpDatum.getState() == 0 ? "否" : "是");
map.put("监测时间", mpDatum.getTime());
if (result) {
map.put("人工监测项", mpDatum.getJcziitemname());
map.put("人工监测值", mpDatum.getJcvalue());
map.put("人工监测时间", mpDatum.getJctime());
if (ObjectUtils.isEmpty(mpData)) {
for (MpData mpDatum : mpData) {
Map<String, Object> map = new LinkedHashMap<>();
map.put("设备名称", mpDatum.getSensorname());
map.put("设备ID", mpDatum.getSensorid());
map.put("x变化量", mpDatum.getDispx());
map.put("y变化量", mpDatum.getDispy());
map.put("z变化量", mpDatum.getDisph());
map.put("是否报警", mpDatum.getState() == 0 ? "否" : "是");
map.put("监测时间", mpDatum.getTime());
if (result) {
map.put("人工监测项", mpDatum.getJcziitemname());
map.put("人工监测值", mpDatum.getJcvalue());
map.put("人工监测时间", mpDatum.getJctime());
}
list.add(map);
}
list.add(map);
}
FileUtil.downloadExcel(list, "监测数据: 表面位移", response);
}
......
......@@ -3,7 +3,10 @@ package me.zhengjie.gemho.service.data.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.SneakyThrows;
import me.zhengjie.gemho.entity.artificial.ArtificialData;
import me.zhengjie.gemho.entity.data.PslData;
import me.zhengjie.gemho.entity.tab.Drybeachequipinfor;
import me.zhengjie.gemho.mapper.data.PslDataMapper;
import me.zhengjie.gemho.mapper.tab.DrybeachequipinforMapper;
import me.zhengjie.gemho.service.data.PslDataService;
......@@ -12,10 +15,15 @@ import me.zhengjie.gemho.x_datavo.DataVo;
import me.zhengjie.gemho.x_datavo.NameVo;
import me.zhengjie.gemho.x_datavo.RealDataVo;
import me.zhengjie.gemho.x_datavo.Result;
import me.zhengjie.gemho.x_datavo.data.DataQueryCriteria;
import me.zhengjie.gemho.x_datavo.data.ImgDataVo;
import me.zhengjie.utils.FileUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Field;
import java.text.ParseException;
import java.text.SimpleDateFormat;
......@@ -110,6 +118,9 @@ public class PslDataServiceImpl extends ServiceImpl<PslDataMapper, PslData> impl
}
nameVos = DataUtil.psldatanames(nameVos, subitem);
HashMap<String, Object> dealalarm = DataUtil.dealalarm(deviceid);
HashMap<String, String> noDan = ServiceUtil.getNoDan();
String unit = noDan.get(deviceid);
dataVo.setUnit(unit);
dataVo.setAlarm(dealalarm);
dataVo.setDevid(deviceid);
dataVo.setNames(nameVos);
......@@ -148,7 +159,7 @@ public class PslDataServiceImpl extends ServiceImpl<PslDataMapper, PslData> impl
String s = start + " 00:00:00";
String s1 = end + " 23:59:59";
//获取时间区间的实时数据
List<PslData> pslData1 = pslDataMapper.dealmonth(deviceid, s, s1, 1);
List<PslData> pslData1 = pslDataMapper.dealmonth(deviceid, s, s1);
//获取时间区间的人工巡检的数据
//List<PslData> pslData2 = pslDataMapper.dealmonth(deviceid, s, s1, 0);
List<String> strings = DateUtil.getWeekBetweenDates(start, end);
......@@ -192,6 +203,9 @@ public class PslDataServiceImpl extends ServiceImpl<PslDataMapper, PslData> impl
}
nameVos = DataUtil.psldatanames(nameVos, subitem);
HashMap<String, Object> dealalarm = DataUtil.dealalarm(deviceid);
HashMap<String, String> noDan = ServiceUtil.getNoDan();
String unit = noDan.get(deviceid);
dataVo.setUnit(unit);
dataVo.setAlarm(dealalarm);
dataVo.setNames(nameVos);
dataVo.setDevid(deviceid);
......@@ -229,9 +243,7 @@ public class PslDataServiceImpl extends ServiceImpl<PslDataMapper, PslData> impl
String s = start + " 00:00:00";
String s1 = end + " 23:59:59";
//获取时间区间的实时数据
List<PslData> pslData1 = pslDataMapper.dealmonth(deviceid, s, s1, 1);
//获取时间区间的人工巡检的数据
List<PslData> pslData2 = pslDataMapper.dealmonth(deviceid, s, s1, 0);
List<PslData> pslData1 = pslDataMapper.dealmonth(deviceid, s, s1);
List<String> strings = DateUtil.getMonthBetweenDates(start, end);
for (String string : strings) {
Result result = new Result();
......@@ -251,19 +263,6 @@ public class PslDataServiceImpl extends ServiceImpl<PslDataMapper, PslData> impl
}
}
}
if (!pslData2.isEmpty()) {
for (PslData data2 : pslData2) {
String format = sdf.format(data2.getTime());
if (string.equals(format)) {
for (Field field : data2.getClass().getDeclaredFields()) {
if (psldata.equals(field.getName())) {
hashMap.put("p_" + psldata, Double.parseDouble((String) field.get(data2)));
}
}
break;
}
}
}
Date parse = sdf1.parse(string + " 00:00:00");
result.setDate(parse);
result.setValues(hashMap);
......@@ -272,6 +271,9 @@ public class PslDataServiceImpl extends ServiceImpl<PslDataMapper, PslData> impl
}
nameVos = DataUtil.psldatanames(nameVos, subitem);
HashMap<String, Object> dealalarm = DataUtil.dealalarm(deviceid);
HashMap<String, String> noDan = ServiceUtil.getNoDan();
String unit = noDan.get(deviceid);
dataVo.setUnit(unit);
dataVo.setAlarm(dealalarm);
dataVo.setDevid(deviceid);
dataVo.setNames(nameVos);
......@@ -286,20 +288,118 @@ public class PslDataServiceImpl extends ServiceImpl<PslDataMapper, PslData> impl
}
@Override
public HashMap<String, Object> pageall(String searchName, String searchValue, String limit, String timeSpace, String sort, long page, long size, String datasource) {
public HashMap<String, Object> pageall(DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
long page = dataQueryCriteria.getPage();
long size = dataQueryCriteria.getSize();
HashMap<String, Object> map = new HashMap<>();
QueryWrapper<PslData> pslDataQueryWrapper = new QueryWrapper<>();
ServiceUtil.dbquery(pslDataQueryWrapper, searchName, searchValue, limit, timeSpace, sort, datasource);
ServiceUtil.dbquery(pslDataQueryWrapper, dataQueryCriteria, request);
Page<PslData> pslDataPage = new Page<>(page + 1, size);
pslDataPage = pslDataMapper.selectPage(pslDataPage, pslDataQueryWrapper);
map.put("list", pslDataPage.getRecords());
List<PslData> records = pslDataPage.getRecords();
//获取设备编码 名称 map
HashMap<String, String> noName = ServiceUtil.getNoName(request);
HashMap<String, String> noDan = ServiceUtil.getNoDan(request);
//判断是否需要人工监测
String checkArtificial = ServiceUtil.checkArtificial(dataQueryCriteria);
if (checkArtificial != null) {
//获取jczx
HashMap<Integer, String> jczx = ServiceUtil.jczx();
//获取 监测点位和 设备的关系
HashMap<String, Integer> stringIntegerHashMap = ServiceUtil.artificialPoint();
//处理 监测点位数据
List<ArtificialData> artificialData = ServiceUtil.artificialDataDeal(page, size, checkArtificial, dataQueryCriteria);
for (PslData record : records) {
record.setSensorname(noName.get(record.getSensorid()));
record.setDanwei(noDan.get(record.getSensorid()));
Date time = record.getTime();
for (ArtificialData artificialDatum : artificialData) {
Date time1 = artificialDatum.getTime();
//比较两个时间是否在同一个小时内
boolean b = DateUtil.timeInterval(time, time1);
//判断当前设备是否绑定的监测点是否一致
boolean check = stringIntegerHashMap.get(record.getSensorid()) == artificialDatum.getPoint_id();
if (b && check) {
record.setJcziitemname(jczx.get(artificialDatum.getJczx_id()));
record.setJcvalue(artificialDatum.getValue());
record.setJctime(time1);
}
}
}
} else {
for (PslData record : records) {
record.setSensorname(noName.get(record.getSensorid()));
record.setDanwei(noDan.get(record.getSensorid()));
}
}
map.put("list", records);
map.put("total", pslDataPage.getTotal());
return map;
}
@Override
public ImgDataVo imgList(DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
String code = dataQueryCriteria.getCode();
if (code == null) {
//获取当前尾矿库
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
QueryWrapper<Drybeachequipinfor> drybeachequipinforQueryWrapper = new QueryWrapper<>();
drybeachequipinforQueryWrapper.eq("devicetype", "7").eq("tailingid", tailInfoNo).orderByDesc("id");
Drybeachequipinfor drybeachequipinfor = drybeachequipinforMapper.selectList(drybeachequipinforQueryWrapper).get(0);
dataQueryCriteria.setCode(drybeachequipinfor.getEquipno());
}
QueryWrapper<PslData> pslDataQueryWrapper = new QueryWrapper<>();
ServiceUtil.imgQuery(pslDataQueryWrapper, dataQueryCriteria);
List<PslData> pslData = pslDataMapper.selectList(pslDataQueryWrapper);
//获取编码-名
HashMap<String, String> noName = ServiceUtil.getNoName(request);
HashMap<String, String> noDan = ServiceUtil.getNoDan(request);
String sensorname = noName.get(dataQueryCriteria.getCode());
String danwei = noDan.get(dataQueryCriteria.getCode());
//处理封装数据
ImgDataVo mpdata = ServiceUtil.deal("psldata1", sensorname, pslData, danwei);
return mpdata;
}
@SneakyThrows
@Override
public void download(HttpServletResponse response, DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
List<PslData> wtData = (List<PslData>) pageall(dataQueryCriteria, request).get("list");
boolean result = false;
String checkArtificial = ServiceUtil.checkArtificial(dataQueryCriteria);
if (checkArtificial != null) {
result = true;
}
ArrayList<Map<String, Object>> list = new ArrayList<>();
if (ObjectUtils.isEmpty(wtData)) {
for (PslData pslDatum : wtData) {
Map<String, Object> map = new LinkedHashMap<>();
map.put("设备名称", pslDatum.getSensorname());
map.put("设备ID", pslDatum.getSensorid());
map.put("测量值", pslDatum.getPslvalue());
map.put("是否报警", pslDatum.getState() == 0 ? "否" : "是");
map.put("监测时间", pslDatum.getTime());
if (result) {
map.put("人工监测项", pslDatum.getJcziitemname());
map.put("人工监测值", pslDatum.getJcvalue());
map.put("人工监测时间", pslDatum.getJctime());
}
list.add(map);
}
}
FileUtil.downloadExcel(list, "监测数据: 排流量", response);
}
@Override
public List<RealDataVo> real(String equipno1, HttpServletRequest request) {
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
List<HashMap<String, Object>> reals = pslDataMapper.real(tailInfoNo);
Map dbdata = ReadJsonFileUtil.getMap("realdata");
Object keys1 = dbdata.get("psldata");
......
......@@ -3,7 +3,10 @@ package me.zhengjie.gemho.service.data.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.SneakyThrows;
import me.zhengjie.gemho.entity.artificial.ArtificialData;
import me.zhengjie.gemho.entity.data.RgData;
import me.zhengjie.gemho.entity.tab.Drybeachequipinfor;
import me.zhengjie.gemho.mapper.data.RgDataMapper;
import me.zhengjie.gemho.mapper.tab.DrybeachequipinforMapper;
import me.zhengjie.gemho.service.data.RgDataService;
......@@ -12,10 +15,16 @@ import me.zhengjie.gemho.x_datavo.DataVo;
import me.zhengjie.gemho.x_datavo.NameVo;
import me.zhengjie.gemho.x_datavo.RealDataVo;
import me.zhengjie.gemho.x_datavo.Result;
import me.zhengjie.gemho.x_datavo.data.DataQueryCriteria;
import me.zhengjie.gemho.x_datavo.data.ImgDataVo;
import me.zhengjie.utils.FileUtil;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
......@@ -126,6 +135,9 @@ public class RgDataServiceImpl extends ServiceImpl<RgDataMapper, RgData> impleme
nameVos.add(new NameVo().setKey("name1").setName("实时数据"));
nameVos.add(new NameVo().setKey("name2").setName("人工巡检数据"));
HashMap<String, Object> dealalarm = DataUtil.dealalarm(deviceid);
HashMap<String, String> noDan = ServiceUtil.getNoDan();
String unit = noDan.get(deviceid);
dataVo.setUnit(unit);
dataVo.setAlarm(dealalarm);
dataVo.setNames(nameVos);
dataVo.setRange("week");
......@@ -179,7 +191,7 @@ public class RgDataServiceImpl extends ServiceImpl<RgDataMapper, RgData> impleme
end = map.get("end");
Date starttime = sdf1.parse(start + " 00:00:00");
Date endtime = sdf1.parse(end + " 23:59:59");
rgDataQueryWrapper1.ge("time", starttime).le("time", endtime).eq("datasource", 1).eq("sensorid", deviceid);
rgDataQueryWrapper1.ge("time", starttime).le("time", endtime).eq("sensorid", deviceid);
List<RgData> rgData1 = rgDataMapper.selectList(rgDataQueryWrapper1);
//获取人工巡检的数据
/* QueryWrapper<RgData> rgDataQueryWrapper2 = new QueryWrapper<>();
......@@ -230,6 +242,9 @@ public class RgDataServiceImpl extends ServiceImpl<RgDataMapper, RgData> impleme
nameVos.add(new NameVo().setKey("name1").setName("实时数据"));
nameVos.add(new NameVo().setKey("name2").setName("人工巡检数据"));
HashMap<String, Object> dealalarm = DataUtil.dealalarm(deviceid);
HashMap<String, String> noDan = ServiceUtil.getNoDan();
String unit = noDan.get(deviceid);
dataVo.setUnit(unit);
dataVo.setAlarm(dealalarm);
dataVo.setNames(nameVos);
dataVo.setRange("month");
......@@ -245,20 +260,120 @@ public class RgDataServiceImpl extends ServiceImpl<RgDataMapper, RgData> impleme
}
@Override
public HashMap<String, Object> pageall(String searchName, String searchValue, String limit, String timeSpace, String sort, long page, long size, String datasource) {
public HashMap<String, Object> pageall(DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
long page = dataQueryCriteria.getPage();
long size = dataQueryCriteria.getSize();
HashMap<String, Object> map = new HashMap<>();
QueryWrapper<RgData> rgDataQueryWrapper = new QueryWrapper<>();
ServiceUtil.dbquery(rgDataQueryWrapper, searchName, searchValue, limit, timeSpace, sort, datasource);
ServiceUtil.dbquery(rgDataQueryWrapper, dataQueryCriteria, request);
Page<RgData> rgDataPage = new Page<>(page + 1, size);
rgDataPage = rgDataMapper.selectPage(rgDataPage, rgDataQueryWrapper);
map.put("list", rgDataPage.getRecords());
List<RgData> records = rgDataPage.getRecords();
//获取编号名字map
HashMap<String, String> noName = ServiceUtil.getNoName(request);
HashMap<String, String> noDan = ServiceUtil.getNoDan(request);
//判断是否需要处理人工巡检数据
String checkArtificial = ServiceUtil.checkArtificial(dataQueryCriteria);
if (checkArtificial != null) {
//获取 所需的map
HashMap<Integer, String> jczx = ServiceUtil.jczx();
HashMap<String, Integer> stringIntegerHashMap = ServiceUtil.artificialPoint();
List<ArtificialData> artificialData = ServiceUtil.artificialDataDeal(page, size, checkArtificial, dataQueryCriteria);
for (RgData record : records) {
record.setSensorname(noName.get(record.getSensorid()));
record.setDanwei(noDan.get(record.getSensorid()));
Date time = record.getTime();
for (ArtificialData artificialDataPageRecord : artificialData) {
Date time1 = artificialDataPageRecord.getTime();
boolean b = false;
//判断数据是否在同一小时内
if (time1 != null) {
b = DateUtil.timeInterval(time, time1);
}
//判断当前设备是否绑定的监测点是否一致
boolean check = stringIntegerHashMap.get(record.getSensorid()) == artificialDataPageRecord.getPoint_id();
if (b && check) {
record.setJcziitemname(jczx.get(artificialDataPageRecord.getJczx_id()));
record.setJcvalue(artificialDataPageRecord.getValue());
record.setJctime(time1);
}
}
}
} else {
for (RgData record : records) {
record.setSensorname(noName.get(record.getSensorid()));
record.setDanwei(noDan.get(record.getSensorid()));
}
}
map.put("list", records);
map.put("total", rgDataPage.getTotal());
return map;
}
@Override
public ImgDataVo imgList(DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
String code = dataQueryCriteria.getCode();
if (code == null) {
//获取当前尾矿库
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
QueryWrapper<Drybeachequipinfor> drybeachequipinforQueryWrapper = new QueryWrapper<>();
drybeachequipinforQueryWrapper.eq("devicetype", "6").eq("tailingid", tailInfoNo).orderByDesc("id");
Drybeachequipinfor drybeachequipinfor = drybeachequipinforMapper.selectList(drybeachequipinforQueryWrapper).get(0);
dataQueryCriteria.setCode(drybeachequipinfor.getEquipno());
}
QueryWrapper<RgData> rgDataQueryWrapper = new QueryWrapper<>();
ServiceUtil.rgImgQuery(rgDataQueryWrapper, dataQueryCriteria);
List<RgData> rgData = rgDataMapper.selectList(rgDataQueryWrapper);
//获取编码-名
HashMap<String, String> noName = ServiceUtil.getNoName(request);
HashMap<String, String> noDan = ServiceUtil.getNoDan(request);
String sensorname = noName.get(dataQueryCriteria.getCode());
String danwei = noDan.get(dataQueryCriteria.getCode());
//处理封装数据
ImgDataVo mpdata = ServiceUtil.deal("rgdata", sensorname, rgData, danwei);
return mpdata;
}
@SneakyThrows
@Override
public void download(HttpServletResponse response, DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
List<RgData> rgData = (List<RgData>) pageall(dataQueryCriteria, request).get("list");
boolean result = false;
String checkArtificial = ServiceUtil.checkArtificial(dataQueryCriteria);
if (checkArtificial != null) {
result = true;
}
ArrayList<Map<String, Object>> list = new ArrayList<>();
if (ObjectUtils.isEmpty(rgData)) {
for (RgData rgDatum : rgData) {
Map<String, Object> map = new LinkedHashMap<>();
map.put("设备名称", rgDatum.getSensorname());
map.put("设备ID", rgDatum.getSensorid());
map.put("降雨量", rgDatum.getRainfall());
map.put("是否报警", rgDatum.getState() == 0 ? "否" : "是");
map.put("监测时间", rgDatum.getTime());
if (result) {
map.put("人工监测项", rgDatum.getJcziitemname());
map.put("人工监测值", rgDatum.getJcvalue());
map.put("人工监测时间", rgDatum.getJctime());
}
list.add(map);
}
}
FileUtil.downloadExcel(list, "监测数据: 外坡比", response);
}
@Override
public List<RealDataVo> real(String equipno1, HttpServletRequest request) {
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
List<HashMap<String, Object>> reals = rgDataMapper.real(tailInfoNo);
Map dbdata = ReadJsonFileUtil.getMap("realdata");
Object keys1 = dbdata.get("rgdata");
......@@ -323,12 +438,8 @@ public class RgDataServiceImpl extends ServiceImpl<RgDataMapper, RgData> impleme
Date end = sdf1.parse(s1);
//获取符合条件的数据
QueryWrapper<RgData> rgDataQueryWrapper1 = new QueryWrapper<>();
rgDataQueryWrapper1.ge("time", start).le("time", end).eq("datasource", 1).eq("sensorid", deviceid);
rgDataQueryWrapper1.ge("time", start).le("time", end).eq("sensorid", deviceid);
List<RgData> rgData1 = rgDataMapper.selectList(rgDataQueryWrapper1);
//获取人工巡检数据
QueryWrapper<RgData> rgDataQueryWrapper2 = new QueryWrapper<>();
rgDataQueryWrapper2.ge("time", start).le("time", end).eq("datasource", 0).eq("sensorid", deviceid);
List<RgData> rgData2 = rgDataMapper.selectList(rgDataQueryWrapper2);
//获取时间区间内的所有时间
List<String> strings = DateUtil.getdayBetweenDates(start1, end1);
for (String string : strings) {
......@@ -370,6 +481,9 @@ public class RgDataServiceImpl extends ServiceImpl<RgDataMapper, RgData> impleme
nameVos.add(new NameVo().setKey("name1").setName("实时数据"));
nameVos.add(new NameVo().setKey("name2").setName("人工巡检数据"));
HashMap<String, Object> dealalarm = DataUtil.dealalarm(deviceid);
HashMap<String, String> noDan = ServiceUtil.getNoDan();
String unit = noDan.get(deviceid);
dataVo.setUnit(unit);
dataVo.setAlarm(dealalarm);
dataVo.setNames(nameVos);
dataVo.setRange("day");
......@@ -452,7 +566,7 @@ public class RgDataServiceImpl extends ServiceImpl<RgDataMapper, RgData> impleme
/* String s = "sasdfg";
String substring = s.substring(s.length() - 2, s.length() - 1);
System.out.println(s.substring(s.length() - 2, s.length()));*/
Date date = new Date();
/* Date date = new Date();
String s = "2022-01-8 23:23:23";
String[] arr = s.split("-");
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
......@@ -460,8 +574,11 @@ public class RgDataServiceImpl extends ServiceImpl<RgDataMapper, RgData> impleme
//instance.setTime(sdf1.parse(s));
instance.set(Integer.parseInt(arr[0]), Integer.parseInt(arr[1]) - 1, Integer.parseInt(arr[2]));
int i = instance.get(Calendar.DAY_OF_WEEK) - 1;
System.out.println(i);
System.out.println(i);*/
ArrayList<T> ts = null;
if (ObjectUtils.isEmpty(ts)){
System.out.println("ts = null");
}
}
......
......@@ -3,7 +3,10 @@ package me.zhengjie.gemho.service.data.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.SneakyThrows;
import me.zhengjie.gemho.entity.artificial.ArtificialData;
import me.zhengjie.gemho.entity.data.SlData;
import me.zhengjie.gemho.entity.tab.Drybeachequipinfor;
import me.zhengjie.gemho.mapper.data.SlDataMapper;
import me.zhengjie.gemho.mapper.tab.DrybeachequipinforMapper;
import me.zhengjie.gemho.service.data.SlDataService;
......@@ -12,10 +15,15 @@ import me.zhengjie.gemho.x_datavo.DataVo;
import me.zhengjie.gemho.x_datavo.NameVo;
import me.zhengjie.gemho.x_datavo.RealDataVo;
import me.zhengjie.gemho.x_datavo.Result;
import me.zhengjie.gemho.x_datavo.data.DataQueryCriteria;
import me.zhengjie.gemho.x_datavo.data.ImgDataVo;
import me.zhengjie.utils.FileUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Field;
import java.text.ParseException;
import java.text.SimpleDateFormat;
......@@ -71,7 +79,7 @@ public class SlDataServiceImpl extends ServiceImpl<SlDataMapper, SlData> impleme
String s1 = end + ":59:59";
//获取时间区间的实时数据
QueryWrapper<SlData> slDataQueryWrapper1 = new QueryWrapper<>();
slDataQueryWrapper1.ge("time", sdf1.parse(s)).le("time", sdf1.parse(s1)).eq("sensorid", deviceid).eq("datasource", 1);
slDataQueryWrapper1.ge("time", sdf1.parse(s)).le("time", sdf1.parse(s1)).eq("sensorid", deviceid);
List<SlData> slData1 = slDataMapper.selectList(slDataQueryWrapper1);
//获取时间区间的人工巡检
/* QueryWrapper<SlData> slDataQueryWrapper2 = new QueryWrapper<>();
......@@ -118,6 +126,9 @@ public class SlDataServiceImpl extends ServiceImpl<SlDataMapper, SlData> impleme
}
nameVos = DataUtil.sldatanames(nameVos, subitem);
HashMap<String, Object> dealalarm = DataUtil.dealalarm(deviceid);
HashMap<String, String> noDan = ServiceUtil.getNoDan();
String unit = noDan.get(deviceid);
dataVo.setUnit(unit);
dataVo.setAlarm(dealalarm);
dataVo.setDevid(deviceid);
dataVo.setLists(results);
......@@ -164,7 +175,7 @@ public class SlDataServiceImpl extends ServiceImpl<SlDataMapper, SlData> impleme
String s = start + " 00:00:00";
String s1 = end + " 23:59:59";
//获取时间区间的实时数据
List<SlData> slData1 = slDataMapper.dealmonth(deviceid, s, s1, 1);
List<SlData> slData1 = slDataMapper.dealmonth(deviceid, s, s1);
//获取时间区间的人工巡检
// List<SlData> slData2 = slDataMapper.dealmonth(deviceid, s, s1, 0);
//获取时间区间的时间
......@@ -209,6 +220,9 @@ public class SlDataServiceImpl extends ServiceImpl<SlDataMapper, SlData> impleme
}
nameVos = DataUtil.sldatanames(nameVos, subitem);
HashMap<String, Object> dealalarm = DataUtil.dealalarm(deviceid);
HashMap<String, String> noDan = ServiceUtil.getNoDan();
String unit = noDan.get(deviceid);
dataVo.setUnit(unit);
dataVo.setAlarm(dealalarm);
dataVo.setDevid(deviceid);
dataVo.setLists(results);
......@@ -255,7 +269,7 @@ public class SlDataServiceImpl extends ServiceImpl<SlDataMapper, SlData> impleme
String s = start + " 00:00:00";
String s1 = end + " 23:59:59";
//获取时间区间的实时数据
List<SlData> slData1 = slDataMapper.dealmonth(deviceid, s, s1, 1);
List<SlData> slData1 = slDataMapper.dealmonth(deviceid, s, s1);
//获取时间区间的人工巡检
//List<SlData> slData2 = slDataMapper.dealmonth(deviceid, s, s1, 0);
//获取时间区间的时间
......@@ -299,6 +313,9 @@ public class SlDataServiceImpl extends ServiceImpl<SlDataMapper, SlData> impleme
}
nameVos = DataUtil.sldatanames(nameVos, subitem);
HashMap<String, Object> dealalarm = DataUtil.dealalarm(deviceid);
HashMap<String, String> noDan = ServiceUtil.getNoDan();
String unit = noDan.get(deviceid);
dataVo.setUnit(unit);
dataVo.setAlarm(dealalarm);
dataVo.setDevid(deviceid);
dataVo.setLists(results);
......@@ -312,20 +329,118 @@ public class SlDataServiceImpl extends ServiceImpl<SlDataMapper, SlData> impleme
}
@Override
public HashMap<String, Object> pageall(String searchName, String searchValue, String limit, String timeSpace, String sort, long page, long size, String datasource) {
public HashMap<String, Object> pageall(DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
long page = dataQueryCriteria.getPage();
long size = dataQueryCriteria.getSize();
QueryWrapper<SlData> slDataQueryWrapper = new QueryWrapper<>();
ServiceUtil.dbquery(slDataQueryWrapper, searchName, searchValue, limit, timeSpace, sort, datasource);
ServiceUtil.dbquery(slDataQueryWrapper, dataQueryCriteria, request);
Page<SlData> slDataPage = new Page<>(page + 1, size);
slDataPage = slDataMapper.selectPage(slDataPage, slDataQueryWrapper);
List<SlData> records = slDataPage.getRecords();
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put("list", slDataPage.getRecords());
//获取设备编码 名称 map
HashMap<String, String> noName = ServiceUtil.getNoName(request);
HashMap<String, String> noDan = ServiceUtil.getNoDan(request);
//判断是否需要人工监测
String checkArtificial = ServiceUtil.checkArtificial(dataQueryCriteria);
if (checkArtificial != null) {
//获取jczx
HashMap<Integer, String> jczx = ServiceUtil.jczx();
//获取 监测点位和 设备的关系
HashMap<String, Integer> stringIntegerHashMap = ServiceUtil.artificialPoint();
//处理 监测点位数据
List<ArtificialData> artificialData = ServiceUtil.artificialDataDeal(page, size, checkArtificial, dataQueryCriteria);
for (SlData record : records) {
record.setSensorname(noName.get(record.getSensorid()));
record.setDanwei(noDan.get(record.getSensorid()));
Date time = record.getTime();
for (ArtificialData artificialDatum : artificialData) {
Date time1 = artificialDatum.getTime();
//比较两个时间是否在同一个小时内
boolean b = DateUtil.timeInterval(time, time1);
//判断当前设备是否绑定的监测点是否一致
boolean check = stringIntegerHashMap.get(record.getSensorid()) == artificialDatum.getPoint_id();
if (b && check) {
record.setJcziitemname(jczx.get(artificialDatum.getJczx_id()));
record.setJcvalue(artificialDatum.getValue());
record.setJctime(time1);
}
}
}
} else {
for (SlData record : records) {
record.setSensorname(noName.get(record.getSensorid()));
record.setDanwei(noDan.get(record.getSensorid()));
}
}
hashMap.put("list", records);
hashMap.put("total", slDataPage.getTotal());
return hashMap;
}
@Override
public ImgDataVo imgList(DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
String code = dataQueryCriteria.getCode();
if (code == null) {
//获取当前尾矿库
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
QueryWrapper<Drybeachequipinfor> drybeachequipinforQueryWrapper = new QueryWrapper<>();
drybeachequipinforQueryWrapper.eq("devicetype", "9").eq("tailingid", tailInfoNo).orderByDesc("id");
Drybeachequipinfor drybeachequipinfor = drybeachequipinforMapper.selectList(drybeachequipinforQueryWrapper).get(0);
dataQueryCriteria.setCode(drybeachequipinfor.getEquipno());
}
QueryWrapper<SlData> slDataQueryWrapper = new QueryWrapper<>();
ServiceUtil.imgQuery(slDataQueryWrapper, dataQueryCriteria);
List<SlData> pslData = slDataMapper.selectList(slDataQueryWrapper);
//获取编码-名
HashMap<String, String> noName = ServiceUtil.getNoName(request);
HashMap<String, String> noDan = ServiceUtil.getNoDan(request);
String sensorname = noName.get(dataQueryCriteria.getCode());
String danwei = noDan.get(dataQueryCriteria.getCode());
//处理封装数据
ImgDataVo mpdata = ServiceUtil.deal("sldata1", sensorname, pslData, danwei);
return mpdata;
}
@SneakyThrows
@Override
public void download(HttpServletResponse response, DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
List<SlData> slData = (List<SlData>) pageall(dataQueryCriteria, request).get("list");
boolean result = false;
String checkArtificial = ServiceUtil.checkArtificial(dataQueryCriteria);
if (checkArtificial != null) {
result = true;
}
ArrayList<Map<String, Object>> list = new ArrayList<>();
if (ObjectUtils.isEmpty(slData)) {
for (SlData slDatum : slData) {
Map<String, Object> map = new LinkedHashMap<>();
map.put("设备名称", slDatum.getSensorname());
map.put("设备ID", slDatum.getSensorid());
map.put("测量值", slDatum.getSllvalue());
map.put("是否报警", slDatum.getState() == 0 ? "否" : "是");
map.put("监测时间", slDatum.getTime());
if (result) {
map.put("人工监测项", slDatum.getJcziitemname());
map.put("人工监测值", slDatum.getJcvalue());
map.put("人工监测时间", slDatum.getJctime());
}
list.add(map);
}
}
FileUtil.downloadExcel(list, "监测数据: 渗流量", response);
}
@Override
public List<RealDataVo> real(String equipno1, HttpServletRequest request) {
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
List<RealDataVo> realDataVos = new ArrayList<>();
List<HashMap<String, Object>> reals = slDataMapper.real(tailInfoNo);
Map dbdata = ReadJsonFileUtil.getMap("realdata");
......
......@@ -20,6 +20,7 @@ import me.zhengjie.gemho.x_datavo.data.ImgDataVo;
import me.zhengjie.utils.FileUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
......@@ -68,7 +69,7 @@ public class StDataServiceImpl extends ServiceImpl<StDataMapper, StData> impleme
String s1 = end + ":59:59";
//获取时间区间的实时数据
QueryWrapper<StData> stDataQueryWrapper1 = new QueryWrapper<>();
stDataQueryWrapper1.ge("time", sdf1.parse(s)).le("time", sdf1.parse(s1)).eq("sensorid", deviceid).eq("datasource", 1);
stDataQueryWrapper1.ge("time", sdf1.parse(s)).le("time", sdf1.parse(s1)).eq("sensorid", deviceid);
List<StData> stData1 = stDataMapper.selectList(stDataQueryWrapper1);
//获取时间区间的人工巡检数据
/* QueryWrapper<StData> stDataQueryWrapper2 = new QueryWrapper<>();
......@@ -115,6 +116,9 @@ public class StDataServiceImpl extends ServiceImpl<StDataMapper, StData> impleme
}
nameVos = DataUtil.stdatanames(nameVos, subitem);
HashMap<String, Object> dealalarm = DataUtil.dealalarm(deviceid);
HashMap<String, String> noDan = ServiceUtil.getNoDan();
String unit = noDan.get(deviceid);
dataVo.setUnit(unit);
dataVo.setAlarm(dealalarm);
dataVo.setNames(nameVos);
dataVo.setDevid(deviceid);
......@@ -151,7 +155,7 @@ public class StDataServiceImpl extends ServiceImpl<StDataMapper, StData> impleme
String s = start + " 00:00:00";
String s1 = end + " 23:59:59";
//获取时间区间的实时数据
List<StData> stData1 = stDataMapper.dealmonth(deviceid, s, s1, 1);
List<StData> stData1 = stDataMapper.dealmonth(deviceid, s, s1);
//获取时间区间的人工巡检数据
//List<StData> stData2 = stDataMapper.dealmonth(deviceid, s, s1, 0);
//获取时间区间的时间
......@@ -196,6 +200,9 @@ public class StDataServiceImpl extends ServiceImpl<StDataMapper, StData> impleme
}
nameVos = DataUtil.stdatanames(nameVos, subitem);
HashMap<String, Object> dealalarm = DataUtil.dealalarm(deviceid);
HashMap<String, String> noDan = ServiceUtil.getNoDan();
String unit = noDan.get(deviceid);
dataVo.setUnit(unit);
dataVo.setAlarm(dealalarm);
dataVo.setNames(nameVos);
dataVo.setDevid(deviceid);
......@@ -232,7 +239,7 @@ public class StDataServiceImpl extends ServiceImpl<StDataMapper, StData> impleme
String s = start + " 00:00:00";
String s1 = end + " 23:59:59";
//获取时间区间的实时数据
List<StData> stData1 = stDataMapper.dealmonth(deviceid, s, s1, 1);
List<StData> stData1 = stDataMapper.dealmonth(deviceid, s, s1);
//获取时间区间的人工巡检数据
//List<StData> stData2 = stDataMapper.dealmonth(deviceid, s, s1, 0);
//获取时间区间的时间
......@@ -276,6 +283,9 @@ public class StDataServiceImpl extends ServiceImpl<StDataMapper, StData> impleme
}
nameVos = DataUtil.stdatanames(nameVos, subitem);
HashMap<String, Object> dealalarm = DataUtil.dealalarm(deviceid);
HashMap<String, String> noDan = ServiceUtil.getNoDan();
String unit = noDan.get(deviceid);
dataVo.setUnit(unit);
dataVo.setAlarm(dealalarm);
dataVo.setNames(nameVos);
dataVo.setDevid(deviceid);
......@@ -291,6 +301,9 @@ public class StDataServiceImpl extends ServiceImpl<StDataMapper, StData> impleme
@Override
public List<RealDataVo> real(String equipno1, HttpServletRequest request) {
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
List<HashMap<String, Object>> reals = stDataMapper.real(tailInfoNo);
Map dbdata = ReadJsonFileUtil.getMap("realdata");
Object keys1 = dbdata.get("stdata");
......@@ -331,6 +344,7 @@ public class StDataServiceImpl extends ServiceImpl<StDataMapper, StData> impleme
HashMap<String, Object> hashMap = new HashMap<>();
//获取编号名字map
HashMap<String, String> noName = ServiceUtil.getNoName(request);
HashMap<String, String> noDan = ServiceUtil.getNoDan(request);
//判断是否需要处理人工巡检数据
String checkArtificial = ServiceUtil.checkArtificial(dataQueryCriteria);
if (checkArtificial != null) {
......@@ -340,6 +354,7 @@ public class StDataServiceImpl extends ServiceImpl<StDataMapper, StData> impleme
List<ArtificialData> artificialData = ServiceUtil.artificialDataDeal(page, size, checkArtificial, dataQueryCriteria);
for (StData record : records) {
record.setSensorname(noName.get(record.getSensorid()));
record.setDanwei(noDan.get(record.getSensorid()));
Date time = record.getTime();
for (ArtificialData artificialDataPageRecord : artificialData) {
Date time1 = artificialDataPageRecord.getTime();
......@@ -360,6 +375,7 @@ public class StDataServiceImpl extends ServiceImpl<StDataMapper, StData> impleme
} else {
for (StData record : records) {
record.setSensorname(noName.get(record.getSensorid()));
record.setDanwei(noDan.get(record.getSensorid()));
}
}
hashMap.put("list", records);
......@@ -373,6 +389,9 @@ public class StDataServiceImpl extends ServiceImpl<StDataMapper, StData> impleme
if (code == null) {
//获取当前尾矿库
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
QueryWrapper<Drybeachequipinfor> drybeachequipinforQueryWrapper = new QueryWrapper<>();
drybeachequipinforQueryWrapper.eq("devicetype", "5").eq("tailingid", tailInfoNo).orderByDesc("id");
Drybeachequipinfor drybeachequipinfor = drybeachequipinforMapper.selectList(drybeachequipinforQueryWrapper).get(0);
......@@ -383,9 +402,11 @@ public class StDataServiceImpl extends ServiceImpl<StDataMapper, StData> impleme
List<StData> stData = stDataMapper.selectList(stDataQueryWrapper);
//获取编码-名
HashMap<String, String> noName = ServiceUtil.getNoName(request);
HashMap<String, String> noDan = ServiceUtil.getNoDan(request);
String sensorname = noName.get(dataQueryCriteria.getCode());
String danwei = noDan.get(dataQueryCriteria.getCode());
//处理封装数据
ImgDataVo mpdata = ServiceUtil.deal("stdata", sensorname, stData);
ImgDataVo mpdata = ServiceUtil.deal("stdata", sensorname, stData, danwei);
return mpdata;
}
......@@ -400,20 +421,22 @@ public class StDataServiceImpl extends ServiceImpl<StDataMapper, StData> impleme
result = true;
}
ArrayList<Map<String, Object>> list = new ArrayList<>();
for (StData stDatum : stData) {
Map<String, Object> map = new LinkedHashMap<>();
map.put("设备名称", stDatum.getSensorname());
map.put("设备ID", stDatum.getSensorid());
map.put("水位", stDatum.getStage());
map.put("埋深", stDatum.getDepth());
map.put("是否报警", stDatum.getState() == 0 ? "否" : "是");
map.put("监测时间", stDatum.getTime());
if (result) {
map.put("人工监测项", stDatum.getJcziitemname());
map.put("人工监测值", stDatum.getJcvalue());
map.put("人工监测时间", stDatum.getJctime());
if (ObjectUtils.isEmpty(stData)) {
for (StData stDatum : stData) {
Map<String, Object> map = new LinkedHashMap<>();
map.put("设备名称", stDatum.getSensorname());
map.put("设备ID", stDatum.getSensorid());
map.put("水位", stDatum.getStage());
map.put("埋深", stDatum.getDepth());
map.put("是否报警", stDatum.getState() == 0 ? "否" : "是");
map.put("监测时间", stDatum.getTime());
if (result) {
map.put("人工监测项", stDatum.getJcziitemname());
map.put("人工监测值", stDatum.getJcvalue());
map.put("人工监测时间", stDatum.getJctime());
}
list.add(map);
}
list.add(map);
}
FileUtil.downloadExcel(list, "监测数据: 表面位移", response);
}
......
......@@ -62,6 +62,9 @@ public class SzDataServiceImpl extends ServiceImpl<SzDataMapper, SzData> impleme
@Override
public ArrayList<HashMap<String, Object>> real(String deviceid, HttpServletRequest request) {
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
ArrayList<HashMap<String, Object>> real = szDataMapper.real(tailInfoNo);
/* //获取最新数据
DataVo dataVo = new DataVo();
......
package me.zhengjie.gemho.service.data.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.SneakyThrows;
import me.zhengjie.gemho.entity.artificial.ArtificialData;
import me.zhengjie.gemho.entity.data.WpbData;
import me.zhengjie.gemho.entity.tab.Drybeachequipinfor;
import me.zhengjie.gemho.mapper.data.WpbDataMapper;
import me.zhengjie.gemho.mapper.tab.DrybeachequipinforMapper;
import me.zhengjie.gemho.service.data.WpbDataService;
import me.zhengjie.gemho.util.*;
import me.zhengjie.gemho.x_datavo.DataVo;
import me.zhengjie.gemho.x_datavo.NameVo;
import me.zhengjie.gemho.x_datavo.RealDataVo;
import me.zhengjie.gemho.x_datavo.Result;
import me.zhengjie.gemho.x_datavo.data.DataQueryCriteria;
import me.zhengjie.gemho.x_datavo.data.ImgDataVo;
import me.zhengjie.utils.FileUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Field;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* <p>
* 外坡比数据 服务实现类
* </p>
*
* @author llj
* @since 2022-05-12
*/
@Service
public class WpbDataServiceImpl extends ServiceImpl<WpbDataMapper, WpbData> implements WpbDataService {
@Autowired
private WpbDataMapper wpbDataMapper;
@Autowired
private DrybeachequipinforMapper drybeachequipinforMapper;
@Override
public DataVo day(String date, String values, String deviceid, String subitem) {
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH");
//创建返回对象
DataVo dataVo = new DataVo();
ArrayList<Result> results = new ArrayList<>();
ArrayList<NameVo> nameVos = new ArrayList<>();
String wpbdata = DataUtil.wpbdata(subitem);
//获取最新的
// int sensorid = Integer.parseInt(deviceid);
QueryWrapper<WpbData> wpbDataQueryWrapper = new QueryWrapper<>();
wpbDataQueryWrapper.eq("sensorid", deviceid).orderByDesc("time").last("limit 1");
WpbData wpbData = wpbDataMapper.selectOne(wpbDataQueryWrapper);
if (wpbData != null) {
Date time = wpbData.getTime();
//获取起止时间
try {
HashMap<String, String> map = DateUtil.getdayDate(time);
String start = map.get("start");
String end = map.get("end");
String s = start + ":00:00";
String s1 = end + ":59:59";
//获取时间区间的实时数据
QueryWrapper<WpbData> wpbDataQueryWrapper1 = new QueryWrapper<>();
wpbDataQueryWrapper1.ge("time", sdf1.parse(s)).le("time", sdf1.parse(s1)).eq("sensorid", deviceid);
List<WpbData> wpbData1 = wpbDataMapper.selectList(wpbDataQueryWrapper1);
//获取时间区间的人工巡检数据
/* QueryWrapper<WpbData> wpbDataQueryWrapper2 = new QueryWrapper<>();
wpbDataQueryWrapper2.ge("time", sdf1.parse(s)).le("time", sdf1.parse(s1)).eq("sensorid", deviceid).eq("datasource", 0);
List<WpbData> wpbData2 = wpbDataMapper.selectList(wpbDataQueryWrapper2);*/
//获取时间区间
List<String> strings = DateUtil.getdayBetweenDates(start, end);
for (String string : strings) {
Result result = new Result();
HashMap<String, Double> hashMap = new HashMap<>();
hashMap.put(wpbdata, 0.0);
//hashMap.put("p_" + wpbdata, 0.0);
if (!wpbData1.isEmpty()) {
for (WpbData data1 : wpbData1) {
String format = sdf2.format(data1.getTime());
if (string.equals(format)) {
for (Field field : data1.getClass().getDeclaredFields()) {
if (wpbdata.equals(field.getName())) {
hashMap.put(wpbdata, Double.parseDouble((String) field.get(data1)));
}
}
}
}
}
/* if (!wpbData2.isEmpty()) {
for (WpbData data2 : wpbData2) {
String format = sdf2.format(data2.getTime());
if (string.equals(format)) {
for (Field field : data2.getClass().getDeclaredFields()) {
if (wpbdata.equals(field.getName())) {
hashMap.put("p_" + wpbdata, Double.parseDouble((String) field.get(data2)));
}
}
}
}
}*/
Date parse = sdf1.parse(string + ":00:00");
result.setDate(parse);
result.setValues(hashMap);
result.setDateUnit(string);
results.add(result);
}
nameVos = DataUtil.wpbdatanames(nameVos, subitem);
HashMap<String, Object> dealalarm = DataUtil.dealalarm(deviceid);
HashMap<String, String> noDan = ServiceUtil.getNoDan();
String unit = noDan.get(deviceid);
dataVo.setUnit(unit);
dataVo.setAlarm(dealalarm);
dataVo.setNames(nameVos);
dataVo.setLists(results);
dataVo.setDevid(deviceid);
} catch (Exception e) {
e.printStackTrace();
}
return dataVo;
}
return null;
}
@Override
public DataVo week(String date, String values, String deviceid, String subitem) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//创建返回对象
DataVo dataVo = new DataVo();
ArrayList<Result> results = new ArrayList<>();
ArrayList<NameVo> nameVos = new ArrayList<>();
String wpbdata = DataUtil.wpbdata(subitem);
//获取最新的
// int sensorid = Integer.parseInt(deviceid);
QueryWrapper<WpbData> wpbDataQueryWrapper = new QueryWrapper<>();
wpbDataQueryWrapper.eq("sensorid", deviceid).orderByDesc("time").last("limit 1");
WpbData wpbData = wpbDataMapper.selectOne(wpbDataQueryWrapper);
if (wpbData != null) {
Date time = wpbData.getTime();
//获取起止时间
try {
HashMap<String, String> map = DateUtil.getweekDate(time);
String start = map.get("start");
String end = map.get("end");
String s = start + " 00:00:00";
String s1 = end + " 23:59:59";
//获取时间区间的实时数据
List<WpbData> wpbData1 = wpbDataMapper.dealmonth(deviceid, s, s1);
//获取时间区间的人工巡检数据
//List<WpbData> wpbData2 = wpbDataMapper.dealmonth(deviceid, s, s1, 0);
//获取时间区间
List<String> strings = DateUtil.getWeekBetweenDates(start, end);
for (String string : strings) {
Result result = new Result();
HashMap<String, Double> hashMap = new HashMap<>();
//hashMap.put(wpbdata, 0.0);
//hashMap.put("p_" + wpbdata, 0.0);
if (!wpbData1.isEmpty()) {
for (WpbData data1 : wpbData1) {
String format = sdf.format(data1.getTime());
if (string.equals(format)) {
for (Field field : data1.getClass().getDeclaredFields()) {
if (wpbdata.equals(field.getName())) {
hashMap.put(wpbdata, Double.parseDouble((String) field.get(data1)));
}
}
}
}
}
/* if (!wpbData2.isEmpty()) {
for (WpbData data2 : wpbData2) {
String format = sdf.format(data2.getTime());
if (string.equals(format)) {
for (Field field : data2.getClass().getDeclaredFields()) {
if (wpbdata.equals(field.getName())) {
hashMap.put("p_" + wpbdata, Double.parseDouble((String) field.get(data2)));
}
}
}
}
}*/
Date parse = sdf1.parse(string + " 00:00:00");
result.setDate(parse);
result.setValues(hashMap);
result.setDateUnit(string.split("-")[1] + "-" + string.split("-")[2]);
results.add(result);
}
nameVos = DataUtil.wpbdatanames(nameVos, subitem);
HashMap<String, Object> dealalarm = DataUtil.dealalarm(deviceid);
HashMap<String, String> noDan = ServiceUtil.getNoDan();
String unit = noDan.get(deviceid);
dataVo.setUnit(unit);
dataVo.setAlarm(dealalarm);
dataVo.setNames(nameVos);
dataVo.setLists(results);
dataVo.setDevid(deviceid);
} catch (Exception e) {
e.printStackTrace();
}
return dataVo;
}
return null;
}
@Override
public DataVo month(String date, String values, String deviceid, String subitem) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//创建返回对象
DataVo dataVo = new DataVo();
ArrayList<Result> results = new ArrayList<>();
ArrayList<NameVo> nameVos = new ArrayList<>();
String wpbdata = DataUtil.wpbdata(subitem);
//获取最新的
// int sensorid = Integer.parseInt(deviceid);
QueryWrapper<WpbData> wpbDataQueryWrapper = new QueryWrapper<>();
wpbDataQueryWrapper.eq("sensorid", deviceid).orderByDesc("time").last("limit 1");
WpbData wpbData = wpbDataMapper.selectOne(wpbDataQueryWrapper);
if (wpbData != null) {
Date time = wpbData.getTime();
//获取起止时间
try {
HashMap<String, String> map = DateUtil.getmonthDate(time);
String start = map.get("start");
String end = map.get("end");
String s = start + " 00:00:00";
String s1 = end + " 23:59:59";
//获取时间区间的实时数据
List<WpbData> wpbData1 = wpbDataMapper.dealmonth(deviceid, s, s1);
//获取时间区间的人工巡检数据
//List<WpbData> wpbData2 = wpbDataMapper.dealmonth(deviceid, s, s1, 0);
//获取时间区间
List<String> strings = DateUtil.getMonthBetweenDates(start, end);
for (String string : strings) {
Result result = new Result();
HashMap<String, Double> hashMap = new HashMap<>();
hashMap.put(wpbdata, 0.0);
//hashMap.put("p_" + wpbdata, 0.0);
String value = null;
String p_value = null;
if (!wpbData1.isEmpty()) {
for (WpbData data1 : wpbData1) {
String format = sdf.format(data1.getTime());
if (string.equals(format)) {
for (Field field : data1.getClass().getDeclaredFields()) {
if (wpbdata.equals(field.getName())) {
hashMap.put(wpbdata, Double.parseDouble((String) field.get(data1)));
}
}
break;
}
}
}
/*if (!wpbData2.isEmpty()) {
for (WpbData data2 : wpbData2) {
String format = sdf.format(data2.getTime());
if (string.equals(format)) {
for (Field field : data2.getClass().getDeclaredFields()) {
if (wpbdata.equals(field.getName())) {
hashMap.put("p_" + wpbdata, Double.parseDouble((String) field.get(data2)));
}
}
break;
}
}
}*/
Date parse = sdf1.parse(string + " 00:00:00");
result.setDate(parse);
result.setValues(hashMap);
result.setDateUnit(string.split("-")[1] + "-" + string.split("-")[2]);
results.add(result);
}
nameVos = DataUtil.wpbdatanames(nameVos, subitem);
HashMap<String, Object> dealalarm = DataUtil.dealalarm(deviceid);
HashMap<String, String> noDan = ServiceUtil.getNoDan();
String unit = noDan.get(deviceid);
dataVo.setUnit(unit);
dataVo.setAlarm(dealalarm);
dataVo.setNames(nameVos);
dataVo.setLists(results);
dataVo.setDevid(deviceid);
} catch (Exception e) {
e.printStackTrace();
}
return dataVo;
}
return null;
}
@Override
public HashMap<String, Object> pageall(DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
long page = dataQueryCriteria.getPage();
long size = dataQueryCriteria.getSize();
QueryWrapper<WpbData> wpbDataQueryWrapper = new QueryWrapper<>();
ServiceUtil.dbquery(wpbDataQueryWrapper, dataQueryCriteria, request);
Page<WpbData> wpbDataPage = new Page<>(page + 1, size);
wpbDataPage = wpbDataMapper.selectPage(wpbDataPage, wpbDataQueryWrapper);
HashMap<String, Object> hashMap = new HashMap<>();
List<WpbData> records = wpbDataPage.getRecords();
//获取编号名字map
HashMap<String, String> noName = ServiceUtil.getNoName(request);
HashMap<String, String> noDan = ServiceUtil.getNoDan(request);
//判断是否需要处理人工巡检数据
String checkArtificial = ServiceUtil.checkArtificial(dataQueryCriteria);
if (checkArtificial != null) {
//获取 所需的map
HashMap<Integer, String> jczx = ServiceUtil.jczx();
HashMap<String, Integer> stringIntegerHashMap = ServiceUtil.artificialPoint();
List<ArtificialData> artificialData = ServiceUtil.artificialDataDeal(page, size, checkArtificial, dataQueryCriteria);
for (WpbData record : records) {
record.setSensorname(noName.get(record.getSensorid()));
record.setDanwei(noDan.get(record.getSensorid()));
Date time = record.getTime();
for (ArtificialData artificialDataPageRecord : artificialData) {
Date time1 = artificialDataPageRecord.getTime();
boolean b = false;
//判断数据是否在同一小时内
if (time1 != null) {
b = DateUtil.timeInterval(time, time1);
}
//判断当前设备是否绑定的监测点是否一致
boolean check = stringIntegerHashMap.get(record.getSensorid()) == artificialDataPageRecord.getPoint_id();
if (b && check) {
record.setJcziitemname(jczx.get(artificialDataPageRecord.getJczx_id()));
record.setJcvalue(artificialDataPageRecord.getValue());
record.setJctime(time1);
}
}
}
} else {
for (WpbData record : records) {
record.setSensorname(noName.get(record.getSensorid()));
record.setDanwei(noDan.get(record.getSensorid()));
}
}
hashMap.put("list", records);
hashMap.put("total", wpbDataPage.getTotal());
return hashMap;
}
@Override
public ImgDataVo imgList(DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
String code = dataQueryCriteria.getCode();
if (code == null) {
//获取当前尾矿库
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
QueryWrapper<Drybeachequipinfor> drybeachequipinforQueryWrapper = new QueryWrapper<>();
drybeachequipinforQueryWrapper.eq("devicetype", "16").eq("tailingid", tailInfoNo).orderByDesc("id");
Drybeachequipinfor drybeachequipinfor = drybeachequipinforMapper.selectList(drybeachequipinforQueryWrapper).get(0);
dataQueryCriteria.setCode(drybeachequipinfor.getEquipno());
}
QueryWrapper<WpbData> wpbDataQueryWrapper = new QueryWrapper<>();
ServiceUtil.imgQuery(wpbDataQueryWrapper, dataQueryCriteria);
List<WpbData> wpbData = wpbDataMapper.selectList(wpbDataQueryWrapper);
//获取编码-名
HashMap<String, String> noName = ServiceUtil.getNoName(request);
HashMap<String, String> noDan = ServiceUtil.getNoDan(request);
String sensorname = noName.get(dataQueryCriteria.getCode());
String danwei = noDan.get(dataQueryCriteria.getCode());
//处理封装数据
ImgDataVo mpdata = ServiceUtil.deal("wpbdata", sensorname, wpbData, danwei);
return mpdata;
}
@SneakyThrows
@Override
public void download(HttpServletResponse response, DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
List<WpbData> wpbData = (List<WpbData>) pageall(dataQueryCriteria, request).get("list");
boolean result = false;
String checkArtificial = ServiceUtil.checkArtificial(dataQueryCriteria);
if (checkArtificial != null) {
result = true;
}
ArrayList<Map<String, Object>> list = new ArrayList<>();
if (ObjectUtils.isEmpty(wpbData)) {
for (WpbData wpbDatum : wpbData) {
Map<String, Object> map = new LinkedHashMap<>();
map.put("设备名称", wpbDatum.getSensorname());
map.put("设备ID", wpbDatum.getSensorid());
map.put("监测值", wpbDatum.getValue());
map.put("是否报警", wpbDatum.getState() == 0 ? "否" : "是");
map.put("监测时间", wpbDatum.getTime());
if (result) {
map.put("人工监测项", wpbDatum.getJcziitemname());
map.put("人工监测值", wpbDatum.getJcvalue());
map.put("人工监测时间", wpbDatum.getJctime());
}
list.add(map);
}
}
FileUtil.downloadExcel(list, "监测数据: 外坡比", response);
}
@Override
public List<RealDataVo> real(String equipno1, HttpServletRequest request) {
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
List<HashMap<String, Object>> reals = wpbDataMapper.real(tailInfoNo);
Map dbdata = ReadJsonFileUtil.getMap("realdata");
Object keys1 = dbdata.get("wpbdata");
ArrayList<RealDataVo> realDataVos = new ArrayList<>();
for (int i = 0; i < reals.size(); i++) {
HashMap<String, Object> real = reals.get(i);
String sensorname = (String) real.get("sensorname");
String eqdanwei = (String) real.get("eqdanwei");
String equipno = (String) real.get("equipno");
String time = (String) real.get("time");
real.remove("time");
real.remove("equipno");
real.remove("sensorname");
real.remove("eqdanwei");
RealDataVo realDataVo = new RealDataVo();
realDataVo.setTime(time);
realDataVo.setEquipno(equipno);
realDataVo.setData(real);
realDataVo.setKeys(keys1);
realDataVo.setName(sensorname);
realDataVo.setType(equipno1);
realDataVo.setEqdanwei(eqdanwei);
realDataVos.add(realDataVo);
}
return realDataVos;
}
}
......@@ -20,6 +20,7 @@ import me.zhengjie.gemho.x_datavo.data.ImgDataVo;
import me.zhengjie.utils.FileUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
......@@ -69,7 +70,7 @@ public class WtDataServiceImpl extends ServiceImpl<WtDataMapper, WtData> impleme
String s1 = end + ":59:59";
//获取时间区间的实时数据
QueryWrapper<WtData> wtDataQueryWrapper1 = new QueryWrapper<>();
wtDataQueryWrapper1.ge("time", sdf1.parse(s)).le("time", sdf1.parse(s1)).eq("sensorid", deviceid).eq("datasource", 1);
wtDataQueryWrapper1.ge("time", sdf1.parse(s)).le("time", sdf1.parse(s1)).eq("sensorid", deviceid);
List<WtData> wtData1 = wtDataMapper.selectList(wtDataQueryWrapper1);
//获取时间区间的人工巡检数据
/* QueryWrapper<WtData> wtDataQueryWrapper2 = new QueryWrapper<>();
......@@ -115,6 +116,9 @@ public class WtDataServiceImpl extends ServiceImpl<WtDataMapper, WtData> impleme
}
nameVos = DataUtil.wtdatanames(nameVos, subitem);
HashMap<String, Object> dealalarm = DataUtil.dealalarm(deviceid);
HashMap<String, String> noDan = ServiceUtil.getNoDan();
String unit = noDan.get(deviceid);
dataVo.setUnit(unit);
dataVo.setAlarm(dealalarm);
dataVo.setNames(nameVos);
dataVo.setLists(results);
......@@ -152,7 +156,7 @@ public class WtDataServiceImpl extends ServiceImpl<WtDataMapper, WtData> impleme
String s = start + " 00:00:00";
String s1 = end + " 23:59:59";
//获取时间区间的实时数据
List<WtData> wtData1 = wtDataMapper.dealmonth(deviceid, s, s1, 1);
List<WtData> wtData1 = wtDataMapper.dealmonth(deviceid, s, s1);
//获取时间区间的人工巡检数据
//List<WtData> wtData2 = wtDataMapper.dealmonth(deviceid, s, s1, 0);
//获取时间区间
......@@ -196,6 +200,9 @@ public class WtDataServiceImpl extends ServiceImpl<WtDataMapper, WtData> impleme
}
nameVos = DataUtil.wtdatanames(nameVos, subitem);
HashMap<String, Object> dealalarm = DataUtil.dealalarm(deviceid);
HashMap<String, String> noDan = ServiceUtil.getNoDan();
String unit = noDan.get(deviceid);
dataVo.setUnit(unit);
dataVo.setAlarm(dealalarm);
dataVo.setNames(nameVos);
dataVo.setLists(results);
......@@ -233,7 +240,7 @@ public class WtDataServiceImpl extends ServiceImpl<WtDataMapper, WtData> impleme
String s = start + " 00:00:00";
String s1 = end + " 23:59:59";
//获取时间区间的实时数据
List<WtData> wtData1 = wtDataMapper.dealmonth(deviceid, s, s1, 1);
List<WtData> wtData1 = wtDataMapper.dealmonth(deviceid, s, s1);
//获取时间区间的人工巡检数据
//List<WtData> wtData2 = wtDataMapper.dealmonth(deviceid, s, s1, 0);
//获取时间区间
......@@ -279,6 +286,9 @@ public class WtDataServiceImpl extends ServiceImpl<WtDataMapper, WtData> impleme
}
nameVos = DataUtil.wtdatanames(nameVos, subitem);
HashMap<String, Object> dealalarm = DataUtil.dealalarm(deviceid);
HashMap<String, String> noDan = ServiceUtil.getNoDan();
String unit = noDan.get(deviceid);
dataVo.setUnit(unit);
dataVo.setAlarm(dealalarm);
dataVo.setNames(nameVos);
dataVo.setLists(results);
......@@ -303,6 +313,7 @@ public class WtDataServiceImpl extends ServiceImpl<WtDataMapper, WtData> impleme
List<WtData> records = wtDataPage.getRecords();
//获取编号名字map
HashMap<String, String> noName = ServiceUtil.getNoName(request);
HashMap<String, String> noDan = ServiceUtil.getNoDan(request);
//判断是否需要处理人工巡检数据
String checkArtificial = ServiceUtil.checkArtificial(dataQueryCriteria);
if (checkArtificial != null) {
......@@ -312,6 +323,7 @@ public class WtDataServiceImpl extends ServiceImpl<WtDataMapper, WtData> impleme
List<ArtificialData> artificialData = ServiceUtil.artificialDataDeal(page, size, checkArtificial, dataQueryCriteria);
for (WtData record : records) {
record.setSensorname(noName.get(record.getSensorid()));
record.setDanwei(noDan.get(record.getSensorid()));
Date time = record.getTime();
for (ArtificialData artificialDataPageRecord : artificialData) {
Date time1 = artificialDataPageRecord.getTime();
......@@ -333,6 +345,7 @@ public class WtDataServiceImpl extends ServiceImpl<WtDataMapper, WtData> impleme
} else {
for (WtData record : records) {
record.setSensorname(noName.get(record.getSensorid()));
record.setDanwei(noDan.get(record.getSensorid()));
}
}
hashMap.put("list", records);
......@@ -346,6 +359,9 @@ public class WtDataServiceImpl extends ServiceImpl<WtDataMapper, WtData> impleme
if (code == null) {
//获取当前尾矿库
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
QueryWrapper<Drybeachequipinfor> drybeachequipinforQueryWrapper = new QueryWrapper<>();
drybeachequipinforQueryWrapper.eq("devicetype", "2").eq("tailingid", tailInfoNo).orderByDesc("id");
Drybeachequipinfor drybeachequipinfor = drybeachequipinforMapper.selectList(drybeachequipinforQueryWrapper).get(0);
......@@ -356,9 +372,11 @@ public class WtDataServiceImpl extends ServiceImpl<WtDataMapper, WtData> impleme
List<WtData> wtData = wtDataMapper.selectList(wtDataQueryWrapper);
//获取编码-名
HashMap<String, String> noName = ServiceUtil.getNoName(request);
HashMap<String, String> noDan = ServiceUtil.getNoDan(request);
String danwei = noDan.get(dataQueryCriteria.getCode());
String sensorname = noName.get(dataQueryCriteria.getCode());
//处理封装数据
ImgDataVo mpdata = ServiceUtil.deal("wtdata", sensorname, wtData);
ImgDataVo mpdata = ServiceUtil.deal("wtdata", sensorname, wtData, danwei);
return mpdata;
}
......@@ -372,19 +390,21 @@ public class WtDataServiceImpl extends ServiceImpl<WtDataMapper, WtData> impleme
result = true;
}
ArrayList<Map<String, Object>> list = new ArrayList<>();
for (WtData wtDatum : wtData) {
Map<String, Object> map = new LinkedHashMap<>();
map.put("设备名称", wtDatum.getSensorname());
map.put("设备ID", wtDatum.getSensorid());
map.put("水位", wtDatum.getStage());
map.put("是否报警", wtDatum.getState() == 0 ? "否" : "是");
map.put("监测时间", wtDatum.getTime());
if (result) {
map.put("人工监测项", wtDatum.getJcziitemname());
map.put("人工监测值", wtDatum.getJcvalue());
map.put("人工监测时间", wtDatum.getJctime());
if (ObjectUtils.isEmpty(wtData)) {
for (WtData wtDatum : wtData) {
Map<String, Object> map = new LinkedHashMap<>();
map.put("设备名称", wtDatum.getSensorname());
map.put("设备ID", wtDatum.getSensorid());
map.put("水位", wtDatum.getStage());
map.put("是否报警", wtDatum.getState() == 0 ? "否" : "是");
map.put("监测时间", wtDatum.getTime());
if (result) {
map.put("人工监测项", wtDatum.getJcziitemname());
map.put("人工监测值", wtDatum.getJcvalue());
map.put("人工监测时间", wtDatum.getJctime());
}
list.add(map);
}
list.add(map);
}
FileUtil.downloadExcel(list, "监测数据: 库水位", response);
}
......@@ -392,6 +412,9 @@ public class WtDataServiceImpl extends ServiceImpl<WtDataMapper, WtData> impleme
@Override
public List<RealDataVo> real(String equipno1, HttpServletRequest request) {
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
List<HashMap<String, Object>> reals = wtDataMapper.real(tailInfoNo);
Map dbdata = ReadJsonFileUtil.getMap("realdata");
Object keys1 = dbdata.get("wtdata");
......
package me.zhengjie.gemho.service;
package me.zhengjie.gemho.service.dic;
import com.baomidou.mybatisplus.extension.service.IService;
import me.zhengjie.gemho.entity.DataBack;
import me.zhengjie.gemho.entity.dic.AlarmLevel;
/**
* <p>
......@@ -9,8 +9,8 @@ import me.zhengjie.gemho.entity.DataBack;
* </p>
*
* @author llj
* @since 2021-12-22
* @since 2022-05-05
*/
public interface TestService extends IService<DataBack> {
public interface IAlarmLevelService extends IService<AlarmLevel> {
}
package me.zhengjie.gemho.service.dic;
import com.baomidou.mybatisplus.extension.service.IService;
import me.zhengjie.gemho.entity.dic.AlarmState;
/**
* <p>
* 服务类
* </p>
*
* @author llj
* @since 2022-05-05
*/
public interface IAlarmStateService extends IService<AlarmState> {
}
package me.zhengjie.gemho.service.sys.impl;
package me.zhengjie.gemho.service.dic.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import me.zhengjie.gemho.entity.DataBack;
import me.zhengjie.gemho.mapper.TestMapper;
import me.zhengjie.gemho.service.TestService;
import me.zhengjie.gemho.entity.dic.AlarmLevel;
import me.zhengjie.gemho.mapper.dic.AlarmLevelMapper;
import me.zhengjie.gemho.service.dic.IAlarmLevelService;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* 服务实现类
* </p>
*
* @author llj
* @since 2021-12-22
* @since 2022-05-05
*/
@Service
public class TestServiceImpl extends ServiceImpl<TestMapper, DataBack> implements TestService {
public class AlarmLevelServiceImpl extends ServiceImpl<AlarmLevelMapper, AlarmLevel> implements IAlarmLevelService {
}
package me.zhengjie.gemho.service.dic.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import me.zhengjie.gemho.entity.dic.AlarmState;
import me.zhengjie.gemho.mapper.dic.AlarmStateMapper;
import me.zhengjie.gemho.service.dic.IAlarmStateService;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author llj
* @since 2022-05-05
*/
@Service
public class AlarmStateServiceImpl extends ServiceImpl<AlarmStateMapper, AlarmState> implements IAlarmStateService {
}
......@@ -25,7 +25,7 @@ public interface InsDataService extends IService<InsData> {
* @param dataQueryCriteria
* @return
*/
HashMap<String, Object> plist(DataQueryCriteria dataQueryCriteria,HttpServletRequest request);
HashMap<String, Object> plist(DataQueryCriteria dataQueryCriteria, HttpServletRequest request);
/**
......@@ -34,7 +34,7 @@ public interface InsDataService extends IService<InsData> {
* @param param 根据需要进行传值
* @return
*/
boolean add(InsData param,HttpServletRequest request);
boolean add(InsData param, HttpServletRequest request);
/**
* 修改
......@@ -42,7 +42,7 @@ public interface InsDataService extends IService<InsData> {
* @param param 根据需要进行传值
* @return
*/
boolean modify(InsData param,HttpServletRequest request);
boolean modify(InsData param, HttpServletRequest request);
/**
* 上传文件
......
package me.zhengjie.gemho.service.ins;
import me.zhengjie.gemho.entity.ins.InsProject;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.HashMap;
import me.zhengjie.gemho.entity.ins.InsProject;
import me.zhengjie.gemho.x_datavo.data.DataQueryCriteria;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.HashMap;
import java.util.List;
/**
* <p>
* 服务类
* <p>
* 服务类
* </p>
*
* @author llj
* @since 2022-04-29
*/
public interface InsProjectService extends IService<InsProject> {
/**
* 分页列表
* @param dataQueryCriteria
* @return
*/
HashMap<String, Object> plist(DataQueryCriteria dataQueryCriteria);
/**
* 新增
* @param param 根据需要进行传值
* @return
*
* @author llj
* @since 2022-04-29
*/
boolean add(InsProject param);
/**
* 修改
* @param param 根据需要进行传值
* @return
*/
boolean modify(InsProject param);
List listing();
}
public interface InsProjectService extends IService<InsProject> {
/**
* 分页列表
*
* @param dataQueryCriteria
* @return
*/
HashMap<String, Object> plist(DataQueryCriteria dataQueryCriteria);
/**
* 新增
*
* @param param 根据需要进行传值
* @return
*/
boolean add(InsProject param);
/**
* 修改
*
* @param param 根据需要进行传值
* @return
*/
boolean modify(InsProject param);
List listing();
}
......@@ -44,6 +44,9 @@ public class InsDataServiceImpl extends ServiceImpl<InsDataMapper, InsData> impl
public HashMap<String, Object> plist(DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
//获取当前尾矿库
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
long size = dataQueryCriteria.getSize();
long page = dataQueryCriteria.getPage();
String vague = dataQueryCriteria.getVague();
......@@ -80,6 +83,9 @@ public class InsDataServiceImpl extends ServiceImpl<InsDataMapper, InsData> impl
public boolean add(InsData param, HttpServletRequest request) {
//获取当前尾矿库
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return false;
}
param.setTailingid(tailInfoNo);
int result = insDataMapper.insert(param);
if (result > 0) {
......@@ -98,6 +104,9 @@ public class InsDataServiceImpl extends ServiceImpl<InsDataMapper, InsData> impl
public boolean modify(InsData param, HttpServletRequest request) {
//获取当前尾矿库
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return false;
}
param.setTailingid(tailInfoNo);
QueryWrapper<InsData> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id", param.getId());
......
......@@ -14,5 +14,5 @@ import java.util.HashMap;
* @since 2022-01-05
*/
public interface SysAreaService extends IService<SysArea> {
HashMap<String, Object>getall();
HashMap<String, Object> getall();
}
......@@ -18,7 +18,7 @@ import java.util.HashMap;
public interface SysSummaryService extends IService<SysSummary> {
HashMap<String, Object> getall(DataQueryCriteria dataQueryCriteria, HttpServletRequest request);
HashMap<String, Object> getcode(String mdcode,HttpServletRequest request);
HashMap<String, Object> getcode(String mdcode, HttpServletRequest request);
//判断是否是设备类型
boolean iszero(String type);
......
......@@ -18,10 +18,12 @@ var tab = '';
for (var i = 0; i < r.length; i++) {
if (i == 0) {
hdId = r[i].id;
tab = '<li id="active" class="active"><a data-toggle="tab" href="#" id="' + r[i].id + '">' + r[i].name + '</a></li>';
tab = '
<li id="active" class="active"><a data-toggle="tab" href="#" id="' + r[i].id + '">' + r[i].name + '</a></li>';
getFractures(hdId);
} else {
tab = '<li id="active"><a data-toggle="tab" href="#" id="' + r[i].id + '">' + r[i].name + '</a></li>';
tab = '
<li id="active"><a data-toggle="tab" href="#" id="' + r[i].id + '">' + r[i].name + '</a></li>';
}
$(".nav-tabs").append(tab);
}
......@@ -62,7 +64,8 @@ getChartData(hdId, dmId);
*/
function createChartBox() {
$("#charts").empty();
var box = '<div id="box1" class="col-md-12 chartBox" style=" height: 585px;"></div>';
var box = '
<div id="box1" class="col-md-12 chartBox" style=" height: 585px;"></div>';
$("#charts").append(box);
}
......@@ -85,9 +88,11 @@ var tab = '';
for (var i = 0; i < r.length; i++) {
if (i == 0) {
dmId = r[i].id;
tab = '<li id="active" class="active"><a data-toggle="tab" href="#" id="' + r[i].id + '">' + r[i].name + '</a></li>';
tab = '
<li id="active" class="active"><a data-toggle="tab" href="#" id="' + r[i].id + '">' + r[i].name + '</a></li>';
} else {
tab = '<li id="active"><a data-toggle="tab" href="#" id="' + r[i].id + '">' + r[i].name + '</a></li>';
tab = '
<li id="active"><a data-toggle="tab" href="#" id="' + r[i].id + '">' + r[i].name + '</a></li>';
}
$(".nav-stacked").append(tab);
}
......
......@@ -25,7 +25,7 @@ public class SysAreaServiceImpl extends ServiceImpl<SysAreaMapper, SysArea> impl
@Override
public HashMap<String, Object> getall() {
//List<SysArea> getall = sysAreaMapper.getall();
// System.out.println(JSONObject.toJSONString(getall));
// System.out.println(JSONObject.toJSONString(getall));
return null;
}
}
......@@ -11,6 +11,7 @@ import me.zhengjie.gemho.mapper.sys.SysSelectMapper;
import me.zhengjie.gemho.mapper.sys.SysSummaryMapper;
import me.zhengjie.gemho.mapper.sys.SysViewsMapper;
import me.zhengjie.gemho.service.sys.SysSelectService;
import me.zhengjie.gemho.util.TailNoForInfoUtil;
import me.zhengjie.modules.security.service.OnlineUserService;
import me.zhengjie.utils.SecurityUtils;
import org.apache.commons.lang3.StringUtils;
......@@ -49,13 +50,16 @@ public class SysSelectServiceImpl extends ServiceImpl<SysSelectMapper, SysSelect
try {
//根据当前登录用户获取 尾矿库编码
String username = SecurityUtils.getCurrentUser().getUsername();
String tailingno = onlineUserService.gettailno(username,request);
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return false;
}
List ids = (List) map.get("values");
Object[] objects = ids.toArray();
String idss = StringUtils.join(objects, ",");
Integer areid = (Integer) map.get("mdcode");
QueryWrapper<SysSelect> sysSelectQueryWrapper = new QueryWrapper<>();
sysSelectQueryWrapper.eq("mdcode", areid.toString()).eq("tailno", tailingno);
sysSelectQueryWrapper.eq("mdcode", areid.toString()).eq("tailno", tailInfoNo);
int delete = sysSelectMapper.delete(sysSelectQueryWrapper);
String selsql = "select id,title from sys_summary where id in (" + idss + ")";
List<Map<String, Object>> mapList = sysSummaryMapper.getall(selsql);
......@@ -69,7 +73,7 @@ public class SysSelectServiceImpl extends ServiceImpl<SysSelectMapper, SysSelect
value.add(id);
value.add("'" + title + "'");
value.add(mdcode);
value.add(tailingno);
value.add(tailInfoNo);
String s = "(" + StringUtils.join(value.toArray(), ",") + ")";
values2.add(s);
}
......@@ -106,8 +110,11 @@ public class SysSelectServiceImpl extends ServiceImpl<SysSelectMapper, SysSelect
@Override
public List<SysArea> visual(HttpServletRequest request) {
String username = SecurityUtils.getCurrentUser().getUsername();
String tailingno = onlineUserService.gettailno(username,request);
List<Children> childrens = sysSelectMapper.getchildren(tailingno);
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
List<Children> childrens = sysSelectMapper.getchildren(tailInfoNo);
HashMap<Integer, ArrayList<Children>> map = new HashMap<>();
for (Children children : childrens) {
if (map.containsKey(children.getMdcode())) {
......
......@@ -12,6 +12,7 @@ import me.zhengjie.gemho.mapper.sys.SysViewsMapper;
import me.zhengjie.gemho.mapper.tab.DrybeachequipinforMapper;
import me.zhengjie.gemho.mapper.tab.UserTailponMapper;
import me.zhengjie.gemho.service.sys.SysSummaryService;
import me.zhengjie.gemho.util.TailNoForInfoUtil;
import me.zhengjie.gemho.x_datavo.data.DataQueryCriteria;
import me.zhengjie.modules.security.service.OnlineUserService;
import me.zhengjie.utils.SecurityUtils;
......@@ -67,16 +68,18 @@ public class SysSummaryServiceImpl extends ServiceImpl<SysSummaryMapper, SysSumm
Page<SysSummary> sysSummaryPage2 = new Page<SysSummary>(page + 1, size);
QueryWrapper<SysSummary> sysSummaryQueryWrapper = new QueryWrapper<>();
//获取当前登录用户,获取尾矿库编号
String username = SecurityUtils.getCurrentUser().getUsername();
String tailingno = onlineUserService.gettailno(username,request);
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
Page<SysSummary> getbyeqno = null;
//根据设备编号获取相关的检测项
//sysSummaryQueryWrapper.in("deviceid", getno);
//sysSummaryQueryWrapper.orderByDesc("createtime");
if (searchValue != null) {
getbyeqno = sysSummaryMapper.getbyeqnobyseach(sysSummaryPage, tailingno, searchValue);
getbyeqno = sysSummaryMapper.getbyeqnobyseach(sysSummaryPage, tailInfoNo, searchValue);
} else {
getbyeqno = sysSummaryMapper.getbyeqno(sysSummaryPage, tailingno);
getbyeqno = sysSummaryMapper.getbyeqno(sysSummaryPage, tailInfoNo);
}
//Page<SysSummary> getbyeqno1 = sysSummaryMapper.getbyeqno1(sysSummaryPage1, tailingno);
//Page<SysSummary> getbyeqno2 = sysSummaryMapper.getbyeqno2(sysSummaryPage2, tailingno);
......@@ -95,22 +98,25 @@ public class SysSummaryServiceImpl extends ServiceImpl<SysSummaryMapper, SysSumm
}
@Override
public HashMap<String, Object> getcode(String mdcode,HttpServletRequest request) {
public HashMap<String, Object> getcode(String mdcode, HttpServletRequest request) {
//根据当前登录用户获取 尾矿库编码
String username = SecurityUtils.getCurrentUser().getUsername();
String tailingno = onlineUserService.gettailno(username,request);
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
List<Integer> getcode = new ArrayList<>();
if (mdcode != null) {
List<Integer> sumids = sysSelectMapper.getcode(mdcode, tailingno);
List<Integer> sumids = sysSelectMapper.getcode(mdcode, tailInfoNo);
getcode.addAll(sumids);
}
HashMap<String, Object> hashMap = new HashMap<>();
String areaid = sysViewsMapper.getAreaid(mdcode);
List<Map<String, Object>> uncode = null;
if ("b2a_2a".equals(areaid)) {
uncode = sysSummaryMapper.getUncodem(tailingno);
uncode = sysSummaryMapper.getUncodem(tailInfoNo);
} else {
uncode = sysSummaryMapper.getUncode(tailingno);
uncode = sysSummaryMapper.getUncode(tailInfoNo);
}
hashMap.put("select", getcode);
hashMap.put("list", uncode);
......
......@@ -9,8 +9,10 @@ import me.zhengjie.gemho.mapper.sys.SysSubitemMapper;
import me.zhengjie.gemho.mapper.sys.SysTypeMapper;
import me.zhengjie.gemho.mapper.sys.SysValueMapper;
import me.zhengjie.gemho.mapper.tab.DrybeachequipinforMapper;
import me.zhengjie.gemho.mapper.tab.JrxDissectMapper;
import me.zhengjie.gemho.mapper.tab.MonitorvideoMapper;
import me.zhengjie.gemho.service.sys.SysTypeService;
import me.zhengjie.gemho.util.TailNoForInfoUtil;
import me.zhengjie.gemho.x_datavo.sys.*;
import me.zhengjie.modules.security.service.OnlineUserService;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -28,6 +30,8 @@ import java.util.ArrayList;
*/
@Service
public class SysTypeServiceImpl extends ServiceImpl<SysTypeMapper, SysType> implements SysTypeService {
@Autowired
private JrxDissectMapper jrxDissectMapper;
@Autowired
private SysSubitemMapper sysSubitemMapper;
@Autowired
......@@ -90,6 +94,13 @@ public class SysTypeServiceImpl extends ServiceImpl<SysTypeMapper, SysType> impl
} else {
sysVo.setMonitor(monitorvideo);
}
} else if (sysType.getTypeno().equals("t_17")) {
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo();
if (tailInfoNo == null) {
return null;
}
ArrayList<TypeVo> getsubs = jrxDissectMapper.getsubs(tailInfoNo);
sysVo.setSubitem(getsubs);
} else {
typeVos = sysSubitemMapper.getsubs(sysType.getCode());
sysVo.setSubitem(typeVos);
......
......@@ -19,7 +19,7 @@ import java.util.List;
* @since 2021-12-22
*/
public interface DrybeachequipinforService extends IService<Drybeachequipinfor> {
HashMap<String, Object> pageall(DataQueryCriteria dataQueryCriteria,HttpServletRequest request);
HashMap<String, Object> pageall(DataQueryCriteria dataQueryCriteria, HttpServletRequest request);
boolean jcbj(String equipname);
......@@ -63,4 +63,6 @@ public interface DrybeachequipinforService extends IService<Drybeachequipinfor>
List<DrybeachequipinforVo> sensorList(String code, HttpServletRequest request);
List<DrybeachequipinforVo> pointDrys(HttpServletRequest request);
boolean enforceOnline(HashMap<String, String> map);
}
package me.zhengjie.gemho.service.tab;
import com.baomidou.mybatisplus.extension.service.IService;
import me.zhengjie.gemho.entity.tab.JrxSteps;
import me.zhengjie.gemho.x_datavo.data.DataQueryCriteria;
import me.zhengjie.gemho.x_datavo.tab.visual.JrxStepsListVo;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author llj
* @since 2022-05-10
*/
public interface IJrxStepsService extends IService<JrxSteps> {
/**
* 分页列表
*
* @param dataQueryCriteria
* @return
*/
HashMap<String, Object> plist(DataQueryCriteria dataQueryCriteria, HttpServletRequest request);
/**
* 新增
*
* @param param 根据需要进行传值
* @return
*/
boolean add(JrxSteps param, HttpServletRequest request);
/**
* 修改
*
* @param param 根据需要进行传值
* @return
*/
boolean modify(JrxSteps param, HttpServletRequest request);
List<JrxStepsListVo> stepsList();
}
package me.zhengjie.gemho.service.tab;
import com.baomidou.mybatisplus.extension.service.IService;
import me.zhengjie.gemho.entity.tab.JrxDissect;
import me.zhengjie.gemho.x_datavo.data.DataQueryCriteria;
import me.zhengjie.gemho.x_datavo.data.JrxQueryCriteria;
import me.zhengjie.gemho.x_datavo.tab.visual.JrxDissectVisualVO;
import me.zhengjie.gemho.x_datavo.tab.visual.JrxStepsListVo;
import java.util.HashMap;
import java.util.List;
/**
* <p>
* 浸润线坡面 服务类
* </p>
*
* @author llj
* @since 2022-05-13
*/
public interface JrxDissectService extends IService<JrxDissect> {
/**
* 浸润线坡面分页列表
*
* @param dataQueryCriteria
* @return
*/
HashMap<String, Object> plist(DataQueryCriteria dataQueryCriteria);
/**
* 浸润线坡面新增
*
* @param param 根据需要进行传值
* @return
*/
boolean add(JrxDissect param);
/**
* 浸润线坡面修改
*
* @param param 根据需要进行传值
* @return
*/
boolean modify(JrxDissect param);
JrxDissectVisualVO visual(JrxQueryCriteria jrxQueryCriteria);
List<JrxStepsListVo> stepsList();
}
package me.zhengjie.gemho.service.tab;
import com.baomidou.mybatisplus.extension.service.IService;
import me.zhengjie.gemho.entity.tab.JrxWater;
import me.zhengjie.gemho.x_datavo.data.DataQueryCriteria;
import java.util.HashMap;
/**
* <p>
* 浸润线坡面水区 服务类
* </p>
*
* @author llj
* @since 2022-05-13
*/
public interface JrxWaterService extends IService<JrxWater> {
/**
* 浸润线坡面水区分页列表
*
* @param dataQueryCriteria
* @return
*/
HashMap<String, Object> plist(DataQueryCriteria dataQueryCriteria);
/**
* 浸润线坡面水区新增
*
* @param param 根据需要进行传值
* @return
*/
boolean add(JrxWater param);
/**
* 浸润线坡面水区修改
*
* @param param 根据需要进行传值
* @return
*/
boolean modify(JrxWater param);
}
......@@ -5,7 +5,7 @@ import me.zhengjie.gemho.entity.tab.Monitorvideo;
/**
* <p>
* 服务类
* 服务类
* </p>
*
* @author llj
......
......@@ -33,7 +33,7 @@ public interface TabAbnormalService extends IService<Abnormal> {
*
* @return
*/
List<HashMap<String, Object>> statistics(String date,HttpServletRequest request);
List<HashMap<String, Object>> statistics(String date, HttpServletRequest request);
/**
* 未解除报警数量统计
......
......@@ -37,6 +37,7 @@ public interface TailpondinforService extends IService<Tailpondinfor> {
/**
* 获取大屏标题
*
* @return
*/
String getScreenTitle(HttpServletRequest request);
......@@ -44,5 +45,7 @@ public interface TailpondinforService extends IService<Tailpondinfor> {
/**
* 修改大屏标题
*/
void updateTitle(String title,HttpServletRequest request);
void updateTitle(String title, HttpServletRequest request);
boolean removeTail(HashMap<String, String> map);
}
......@@ -15,5 +15,5 @@ import java.util.HashMap;
* @since 2022-02-11
*/
public interface UserTailponService extends IService<UserTailpon> {
ArrayList<UserTailpon> add(String username,ArrayList<HashMap<String, String>> maps);
ArrayList<UserTailpon> add(String username, ArrayList<HashMap<String, String>> maps);
}
......@@ -81,7 +81,7 @@ public class DrybeachequipinforServiceImpl extends ServiceImpl<Drybeachequipinfo
@Override
public HashMap<String, Integer> getdyinfo(HttpServletRequest request) {
/* String tailInfoNo = TailNoForInfoUtil.getTailInfoNo();
/* String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);if(tailInfoNo==null){return null;}
int onlinecount = 0;
ArrayList<Integer> getonlinecount = drybeachequipinforMapper.getonlinecount(tailInfoNo);
for (Integer integer : getonlinecount) {
......@@ -91,6 +91,9 @@ public class DrybeachequipinforServiceImpl extends ServiceImpl<Drybeachequipinfo
int unlinecount = getallcount - onlinecount;*/
//获取不在线数量
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
Integer unlinecount = drybeachequipinforMapper.dryUnCount(tailInfoNo);
//获取所有设备
int getallcount = drybeachequipinforMapper.getallcount(tailInfoNo);
......@@ -158,6 +161,9 @@ public class DrybeachequipinforServiceImpl extends ServiceImpl<Drybeachequipinfo
@Override
public List<HashMap<String, Object>> dryStateCount(HttpServletRequest request) {
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
List<HashMap<String, Object>> hashMaps = drybeachequipinforMapper.dryStateCount(tailInfoNo);
return hashMaps;
}
......@@ -170,6 +176,9 @@ public class DrybeachequipinforServiceImpl extends ServiceImpl<Drybeachequipinfo
}
//获取当前尾矿库
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
drybeachequipinforQueryWrapper.eq("tailingid", tailInfoNo);
List<Drybeachequipinfor> drybeachequipinfors = drybeachequipinforMapper.selectList(drybeachequipinforQueryWrapper);
ArrayList<DrybeachequipinforVo> drybeachequipinforVos = new ArrayList<>();
......@@ -185,6 +194,9 @@ public class DrybeachequipinforServiceImpl extends ServiceImpl<Drybeachequipinfo
QueryWrapper<Drybeachequipinfor> drybeachequipinforQueryWrapper = new QueryWrapper<>();
//获取当前尾矿库
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
drybeachequipinforQueryWrapper.eq("tailingid", tailInfoNo);
List<Drybeachequipinfor> drybeachequipinfors = drybeachequipinforMapper.selectList(drybeachequipinforQueryWrapper);
ArrayList<DrybeachequipinforVo> drybeachequipinforVos = new ArrayList<>();
......@@ -194,4 +206,14 @@ public class DrybeachequipinforServiceImpl extends ServiceImpl<Drybeachequipinfo
}
return drybeachequipinforVos;
}
@Override
public boolean enforceOnline(HashMap<String, String> map) {
String id = map.get("id").toString();
int i = drybeachequipinforMapper.enforceOnline(id);
if (i > 0) {
return true;
}
return false;
}
}
package me.zhengjie.gemho.service.tab.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import me.zhengjie.gemho.entity.tab.JrxDissect;
import me.zhengjie.gemho.entity.tab.JrxSteps;
import me.zhengjie.gemho.mapper.data.StDataMapper;
import me.zhengjie.gemho.mapper.tab.JrxDissectMapper;
import me.zhengjie.gemho.mapper.tab.JrxStepsMapper;
import me.zhengjie.gemho.service.tab.JrxDissectService;
import me.zhengjie.gemho.util.DataUtil;
import me.zhengjie.gemho.util.ServiceUtil;
import me.zhengjie.gemho.util.TailNoForInfoUtil;
import me.zhengjie.gemho.x_datavo.data.DataQueryCriteria;
import me.zhengjie.gemho.x_datavo.data.JrxQueryCriteria;
import me.zhengjie.gemho.x_datavo.tab.JrxDissectDto;
import me.zhengjie.gemho.x_datavo.tab.visual.JrxDissectVisualVO;
import me.zhengjie.gemho.x_datavo.tab.visual.JrxDryVo;
import me.zhengjie.gemho.x_datavo.tab.visual.JrxStepsListVo;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
/**
* <p>
* 浸润线坡面 服务实现类
* </p>
*
* @author llj
* @since 2022-05-13
*/
@Service
public class JrxDissectServiceImpl extends ServiceImpl<JrxDissectMapper, JrxDissect> implements JrxDissectService {
@Autowired
private JrxDissectMapper tabJrxDissectMapper;
@Autowired
private JrxStepsMapper jrxStepsMapper;
@Autowired
private StDataMapper stDataMapper;
@Override
public HashMap<String, Object> plist(DataQueryCriteria dataQueryCriteria) {
long size = dataQueryCriteria.getSize();
long page = dataQueryCriteria.getPage();
Page<JrxDissect> TabJrxDissectPage = new Page<>(page + 1, size);
QueryWrapper<JrxDissect> queryWrapper = new QueryWrapper<>();
ServiceUtil.jrxStepQuery(queryWrapper, dataQueryCriteria);
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo();
if (tailInfoNo == null) {
return null;
}
queryWrapper.eq("pondid", tailInfoNo);
TabJrxDissectPage = tabJrxDissectMapper.selectPage(TabJrxDissectPage, queryWrapper);
List<JrxDissect> records = TabJrxDissectPage.getRecords();
for (JrxDissect record : records) {
String[] strings = JSONObject.parseObject(record.getDry_s(), String[].class);
record.setDrys(strings);
}
long total = TabJrxDissectPage.getTotal();
HashMap<String, Object> map = new HashMap<>();
map.put("list", records);
map.put("total", total);
return map;
}
/**
* 浸润线坡面新增
*
* @param param 根据需要进行传值
* @return
*/
@Override
public boolean add(JrxDissect param) {
int result = tabJrxDissectMapper.insert(param);
if (result > 0) {
return true;
}
return false;
}
/**
* 浸润线坡面修改
*
* @param param 根据需要进行传值
* @return
*/
@Override
public boolean modify(JrxDissect param) {
QueryWrapper<JrxDissect> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id", param.getId());
int result = tabJrxDissectMapper.update(param, queryWrapper);
if (result > 0) {
return true;
}
return false;
}
@Override
public JrxDissectVisualVO visual(JrxQueryCriteria jrxQueryCriteria) {
//构建返回体结构
JrxDissectVisualVO jrxDissectVisualVO = new JrxDissectVisualVO();
//获取坡面id
String subitem = jrxQueryCriteria.getSubitem();
if (subitem != null && !subitem.equals("")) {
//根据坡面id获取 对应数据
QueryWrapper<JrxDissect> jrxDissectQueryWrapper = new QueryWrapper<>();
jrxDissectQueryWrapper.eq("code", subitem);
JrxDissect jrxDissect = tabJrxDissectMapper.selectOne(jrxDissectQueryWrapper);
String[] strings = JSONObject.parseObject(jrxDissect.getDry_s(), String[].class);
jrxDissect.setDrys(strings);
JrxDissectDto jrxDissectDto = new JrxDissectDto();
BeanUtils.copyProperties(jrxDissect, jrxDissectDto);
jrxDissectVisualVO.setDissect(jrxDissectDto);
//根据坡面编号获取台阶信息
List<JrxSteps> byCode = jrxStepsMapper.getByCode(Integer.valueOf(subitem));
jrxDissectVisualVO.setSteps(byCode);
//根据坡面查询设备信息
String dry_s = jrxDissect.getDry_s();
if (dry_s!=null){
String[] drys = JSONObject.parseObject(dry_s, String[].class);
List<String> list = Arrays.asList(drys);
List<JrxDryVo> jrxDryVos = stDataMapper.getStageDepth(list);
jrxDissectVisualVO.setDevices(jrxDryVos);
//报警信息获取
HashMap<String, Object> dealalarm = DataUtil.dealalarm(drys[0]);
jrxDissectVisualVO.setAlarm(dealalarm);
}
}
return jrxDissectVisualVO;
}
@Override
public List<JrxStepsListVo> stepsList() {
List<JrxDissect> jrxSteps = tabJrxDissectMapper.selectList(null);
ArrayList<JrxStepsListVo> jrxStepsListVos = new ArrayList<>();
for (JrxDissect jrxStep : jrxSteps) {
JrxStepsListVo jrxStepsListVo = new JrxStepsListVo().setName(jrxStep.getName()).setValue(jrxStep.getId());
jrxStepsListVos.add(jrxStepsListVo);
}
return jrxStepsListVos;
}
}
package me.zhengjie.gemho.service.tab.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import me.zhengjie.gemho.entity.tab.JrxSteps;
import me.zhengjie.gemho.mapper.tab.JrxStepsMapper;
import me.zhengjie.gemho.service.tab.IJrxStepsService;
import me.zhengjie.gemho.util.ServiceUtil;
import me.zhengjie.gemho.util.TailNoForInfoUtil;
import me.zhengjie.gemho.x_datavo.data.DataQueryCriteria;
import me.zhengjie.gemho.x_datavo.tab.visual.JrxStepsListVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author llj
* @since 2022-05-10
*/
@Service
public class JrxStepsServiceImpl extends ServiceImpl<JrxStepsMapper, JrxSteps> implements IJrxStepsService {
@Autowired
private JrxStepsMapper jrxStepsMapper;
@Override
public HashMap<String, Object> plist(DataQueryCriteria dataQueryCriteria, HttpServletRequest request) {
long size = dataQueryCriteria.getSize();
long page = dataQueryCriteria.getPage();
Page<JrxSteps> jrxStepsPage = new Page<>(page + 1, size);
QueryWrapper<JrxSteps> jrxStepsQueryWrapper = new QueryWrapper<>();
ServiceUtil.jrxStepQuery(jrxStepsQueryWrapper, dataQueryCriteria);
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
jrxStepsQueryWrapper.eq("pondid", tailInfoNo);
jrxStepsPage = jrxStepsMapper.selectPage(jrxStepsPage, jrxStepsQueryWrapper);
List<JrxSteps> records = jrxStepsPage.getRecords();
long total = jrxStepsPage.getTotal();
HashMap<String, Object> map = new HashMap<>();
map.put("list", records);
map.put("total", total);
return map;
}
@Override
public boolean add(JrxSteps param, HttpServletRequest request) {
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return false;
}
param.setPondid(tailInfoNo);
Double height = param.getHeight();
Double width = param.getWidth();
if (height == 0.0) {
param.setHeight(null);
}
if (width == 0.0) {
param.setWidth(null);
}
param.setTime(LocalDateTime.now());
int result = jrxStepsMapper.insert(param);
if (result > 0) {
return true;
}
return false;
}
@Override
public boolean modify(JrxSteps param, HttpServletRequest request) {
Double height = param.getHeight();
Double width = param.getWidth();
if (height == 0.0) {
param.setHeight(null);
}
if (width == 0.0) {
param.setWidth(null);
}
QueryWrapper<JrxSteps> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id", param.getId());
int result = jrxStepsMapper.update(param, queryWrapper);
if (result > 0) {
return true;
}
return false;
}
@Override
public List<JrxStepsListVo> stepsList() {
List<JrxSteps> jrxSteps = jrxStepsMapper.selectList(null);
ArrayList<JrxStepsListVo> jrxStepsListVos = new ArrayList<>();
for (JrxSteps jrxStep : jrxSteps) {
new JrxStepsListVo().setName(jrxStep.getName()).setValue(jrxStep.getCode());
}
return jrxStepsListVos;
}
}
package me.zhengjie.gemho.service.tab.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import me.zhengjie.gemho.entity.tab.JrxWater;
import me.zhengjie.gemho.mapper.tab.JrxWaterMapper;
import me.zhengjie.gemho.service.tab.JrxWaterService;
import me.zhengjie.gemho.util.ServiceUtil;
import me.zhengjie.gemho.util.TailNoForInfoUtil;
import me.zhengjie.gemho.x_datavo.data.DataQueryCriteria;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
/**
* <p>
* 浸润线坡面水区 服务实现类
* </p>
*
* @author llj
* @since 2022-05-13
*/
@Service
public class JrxWaterServiceImpl extends ServiceImpl<JrxWaterMapper, JrxWater> implements JrxWaterService {
@Autowired
private JrxWaterMapper tabJrxWaterMapper;
@Override
public HashMap<String, Object> plist(DataQueryCriteria dataQueryCriteria) {
long size = dataQueryCriteria.getSize();
long page = dataQueryCriteria.getPage();
Page<JrxWater> TabJrxWaterPage = new Page<>(page + 1, size);
QueryWrapper<JrxWater> queryWrapper = new QueryWrapper<>();
ServiceUtil.dataQuery(queryWrapper, dataQueryCriteria);
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo();
if (tailInfoNo == null) {
return null;
}
queryWrapper.eq("pondid", tailInfoNo);
TabJrxWaterPage = tabJrxWaterMapper.selectPage(TabJrxWaterPage, queryWrapper);
List<JrxWater> records = TabJrxWaterPage.getRecords();
long total = TabJrxWaterPage.getTotal();
HashMap<String, Object> map = new HashMap<>();
map.put("list", records);
map.put("total", total);
return map;
}
/**
* 浸润线坡面水区新增
*
* @param param 根据需要进行传值
* @return
*/
@Override
public boolean add(JrxWater param) {
int result = tabJrxWaterMapper.insert(param);
if (result > 0) {
return true;
}
return false;
}
/**
* 浸润线坡面水区修改
*
* @param param 根据需要进行传值
* @return
*/
@Override
public boolean modify(JrxWater param) {
QueryWrapper<JrxWater> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id", param.getId());
int result = tabJrxWaterMapper.update(param, queryWrapper);
if (result > 0) {
return true;
}
return false;
}
}
......@@ -8,7 +8,7 @@ import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* 服务实现类
* </p>
*
* @author llj
......
......@@ -66,6 +66,9 @@ public class TabAbnormalServiceImpl extends ServiceImpl<TabAbnormalMapper, Abnor
public ArrayList<HashMap<String, Object>> getAbnormal(HttpServletRequest request) {
//获取当前尾矿库编码
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
ArrayList<HashMap<String, Object>> getalarminfo = tabAbnormalMapper.getalarminfo(tailInfoNo);
return getalarminfo;
}
......@@ -73,6 +76,9 @@ public class TabAbnormalServiceImpl extends ServiceImpl<TabAbnormalMapper, Abnor
@Override
public List<HashMap<String, Object>> statistics(String date, HttpServletRequest request) {
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
List<HashMap<String, Object>> statistics = null;
if (date == null) {
statistics = tabAbnormalMapper.statistics(tailInfoNo);
......@@ -91,6 +97,9 @@ public class TabAbnormalServiceImpl extends ServiceImpl<TabAbnormalMapper, Abnor
@Override
public List<HashMap<String, Object>> statistics1(HttpServletRequest request) {
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
List<HashMap<String, Object>> statistics1 = tabAbnormalMapper.statistics1(tailInfoNo);
return statistics1;
}
......@@ -98,6 +107,9 @@ public class TabAbnormalServiceImpl extends ServiceImpl<TabAbnormalMapper, Abnor
@Override
public List<HashMap<String, Object>> typelist(HttpServletRequest request) {
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
List<HashMap<String, Object>> maps = tabAbnormalMapper.gettypelist(tailInfoNo);
return maps;
}
......@@ -105,6 +117,9 @@ public class TabAbnormalServiceImpl extends ServiceImpl<TabAbnormalMapper, Abnor
@Override
public List<HashMap<String, Object>> monthtj(HttpServletRequest request) {
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
List<String> strings = new ArrayList<>();
List<String> strings1 = new ArrayList<>();
strings.add("red");
......@@ -136,7 +151,9 @@ public class TabAbnormalServiceImpl extends ServiceImpl<TabAbnormalMapper, Abnor
ServiceUtil.dataQuery(abnormalQueryWrapper, dataQueryCriteria);
//获取所有设备的编码
List<String> dryNo = TailNoForInfoUtil.getDryNo(request);
abnormalQueryWrapper.in("equipno", dryNo);
if (dryNo != null) {
abnormalQueryWrapper.in("equipno", dryNo);
}
HashMap<String, Object> map = new HashMap<>();
Page<Abnormal> abnormalPage1 = tabAbnormalMapper.selectPage(abnormalPage, abnormalQueryWrapper);
map.put("list", abnormalPage1.getRecords());
......
......@@ -10,7 +10,9 @@ import me.zhengjie.gemho.service.tab.TailpondinforService;
import me.zhengjie.gemho.util.ServiceUtil;
import me.zhengjie.gemho.util.TailNoForInfoUtil;
import me.zhengjie.gemho.x_datavo.data.DataQueryCriteria;
import me.zhengjie.utils.RedisUtils;
import me.zhengjie.utils.SecurityUtils;
import me.zhengjie.utils.SpringContextHolder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -134,6 +136,9 @@ public class TailpondinforServiceImpl extends ServiceImpl<TailpondinforMapper, T
@Override
public String getScreenTitle(HttpServletRequest request) {
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
String screenTitle = tailpondinforMapper.getScreenTitle(tailInfoNo);
return screenTitle;
}
......@@ -141,6 +146,26 @@ public class TailpondinforServiceImpl extends ServiceImpl<TailpondinforMapper, T
@Override
public void updateTitle(String title, HttpServletRequest request) {
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
tailpondinforMapper.updateTitle(title, tailInfoNo);
if (tailInfoNo != null) {
tailpondinforMapper.updateTitle(title, tailInfoNo);
}
}
@Override
public boolean removeTail(HashMap<String, String> map) {
Integer id = Integer.valueOf(map.get("id"));
Tailpondinfor tailpondinfor = tailpondinforMapper.selectById(id);
String tailingno = tailpondinfor.getTailingno();
int b = tailpondinforMapper.deleteById(id);
if (b > 0) {
//判断当前删除的尾矿库是否是默认尾矿库
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo();
if (tailingno.equals(tailInfoNo)) {
RedisUtils redisUtils = SpringContextHolder.getBean(RedisUtils.class);
String currentUsername = SecurityUtils.getCurrentUsername();
redisUtils.del("wkk" + currentUsername);
}
}
return false;
}
}
......@@ -32,7 +32,7 @@ public class UserTailponServiceImpl extends ServiceImpl<UserTailponMapper, UserT
userTailpons.add(new UserTailpon().setUsername(username).setTailingno(id));
}
QueryWrapper<UserTailpon> userTailponQueryWrapper = new QueryWrapper<>();
userTailponQueryWrapper.eq("username",username);
userTailponQueryWrapper.eq("username", username);
userTailponMapper.delete(userTailponQueryWrapper);
return userTailpons;
}
......
......@@ -5,7 +5,7 @@ import me.zhengjie.gemho.entity.web.WebMonitorIcon;
/**
* <p>
* 服务类
* 服务类
* </p>
*
* @author llj
......
......@@ -15,5 +15,6 @@ import java.util.List;
*/
public interface IWebMonitorLinkService extends IService<WebMonitorLink> {
boolean pinsert(List<WebMonitorLink> webMonitorLinks);
boolean removebyguids(List<String> guids);
}
......@@ -9,7 +9,7 @@ import java.util.ArrayList;
/**
* <p>
* 服务类
* 服务类
* </p>
*
* @author llj
......@@ -19,7 +19,7 @@ public interface IWebMonitorPointsService extends IService<WebMonitorPoints> {
boolean deletePoints(String id);
void pchuli(ArrayList<WebMonitorPoints> webMonitorPoints );
void pchuli(ArrayList<WebMonitorPoints> webMonitorPoints);
void deal(MonitorChartRq monitorChartVo, HttpServletRequest request);
......
......@@ -60,6 +60,9 @@ public class WebMonitorChartServiceImpl extends ServiceImpl<WebMonitorChartMappe
boolean result = false;
String currentUsername = SecurityUtils.getCurrentUsername();
String tailno = onlineUserService.gettailno(currentUsername, request);
if (tailno == null) {
return false;
}
webMonitorChart.setTailingno(tailno);
//判断是否存在
QueryWrapper<WebMonitorChart> webMonitorChartQueryWrapper = new QueryWrapper<>();
......@@ -229,7 +232,7 @@ public class WebMonitorChartServiceImpl extends ServiceImpl<WebMonitorChartMappe
@Override
public WebMonitorChart getbytailno(HttpServletRequest request) {
String currentUsername = SecurityUtils.getCurrentUsername();
String gettailno = onlineUserService.gettailno(currentUsername,request);
String gettailno = onlineUserService.gettailno(currentUsername, request);
QueryWrapper<WebMonitorChart> webMonitorChartQueryWrapper = new QueryWrapper<>();
webMonitorChartQueryWrapper.eq("tailingno", gettailno);
WebMonitorChart webMonitorChart = webMonitorChartMapper.selectOne(webMonitorChartQueryWrapper);
......
......@@ -8,7 +8,7 @@ import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* 服务实现类
* </p>
*
* @author llj
......
......@@ -36,7 +36,7 @@ public class WebMonitorLinkServiceImpl extends ServiceImpl<WebMonitorLinkMapper,
@Override
public boolean removebyguids(List<String> guids) {
int removebyids = webMonitorLinkMapper.removebyids(guids);
if (removebyids>0){
if (removebyids > 0) {
return true;
}
return false;
......
......@@ -113,7 +113,7 @@ public class WebMonitorPointsServiceImpl extends ServiceImpl<WebMonitorPointsMap
QueryWrapper<WebMonitorLink> webMonitorLinkQueryWrapper = new QueryWrapper<>();
webMonitorLinkQueryWrapper.in("pointid", guids);
iWebMonitorLinkService.removebyguids(guids);
if (!webMonitorLinks.isEmpty()){
if (!webMonitorLinks.isEmpty()) {
iWebMonitorLinkService.pinsert(webMonitorLinks);
}
}
......
......@@ -161,6 +161,21 @@ public class DataUtil {
return nameVos;
}
/*库水位*/
public static String wpbdata(String code) {
HashMap<String, String> map = new HashMap<>();
map.put("0", "value");
return map.get(code);
}
public static ArrayList<NameVo> wpbdatanames(ArrayList<NameVo> nameVos, String subitem) {
if (subitem.equals("0")) {
nameVos.add(new NameVo().setKey("value").setName("实时数据"));
//nameVos.add(new NameVo().setKey("p_stage").setName("人工检查实时数据"));
}
return nameVos;
}
public static HashMap<String, Object> dealalarm(String deviceid) {
DrybeachequipinforMapper drybeachequipinforMapper = (DrybeachequipinforMapper) SpringContextHolder.getBean("drybeachequipinforMapper");
TabAbnormalMapper tabAbnormalMapper = SpringContextHolder.getBean(TabAbnormalMapper.class);
......@@ -189,7 +204,7 @@ public class DataUtil {
}*/
HashMap<String, Object> map = new HashMap<>();
HashMap<String, Double> alarm = new HashMap<>();
alarm.put("value", 0.0);
/* alarm.put("value", 0.0);*/
alarm.put("red", drybeachequipinfor.getOnelevelalarm());
alarm.put("orange", drybeachequipinfor.getTwolevelalarm());
alarm.put("yellow", drybeachequipinfor.getThreelevelalarm());
......
......@@ -11,7 +11,7 @@ public class Iputil {
public static boolean ping(String ipAddress, int pingTimes, int timeOut) {
BufferedReader in = null;
Runtime r = Runtime.getRuntime(); // 将要执行的ping命令,此命令是windows格式的命令
String pingCommand = "ping " + ipAddress + " -n " + pingTimes + " -w " + timeOut;
String pingCommand = "ping " + ipAddress + " -n " + pingTimes + " -w " + timeOut;
try { // 执行命令并获取输出
System.out.println(pingCommand);
Process p = r.exec(pingCommand);
......@@ -36,15 +36,17 @@ public class Iputil {
}
}
}
//若line含有=18ms TTL=16字样,说明已经ping通,返回1,否則返回0.
private static int getCheckResult(String line) { // System.out.println("控制台输出的结果为:"+line);
Pattern pattern = Pattern.compile("(\\d+ms)(\\s+)(TTL=\\d+)", Pattern.CASE_INSENSITIVE);
Pattern pattern = Pattern.compile("(\\d+ms)(\\s+)(TTL=\\d+)", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(line);
while (matcher.find()) {
return 1;
}
return 0;
}
public static void main(String[] args) throws Exception {
String ipAddress = "192.168.3.88";
System.out.println(ping(ipAddress, 5, 5000));
......
......@@ -28,7 +28,7 @@ public class PageResult {
return new PageResult(200, map, "");
}
public PageResult nopagesuccess(List<?> list) {
public PageResult nopagesuccess(List<?> list) {
return new PageResult(200, list, "操作成功");
}
......@@ -37,9 +37,13 @@ public class PageResult {
return new PageResult(200, object, "");
}
public static PageResult failed() {
public static PageResult failed() {
return new PageResult(500, "操作失败");
}
public static PageResult nullfailed() {
return new PageResult(200, "暂无数据");
}
public static PageResult nopagefailed(String msg) {
return new PageResult(500, msg);
}
......
......@@ -16,6 +16,14 @@ public class PostOrPutResult {
public PostOrPutResult failed() {
return new PostOrPutResult().setMsg("请求失败").setCode(500);
}
public PostOrPutResult noTailFailed() {
return new PostOrPutResult().setMsg("请先添加尾矿库信息").setCode(500);
}
public PostOrPutResult deleteFailed() {
return new PostOrPutResult().setMsg("请求失败").setCode(201);
}
public PostOrPutResult dingyifailed(String msg) {
return new PostOrPutResult().setMsg(msg).setCode(500);
}
......
......@@ -28,6 +28,6 @@ public class RealVo {
}
public RealVo failed() {
return new RealVo(500,"请求失败");
return new RealVo(500, "请求失败");
}
}
......@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import me.zhengjie.gemho.entity.artificial.ArtificialData;
import me.zhengjie.gemho.entity.artificial.ArtificialPoint;
import me.zhengjie.gemho.entity.dic.Jczx;
import me.zhengjie.gemho.entity.tab.Drybeachequipinfor;
import me.zhengjie.gemho.mapper.artificial.ArtificialDataMapper;
import me.zhengjie.gemho.mapper.artificial.ArtificialPointMapper;
import me.zhengjie.gemho.mapper.dic.JczxMapper;
......@@ -15,11 +16,14 @@ import me.zhengjie.gemho.x_datavo.data.ImgDataVo;
import me.zhengjie.gemho.x_datavo.tab.DrybeachequipinforVo;
import me.zhengjie.utils.RedisUtils;
import me.zhengjie.utils.SpringContextHolder;
import org.springframework.util.ObjectUtils;
import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.Field;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
public class ServiceUtil {
......@@ -193,7 +197,9 @@ public class ServiceUtil {
}
//获取当前尾矿库所有设备编码
List<String> dryNo = TailNoForInfoUtil.getDryNo(request);
queryWrapper.in("sensorid", dryNo);
if (dryNo != null) {
queryWrapper.in("sensorid", dryNo);
}
}
public static void dataQuery(QueryWrapper<?> queryWrapper, DataQueryCriteria dataQueryCriteria) {
......@@ -258,6 +264,67 @@ public class ServiceUtil {
}
public static void jrxStepQuery(QueryWrapper<?> queryWrapper, DataQueryCriteria dataQueryCriteria) {
//获取精确查询字段
String exact1 = dataQueryCriteria.getExact();
if (exact1 != null) {
HashMap exact = JSON.parseObject(exact1, HashMap.class);
//HashMap<String, Object> exact = dataQueryCriteria.getExact();
//处理精确查询字段
Set<String> strings = exact.keySet();
if (!strings.isEmpty()) {
for (String string : strings) {
if (string.equals("state")) {
exact.put("state", 1);
}
if (string.equals("monitorType")) {
continue;
}
queryWrapper.eq(string, exact.get(string));
}
}
}
//获取模糊查询字段
String vague1 = dataQueryCriteria.getVague();
if (vague1 != null) {
Map vague = JSON.parseObject(vague1, Map.class);
Set<String> strings1 = vague.keySet();
if (!strings1.isEmpty()) {
for (String s : strings1) {
queryWrapper.like(s, vague.get(s));
}
}
}
//判断是否有时间字段
String timeSpace = dataQueryCriteria.getDaterange();
if (timeSpace != null) {
if (timeSpace.contains(",")) {
String starttime = timeSpace.split(",")[0] + " 00:00:00";
String endtime = timeSpace.split(",")[1] + " 23:59:59";
Date start = toDate(starttime);
Date end = toDate(endtime);
queryWrapper.ge("time", start).le("time", end);
} else {
Date start = toDate(timeSpace + " 00:00:00");
Date end = toDate(timeSpace + " 23:59:59");
queryWrapper.ge("time", start).le("time", end);
}
}
//正序倒序
String sort = dataQueryCriteria.getSort();
if (sort != null) {
String s = sort.split(",")[1];
if (s.equals("desc")) {
queryWrapper.orderByDesc("id");
} else {
queryWrapper.orderByAsc("id");
}
} else {
queryWrapper.orderByAsc("id");
}
}
public static void insQuery(QueryWrapper<?> queryWrapper, DataQueryCriteria dataQueryCriteria) {
//获取精确查询字段
String exact1 = dataQueryCriteria.getExact();
......@@ -357,6 +424,58 @@ public class ServiceUtil {
}
public static void rgImgQuery(QueryWrapper<?> queryWrapper, DataQueryCriteria dataQueryCriteria) {
/* String sensorname = dataQueryCriteria.getSensorname();
if (sensorname != null) {
queryWrapper.eq("sensorname", sensorname);
}*/
String code = dataQueryCriteria.getCode();
if (code != null) {
queryWrapper.eq("sensorid", code);
}
Integer hours = dataQueryCriteria.getHours();
if (hours != null) {
String format = "yyyy-MM-dd HH";
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(format);
String format1 = "yyyy-MM-dd HH:mm:ss";
DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern(format1);
LocalDateTime end = LocalDateTime.now();
String endIng = end.format(dateTimeFormatter) + ":59:59";
LocalDateTime endTime = LocalDateTime.parse(endIng, dateTimeFormatter1);
LocalDateTime start = end.minusHours(hours);
String startIng = start.format(dateTimeFormatter) + ":00:00";
LocalDateTime startTime = LocalDateTime.parse(startIng, dateTimeFormatter1);
queryWrapper.ge("time", startTime).le("time", endTime);
} else {
//判断是否有时间字段
String timeSpace = dataQueryCriteria.getDaterange();
if (timeSpace != null) {
if (timeSpace.contains(",")) {
String starttime = timeSpace.split(",")[0] + " 00:00:00";
String endtime = timeSpace.split(",")[1] + " 23:59:59";
Date start = toDate(starttime);
Date end = toDate(endtime);
queryWrapper.ge("time", start).le("time", end);
} else {
Date start = toDate(timeSpace + " 00:00:00");
Date end = toDate(timeSpace + " 23:59:59");
queryWrapper.ge("time", start).le("time", end);
}
} else {
queryWrapper.apply("DATE_FORMAT(time,'%Y-%m-%d') =DATE_FORMAT(NOW(),'%Y-%m-%d')");
}
}
//正序倒序
String sort = dataQueryCriteria.getSort();
String s = sort.split(",")[1];
if (s.equals("desc")) {
queryWrapper.orderByDesc("time");
} else {
queryWrapper.orderByAsc("time");
}
}
/**
* 判断是否需要人工巡检数据
*
......@@ -502,7 +621,7 @@ public class ServiceUtil {
* @param data
* @return
*/
public static ImgDataVo deal(String str, String sensorname, List<?> data) {
public static ImgDataVo deal(String str, String sensorname, List<?> data, String danwei) {
//获取json 数据
HashMap<String, List<Map>> realdata = ReadJsonFileUtil.getMap("realdata");
List<Map> dbdata = realdata.get(str);
......@@ -510,7 +629,7 @@ public class ServiceUtil {
ImgDataVo imgDataVo = new ImgDataVo();
ArrayList<Result> results = new ArrayList<>();
//遍历数据
if (!data.isEmpty()) {
if (ObjectUtils.isEmpty(data)) {
for (Object dbDatum : data) {
Date time = null;
HashMap map = new HashMap<String, Object>();
......@@ -543,6 +662,7 @@ public class ServiceUtil {
imgDataVo.setLists(results);
imgDataVo.setSensorname(sensorname);
imgDataVo.setNames(dbdata);
imgDataVo.setDanwei(danwei);
return imgDataVo;
}
......@@ -555,6 +675,9 @@ public class ServiceUtil {
public static HashMap<String, String> getNoName(HttpServletRequest request) {
//获取当前尾矿库的编码
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
//读取redis
RedisUtils redisUtils = SpringContextHolder.getBean(RedisUtils.class);
HashMap<String, String> map = (HashMap<String, String>) redisUtils.get("NoName" + tailInfoNo);
......@@ -571,5 +694,79 @@ public class ServiceUtil {
return hashMap;
}
;
/**
* 获取编码-名的map
*
* @param request
* @return
*/
public static HashMap<String, String> getNoDan(HttpServletRequest request) {
//获取当前尾矿库的编码
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo(request);
if (tailInfoNo == null) {
return null;
}
//读取redis
RedisUtils redisUtils = SpringContextHolder.getBean(RedisUtils.class);
HashMap<String, String> map = (HashMap<String, String>) redisUtils.get("NoDan" + tailInfoNo);
if (map != null) {
return map;
}
DrybeachequipinforService drybeachequipinforService = SpringContextHolder.getBean(DrybeachequipinforService.class);
QueryWrapper<Drybeachequipinfor> drybeachequipinforQueryWrapper = new QueryWrapper<>();
drybeachequipinforQueryWrapper.eq("tailingid", tailInfoNo);
List<Drybeachequipinfor> drybeachequipinforVos = drybeachequipinforService.list(drybeachequipinforQueryWrapper);
HashMap<String, String> hashMap = new HashMap<String, String>();
for (Drybeachequipinfor drybeachequipinforVo : drybeachequipinforVos) {
hashMap.put(drybeachequipinforVo.getEquipno(), drybeachequipinforVo.getEqdanwei());
}
redisUtils.set("NoDan" + tailInfoNo, hashMap);
return hashMap;
}
/**
* 获取编码-名的map
*
* @param
* @return
*/
public static HashMap<String, String> getNoDan() {
//获取当前尾矿库的编码
String tailInfoNo = TailNoForInfoUtil.getTailInfoNo();
if (tailInfoNo == null) {
return null;
}
//读取redis
RedisUtils redisUtils = SpringContextHolder.getBean(RedisUtils.class);
HashMap<String, String> map = (HashMap<String, String>) redisUtils.get("NoDan" + tailInfoNo);
if (map != null) {
return map;
}
DrybeachequipinforService drybeachequipinforService = SpringContextHolder.getBean(DrybeachequipinforService.class);
QueryWrapper<Drybeachequipinfor> drybeachequipinforQueryWrapper = new QueryWrapper<>();
drybeachequipinforQueryWrapper.eq("tailingid", tailInfoNo);
List<Drybeachequipinfor> drybeachequipinforVos = drybeachequipinforService.list(drybeachequipinforQueryWrapper);
HashMap<String, String> hashMap = new HashMap<String, String>();
for (Drybeachequipinfor drybeachequipinforVo : drybeachequipinforVos) {
hashMap.put(drybeachequipinforVo.getEquipno(), drybeachequipinforVo.getEqdanwei());
}
redisUtils.set("NoDan" + tailInfoNo, hashMap);
return hashMap;
}
public static void main(String[] args) {
int hours = 6;
String format = "yyyy-MM-dd HH";
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(format);
String format1 = "yyyy-MM-dd HH:mm:ss";
DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern(format1);
LocalDateTime end = LocalDateTime.now();
String endIng = end.format(dateTimeFormatter) + ":59:59";
LocalDateTime endTime = LocalDateTime.parse(endIng, dateTimeFormatter1);
LocalDateTime start = end.minusHours(hours);
String startIng = start.format(dateTimeFormatter) + ":00:00";
LocalDateTime startTime = LocalDateTime.parse(startIng, dateTimeFormatter1);
}
}
......@@ -15,15 +15,15 @@ public class SpringUtil implements ApplicationContextAware {
SpringUtil.applicationContext = applicationContext;
}
public static Object getBean(String name){
public static Object getBean(String name) {
return applicationContext.getBean(name);
}
public static <T> T getBean(String name, Class<T> clazz){
public static <T> T getBean(String name, Class<T> clazz) {
return applicationContext.getBean(name, clazz);
}
public static <T> T getBean(Class<T> clazz){
public static <T> T getBean(Class<T> clazz) {
return applicationContext.getBean(clazz);
}
}
\ No newline at end of file
......@@ -21,10 +21,20 @@ public class TailNoForInfoUtil {
return tailno;
}
public static String getTailInfoNo() {
String currentUsername = SecurityUtils.getCurrentUsername();
OnlineUserService onlineUserService = SpringContextHolder.getBean(OnlineUserService.class);
String tailno = onlineUserService.gettailno(currentUsername);
return tailno;
}
public static List<String> getDryNo(HttpServletRequest request) {
String currentUsername = SecurityUtils.getCurrentUsername();
OnlineUserService onlineUserService = SpringContextHolder.getBean(OnlineUserService.class);
String tailno = onlineUserService.gettailno(currentUsername, request);
if (tailno == null) {
return null;
}
//获取当前尾矿库所有的设备编码
DrybeachequipinforMapper drybeachequipinforMapper = SpringContextHolder.getBean(DrybeachequipinforMapper.class);
List<String> list = drybeachequipinforMapper.getequipno(tailno);
......@@ -35,7 +45,7 @@ public class TailNoForInfoUtil {
public static Map getEquipName(HttpServletRequest request) {
String currentUsername = SecurityUtils.getCurrentUsername();
OnlineUserService onlineUserService = SpringContextHolder.getBean(OnlineUserService.class);
String tailno = onlineUserService.gettailno(currentUsername ,request);
String tailno = onlineUserService.gettailno(currentUsername, request);
RedisUtils redisUtils = SpringContextHolder.getBean(RedisUtils.class);
Map map = (Map) redisUtils.get(tailno);
String equipname = null;
......
......@@ -12,7 +12,8 @@ public class DataVo {
private String title;
private String range;
private String devid;
private HashMap<String,Object> alarm;
private HashMap<String, Object> alarm;
private List<NameVo> names;
private List<Result> lists;
private String unit;
}
......@@ -2,6 +2,7 @@ package me.zhengjie.gemho.x_datavo;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
public class NameVo {
......
......@@ -2,7 +2,6 @@ package me.zhengjie.gemho.x_datavo.artificial;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
......@@ -53,7 +52,7 @@ public class ADataVo {
/**
* 监测时间
*/
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date time;
}
......@@ -15,5 +15,6 @@ public class DataQueryCriteria {
private String sort;
private String daterange;
private String sensorname;
private Integer hours;
}
......@@ -14,4 +14,5 @@ public class ImgDataVo {
private HashMap<String, Object> alarm;
private Object names;
private List<Result> lists;
private String danwei;
}
package me.zhengjie.gemho.x_datavo.data;
import lombok.Data;
@Data
public class JrxQueryCriteria {
String range;
String values;
String deviceid;
String subitem;
}
package me.zhengjie.gemho.x_datavo.tab;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
/**
* <p>
* 浸润线坡面
* </p>
*
* @author llj
* @since 2022-05-13
*/
@Getter
@Setter
@TableName("tab_jrx_dissect")
public class JrxDissectDto implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 剖面名称
*/
private String name;
private Double height;
private Double width;
/**
* 水区扇形起始角度
*/
private Double sdeg;
/**
* 总直径
*/
private Double diameter;
/**
* 坡面关联的设备编号(多个设备编号用逗号隔开)
*/
@TableField(exist = false)
private String[] drys;
@JSONField(serialize = false)
@TableField(value = "drys")
private String dry_s;
}
package me.zhengjie.gemho.x_datavo.tab;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* <p>
*
* </p>
*
* @author llj
* @since 2022-05-10
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tab_jrx_steps")
@ApiModel(value = "JrxSteps对象", description = "")
public class JrxStepsDto implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "台阶名称")
private String name;
@ApiModelProperty(value = "台阶编号")
private Integer code;
@ApiModelProperty(value = "高度(米)")
private Double height;
@ApiModelProperty(value = "宽度(米)")
private Double width;
@ApiModelProperty(value = "坡度(deg)")
private Double slope;
}
package me.zhengjie.gemho.x_datavo.tab.visual;
import lombok.Data;
import me.zhengjie.gemho.x_datavo.tab.JrxDissectDto;
import java.util.HashMap;
import java.util.List;
@Data
public class JrxDissectVisualVO {
private List<JrxDryVo> devices;
private JrxDissectDto dissect;
private List steps;
private HashMap<String, Object> alarm;
}
package me.zhengjie.gemho.x_datavo.tab.visual;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class JrxDryVo {
/**
* 水位(传感器到水面的距离)
*/
private Double stage;
/**
* 浸润性埋深(水位到管口的距离)(m)
*/
private Double depth;
/**
* .浸润线设备到开孔位置的距离
*/
private Double jrx_burial;
/**
* 浸润线开孔深度
*/
private Double jrx_trepanning;
/**
* 设备距离坡面左侧距离(单位:m)
*/
private Double jrx_coord_x;
private LocalDateTime time;
}
package me.zhengjie.gemho.x_datavo.tab.visual;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
public class JrxStepsListVo {
private String name;
private Integer value;
}
......@@ -11,6 +11,6 @@ public class Location {
private String province;
private String city;
private String name;
}
......@@ -6,6 +6,7 @@ import me.zhengjie.gemho.entity.web.WebMonitorIcon;
import java.util.HashMap;
import java.util.List;
@Data
public class MonitorChartRq {
private WebMonitorChart chart;
......
......@@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class WebMonitorPointsRq {
/**
......
......@@ -22,9 +22,8 @@ import java.util.List;
public class MyGenerator {
public static void main(String[] args) {
List<String> tables = new ArrayList<>();
tables.add("ins_project");
tables.add("ins_data");
tables.add("ins_children");
tables.add("tab_jrx_dissect");
tables.add("tab_jrx_water");
tables.size();
FastAutoGenerator.create(
//数据源配置,url需要修改
......@@ -52,12 +51,12 @@ public class MyGenerator {
.packageConfig(builder -> {
builder.parent("me.zhengjie.gemho") // 设置父包名,根据实制项目路径修改
//.moduleName("sys")
.entity("entity.ins")
.service("service.ins")
.serviceImpl("service.ins.impl")
.mapper("mapper.ins")
.entity("entity.tab")
.service("service.tab")
.serviceImpl("service.tab.impl")
.mapper("mapper.tab")
//.xml("mapper.xml")
.controller("controller.ins")
.controller("controller.tab")
//.other("other")
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, System.getProperty("user.dir") + "/src/main/resources/mapper"));
})
......
......@@ -26,43 +26,43 @@ import javax.persistence.*;
import java.io.Serializable;
/**
* @author zhanghouying
* @date 2019-08-24
*/
* @author zhanghouying
* @date 2019-08-24
*/
@Entity
@Getter
@Setter
@Table(name="mnt_app")
@Table(name = "mnt_app")
public class App extends BaseEntity implements Serializable {
@Id
@Column(name = "app_id")
@ApiModelProperty(value = "ID", hidden = true)
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "app_id")
@ApiModelProperty(value = "ID", hidden = true)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ApiModelProperty(value = "名称")
@ApiModelProperty(value = "名称")
private String name;
@ApiModelProperty(value = "端口")
private int port;
@ApiModelProperty(value = "端口")
private int port;
@ApiModelProperty(value = "上传路径")
private String uploadPath;
@ApiModelProperty(value = "上传路径")
private String uploadPath;
@ApiModelProperty(value = "部署路径")
private String deployPath;
@ApiModelProperty(value = "部署路径")
private String deployPath;
@ApiModelProperty(value = "备份路径")
private String backupPath;
@ApiModelProperty(value = "备份路径")
private String backupPath;
@ApiModelProperty(value = "启动脚本")
private String startScript;
@ApiModelProperty(value = "启动脚本")
private String startScript;
@ApiModelProperty(value = "部署脚本")
private String deployScript;
@ApiModelProperty(value = "部署脚本")
private String deployScript;
public void copy(App source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
public void copy(App source) {
BeanUtil.copyProperties(source, this, CopyOptions.create().setIgnoreNullValue(true));
}
}
......@@ -29,33 +29,33 @@ import javax.persistence.Table;
import java.io.Serializable;
/**
* @author zhanghouying
* @date 2019-08-24
*/
* @author zhanghouying
* @date 2019-08-24
*/
@Entity
@Getter
@Setter
@Table(name="mnt_database")
@Table(name = "mnt_database")
public class Database extends BaseEntity implements Serializable {
@Id
@Column(name = "db_id")
@ApiModelProperty(value = "ID", hidden = true)
@ApiModelProperty(value = "ID", hidden = true)
private String id;
@ApiModelProperty(value = "数据库名称")
@ApiModelProperty(value = "数据库名称")
private String name;
@ApiModelProperty(value = "数据库连接地址")
@ApiModelProperty(value = "数据库连接地址")
private String jdbcUrl;
@ApiModelProperty(value = "数据库密码")
@ApiModelProperty(value = "数据库密码")
private String pwd;
@ApiModelProperty(value = "用户名")
@ApiModelProperty(value = "用户名")
private String userName;
public void copy(Database source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
public void copy(Database source) {
BeanUtil.copyProperties(source, this, CopyOptions.create().setIgnoreNullValue(true));
}
}
......@@ -27,34 +27,34 @@ import java.io.Serializable;
import java.util.Set;
/**
* @author zhanghouying
* @date 2019-08-24
*/
* @author zhanghouying
* @date 2019-08-24
*/
@Entity
@Getter
@Setter
@Table(name="mnt_deploy")
@Table(name = "mnt_deploy")
public class Deploy extends BaseEntity implements Serializable {
@Id
@Column(name = "deploy_id")
@ApiModelProperty(value = "ID", hidden = true)
@Column(name = "deploy_id")
@ApiModelProperty(value = "ID", hidden = true)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToMany
@ApiModelProperty(name = "服务器", hidden = true)
@JoinTable(name = "mnt_deploy_server",
joinColumns = {@JoinColumn(name = "deploy_id",referencedColumnName = "deploy_id")},
inverseJoinColumns = {@JoinColumn(name = "server_id",referencedColumnName = "server_id")})
private Set<ServerDeploy> deploys;
@ManyToMany
@ApiModelProperty(name = "服务器", hidden = true)
@JoinTable(name = "mnt_deploy_server",
joinColumns = {@JoinColumn(name = "deploy_id", referencedColumnName = "deploy_id")},
inverseJoinColumns = {@JoinColumn(name = "server_id", referencedColumnName = "server_id")})
private Set<ServerDeploy> deploys;
@ManyToOne
@ManyToOne
@JoinColumn(name = "app_id")
@ApiModelProperty(value = "应用编号")
@ApiModelProperty(value = "应用编号")
private App app;
public void copy(Deploy source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
public void copy(Deploy source) {
BeanUtil.copyProperties(source, this, CopyOptions.create().setIgnoreNullValue(true));
}
}
......@@ -30,37 +30,37 @@ import java.io.Serializable;
import java.sql.Timestamp;
/**
* @author zhanghouying
* @date 2019-08-24
*/
* @author zhanghouying
* @date 2019-08-24
*/
@Entity
@Getter
@Setter
@Table(name="mnt_deploy_history")
@Table(name = "mnt_deploy_history")
public class DeployHistory implements Serializable {
@Id
@Column(name = "history_id")
@ApiModelProperty(value = "ID", hidden = true)
@ApiModelProperty(value = "ID", hidden = true)
private String id;
@ApiModelProperty(value = "应用名称")
private String appName;
@ApiModelProperty(value = "IP")
@ApiModelProperty(value = "IP")
private String ip;
@CreationTimestamp
@ApiModelProperty(value = "部署时间")
@CreationTimestamp
@ApiModelProperty(value = "部署时间")
private Timestamp deployDate;
@ApiModelProperty(value = "部署者")
@ApiModelProperty(value = "部署者")
private String deployUser;
@ApiModelProperty(value = "部署ID")
private Long deployId;
@ApiModelProperty(value = "部署ID")
private Long deployId;
public void copy(DeployHistory source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
public void copy(DeployHistory source) {
BeanUtil.copyProperties(source, this, CopyOptions.create().setIgnoreNullValue(true));
}
}
......@@ -27,13 +27,13 @@ import java.io.Serializable;
import java.util.Objects;
/**
* @author zhanghouying
* @date 2019-08-24
*/
* @author zhanghouying
* @date 2019-08-24
*/
@Entity
@Getter
@Setter
@Table(name="mnt_server")
@Table(name = "mnt_server")
public class ServerDeploy extends BaseEntity implements Serializable {
@Id
......@@ -57,8 +57,8 @@ public class ServerDeploy extends BaseEntity implements Serializable {
@ApiModelProperty(value = "密码")
private String password;
public void copy(ServerDeploy source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
public void copy(ServerDeploy source) {
BeanUtil.copyProperties(source, this, CopyOptions.create().setIgnoreNullValue(true));
}
@Override
......
......@@ -20,8 +20,8 @@ import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
* @author zhanghouying
* @date 2019-08-24
*/
* @author zhanghouying
* @date 2019-08-24
*/
public interface AppRepository extends JpaRepository<App, Long>, JpaSpecificationExecutor<App> {
}
......@@ -20,8 +20,8 @@ import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
* @author zhanghouying
* @date 2019-08-24
*/
* @author zhanghouying
* @date 2019-08-24
*/
public interface DatabaseRepository extends JpaRepository<Database, String>, JpaSpecificationExecutor<Database> {
}
......@@ -20,8 +20,8 @@ import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
* @author zhanghouying
* @date 2019-08-24
*/
* @author zhanghouying
* @date 2019-08-24
*/
public interface DeployHistoryRepository extends JpaRepository<DeployHistory, String>, JpaSpecificationExecutor<DeployHistory> {
}
......@@ -20,8 +20,8 @@ import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
* @author zhanghouying
* @date 2019-08-24
*/
* @author zhanghouying
* @date 2019-08-24
*/
public interface DeployRepository extends JpaRepository<Deploy, Long>, JpaSpecificationExecutor<Deploy> {
}
......@@ -20,13 +20,14 @@ import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
* @author zhanghouying
* @date 2019-08-24
*/
* @author zhanghouying
* @date 2019-08-24
*/
public interface ServerDeployRepository extends JpaRepository<ServerDeploy, Long>, JpaSpecificationExecutor<ServerDeploy> {
/**
* 根据IP查询
*
* @param ip /
* @return /
*/
......
......@@ -34,9 +34,9 @@ import java.io.IOException;
import java.util.Set;
/**
* @author zhanghouying
* @date 2019-08-24
*/
* @author zhanghouying
* @date 2019-08-24
*/
@RestController
@RequiredArgsConstructor
@Api(tags = "运维:应用管理")
......@@ -54,16 +54,16 @@ public class AppController {
@ApiOperation(value = "查询应用")
@GetMapping
@PreAuthorize("@el.check('app:list')")
public ResponseEntity<Object> queryApp(AppQueryCriteria criteria, Pageable pageable){
return new ResponseEntity<>(appService.queryAll(criteria,pageable),HttpStatus.OK);
@PreAuthorize("@el.check('app:list')")
public ResponseEntity<Object> queryApp(AppQueryCriteria criteria, Pageable pageable) {
return new ResponseEntity<>(appService.queryAll(criteria, pageable), HttpStatus.OK);
}
@Log("新增应用")
@ApiOperation(value = "新增应用")
@PostMapping
@PreAuthorize("@el.check('app:add')")
public ResponseEntity<Object> createApp(@Validated @RequestBody App resources){
@PreAuthorize("@el.check('app:add')")
public ResponseEntity<Object> createApp(@Validated @RequestBody App resources) {
appService.create(resources);
return new ResponseEntity<>(HttpStatus.CREATED);
}
......@@ -71,17 +71,17 @@ public class AppController {
@Log("修改应用")
@ApiOperation(value = "修改应用")
@PutMapping
@PreAuthorize("@el.check('app:edit')")
public ResponseEntity<Object> updateApp(@Validated @RequestBody App resources){
@PreAuthorize("@el.check('app:edit')")
public ResponseEntity<Object> updateApp(@Validated @RequestBody App resources) {
appService.update(resources);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@Log("删除应用")
@ApiOperation(value = "删除应用")
@DeleteMapping
@PreAuthorize("@el.check('app:del')")
public ResponseEntity<Object> deleteApp(@RequestBody Set<Long> ids){
@DeleteMapping
@PreAuthorize("@el.check('app:del')")
public ResponseEntity<Object> deleteApp(@RequestBody Set<Long> ids) {
appService.delete(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
......
......@@ -41,46 +41,46 @@ import java.io.IOException;
import java.util.Set;
/**
* @author zhanghouying
* @date 2019-08-24
*/
* @author zhanghouying
* @date 2019-08-24
*/
@Api(tags = "运维:数据库管理")
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/database")
public class DatabaseController {
private final String fileSavePath = FileUtil.getTmpDirPath()+"/";
private final String fileSavePath = FileUtil.getTmpDirPath() + "/";
private final DatabaseService databaseService;
@ApiOperation("导出数据库数据")
@GetMapping(value = "/download")
//@PreAuthorize("@el.check('database:list')")
public void exportDatabase(HttpServletResponse response, DatabaseQueryCriteria criteria) throws IOException {
databaseService.download(databaseService.queryAll(criteria), response);
}
@ApiOperation("导出数据库数据")
@GetMapping(value = "/download")
//@PreAuthorize("@el.check('database:list')")
public void exportDatabase(HttpServletResponse response, DatabaseQueryCriteria criteria) throws IOException {
databaseService.download(databaseService.queryAll(criteria), response);
}
@ApiOperation(value = "查询数据库")
@GetMapping
@PreAuthorize("@el.check('database:list')")
public ResponseEntity<Object> queryDatabase(DatabaseQueryCriteria criteria, Pageable pageable){
return new ResponseEntity<>(databaseService.queryAll(criteria,pageable),HttpStatus.OK);
@PreAuthorize("@el.check('database:list')")
public ResponseEntity<Object> queryDatabase(DatabaseQueryCriteria criteria, Pageable pageable) {
return new ResponseEntity<>(databaseService.queryAll(criteria, pageable), HttpStatus.OK);
}
@Log("新增数据库")
@ApiOperation(value = "新增数据库")
@PostMapping
@PreAuthorize("@el.check('database:add')")
public ResponseEntity<Object> createDatabase(@Validated @RequestBody Database resources){
databaseService.create(resources);
@PreAuthorize("@el.check('database:add')")
public ResponseEntity<Object> createDatabase(@Validated @RequestBody Database resources) {
databaseService.create(resources);
return new ResponseEntity<>(HttpStatus.CREATED);
}
@Log("修改数据库")
@ApiOperation(value = "修改数据库")
@PutMapping
@PreAuthorize("@el.check('database:edit')")
public ResponseEntity<Object> updateDatabase(@Validated @RequestBody Database resources){
@PreAuthorize("@el.check('database:edit')")
public ResponseEntity<Object> updateDatabase(@Validated @RequestBody Database resources) {
databaseService.update(resources);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
......@@ -88,37 +88,37 @@ public class DatabaseController {
@Log("删除数据库")
@ApiOperation(value = "删除数据库")
@DeleteMapping
@PreAuthorize("@el.check('database:del')")
public ResponseEntity<Object> deleteDatabase(@RequestBody Set<String> ids){
@PreAuthorize("@el.check('database:del')")
public ResponseEntity<Object> deleteDatabase(@RequestBody Set<String> ids) {
databaseService.delete(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
@Log("测试数据库链接")
@ApiOperation(value = "测试数据库链接")
@PostMapping("/testConnect")
@PreAuthorize("@el.check('database:testConnect')")
public ResponseEntity<Object> testConnect(@Validated @RequestBody Database resources){
return new ResponseEntity<>(databaseService.testConnection(resources),HttpStatus.CREATED);
}
@Log("测试数据库链接")
@ApiOperation(value = "测试数据库链接")
@PostMapping("/testConnect")
@PreAuthorize("@el.check('database:testConnect')")
public ResponseEntity<Object> testConnect(@Validated @RequestBody Database resources) {
return new ResponseEntity<>(databaseService.testConnection(resources), HttpStatus.CREATED);
}
@Log("执行SQL脚本")
@ApiOperation(value = "执行SQL脚本")
@PostMapping(value = "/upload")
@PreAuthorize("@el.check('database:add')")
public ResponseEntity<Object> uploadDatabase(@RequestBody MultipartFile file, HttpServletRequest request)throws Exception{
String id = request.getParameter("id");
DatabaseDto database = databaseService.findById(id);
String fileName;
if(database != null){
fileName = file.getOriginalFilename();
File executeFile = new File(fileSavePath+fileName);
FileUtil.del(executeFile);
file.transferTo(executeFile);
String result = SqlUtils.executeFile(database.getJdbcUrl(), database.getUserName(), database.getPwd(), executeFile);
return new ResponseEntity<>(result,HttpStatus.OK);
}else{
throw new BadRequestException("Database not exist");
}
}
@Log("执行SQL脚本")
@ApiOperation(value = "执行SQL脚本")
@PostMapping(value = "/upload")
@PreAuthorize("@el.check('database:add')")
public ResponseEntity<Object> uploadDatabase(@RequestBody MultipartFile file, HttpServletRequest request) throws Exception {
String id = request.getParameter("id");
DatabaseDto database = databaseService.findById(id);
String fileName;
if (database != null) {
fileName = file.getOriginalFilename();
File executeFile = new File(fileSavePath + fileName);
FileUtil.del(executeFile);
file.transferTo(executeFile);
String result = SqlUtils.executeFile(database.getJdbcUrl(), database.getUserName(), database.getPwd(), executeFile);
return new ResponseEntity<>(result, HttpStatus.OK);
} else {
throw new BadRequestException("Database not exist");
}
}
}
......@@ -42,113 +42,117 @@ import java.util.Objects;
import java.util.Set;
/**
* @author zhanghouying
* @date 2019-08-24
*/
* @author zhanghouying
* @date 2019-08-24
*/
@RestController
@Api(tags = "运维:部署管理")
@RequiredArgsConstructor
@RequestMapping("/api/deploy")
public class DeployController {
private final String fileSavePath = FileUtil.getTmpDirPath()+"/";
private final String fileSavePath = FileUtil.getTmpDirPath() + "/";
private final DeployService deployService;
@ApiOperation("导出部署数据")
@GetMapping(value = "/download")
@PreAuthorize("@el.check('database:list')")
public void exportDeployData(HttpServletResponse response, DeployQueryCriteria criteria) throws IOException {
deployService.download(deployService.queryAll(criteria), response);
}
@ApiOperation("导出部署数据")
@GetMapping(value = "/download")
@PreAuthorize("@el.check('database:list')")
public void exportDeployData(HttpServletResponse response, DeployQueryCriteria criteria) throws IOException {
deployService.download(deployService.queryAll(criteria), response);
}
@ApiOperation(value = "查询部署")
@GetMapping
@PreAuthorize("@el.check('deploy:list')")
public ResponseEntity<Object> queryDeployData(DeployQueryCriteria criteria, Pageable pageable){
return new ResponseEntity<>(deployService.queryAll(criteria,pageable),HttpStatus.OK);
@PreAuthorize("@el.check('deploy:list')")
public ResponseEntity<Object> queryDeployData(DeployQueryCriteria criteria, Pageable pageable) {
return new ResponseEntity<>(deployService.queryAll(criteria, pageable), HttpStatus.OK);
}
@Log("新增部署")
@ApiOperation(value = "新增部署")
@PostMapping
@PreAuthorize("@el.check('deploy:add')")
public ResponseEntity<Object> createDeploy(@Validated @RequestBody Deploy resources){
deployService.create(resources);
@PreAuthorize("@el.check('deploy:add')")
public ResponseEntity<Object> createDeploy(@Validated @RequestBody Deploy resources) {
deployService.create(resources);
return new ResponseEntity<>(HttpStatus.CREATED);
}
@Log("修改部署")
@ApiOperation(value = "修改部署")
@PutMapping
@PreAuthorize("@el.check('deploy:edit')")
public ResponseEntity<Object> updateDeploy(@Validated @RequestBody Deploy resources){
@PreAuthorize("@el.check('deploy:edit')")
public ResponseEntity<Object> updateDeploy(@Validated @RequestBody Deploy resources) {
deployService.update(resources);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@Log("删除部署")
@ApiOperation(value = "删除部署")
@DeleteMapping
@PreAuthorize("@el.check('deploy:del')")
public ResponseEntity<Object> deleteDeploy(@RequestBody Set<Long> ids){
deployService.delete(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
@Log("删除部署")
@ApiOperation(value = "删除部署")
@DeleteMapping
@PreAuthorize("@el.check('deploy:del')")
public ResponseEntity<Object> deleteDeploy(@RequestBody Set<Long> ids) {
deployService.delete(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
@Log("上传文件部署")
@ApiOperation(value = "上传文件部署")
@PostMapping(value = "/upload")
@PreAuthorize("@el.check('deploy:edit')")
public ResponseEntity<Object> uploadDeploy(@RequestBody MultipartFile file, HttpServletRequest request) throws Exception {
Long id = Long.valueOf(request.getParameter("id"));
String fileName = "";
if (file != null) {
fileName = file.getOriginalFilename();
File deployFile = new File(fileSavePath + fileName);
FileUtil.del(deployFile);
file.transferTo(deployFile);
//文件下一步要根据文件名字来
deployService.deploy(fileSavePath + fileName, id);
} else {
System.out.println("没有找到相对应的文件");
}
System.out.println("文件上传的原名称为:" + Objects.requireNonNull(file).getOriginalFilename());
Map<String, Object> map = new HashMap<>(2);
map.put("errno", 0);
map.put("id", fileName);
return new ResponseEntity<>(map, HttpStatus.OK);
}
@Log("系统还原")
@ApiOperation(value = "系统还原")
@PostMapping(value = "/serverReduction")
@PreAuthorize("@el.check('deploy:edit')")
public ResponseEntity<Object> serverReduction(@Validated @RequestBody DeployHistory resources) {
String result = deployService.serverReduction(resources);
return new ResponseEntity<>(result, HttpStatus.OK);
}
@Log("服务运行状态")
@ApiOperation(value = "服务运行状态")
@PostMapping(value = "/serverStatus")
@PreAuthorize("@el.check('deploy:edit')")
public ResponseEntity<Object> serverStatus(@Validated @RequestBody Deploy resources) {
String result = deployService.serverStatus(resources);
return new ResponseEntity<>(result, HttpStatus.OK);
}
@Log("上传文件部署")
@ApiOperation(value = "上传文件部署")
@PostMapping(value = "/upload")
@PreAuthorize("@el.check('deploy:edit')")
public ResponseEntity<Object> uploadDeploy(@RequestBody MultipartFile file, HttpServletRequest request)throws Exception{
Long id = Long.valueOf(request.getParameter("id"));
String fileName = "";
if(file != null){
fileName = file.getOriginalFilename();
File deployFile = new File(fileSavePath+fileName);
FileUtil.del(deployFile);
file.transferTo(deployFile);
//文件下一步要根据文件名字来
deployService.deploy(fileSavePath+fileName ,id);
}else{
System.out.println("没有找到相对应的文件");
}
System.out.println("文件上传的原名称为:"+ Objects.requireNonNull(file).getOriginalFilename());
Map<String,Object> map = new HashMap<>(2);
map.put("errno",0);
map.put("id",fileName);
return new ResponseEntity<>(map,HttpStatus.OK);
}
@Log("系统还原")
@ApiOperation(value = "系统还原")
@PostMapping(value = "/serverReduction")
@PreAuthorize("@el.check('deploy:edit')")
public ResponseEntity<Object> serverReduction(@Validated @RequestBody DeployHistory resources){
String result = deployService.serverReduction(resources);
return new ResponseEntity<>(result,HttpStatus.OK);
}
@Log("服务运行状态")
@ApiOperation(value = "服务运行状态")
@PostMapping(value = "/serverStatus")
@PreAuthorize("@el.check('deploy:edit')")
public ResponseEntity<Object> serverStatus(@Validated @RequestBody Deploy resources){
String result = deployService.serverStatus(resources);
return new ResponseEntity<>(result,HttpStatus.OK);
}
@Log("启动服务")
@ApiOperation(value = "启动服务")
@PostMapping(value = "/startServer")
@PreAuthorize("@el.check('deploy:edit')")
public ResponseEntity<Object> startServer(@Validated @RequestBody Deploy resources){
String result = deployService.startServer(resources);
return new ResponseEntity<>(result,HttpStatus.OK);
}
@Log("停止服务")
@ApiOperation(value = "停止服务")
@PostMapping(value = "/stopServer")
@PreAuthorize("@el.check('deploy:edit')")
public ResponseEntity<Object> stopServer(@Validated @RequestBody Deploy resources){
String result = deployService.stopServer(resources);
return new ResponseEntity<>(result,HttpStatus.OK);
}
@Log("启动服务")
@ApiOperation(value = "启动服务")
@PostMapping(value = "/startServer")
@PreAuthorize("@el.check('deploy:edit')")
public ResponseEntity<Object> startServer(@Validated @RequestBody Deploy resources) {
String result = deployService.startServer(resources);
return new ResponseEntity<>(result, HttpStatus.OK);
}
@Log("停止服务")
@ApiOperation(value = "停止服务")
@PostMapping(value = "/stopServer")
@PreAuthorize("@el.check('deploy:edit')")
public ResponseEntity<Object> stopServer(@Validated @RequestBody Deploy resources) {
String result = deployService.stopServer(resources);
return new ResponseEntity<>(result, HttpStatus.OK);
}
}
......@@ -32,9 +32,9 @@ import java.io.IOException;
import java.util.Set;
/**
* @author zhanghouying
* @date 2019-08-24
*/
* @author zhanghouying
* @date 2019-08-24
*/
@RestController
@RequiredArgsConstructor
@Api(tags = "运维:部署历史管理")
......@@ -52,16 +52,16 @@ public class DeployHistoryController {
@ApiOperation(value = "查询部署历史")
@GetMapping
@PreAuthorize("@el.check('deployHistory:list')")
public ResponseEntity<Object> queryDeployHistory(DeployHistoryQueryCriteria criteria, Pageable pageable){
return new ResponseEntity<>(deployhistoryService.queryAll(criteria,pageable),HttpStatus.OK);
@PreAuthorize("@el.check('deployHistory:list')")
public ResponseEntity<Object> queryDeployHistory(DeployHistoryQueryCriteria criteria, Pageable pageable) {
return new ResponseEntity<>(deployhistoryService.queryAll(criteria, pageable), HttpStatus.OK);
}
@Log("删除DeployHistory")
@ApiOperation(value = "删除部署历史")
@DeleteMapping
@DeleteMapping
@PreAuthorize("@el.check('deployHistory:del')")
public ResponseEntity<Object> deleteDeployHistory(@RequestBody Set<String> ids){
public ResponseEntity<Object> deleteDeployHistory(@RequestBody Set<String> ids) {
deployhistoryService.delete(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
......
......@@ -34,9 +34,9 @@ import java.io.IOException;
import java.util.Set;
/**
* @author zhanghouying
* @date 2019-08-24
*/
* @author zhanghouying
* @date 2019-08-24
*/
@RestController
@Api(tags = "运维:服务器管理")
@RequiredArgsConstructor
......@@ -54,16 +54,16 @@ public class ServerDeployController {
@ApiOperation(value = "查询服务器")
@GetMapping
@PreAuthorize("@el.check('serverDeploy:list')")
public ResponseEntity<Object> queryServerDeploy(ServerDeployQueryCriteria criteria, Pageable pageable){
return new ResponseEntity<>(serverDeployService.queryAll(criteria,pageable),HttpStatus.OK);
@PreAuthorize("@el.check('serverDeploy:list')")
public ResponseEntity<Object> queryServerDeploy(ServerDeployQueryCriteria criteria, Pageable pageable) {
return new ResponseEntity<>(serverDeployService.queryAll(criteria, pageable), HttpStatus.OK);
}
@Log("新增服务器")
@ApiOperation(value = "新增服务器")
@PostMapping
@PreAuthorize("@el.check('serverDeploy:add')")
public ResponseEntity<Object> createServerDeploy(@Validated @RequestBody ServerDeploy resources){
@PreAuthorize("@el.check('serverDeploy:add')")
public ResponseEntity<Object> createServerDeploy(@Validated @RequestBody ServerDeploy resources) {
serverDeployService.create(resources);
return new ResponseEntity<>(HttpStatus.CREATED);
}
......@@ -71,26 +71,26 @@ public class ServerDeployController {
@Log("修改服务器")
@ApiOperation(value = "修改服务器")
@PutMapping
@PreAuthorize("@el.check('serverDeploy:edit')")
public ResponseEntity<Object> updateServerDeploy(@Validated @RequestBody ServerDeploy resources){
@PreAuthorize("@el.check('serverDeploy:edit')")
public ResponseEntity<Object> updateServerDeploy(@Validated @RequestBody ServerDeploy resources) {
serverDeployService.update(resources);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@Log("删除服务器")
@ApiOperation(value = "删除Server")
@DeleteMapping
@PreAuthorize("@el.check('serverDeploy:del')")
public ResponseEntity<Object> deleteServerDeploy(@RequestBody Set<Long> ids){
@DeleteMapping
@PreAuthorize("@el.check('serverDeploy:del')")
public ResponseEntity<Object> deleteServerDeploy(@RequestBody Set<Long> ids) {
serverDeployService.delete(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
@Log("测试连接服务器")
@ApiOperation(value = "测试连接服务器")
@PostMapping("/testConnect")
@PreAuthorize("@el.check('serverDeploy:add')")
public ResponseEntity<Object> testConnectServerDeploy(@Validated @RequestBody ServerDeploy resources){
return new ResponseEntity<>(serverDeployService.testConnect(resources),HttpStatus.CREATED);
}
@Log("测试连接服务器")
@ApiOperation(value = "测试连接服务器")
@PostMapping("/testConnect")
@PreAuthorize("@el.check('serverDeploy:add')")
public ResponseEntity<Object> testConnectServerDeploy(@Validated @RequestBody ServerDeploy resources) {
return new ResponseEntity<>(serverDeployService.testConnect(resources), HttpStatus.CREATED);
}
}
......@@ -26,13 +26,14 @@ import java.util.List;
import java.util.Set;
/**
* @author zhanghouying
* @date 2019-08-24
*/
* @author zhanghouying
* @date 2019-08-24
*/
public interface AppService {
/**
* 分页查询
*
* @param criteria 条件
* @param pageable 分页参数
* @return /
......@@ -41,6 +42,7 @@ public interface AppService {
/**
* 查询全部数据
*
* @param criteria 条件
* @return /
*/
......@@ -48,6 +50,7 @@ public interface AppService {
/**
* 根据ID查询
*
* @param id /
* @return /
*/
......@@ -55,24 +58,28 @@ public interface AppService {
/**
* 创建
*
* @param resources /
*/
void create(App resources);
/**
* 编辑
*
* @param resources /
*/
void update(App resources);
/**
* 删除
*
* @param ids /
*/
void delete(Set<Long> ids);
/**
* 导出数据
*
* @param queryAll /
* @param response /
* @throws IOException /
......
......@@ -33,6 +33,7 @@ public interface DatabaseService {
/**
* 分页查询
*
* @param criteria 条件
* @param pageable 分页参数
* @return /
......@@ -41,6 +42,7 @@ public interface DatabaseService {
/**
* 查询全部
*
* @param criteria 条件
* @return /
*/
......@@ -48,6 +50,7 @@ public interface DatabaseService {
/**
* 根据ID查询
*
* @param id /
* @return /
*/
......@@ -55,31 +58,36 @@ public interface DatabaseService {
/**
* 创建
*
* @param resources /
*/
void create(Database resources);
/**
* 编辑
*
* @param resources /
*/
void update(Database resources);
/**
* 删除
*
* @param ids /
*/
void delete(Set<String> ids);
/**
* 测试连接数据库
* @param resources /
* @return /
*/
boolean testConnection(Database resources);
/**
* 测试连接数据库
*
* @param resources /
* @return /
*/
boolean testConnection(Database resources);
/**
* 导出数据
*
* @param queryAll /
* @param response /
* @throws IOException e
......
......@@ -32,6 +32,7 @@ public interface DeployHistoryService {
/**
* 分页查询
*
* @param criteria 条件
* @param pageable 分页参数
* @return /
......@@ -40,6 +41,7 @@ public interface DeployHistoryService {
/**
* 查询全部
*
* @param criteria 条件
* @return /
*/
......@@ -47,6 +49,7 @@ public interface DeployHistoryService {
/**
* 根据ID查询
*
* @param id /
* @return /
*/
......@@ -54,18 +57,21 @@ public interface DeployHistoryService {
/**
* 创建
*
* @param resources /
*/
void create(DeployHistory resources);
/**
* 删除
*
* @param ids /
*/
void delete(Set<String> ids);
/**
* 导出数据
*
* @param queryAll /
* @param response /
* @throws IOException /
......
......@@ -27,13 +27,14 @@ import java.util.List;
import java.util.Set;
/**
* @author zhanghouying
* @date 2019-08-24
*/
* @author zhanghouying
* @date 2019-08-24
*/
public interface DeployService {
/**
* 分页查询
*
* @param criteria 条件
* @param pageable 分页参数
* @return /
......@@ -42,6 +43,7 @@ public interface DeployService {
/**
* 查询全部数据
*
* @param criteria 条件
* @return /
*/
......@@ -49,6 +51,7 @@ public interface DeployService {
/**
* 根据ID查询
*
* @param id /
* @return /
*/
......@@ -56,6 +59,7 @@ public interface DeployService {
/**
* 创建
*
* @param resources /
*/
void create(Deploy resources);
......@@ -63,37 +67,45 @@ public interface DeployService {
/**
* 编辑
*
* @param resources /
*/
void update(Deploy resources);
/**
* 删除
*
* @param ids /
*/
void delete(Set<Long> ids);
/**
* 部署文件到服务器
* @param fileSavePath 文件路径
* @param appId 应用ID
/**
* 部署文件到服务器
*
* @param fileSavePath 文件路径
* @param appId 应用ID
*/
void deploy(String fileSavePath, Long appId);
void deploy(String fileSavePath, Long appId);
/**
* 查询部署状态
*
* @param resources /
* @return /
*/
String serverStatus(Deploy resources);
/**
* 启动服务
*
* @param resources /
* @return /
*/
String startServer(Deploy resources);
/**
* 停止服务
*
* @param resources /
* @return /
*/
......@@ -101,6 +113,7 @@ public interface DeployService {
/**
* 停止服务
*
* @param resources /
* @return /
*/
......@@ -108,6 +121,7 @@ public interface DeployService {
/**
* 导出数据
*
* @param queryAll /
* @param response /
* @throws IOException /
......
......@@ -26,13 +26,14 @@ import java.util.List;
import java.util.Set;
/**
* @author zhanghouying
* @date 2019-08-24
*/
* @author zhanghouying
* @date 2019-08-24
*/
public interface ServerDeployService {
/**
* 分页查询
*
* @param criteria 条件
* @param pageable 分页参数
* @return /
......@@ -41,6 +42,7 @@ public interface ServerDeployService {
/**
* 查询全部数据
*
* @param criteria 条件
* @return /
*/
......@@ -48,6 +50,7 @@ public interface ServerDeployService {
/**
* 根据ID查询
*
* @param id /
* @return /
*/
......@@ -55,38 +58,44 @@ public interface ServerDeployService {
/**
* 创建
*
* @param resources /
*/
void create(ServerDeploy resources);
/**
* 编辑
*
* @param resources /
*/
void update(ServerDeploy resources);
/**
* 删除
*
* @param ids /
*/
void delete(Set<Long> ids);
/**
* 根据IP查询
*
* @param ip /
* @return /
*/
ServerDeployDto findByIp(String ip);
/**
* 测试登录服务器
* @param resources /
* @return /
*/
Boolean testConnect(ServerDeploy resources);
/**
* 测试登录服务器
*
* @param resources /
* @return /
*/
Boolean testConnect(ServerDeploy resources);
/**
* 导出数据
*
* @param queryAll /
* @param response /
* @throws IOException /
......
......@@ -22,51 +22,51 @@ import me.zhengjie.base.BaseDTO;
import java.io.Serializable;
/**
* @author zhanghouying
* @date 2019-08-24
*/
* @author zhanghouying
* @date 2019-08-24
*/
@Getter
@Setter
public class AppDto extends BaseDTO implements Serializable {
/**
* 应用编号
*/
/**
* 应用编号
*/
private Long id;
/**
* 应用名称
*/
private String name;
/**
* 应用名称
*/
private String name;
/**
* 端口
*/
private Integer port;
/**
* 端口
*/
private Integer port;
/**
* 上传目录
*/
private String uploadPath;
/**
* 上传目录
*/
private String uploadPath;
/**
* 部署目录
*/
private String deployPath;
/**
* 部署目录
*/
private String deployPath;
/**
* 备份目录
*/
private String backupPath;
/**
* 备份目录
*/
private String backupPath;
/**
* 启动脚本
*/
private String startScript;
/**
* 启动脚本
*/
private String startScript;
/**
* 部署脚本
*/
private String deployScript;
/**
* 部署脚本
*/
private String deployScript;
}
......@@ -22,18 +22,18 @@ import java.sql.Timestamp;
import java.util.List;
/**
* @author zhanghouying
* @date 2019-08-24
*/
* @author zhanghouying
* @date 2019-08-24
*/
@Data
public class AppQueryCriteria{
public class AppQueryCriteria {
/**
* 模糊
*/
/**
* 模糊
*/
@Query(type = Query.Type.INNER_LIKE)
private String name;
@Query(type = Query.Type.BETWEEN)
private List<Timestamp> createTime;
@Query(type = Query.Type.BETWEEN)
private List<Timestamp> createTime;
}
......@@ -22,35 +22,35 @@ import me.zhengjie.base.BaseDTO;
import java.io.Serializable;
/**
* @author zhanghouying
* @date 2019-08-24
*/
* @author zhanghouying
* @date 2019-08-24
*/
@Getter
@Setter
public class DatabaseDto extends BaseDTO implements Serializable {
/**
* id
*/
/**
* id
*/
private String id;
/**
* 数据库名称
*/
/**
* 数据库名称
*/
private String name;
/**
* 数据库连接地址
*/
/**
* 数据库连接地址
*/
private String jdbcUrl;
/**
* 数据库密码
*/
/**
* 数据库密码
*/
private String pwd;
/**
* 用户名
*/
/**
* 用户名
*/
private String userName;
}
......@@ -22,24 +22,24 @@ import java.sql.Timestamp;
import java.util.List;
/**
* @author zhanghouying
* @date 2019-08-24
*/
* @author zhanghouying
* @date 2019-08-24
*/
@Data
public class DatabaseQueryCriteria{
public class DatabaseQueryCriteria {
/**
* 模糊
*/
/**
* 模糊
*/
@Query(type = Query.Type.INNER_LIKE)
private String name;
/**
* 精确
*/
/**
* 精确
*/
@Query
private String jdbcUrl;
@Query(type = Query.Type.BETWEEN)
private List<Timestamp> createTime;
@Query(type = Query.Type.BETWEEN)
private List<Timestamp> createTime;
}
......@@ -27,53 +27,53 @@ import java.util.stream.Collectors;
/**
* @author zhanghouying
* @date 2019-08-24
*/
* @author zhanghouying
* @date 2019-08-24
*/
@Getter
@Setter
public class DeployDto extends BaseDTO implements Serializable {
/**
* 部署编号
*/
/**
* 部署编号
*/
private String id;
private AppDto app;
private AppDto app;
/**
* 服务器
*/
private Set<ServerDeployDto> deploys;
/**
* 服务器
*/
private Set<ServerDeployDto> deploys;
private String servers;
private String servers;
/**
* 服务状态
*/
private String status;
/**
* 服务状态
*/
private String status;
public String getServers() {
if(CollectionUtil.isNotEmpty(deploys)){
return deploys.stream().map(ServerDeployDto::getName).collect(Collectors.joining(","));
}
return servers;
}
public String getServers() {
if (CollectionUtil.isNotEmpty(deploys)) {
return deploys.stream().map(ServerDeployDto::getName).collect(Collectors.joining(","));
}
return servers;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
DeployDto deployDto = (DeployDto) o;
return Objects.equals(id, deployDto.id);
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
DeployDto deployDto = (DeployDto) o;
return Objects.equals(id, deployDto.id);
}
@Override
public int hashCode() {
return Objects.hash(id);
}
@Override
public int hashCode() {
return Objects.hash(id);
}
}
......@@ -21,39 +21,39 @@ import java.io.Serializable;
import java.sql.Timestamp;
/**
* @author zhanghouying
* @date 2019-08-24
*/
* @author zhanghouying
* @date 2019-08-24
*/
@Data
public class DeployHistoryDto implements Serializable {
/**
* 编号
*/
/**
* 编号
*/
private String id;
/**
* 应用名称
*/
/**
* 应用名称
*/
private String appName;
/**
* 部署IP
*/
/**
* 部署IP
*/
private String ip;
/**
* 部署时间
*/
private Timestamp deployDate;
/**
* 部署时间
*/
private Timestamp deployDate;
/**
* 部署人员
*/
private String deployUser;
/**
* 部署人员
*/
private String deployUser;
/**
* 部署编号
*/
private Long deployId;
/**
* 部署编号
*/
private Long deployId;
}
......@@ -22,21 +22,21 @@ import java.sql.Timestamp;
import java.util.List;
/**
* @author zhanghouying
* @date 2019-08-24
*/
* @author zhanghouying
* @date 2019-08-24
*/
@Data
public class DeployHistoryQueryCriteria{
public class DeployHistoryQueryCriteria {
/**
* 精确
*/
@Query(blurry = "appName,ip,deployUser")
private String blurry;
/**
* 精确
*/
@Query(blurry = "appName,ip,deployUser")
private String blurry;
@Query
private Long deployId;
@Query
private Long deployId;
@Query(type = Query.Type.BETWEEN)
private List<Timestamp> deployDate;
@Query(type = Query.Type.BETWEEN)
private List<Timestamp> deployDate;
}
......@@ -22,19 +22,19 @@ import java.sql.Timestamp;
import java.util.List;
/**
* @author zhanghouying
* @date 2019-08-24
*/
* @author zhanghouying
* @date 2019-08-24
*/
@Data
public class DeployQueryCriteria{
public class DeployQueryCriteria {
/**
* 模糊
*/
/**
* 模糊
*/
@Query(type = Query.Type.INNER_LIKE, propName = "name", joinName = "app")
private String appName;
@Query(type = Query.Type.BETWEEN)
private List<Timestamp> createTime;
@Query(type = Query.Type.BETWEEN)
private List<Timestamp> createTime;
}
......@@ -23,40 +23,40 @@ import java.io.Serializable;
import java.util.Objects;
/**
* @author zhanghouying
* @date 2019-08-24
*/
* @author zhanghouying
* @date 2019-08-24
*/
@Getter
@Setter
public class ServerDeployDto extends BaseDTO implements Serializable {
private Long id;
private String name;
private String name;
private String ip;
private String ip;
private Integer port;
private Integer port;
private String account;
private String account;
private String password;
private String password;
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
ServerDeployDto that = (ServerDeployDto) o;
return Objects.equals(id, that.id) &&
Objects.equals(name, that.name);
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
ServerDeployDto that = (ServerDeployDto) o;
return Objects.equals(id, that.id) &&
Objects.equals(name, that.name);
}
@Override
public int hashCode() {
return Objects.hash(id, name);
}
@Override
public int hashCode() {
return Objects.hash(id, name);
}
}
......@@ -22,18 +22,18 @@ import java.sql.Timestamp;
import java.util.List;
/**
* @author zhanghouying
* @date 2019-08-24
*/
* @author zhanghouying
* @date 2019-08-24
*/
@Data
public class ServerDeployQueryCriteria{
public class ServerDeployQueryCriteria {
/**
* 模糊
*/
@Query(blurry = "name,ip,account")
/**
* 模糊
*/
@Query(blurry = "name,ip,account")
private String blurry;
@Query(type = Query.Type.BETWEEN)
private List<Timestamp> createTime;
@Query(type = Query.Type.BETWEEN)
private List<Timestamp> createTime;
}
......@@ -37,9 +37,9 @@ import java.io.IOException;
import java.util.*;
/**
* @author zhanghouying
* @date 2019-08-24
*/
* @author zhanghouying
* @date 2019-08-24
*/
@Service
@RequiredArgsConstructor
public class AppServiceImpl implements AppService {
......@@ -48,20 +48,20 @@ public class AppServiceImpl implements AppService {
private final AppMapper appMapper;
@Override
public Object queryAll(AppQueryCriteria criteria, Pageable pageable){
Page<App> page = appRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
public Object queryAll(AppQueryCriteria criteria, Pageable pageable) {
Page<App> page = appRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable);
return PageUtil.toPage(page.map(appMapper::toDto));
}
@Override
public List<AppDto> queryAll(AppQueryCriteria criteria){
return appMapper.toDto(appRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder)));
public List<AppDto> queryAll(AppQueryCriteria criteria) {
return appMapper.toDto(appRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder)));
}
@Override
public AppDto findById(Long id) {
App app = appRepository.findById(id).orElseGet(App::new);
ValidationUtil.isNull(app.getId(),"App","id",id);
App app = appRepository.findById(id).orElseGet(App::new);
ValidationUtil.isNull(app.getId(), "App", "id", id);
return appMapper.toDto(app);
}
......@@ -77,12 +77,12 @@ public class AppServiceImpl implements AppService {
public void update(App resources) {
verification(resources);
App app = appRepository.findById(resources.getId()).orElseGet(App::new);
ValidationUtil.isNull(app.getId(),"App","id",resources.getId());
ValidationUtil.isNull(app.getId(), "App", "id", resources.getId());
app.copy(resources);
appRepository.save(app);
}
private void verification(App resources){
private void verification(App resources) {
String opt = "/opt";
String home = "/home";
if (!(resources.getUploadPath().startsWith(opt) || resources.getUploadPath().startsWith(home))) {
......@@ -108,7 +108,7 @@ public class AppServiceImpl implements AppService {
public void download(List<AppDto> queryAll, HttpServletResponse response) throws IOException {
List<Map<String, Object>> list = new ArrayList<>();
for (AppDto appDto : queryAll) {
Map<String,Object> map = new LinkedHashMap<>();
Map<String, Object> map = new LinkedHashMap<>();
map.put("应用名称", appDto.getName());
map.put("端口", appDto.getPort());
map.put("上传目录", appDto.getUploadPath());
......
......@@ -39,9 +39,9 @@ import java.io.IOException;
import java.util.*;
/**
* @author zhanghouying
* @date 2019-08-24
*/
* @author zhanghouying
* @date 2019-08-24
*/
@Slf4j
@Service
@RequiredArgsConstructor
......@@ -51,20 +51,20 @@ public class DatabaseServiceImpl implements DatabaseService {
private final DatabaseMapper databaseMapper;
@Override
public Object queryAll(DatabaseQueryCriteria criteria, Pageable pageable){
Page<Database> page = databaseRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
public Object queryAll(DatabaseQueryCriteria criteria, Pageable pageable) {
Page<Database> page = databaseRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable);
return PageUtil.toPage(page.map(databaseMapper::toDto));
}
@Override
public List<DatabaseDto> queryAll(DatabaseQueryCriteria criteria){
return databaseMapper.toDto(databaseRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder)));
public List<DatabaseDto> queryAll(DatabaseQueryCriteria criteria) {
return databaseMapper.toDto(databaseRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder)));
}
@Override
public DatabaseDto findById(String id) {
Database database = databaseRepository.findById(id).orElseGet(Database::new);
ValidationUtil.isNull(database.getId(),"Database","id",id);
ValidationUtil.isNull(database.getId(), "Database", "id", id);
return databaseMapper.toDto(database);
}
......@@ -79,7 +79,7 @@ public class DatabaseServiceImpl implements DatabaseService {
@Transactional(rollbackFor = Exception.class)
public void update(Database resources) {
Database database = databaseRepository.findById(resources.getId()).orElseGet(Database::new);
ValidationUtil.isNull(database.getId(),"Database","id",resources.getId());
ValidationUtil.isNull(database.getId(), "Database", "id", resources.getId());
database.copy(resources);
databaseRepository.save(database);
}
......@@ -92,21 +92,21 @@ public class DatabaseServiceImpl implements DatabaseService {
}
}
@Override
public boolean testConnection(Database resources) {
try {
return SqlUtils.testConnection(resources.getJdbcUrl(), resources.getUserName(), resources.getPwd());
} catch (Exception e) {
log.error(e.getMessage());
return false;
}
}
@Override
public boolean testConnection(Database resources) {
try {
return SqlUtils.testConnection(resources.getJdbcUrl(), resources.getUserName(), resources.getPwd());
} catch (Exception e) {
log.error(e.getMessage());
return false;
}
}
@Override
public void download(List<DatabaseDto> queryAll, HttpServletResponse response) throws IOException {
List<Map<String, Object>> list = new ArrayList<>();
for (DatabaseDto databaseDto : queryAll) {
Map<String,Object> map = new LinkedHashMap<>();
Map<String, Object> map = new LinkedHashMap<>();
map.put("数据库名称", databaseDto.getName());
map.put("数据库连接地址", databaseDto.getJdbcUrl());
map.put("用户名", databaseDto.getUserName());
......
......@@ -37,9 +37,9 @@ import java.io.IOException;
import java.util.*;
/**
* @author zhanghouying
* @date 2019-08-24
*/
* @author zhanghouying
* @date 2019-08-24
*/
@Service
@RequiredArgsConstructor
public class DeployHistoryServiceImpl implements DeployHistoryService {
......@@ -48,20 +48,20 @@ public class DeployHistoryServiceImpl implements DeployHistoryService {
private final DeployHistoryMapper deployhistoryMapper;
@Override
public Object queryAll(DeployHistoryQueryCriteria criteria, Pageable pageable){
Page<DeployHistory> page = deployhistoryRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
public Object queryAll(DeployHistoryQueryCriteria criteria, Pageable pageable) {
Page<DeployHistory> page = deployhistoryRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable);
return PageUtil.toPage(page.map(deployhistoryMapper::toDto));
}
@Override
public List<DeployHistoryDto> queryAll(DeployHistoryQueryCriteria criteria){
return deployhistoryMapper.toDto(deployhistoryRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder)));
public List<DeployHistoryDto> queryAll(DeployHistoryQueryCriteria criteria) {
return deployhistoryMapper.toDto(deployhistoryRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder)));
}
@Override
public DeployHistoryDto findById(String id) {
DeployHistory deployhistory = deployhistoryRepository.findById(id).orElseGet(DeployHistory::new);
ValidationUtil.isNull(deployhistory.getId(),"DeployHistory","id",id);
ValidationUtil.isNull(deployhistory.getId(), "DeployHistory", "id", id);
return deployhistoryMapper.toDto(deployhistory);
}
......@@ -84,7 +84,7 @@ public class DeployHistoryServiceImpl implements DeployHistoryService {
public void download(List<DeployHistoryDto> queryAll, HttpServletResponse response) throws IOException {
List<Map<String, Object>> list = new ArrayList<>();
for (DeployHistoryDto deployHistoryDto : queryAll) {
Map<String,Object> map = new LinkedHashMap<>();
Map<String, Object> map = new LinkedHashMap<>();
map.put("部署编号", deployHistoryDto.getDeployId());
map.put("应用名称", deployHistoryDto.getAppName());
map.put("部署IP", deployHistoryDto.getIp());
......
......@@ -57,375 +57,377 @@ import java.util.*;
@RequiredArgsConstructor
public class DeployServiceImpl implements DeployService {
private final String FILE_SEPARATOR = "/";
private final DeployRepository deployRepository;
private final DeployMapper deployMapper;
private final ServerDeployService serverDeployService;
private final DeployHistoryService deployHistoryService;
/**
* 循环次数
*/
private final Integer count = 30;
private final String FILE_SEPARATOR = "/";
private final DeployRepository deployRepository;
private final DeployMapper deployMapper;
private final ServerDeployService serverDeployService;
private final DeployHistoryService deployHistoryService;
/**
* 循环次数
*/
private final Integer count = 30;
@Override
public Object queryAll(DeployQueryCriteria criteria, Pageable pageable) {
Page<Deploy> page = deployRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable);
return PageUtil.toPage(page.map(deployMapper::toDto));
}
@Override
public Object queryAll(DeployQueryCriteria criteria, Pageable pageable) {
Page<Deploy> page = deployRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable);
return PageUtil.toPage(page.map(deployMapper::toDto));
}
@Override
public List<DeployDto> queryAll(DeployQueryCriteria criteria) {
return deployMapper.toDto(deployRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder)));
}
@Override
public List<DeployDto> queryAll(DeployQueryCriteria criteria) {
return deployMapper.toDto(deployRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder)));
}
@Override
public DeployDto findById(Long id) {
Deploy deploy = deployRepository.findById(id).orElseGet(Deploy::new);
ValidationUtil.isNull(deploy.getId(), "Deploy", "id", id);
return deployMapper.toDto(deploy);
}
@Override
public DeployDto findById(Long id) {
Deploy deploy = deployRepository.findById(id).orElseGet(Deploy::new);
ValidationUtil.isNull(deploy.getId(), "Deploy", "id", id);
return deployMapper.toDto(deploy);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void create(Deploy resources) {
deployRepository.save(resources);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void create(Deploy resources) {
deployRepository.save(resources);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(Deploy resources) {
Deploy deploy = deployRepository.findById(resources.getId()).orElseGet(Deploy::new);
ValidationUtil.isNull(deploy.getId(), "Deploy", "id", resources.getId());
deploy.copy(resources);
deployRepository.save(deploy);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(Deploy resources) {
Deploy deploy = deployRepository.findById(resources.getId()).orElseGet(Deploy::new);
ValidationUtil.isNull(deploy.getId(), "Deploy", "id", resources.getId());
deploy.copy(resources);
deployRepository.save(deploy);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(Set<Long> ids) {
for (Long id : ids) {
deployRepository.deleteById(id);
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(Set<Long> ids) {
for (Long id : ids) {
deployRepository.deleteById(id);
}
}
@Override
public void deploy(String fileSavePath, Long id) {
deployApp(fileSavePath, id);
}
@Override
public void deploy(String fileSavePath, Long id) {
deployApp(fileSavePath, id);
}
/**
* @param fileSavePath 本机路径
* @param id ID
*/
private void deployApp(String fileSavePath, Long id) {
/**
* @param fileSavePath 本机路径
* @param id ID
*/
private void deployApp(String fileSavePath, Long id) {
DeployDto deploy = findById(id);
if (deploy == null) {
sendMsg("部署信息不存在", MsgType.ERROR);
throw new BadRequestException("部署信息不存在");
}
AppDto app = deploy.getApp();
if (app == null) {
sendMsg("包对应应用信息不存在", MsgType.ERROR);
throw new BadRequestException("包对应应用信息不存在");
}
int port = app.getPort();
//这个是服务器部署路径
String uploadPath = app.getUploadPath();
StringBuilder sb = new StringBuilder();
String msg;
Set<ServerDeployDto> deploys = deploy.getDeploys();
for (ServerDeployDto deployDTO : deploys) {
String ip = deployDTO.getIp();
ExecuteShellUtil executeShellUtil = getExecuteShellUtil(ip);
//判断是否第一次部署
boolean flag = checkFile(executeShellUtil, app);
//第一步要确认服务器上有这个目录
executeShellUtil.execute("mkdir -p " + app.getUploadPath());
executeShellUtil.execute("mkdir -p " + app.getBackupPath());
executeShellUtil.execute("mkdir -p " + app.getDeployPath());
//上传文件
msg = String.format("登陆到服务器:%s", ip);
ScpClientUtil scpClientUtil = getScpClientUtil(ip);
log.info(msg);
sendMsg(msg, MsgType.INFO);
msg = String.format("上传文件到服务器:%s<br>目录:%s下,请稍等...", ip, uploadPath);
sendMsg(msg, MsgType.INFO);
scpClientUtil.putFile(fileSavePath, uploadPath);
if (flag) {
sendMsg("停止原来应用", MsgType.INFO);
//停止应用
stopApp(port, executeShellUtil);
sendMsg("备份原来应用", MsgType.INFO);
//备份应用
backupApp(executeShellUtil, ip, app.getDeployPath()+FILE_SEPARATOR, app.getName(), app.getBackupPath()+FILE_SEPARATOR, id);
}
sendMsg("部署应用", MsgType.INFO);
//部署文件,并启动应用
String deployScript = app.getDeployScript();
executeShellUtil.execute(deployScript);
sleep(3);
sendMsg("应用部署中,请耐心等待部署结果,或者稍后手动查看部署状态", MsgType.INFO);
int i = 0;
boolean result = false;
// 由于启动应用需要时间,所以需要循环获取状态,如果超过30次,则认为是启动失败
while (i++ < count){
result = checkIsRunningStatus(port, executeShellUtil);
if(result){
break;
}
// 休眠6秒
sleep(6);
}
sb.append("服务器:").append(deployDTO.getName()).append("<br>应用:").append(app.getName());
sendResultMsg(result, sb);
executeShellUtil.close();
}
}
DeployDto deploy = findById(id);
if (deploy == null) {
sendMsg("部署信息不存在", MsgType.ERROR);
throw new BadRequestException("部署信息不存在");
}
AppDto app = deploy.getApp();
if (app == null) {
sendMsg("包对应应用信息不存在", MsgType.ERROR);
throw new BadRequestException("包对应应用信息不存在");
}
int port = app.getPort();
//这个是服务器部署路径
String uploadPath = app.getUploadPath();
StringBuilder sb = new StringBuilder();
String msg;
Set<ServerDeployDto> deploys = deploy.getDeploys();
for (ServerDeployDto deployDTO : deploys) {
String ip = deployDTO.getIp();
ExecuteShellUtil executeShellUtil = getExecuteShellUtil(ip);
//判断是否第一次部署
boolean flag = checkFile(executeShellUtil, app);
//第一步要确认服务器上有这个目录
executeShellUtil.execute("mkdir -p " + app.getUploadPath());
executeShellUtil.execute("mkdir -p " + app.getBackupPath());
executeShellUtil.execute("mkdir -p " + app.getDeployPath());
//上传文件
msg = String.format("登陆到服务器:%s", ip);
ScpClientUtil scpClientUtil = getScpClientUtil(ip);
log.info(msg);
sendMsg(msg, MsgType.INFO);
msg = String.format("上传文件到服务器:%s<br>目录:%s下,请稍等...", ip, uploadPath);
sendMsg(msg, MsgType.INFO);
scpClientUtil.putFile(fileSavePath, uploadPath);
if (flag) {
sendMsg("停止原来应用", MsgType.INFO);
//停止应用
stopApp(port, executeShellUtil);
sendMsg("备份原来应用", MsgType.INFO);
//备份应用
backupApp(executeShellUtil, ip, app.getDeployPath() + FILE_SEPARATOR, app.getName(), app.getBackupPath() + FILE_SEPARATOR, id);
}
sendMsg("部署应用", MsgType.INFO);
//部署文件,并启动应用
String deployScript = app.getDeployScript();
executeShellUtil.execute(deployScript);
sleep(3);
sendMsg("应用部署中,请耐心等待部署结果,或者稍后手动查看部署状态", MsgType.INFO);
int i = 0;
boolean result = false;
// 由于启动应用需要时间,所以需要循环获取状态,如果超过30次,则认为是启动失败
while (i++ < count) {
result = checkIsRunningStatus(port, executeShellUtil);
if (result) {
break;
}
// 休眠6秒
sleep(6);
}
sb.append("服务器:").append(deployDTO.getName()).append("<br>应用:").append(app.getName());
sendResultMsg(result, sb);
executeShellUtil.close();
}
}
private void sleep(int second) {
try {
Thread.sleep(second * 1000);
} catch (InterruptedException e) {
log.error(e.getMessage(),e);
}
}
private void sleep(int second) {
try {
Thread.sleep(second * 1000);
} catch (InterruptedException e) {
log.error(e.getMessage(), e);
}
}
private void backupApp(ExecuteShellUtil executeShellUtil, String ip, String fileSavePath, String appName, String backupPath, Long id) {
String deployDate = DateUtil.format(new Date(), DatePattern.PURE_DATETIME_PATTERN);
StringBuilder sb = new StringBuilder();
backupPath += appName + FILE_SEPARATOR + deployDate + "\n";
sb.append("mkdir -p ").append(backupPath);
sb.append("mv -f ").append(fileSavePath);
sb.append(appName).append(" ").append(backupPath);
log.info("备份应用脚本:" + sb.toString());
executeShellUtil.execute(sb.toString());
//还原信息入库
DeployHistory deployHistory = new DeployHistory();
deployHistory.setAppName(appName);
deployHistory.setDeployUser(SecurityUtils.getCurrentUsername());
deployHistory.setIp(ip);
deployHistory.setDeployId(id);
deployHistoryService.create(deployHistory);
}
private void backupApp(ExecuteShellUtil executeShellUtil, String ip, String fileSavePath, String appName, String backupPath, Long id) {
String deployDate = DateUtil.format(new Date(), DatePattern.PURE_DATETIME_PATTERN);
StringBuilder sb = new StringBuilder();
backupPath += appName + FILE_SEPARATOR + deployDate + "\n";
sb.append("mkdir -p ").append(backupPath);
sb.append("mv -f ").append(fileSavePath);
sb.append(appName).append(" ").append(backupPath);
log.info("备份应用脚本:" + sb.toString());
executeShellUtil.execute(sb.toString());
//还原信息入库
DeployHistory deployHistory = new DeployHistory();
deployHistory.setAppName(appName);
deployHistory.setDeployUser(SecurityUtils.getCurrentUsername());
deployHistory.setIp(ip);
deployHistory.setDeployId(id);
deployHistoryService.create(deployHistory);
}
/**
* 停App
*
* @param port 端口
* @param executeShellUtil /
*/
private void stopApp(int port, ExecuteShellUtil executeShellUtil) {
//发送停止命令
executeShellUtil.execute(String.format("lsof -i :%d|grep -v \"PID\"|awk '{print \"kill -9\",$2}'|sh", port));
/**
* 停App
*
* @param port 端口
* @param executeShellUtil /
*/
private void stopApp(int port, ExecuteShellUtil executeShellUtil) {
//发送停止命令
executeShellUtil.execute(String.format("lsof -i :%d|grep -v \"PID\"|awk '{print \"kill -9\",$2}'|sh", port));
}
}
/**
* 指定端口程序是否在运行
*
* @param port 端口
* @param executeShellUtil /
* @return true 正在运行 false 已经停止
*/
private boolean checkIsRunningStatus(int port, ExecuteShellUtil executeShellUtil) {
String result = executeShellUtil.executeForResult(String.format("fuser -n tcp %d", port));
return result.indexOf("/tcp:")>0;
}
/**
* 指定端口程序是否在运行
*
* @param port 端口
* @param executeShellUtil /
* @return true 正在运行 false 已经停止
*/
private boolean checkIsRunningStatus(int port, ExecuteShellUtil executeShellUtil) {
String result = executeShellUtil.executeForResult(String.format("fuser -n tcp %d", port));
return result.indexOf("/tcp:") > 0;
}
private void sendMsg(String msg, MsgType msgType) {
try {
WebSocketServer.sendInfo(new SocketMsg(msg, msgType), "deploy");
} catch (IOException e) {
log.error(e.getMessage(),e);
}
}
private void sendMsg(String msg, MsgType msgType) {
try {
WebSocketServer.sendInfo(new SocketMsg(msg, msgType), "deploy");
} catch (IOException e) {
log.error(e.getMessage(), e);
}
}
@Override
public String serverStatus(Deploy resources) {
Set<ServerDeploy> serverDeploys = resources.getDeploys();
App app = resources.getApp();
for (ServerDeploy serverDeploy : serverDeploys) {
StringBuilder sb = new StringBuilder();
ExecuteShellUtil executeShellUtil = getExecuteShellUtil(serverDeploy.getIp());
sb.append("服务器:").append(serverDeploy.getName()).append("<br>应用:").append(app.getName());
boolean result = checkIsRunningStatus(app.getPort(), executeShellUtil);
if (result) {
sb.append("<br>正在运行");
sendMsg(sb.toString(), MsgType.INFO);
} else {
sb.append("<br>已停止!");
sendMsg(sb.toString(), MsgType.ERROR);
}
log.info(sb.toString());
executeShellUtil.close();
}
return "执行完毕";
}
@Override
public String serverStatus(Deploy resources) {
Set<ServerDeploy> serverDeploys = resources.getDeploys();
App app = resources.getApp();
for (ServerDeploy serverDeploy : serverDeploys) {
StringBuilder sb = new StringBuilder();
ExecuteShellUtil executeShellUtil = getExecuteShellUtil(serverDeploy.getIp());
sb.append("服务器:").append(serverDeploy.getName()).append("<br>应用:").append(app.getName());
boolean result = checkIsRunningStatus(app.getPort(), executeShellUtil);
if (result) {
sb.append("<br>正在运行");
sendMsg(sb.toString(), MsgType.INFO);
} else {
sb.append("<br>已停止!");
sendMsg(sb.toString(), MsgType.ERROR);
}
log.info(sb.toString());
executeShellUtil.close();
}
return "执行完毕";
}
private boolean checkFile(ExecuteShellUtil executeShellUtil, AppDto appDTO) {
String result = executeShellUtil.executeForResult("find " + appDTO.getDeployPath() + " -name " + appDTO.getName());
return result.indexOf(appDTO.getName())>0;
}
private boolean checkFile(ExecuteShellUtil executeShellUtil, AppDto appDTO) {
String result = executeShellUtil.executeForResult("find " + appDTO.getDeployPath() + " -name " + appDTO.getName());
return result.indexOf(appDTO.getName()) > 0;
}
/**
* 启动服务
* @param resources /
* @return /
*/
@Override
public String startServer(Deploy resources) {
Set<ServerDeploy> deploys = resources.getDeploys();
App app = resources.getApp();
for (ServerDeploy deploy : deploys) {
StringBuilder sb = new StringBuilder();
ExecuteShellUtil executeShellUtil = getExecuteShellUtil(deploy.getIp());
//为了防止重复启动,这里先停止应用
stopApp(app.getPort(), executeShellUtil);
sb.append("服务器:").append(deploy.getName()).append("<br>应用:").append(app.getName());
sendMsg("下发启动命令", MsgType.INFO);
executeShellUtil.execute(app.getStartScript());
sleep(3);
sendMsg("应用启动中,请耐心等待启动结果,或者稍后手动查看运行状态", MsgType.INFO);
int i = 0;
boolean result = false;
// 由于启动应用需要时间,所以需要循环获取状态,如果超过30次,则认为是启动失败
while (i++ < count){
result = checkIsRunningStatus(app.getPort(), executeShellUtil);
if(result){
break;
}
// 休眠6秒
sleep(6);
}
sendResultMsg(result, sb);
log.info(sb.toString());
executeShellUtil.close();
}
return "执行完毕";
}
/**
* 启动服务
*
* @param resources /
* @return /
*/
@Override
public String startServer(Deploy resources) {
Set<ServerDeploy> deploys = resources.getDeploys();
App app = resources.getApp();
for (ServerDeploy deploy : deploys) {
StringBuilder sb = new StringBuilder();
ExecuteShellUtil executeShellUtil = getExecuteShellUtil(deploy.getIp());
//为了防止重复启动,这里先停止应用
stopApp(app.getPort(), executeShellUtil);
sb.append("服务器:").append(deploy.getName()).append("<br>应用:").append(app.getName());
sendMsg("下发启动命令", MsgType.INFO);
executeShellUtil.execute(app.getStartScript());
sleep(3);
sendMsg("应用启动中,请耐心等待启动结果,或者稍后手动查看运行状态", MsgType.INFO);
int i = 0;
boolean result = false;
// 由于启动应用需要时间,所以需要循环获取状态,如果超过30次,则认为是启动失败
while (i++ < count) {
result = checkIsRunningStatus(app.getPort(), executeShellUtil);
if (result) {
break;
}
// 休眠6秒
sleep(6);
}
sendResultMsg(result, sb);
log.info(sb.toString());
executeShellUtil.close();
}
return "执行完毕";
}
/**
* 停止服务
* @param resources /
* @return /
*/
@Override
public String stopServer(Deploy resources) {
Set<ServerDeploy> deploys = resources.getDeploys();
App app = resources.getApp();
for (ServerDeploy deploy : deploys) {
StringBuilder sb = new StringBuilder();
ExecuteShellUtil executeShellUtil = getExecuteShellUtil(deploy.getIp());
sb.append("服务器:").append(deploy.getName()).append("<br>应用:").append(app.getName());
sendMsg("下发停止命令", MsgType.INFO);
//停止应用
stopApp(app.getPort(), executeShellUtil);
sleep(1);
boolean result = checkIsRunningStatus(app.getPort(), executeShellUtil);
if (result) {
sb.append("<br>关闭失败!");
sendMsg(sb.toString(), MsgType.ERROR);
} else {
sb.append("<br>关闭成功!");
sendMsg(sb.toString(), MsgType.INFO);
}
log.info(sb.toString());
executeShellUtil.close();
}
return "执行完毕";
}
/**
* 停止服务
*
* @param resources /
* @return /
*/
@Override
public String stopServer(Deploy resources) {
Set<ServerDeploy> deploys = resources.getDeploys();
App app = resources.getApp();
for (ServerDeploy deploy : deploys) {
StringBuilder sb = new StringBuilder();
ExecuteShellUtil executeShellUtil = getExecuteShellUtil(deploy.getIp());
sb.append("服务器:").append(deploy.getName()).append("<br>应用:").append(app.getName());
sendMsg("下发停止命令", MsgType.INFO);
//停止应用
stopApp(app.getPort(), executeShellUtil);
sleep(1);
boolean result = checkIsRunningStatus(app.getPort(), executeShellUtil);
if (result) {
sb.append("<br>关闭失败!");
sendMsg(sb.toString(), MsgType.ERROR);
} else {
sb.append("<br>关闭成功!");
sendMsg(sb.toString(), MsgType.INFO);
}
log.info(sb.toString());
executeShellUtil.close();
}
return "执行完毕";
}
@Override
public String serverReduction(DeployHistory resources) {
Long deployId = resources.getDeployId();
Deploy deployInfo = deployRepository.findById(deployId).orElseGet(Deploy::new);
String deployDate = DateUtil.format(resources.getDeployDate(), DatePattern.PURE_DATETIME_PATTERN);
App app = deployInfo.getApp();
if (app == null) {
sendMsg("应用信息不存在:" + resources.getAppName(), MsgType.ERROR);
throw new BadRequestException("应用信息不存在:" + resources.getAppName());
}
String backupPath = app.getBackupPath()+FILE_SEPARATOR;
backupPath += resources.getAppName() + FILE_SEPARATOR + deployDate;
//这个是服务器部署路径
String deployPath = app.getDeployPath();
String ip = resources.getIp();
ExecuteShellUtil executeShellUtil = getExecuteShellUtil(ip);
String msg;
@Override
public String serverReduction(DeployHistory resources) {
Long deployId = resources.getDeployId();
Deploy deployInfo = deployRepository.findById(deployId).orElseGet(Deploy::new);
String deployDate = DateUtil.format(resources.getDeployDate(), DatePattern.PURE_DATETIME_PATTERN);
App app = deployInfo.getApp();
if (app == null) {
sendMsg("应用信息不存在:" + resources.getAppName(), MsgType.ERROR);
throw new BadRequestException("应用信息不存在:" + resources.getAppName());
}
String backupPath = app.getBackupPath() + FILE_SEPARATOR;
backupPath += resources.getAppName() + FILE_SEPARATOR + deployDate;
//这个是服务器部署路径
String deployPath = app.getDeployPath();
String ip = resources.getIp();
ExecuteShellUtil executeShellUtil = getExecuteShellUtil(ip);
String msg;
msg = String.format("登陆到服务器:%s", ip);
log.info(msg);
sendMsg(msg, MsgType.INFO);
sendMsg("停止原来应用", MsgType.INFO);
//停止应用
stopApp(app.getPort(), executeShellUtil);
//删除原来应用
sendMsg("删除应用", MsgType.INFO);
executeShellUtil.execute("rm -rf " + deployPath + FILE_SEPARATOR + resources.getAppName());
//还原应用
sendMsg("还原应用", MsgType.INFO);
executeShellUtil.execute("cp -r " + backupPath + "/. " + deployPath);
sendMsg("启动应用", MsgType.INFO);
executeShellUtil.execute(app.getStartScript());
sendMsg("应用启动中,请耐心等待启动结果,或者稍后手动查看启动状态", MsgType.INFO);
int i = 0;
boolean result = false;
// 由于启动应用需要时间,所以需要循环获取状态,如果超过30次,则认为是启动失败
while (i++ < count){
result = checkIsRunningStatus(app.getPort(), executeShellUtil);
if(result){
break;
}
// 休眠6秒
sleep(6);
}
StringBuilder sb = new StringBuilder();
sb.append("服务器:").append(ip).append("<br>应用:").append(resources.getAppName());
sendResultMsg(result, sb);
executeShellUtil.close();
return "";
}
msg = String.format("登陆到服务器:%s", ip);
log.info(msg);
sendMsg(msg, MsgType.INFO);
sendMsg("停止原来应用", MsgType.INFO);
//停止应用
stopApp(app.getPort(), executeShellUtil);
//删除原来应用
sendMsg("删除应用", MsgType.INFO);
executeShellUtil.execute("rm -rf " + deployPath + FILE_SEPARATOR + resources.getAppName());
//还原应用
sendMsg("还原应用", MsgType.INFO);
executeShellUtil.execute("cp -r " + backupPath + "/. " + deployPath);
sendMsg("启动应用", MsgType.INFO);
executeShellUtil.execute(app.getStartScript());
sendMsg("应用启动中,请耐心等待启动结果,或者稍后手动查看启动状态", MsgType.INFO);
int i = 0;
boolean result = false;
// 由于启动应用需要时间,所以需要循环获取状态,如果超过30次,则认为是启动失败
while (i++ < count) {
result = checkIsRunningStatus(app.getPort(), executeShellUtil);
if (result) {
break;
}
// 休眠6秒
sleep(6);
}
StringBuilder sb = new StringBuilder();
sb.append("服务器:").append(ip).append("<br>应用:").append(resources.getAppName());
sendResultMsg(result, sb);
executeShellUtil.close();
return "";
}
private ExecuteShellUtil getExecuteShellUtil(String ip) {
ServerDeployDto serverDeployDTO = serverDeployService.findByIp(ip);
if (serverDeployDTO == null) {
sendMsg("IP对应服务器信息不存在:" + ip, MsgType.ERROR);
throw new BadRequestException("IP对应服务器信息不存在:" + ip);
}
return new ExecuteShellUtil(ip, serverDeployDTO.getAccount(), serverDeployDTO.getPassword(),serverDeployDTO.getPort());
}
private ExecuteShellUtil getExecuteShellUtil(String ip) {
ServerDeployDto serverDeployDTO = serverDeployService.findByIp(ip);
if (serverDeployDTO == null) {
sendMsg("IP对应服务器信息不存在:" + ip, MsgType.ERROR);
throw new BadRequestException("IP对应服务器信息不存在:" + ip);
}
return new ExecuteShellUtil(ip, serverDeployDTO.getAccount(), serverDeployDTO.getPassword(), serverDeployDTO.getPort());
}
private ScpClientUtil getScpClientUtil(String ip) {
ServerDeployDto serverDeployDTO = serverDeployService.findByIp(ip);
if (serverDeployDTO == null) {
sendMsg("IP对应服务器信息不存在:" + ip, MsgType.ERROR);
throw new BadRequestException("IP对应服务器信息不存在:" + ip);
}
return ScpClientUtil.getInstance(ip, serverDeployDTO.getPort(), serverDeployDTO.getAccount(), serverDeployDTO.getPassword());
}
private ScpClientUtil getScpClientUtil(String ip) {
ServerDeployDto serverDeployDTO = serverDeployService.findByIp(ip);
if (serverDeployDTO == null) {
sendMsg("IP对应服务器信息不存在:" + ip, MsgType.ERROR);
throw new BadRequestException("IP对应服务器信息不存在:" + ip);
}
return ScpClientUtil.getInstance(ip, serverDeployDTO.getPort(), serverDeployDTO.getAccount(), serverDeployDTO.getPassword());
}
private void sendResultMsg(boolean result, StringBuilder sb) {
if (result) {
sb.append("<br>启动成功!");
sendMsg(sb.toString(), MsgType.INFO);
} else {
sb.append("<br>启动失败!");
sendMsg(sb.toString(), MsgType.ERROR);
}
}
private void sendResultMsg(boolean result, StringBuilder sb) {
if (result) {
sb.append("<br>启动成功!");
sendMsg(sb.toString(), MsgType.INFO);
} else {
sb.append("<br>启动失败!");
sendMsg(sb.toString(), MsgType.ERROR);
}
}
@Override
public void download(List<DeployDto> queryAll, HttpServletResponse response) throws IOException {
List<Map<String, Object>> list = new ArrayList<>();
for (DeployDto deployDto : queryAll) {
Map<String,Object> map = new LinkedHashMap<>();
map.put("应用名称", deployDto.getApp().getName());
map.put("服务器", deployDto.getServers());
map.put("部署日期", deployDto.getCreateTime());
list.add(map);
}
FileUtil.downloadExcel(list, response);
}
@Override
public void download(List<DeployDto> queryAll, HttpServletResponse response) throws IOException {
List<Map<String, Object>> list = new ArrayList<>();
for (DeployDto deployDto : queryAll) {
Map<String, Object> map = new LinkedHashMap<>();
map.put("应用名称", deployDto.getApp().getName());
map.put("服务器", deployDto.getServers());
map.put("部署日期", deployDto.getCreateTime());
list.add(map);
}
FileUtil.downloadExcel(list, response);
}
}
......@@ -37,9 +37,9 @@ import java.io.IOException;
import java.util.*;
/**
* @author zhanghouying
* @date 2019-08-24
*/
* @author zhanghouying
* @date 2019-08-24
*/
@Service
@RequiredArgsConstructor
public class ServerDeployServiceImpl implements ServerDeployService {
......@@ -48,20 +48,20 @@ public class ServerDeployServiceImpl implements ServerDeployService {
private final ServerDeployMapper serverDeployMapper;
@Override
public Object queryAll(ServerDeployQueryCriteria criteria, Pageable pageable){
Page<ServerDeploy> page = serverDeployRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
public Object queryAll(ServerDeployQueryCriteria criteria, Pageable pageable) {
Page<ServerDeploy> page = serverDeployRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable);
return PageUtil.toPage(page.map(serverDeployMapper::toDto));
}
@Override
public List<ServerDeployDto> queryAll(ServerDeployQueryCriteria criteria){
return serverDeployMapper.toDto(serverDeployRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder)));
public List<ServerDeployDto> queryAll(ServerDeployQueryCriteria criteria) {
return serverDeployMapper.toDto(serverDeployRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder)));
}
@Override
public ServerDeployDto findById(Long id) {
ServerDeploy server = serverDeployRepository.findById(id).orElseGet(ServerDeploy::new);
ValidationUtil.isNull(server.getId(),"ServerDeploy","id",id);
ValidationUtil.isNull(server.getId(), "ServerDeploy", "id", id);
return serverDeployMapper.toDto(server);
}
......@@ -71,33 +71,33 @@ public class ServerDeployServiceImpl implements ServerDeployService {
return serverDeployMapper.toDto(deploy);
}
@Override
public Boolean testConnect(ServerDeploy resources) {
ExecuteShellUtil executeShellUtil = null;
try {
executeShellUtil = new ExecuteShellUtil(resources.getIp(), resources.getAccount(), resources.getPassword(),resources.getPort());
return executeShellUtil.execute("ls")==0;
} catch (Exception e) {
return false;
}finally {
if (executeShellUtil != null) {
executeShellUtil.close();
}
}
}
@Override
public Boolean testConnect(ServerDeploy resources) {
ExecuteShellUtil executeShellUtil = null;
try {
executeShellUtil = new ExecuteShellUtil(resources.getIp(), resources.getAccount(), resources.getPassword(), resources.getPort());
return executeShellUtil.execute("ls") == 0;
} catch (Exception e) {
return false;
} finally {
if (executeShellUtil != null) {
executeShellUtil.close();
}
}
}
@Override
@Override
@Transactional(rollbackFor = Exception.class)
public void create(ServerDeploy resources) {
serverDeployRepository.save(resources);
serverDeployRepository.save(resources);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(ServerDeploy resources) {
ServerDeploy serverDeploy = serverDeployRepository.findById(resources.getId()).orElseGet(ServerDeploy::new);
ValidationUtil.isNull( serverDeploy.getId(),"ServerDeploy","id",resources.getId());
serverDeploy.copy(resources);
ValidationUtil.isNull(serverDeploy.getId(), "ServerDeploy", "id", resources.getId());
serverDeploy.copy(resources);
serverDeployRepository.save(serverDeploy);
}
......@@ -113,7 +113,7 @@ public class ServerDeployServiceImpl implements ServerDeployService {
public void download(List<ServerDeployDto> queryAll, HttpServletResponse response) throws IOException {
List<Map<String, Object>> list = new ArrayList<>();
for (ServerDeployDto deployDto : queryAll) {
Map<String,Object> map = new LinkedHashMap<>();
Map<String, Object> map = new LinkedHashMap<>();
map.put("服务器名称", deployDto.getName());
map.put("服务器IP", deployDto.getIp());
map.put("端口", deployDto.getPort());
......
......@@ -22,10 +22,10 @@ import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
/**
* @author zhanghouying
* @date 2019-08-24
*/
@Mapper(componentModel = "spring",uses = {},unmappedTargetPolicy = ReportingPolicy.IGNORE)
* @author zhanghouying
* @date 2019-08-24
*/
@Mapper(componentModel = "spring", uses = {}, unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface AppMapper extends BaseMapper<AppDto, App> {
}
......@@ -22,10 +22,10 @@ import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
/**
* @author zhanghouying
* @date 2019-08-24
*/
@Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE)
* @author zhanghouying
* @date 2019-08-24
*/
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface DatabaseMapper extends BaseMapper<DatabaseDto, Database> {
}
......@@ -22,10 +22,10 @@ import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
/**
* @author zhanghouying
* @date 2019-08-24
*/
@Mapper(componentModel = "spring",uses = {},unmappedTargetPolicy = ReportingPolicy.IGNORE)
* @author zhanghouying
* @date 2019-08-24
*/
@Mapper(componentModel = "spring", uses = {}, unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface DeployHistoryMapper extends BaseMapper<DeployHistoryDto, DeployHistory> {
}
......@@ -22,10 +22,10 @@ import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
/**
* @author zhanghouying
* @date 2019-08-24
*/
@Mapper(componentModel = "spring",uses = {AppMapper.class, ServerDeployMapper.class},unmappedTargetPolicy = ReportingPolicy.IGNORE)
* @author zhanghouying
* @date 2019-08-24
*/
@Mapper(componentModel = "spring", uses = {AppMapper.class, ServerDeployMapper.class}, unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface DeployMapper extends BaseMapper<DeployDto, Deploy> {
}
......@@ -22,10 +22,10 @@ import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
/**
* @author zhanghouying
* @date 2019-08-24
*/
@Mapper(componentModel = "spring",uses = {},unmappedTargetPolicy = ReportingPolicy.IGNORE)
* @author zhanghouying
* @date 2019-08-24
*/
@Mapper(componentModel = "spring", uses = {}, unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface ServerDeployMapper extends BaseMapper<ServerDeployDto, ServerDeploy> {
}
......@@ -18,58 +18,89 @@
*/
package me.zhengjie.modules.mnt.util;
import lombok.extern.slf4j.Slf4j;
/**
* @author /
*/
@Slf4j
@SuppressWarnings({"unchecked","all"})
@SuppressWarnings({"unchecked", "all"})
public enum DataTypeEnum {
/** mysql */
/**
* mysql
*/
MYSQL("mysql", "mysql", "com.mysql.jdbc.Driver", "`", "`", "'", "'"),
/** oracle */
/**
* oracle
*/
ORACLE("oracle", "oracle", "oracle.jdbc.driver.OracleDriver", "\"", "\"", "\"", "\""),
/** sql server */
/**
* sql server
*/
SQLSERVER("sqlserver", "sqlserver", "com.microsoft.sqlserver.jdbc.SQLServerDriver", "\"", "\"", "\"", "\""),
/** h2 */
/**
* h2
*/
H2("h2", "h2", "org.h2.Driver", "`", "`", "\"", "\""),
/** phoenix */
/**
* phoenix
*/
PHOENIX("phoenix", "hbase phoenix", "org.apache.phoenix.jdbc.PhoenixDriver", "", "", "\"", "\""),
/** mongo */
/**
* mongo
*/
MONGODB("mongo", "mongodb", "mongodb.jdbc.MongoDriver", "`", "`", "\"", "\""),
/** sql4es */
/**
* sql4es
*/
ELASTICSEARCH("sql4es", "elasticsearch", "nl.anchormen.sql4es.jdbc.ESDriver", "", "", "'", "'"),
/** presto */
/**
* presto
*/
PRESTO("presto", "presto", "com.facebook.presto.jdbc.PrestoDriver", "", "", "\"", "\""),
/** moonbox */
/**
* moonbox
*/
MOONBOX("moonbox", "moonbox", "moonbox.jdbc.MbDriver", "`", "`", "`", "`"),
/** cassandra */
/**
* cassandra
*/
CASSANDRA("cassandra", "cassandra", "com.github.adejanovski.cassandra.jdbc.CassandraDriver", "", "", "'", "'"),
/** click house */
/**
* click house
*/
CLICKHOUSE("clickhouse", "clickhouse", "ru.yandex.clickhouse.ClickHouseDriver", "", "", "\"", "\""),
/** kylin */
/**
* kylin
*/
KYLIN("kylin", "kylin", "org.apache.kylin.jdbc.Driver", "\"", "\"", "\"", "\""),
/** vertica */
/**
* vertica
*/
VERTICA("vertica", "vertica", "com.vertica.jdbc.Driver", "", "", "'", "'"),
/** sap */
/**
* sap
*/
HANA("sap", "sap hana", "com.sap.db.jdbc.Driver", "", "", "'", "'"),
/** impala */
/**
* impala
*/
IMPALA("impala", "impala", "com.cloudera.impala.jdbc41.Driver", "", "", "'", "'");
private String feature;
......
......@@ -35,69 +35,69 @@ import java.util.Vector;
@Slf4j
public class ExecuteShellUtil {
private Vector<String> stdout;
private Vector<String> stdout;
Session session;
Session session;
public ExecuteShellUtil(final String ipAddress, final String username, final String password,int port) {
try {
JSch jsch = new JSch();
session = jsch.getSession(username, ipAddress, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
session.connect(3000);
} catch (Exception e) {
log.error(e.getMessage(),e);
}
public ExecuteShellUtil(final String ipAddress, final String username, final String password, int port) {
try {
JSch jsch = new JSch();
session = jsch.getSession(username, ipAddress, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
session.connect(3000);
} catch (Exception e) {
log.error(e.getMessage(), e);
}
}
}
public int execute(final String command) {
int returnCode = 0;
ChannelShell channel = null;
PrintWriter printWriter = null;
BufferedReader input = null;
stdout = new Vector<String>();
try {
channel = (ChannelShell) session.openChannel("shell");
channel.connect();
input = new BufferedReader(new InputStreamReader(channel.getInputStream()));
printWriter = new PrintWriter(channel.getOutputStream());
printWriter.println(command);
printWriter.println("exit");
printWriter.flush();
log.info("The remote command is: ");
String line;
while ((line = input.readLine()) != null) {
stdout.add(line);
System.out.println(line);
}
} catch (Exception e) {
log.error(e.getMessage(),e);
return -1;
}finally {
IoUtil.close(printWriter);
IoUtil.close(input);
if (channel != null) {
channel.disconnect();
}
}
return returnCode;
}
public int execute(final String command) {
int returnCode = 0;
ChannelShell channel = null;
PrintWriter printWriter = null;
BufferedReader input = null;
stdout = new Vector<String>();
try {
channel = (ChannelShell) session.openChannel("shell");
channel.connect();
input = new BufferedReader(new InputStreamReader(channel.getInputStream()));
printWriter = new PrintWriter(channel.getOutputStream());
printWriter.println(command);
printWriter.println("exit");
printWriter.flush();
log.info("The remote command is: ");
String line;
while ((line = input.readLine()) != null) {
stdout.add(line);
System.out.println(line);
}
} catch (Exception e) {
log.error(e.getMessage(), e);
return -1;
} finally {
IoUtil.close(printWriter);
IoUtil.close(input);
if (channel != null) {
channel.disconnect();
}
}
return returnCode;
}
public void close(){
if (session != null) {
session.disconnect();
}
}
public void close() {
if (session != null) {
session.disconnect();
}
}
public String executeForResult(String command) {
execute(command);
StringBuilder sb = new StringBuilder();
for (String str : stdout) {
sb.append(str);
}
return sb.toString();
}
public String executeForResult(String command) {
execute(command);
StringBuilder sb = new StringBuilder();
for (String str : stdout) {
sb.append(str);
}
return sb.toString();
}
}
......@@ -26,80 +26,81 @@ import java.util.logging.Logger;
/**
* 远程执行linux命令
*
* @author: ZhangHouYing
* @date: 2019-08-10 10:06
*/
public class ScpClientUtil {
static private Map<String,ScpClientUtil> instance = Maps.newHashMap();
static private Map<String, ScpClientUtil> instance = Maps.newHashMap();
static synchronized public ScpClientUtil getInstance(String ip, int port, String username, String password) {
if (instance.get(ip) == null) {
instance.put(ip, new ScpClientUtil(ip, port, username, password));
}
return instance.get(ip);
}
static synchronized public ScpClientUtil getInstance(String ip, int port, String username, String password) {
if (instance.get(ip) == null) {
instance.put(ip, new ScpClientUtil(ip, port, username, password));
}
return instance.get(ip);
}
public ScpClientUtil(String ip, int port, String username, String password) {
this.ip = ip;
this.port = port;
this.username = username;
this.password = password;
}
public ScpClientUtil(String ip, int port, String username, String password) {
this.ip = ip;
this.port = port;
this.username = username;
this.password = password;
}
public void getFile(String remoteFile, String localTargetDirectory) {
Connection conn = new Connection(ip, port);
try {
conn.connect();
boolean isAuthenticated = conn.authenticateWithPassword(username, password);
if (!isAuthenticated) {
System.err.println("authentication failed");
}
SCPClient client = new SCPClient(conn);
client.get(remoteFile, localTargetDirectory);
} catch (IOException ex) {
Logger.getLogger(SCPClient.class.getName()).log(Level.SEVERE, null, ex);
}finally{
conn.close();
}
}
public void getFile(String remoteFile, String localTargetDirectory) {
Connection conn = new Connection(ip, port);
try {
conn.connect();
boolean isAuthenticated = conn.authenticateWithPassword(username, password);
if (!isAuthenticated) {
System.err.println("authentication failed");
}
SCPClient client = new SCPClient(conn);
client.get(remoteFile, localTargetDirectory);
} catch (IOException ex) {
Logger.getLogger(SCPClient.class.getName()).log(Level.SEVERE, null, ex);
} finally {
conn.close();
}
}
public void putFile(String localFile, String remoteTargetDirectory) {
putFile(localFile, null, remoteTargetDirectory);
}
public void putFile(String localFile, String remoteTargetDirectory) {
putFile(localFile, null, remoteTargetDirectory);
}
public void putFile(String localFile, String remoteFileName, String remoteTargetDirectory) {
putFile(localFile, remoteFileName, remoteTargetDirectory,null);
}
public void putFile(String localFile, String remoteFileName, String remoteTargetDirectory) {
putFile(localFile, remoteFileName, remoteTargetDirectory, null);
}
public void putFile(String localFile, String remoteFileName, String remoteTargetDirectory, String mode) {
Connection conn = new Connection(ip, port);
try {
conn.connect();
boolean isAuthenticated = conn.authenticateWithPassword(username, password);
if (!isAuthenticated) {
System.err.println("authentication failed");
}
SCPClient client = new SCPClient(conn);
if ((mode == null) || (mode.length() == 0)) {
mode = "0600";
}
if (remoteFileName == null) {
client.put(localFile, remoteTargetDirectory);
} else {
client.put(localFile, remoteFileName, remoteTargetDirectory, mode);
}
} catch (IOException ex) {
Logger.getLogger(ScpClientUtil.class.getName()).log(Level.SEVERE, null, ex);
}finally{
conn.close();
}
}
public void putFile(String localFile, String remoteFileName, String remoteTargetDirectory, String mode) {
Connection conn = new Connection(ip, port);
try {
conn.connect();
boolean isAuthenticated = conn.authenticateWithPassword(username, password);
if (!isAuthenticated) {
System.err.println("authentication failed");
}
SCPClient client = new SCPClient(conn);
if ((mode == null) || (mode.length() == 0)) {
mode = "0600";
}
if (remoteFileName == null) {
client.put(localFile, remoteTargetDirectory);
} else {
client.put(localFile, remoteFileName, remoteTargetDirectory, mode);
}
} catch (IOException ex) {
Logger.getLogger(ScpClientUtil.class.getName()).log(Level.SEVERE, null, ex);
} finally {
conn.close();
}
}
private String ip;
private int port;
private String username;
private String password;
private String ip;
private int port;
private String username;
private String password;
}
......@@ -39,167 +39,170 @@ import java.util.List;
@Slf4j
public class SqlUtils {
/**
* 获取数据源
*
* @param jdbcUrl /
* @param userName /
* @param password /
* @return DataSource
*/
private static DataSource getDataSource(String jdbcUrl, String userName, String password) {
DruidDataSource druidDataSource = new DruidDataSource();
String className;
try {
className = DriverManager.getDriver(jdbcUrl.trim()).getClass().getName();
} catch (SQLException e) {
throw new RuntimeException("Get class name error: =" + jdbcUrl);
}
if (StringUtils.isEmpty(className)) {
DataTypeEnum dataTypeEnum = DataTypeEnum.urlOf(jdbcUrl);
if (null == dataTypeEnum) {
throw new RuntimeException("Not supported data type: jdbcUrl=" + jdbcUrl);
}
druidDataSource.setDriverClassName(dataTypeEnum.getDriver());
} else {
druidDataSource.setDriverClassName(className);
}
druidDataSource.setUrl(jdbcUrl);
druidDataSource.setUsername(userName);
druidDataSource.setPassword(password);
// 配置获取连接等待超时的时间
druidDataSource.setMaxWait(3000);
// 配置初始化大小、最小、最大
druidDataSource.setInitialSize(1);
druidDataSource.setMinIdle(1);
druidDataSource.setMaxActive(1);
// 如果链接出现异常则直接判定为失败而不是一直重试
druidDataSource.setBreakAfterAcquireFailure(true);
try {
druidDataSource.init();
} catch (SQLException e) {
log.error("Exception during pool initialization", e);
throw new RuntimeException(e.getMessage());
}
return druidDataSource;
}
private static Connection getConnection(String jdbcUrl, String userName, String password) {
DataSource dataSource = getDataSource(jdbcUrl, userName, password);
Connection connection = null;
try {
connection = dataSource.getConnection();
} catch (Exception ignored) {}
try {
int timeOut = 5;
if (null == connection || connection.isClosed() || !connection.isValid(timeOut)) {
log.info("connection is closed or invalid, retry get connection!");
connection = dataSource.getConnection();
}
} catch (Exception e) {
log.error("create connection error, jdbcUrl: {}", jdbcUrl);
throw new RuntimeException("create connection error, jdbcUrl: " + jdbcUrl);
} finally {
CloseUtil.close(connection);
}
return connection;
}
private static void releaseConnection(Connection connection) {
if (null != connection) {
try {
connection.close();
} catch (Exception e) {
log.error(e.getMessage(),e);
log.error("connection close error:" + e.getMessage());
}
}
}
public static boolean testConnection(String jdbcUrl, String userName, String password) {
Connection connection = null;
try {
connection = getConnection(jdbcUrl, userName, password);
if (null != connection) {
return true;
}
} catch (Exception e) {
log.info("Get connection failed:" + e.getMessage());
} finally {
releaseConnection(connection);
}
return false;
}
public static String executeFile(String jdbcUrl, String userName, String password, File sqlFile) {
Connection connection = getConnection(jdbcUrl, userName, password);
try {
batchExecute(connection, readSqlList(sqlFile));
} catch (Exception e) {
log.error("sql脚本执行发生异常:{}",e.getMessage());
return e.getMessage();
}finally {
releaseConnection(connection);
}
return "success";
}
/**
* 批量执行sql
* @param connection /
* @param sqlList /
*/
public static void batchExecute(Connection connection, List<String> sqlList) {
Statement st = null;
try {
st = connection.createStatement();
for (String sql : sqlList) {
if (sql.endsWith(";")) {
sql = sql.substring(0, sql.length() - 1);
}
st.addBatch(sql);
}
st.executeBatch();
} catch (SQLException throwables) {
throwables.printStackTrace();
} finally {
CloseUtil.close(st);
}
}
/**
* 将文件中的sql语句以;为单位读取到列表中
* @param sqlFile /
* @return /
* @throws Exception e
*/
private static List<String> readSqlList(File sqlFile) throws Exception {
List<String> sqlList = Lists.newArrayList();
StringBuilder sb = new StringBuilder();
try (BufferedReader reader = new BufferedReader(new InputStreamReader(
new FileInputStream(sqlFile), StandardCharsets.UTF_8))) {
String tmp;
while ((tmp = reader.readLine()) != null) {
log.info("line:{}", tmp);
if (tmp.endsWith(";")) {
sb.append(tmp);
sqlList.add(sb.toString());
sb.delete(0, sb.length());
} else {
sb.append(tmp);
}
}
if (!"".endsWith(sb.toString().trim())) {
sqlList.add(sb.toString());
}
}
return sqlList;
}
/**
* 获取数据源
*
* @param jdbcUrl /
* @param userName /
* @param password /
* @return DataSource
*/
private static DataSource getDataSource(String jdbcUrl, String userName, String password) {
DruidDataSource druidDataSource = new DruidDataSource();
String className;
try {
className = DriverManager.getDriver(jdbcUrl.trim()).getClass().getName();
} catch (SQLException e) {
throw new RuntimeException("Get class name error: =" + jdbcUrl);
}
if (StringUtils.isEmpty(className)) {
DataTypeEnum dataTypeEnum = DataTypeEnum.urlOf(jdbcUrl);
if (null == dataTypeEnum) {
throw new RuntimeException("Not supported data type: jdbcUrl=" + jdbcUrl);
}
druidDataSource.setDriverClassName(dataTypeEnum.getDriver());
} else {
druidDataSource.setDriverClassName(className);
}
druidDataSource.setUrl(jdbcUrl);
druidDataSource.setUsername(userName);
druidDataSource.setPassword(password);
// 配置获取连接等待超时的时间
druidDataSource.setMaxWait(3000);
// 配置初始化大小、最小、最大
druidDataSource.setInitialSize(1);
druidDataSource.setMinIdle(1);
druidDataSource.setMaxActive(1);
// 如果链接出现异常则直接判定为失败而不是一直重试
druidDataSource.setBreakAfterAcquireFailure(true);
try {
druidDataSource.init();
} catch (SQLException e) {
log.error("Exception during pool initialization", e);
throw new RuntimeException(e.getMessage());
}
return druidDataSource;
}
private static Connection getConnection(String jdbcUrl, String userName, String password) {
DataSource dataSource = getDataSource(jdbcUrl, userName, password);
Connection connection = null;
try {
connection = dataSource.getConnection();
} catch (Exception ignored) {
}
try {
int timeOut = 5;
if (null == connection || connection.isClosed() || !connection.isValid(timeOut)) {
log.info("connection is closed or invalid, retry get connection!");
connection = dataSource.getConnection();
}
} catch (Exception e) {
log.error("create connection error, jdbcUrl: {}", jdbcUrl);
throw new RuntimeException("create connection error, jdbcUrl: " + jdbcUrl);
} finally {
CloseUtil.close(connection);
}
return connection;
}
private static void releaseConnection(Connection connection) {
if (null != connection) {
try {
connection.close();
} catch (Exception e) {
log.error(e.getMessage(), e);
log.error("connection close error:" + e.getMessage());
}
}
}
public static boolean testConnection(String jdbcUrl, String userName, String password) {
Connection connection = null;
try {
connection = getConnection(jdbcUrl, userName, password);
if (null != connection) {
return true;
}
} catch (Exception e) {
log.info("Get connection failed:" + e.getMessage());
} finally {
releaseConnection(connection);
}
return false;
}
public static String executeFile(String jdbcUrl, String userName, String password, File sqlFile) {
Connection connection = getConnection(jdbcUrl, userName, password);
try {
batchExecute(connection, readSqlList(sqlFile));
} catch (Exception e) {
log.error("sql脚本执行发生异常:{}", e.getMessage());
return e.getMessage();
} finally {
releaseConnection(connection);
}
return "success";
}
/**
* 批量执行sql
*
* @param connection /
* @param sqlList /
*/
public static void batchExecute(Connection connection, List<String> sqlList) {
Statement st = null;
try {
st = connection.createStatement();
for (String sql : sqlList) {
if (sql.endsWith(";")) {
sql = sql.substring(0, sql.length() - 1);
}
st.addBatch(sql);
}
st.executeBatch();
} catch (SQLException throwables) {
throwables.printStackTrace();
} finally {
CloseUtil.close(st);
}
}
/**
* 将文件中的sql语句以;为单位读取到列表中
*
* @param sqlFile /
* @return /
* @throws Exception e
*/
private static List<String> readSqlList(File sqlFile) throws Exception {
List<String> sqlList = Lists.newArrayList();
StringBuilder sb = new StringBuilder();
try (BufferedReader reader = new BufferedReader(new InputStreamReader(
new FileInputStream(sqlFile), StandardCharsets.UTF_8))) {
String tmp;
while ((tmp = reader.readLine()) != null) {
log.info("line:{}", tmp);
if (tmp.endsWith(";")) {
sb.append(tmp);
sqlList.add(sb.toString());
sb.delete(0, sb.length());
} else {
sb.append(tmp);
}
}
if (!"".endsWith(sb.toString().trim())) {
sqlList.add(sb.toString());
}
}
return sqlList;
}
}
......@@ -20,12 +20,20 @@ package me.zhengjie.modules.mnt.websocket;
* @date 2019-08-10 9:56
*/
public enum MsgType {
/** 连接 */
CONNECT,
/** 关闭 */
CLOSE,
/** 信息 */
INFO,
/** 错误 */
ERROR
/**
* 连接
*/
CONNECT,
/**
* 关闭
*/
CLOSE,
/**
* 信息
*/
INFO,
/**
* 错误
*/
ERROR
}
......@@ -23,11 +23,11 @@ import lombok.Data;
*/
@Data
public class SocketMsg {
private String msg;
private MsgType msgType;
private String msg;
private MsgType msgType;
public SocketMsg(String msg, MsgType msgType) {
this.msg = msg;
this.msgType = msgType;
}
public SocketMsg(String msg, MsgType msgType) {
this.msg = msg;
this.msgType = msgType;
}
}
......@@ -25,6 +25,7 @@ import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.util.Objects;
import java.util.concurrent.CopyOnWriteArraySet;
/**
* @author ZhangHouYing
* @date 2019-08-10 15:46
......@@ -34,106 +35,111 @@ import java.util.concurrent.CopyOnWriteArraySet;
@Component
public class WebSocketServer {
/**
* concurrent包的线程安全Set,用来存放每个客户端对应的MyWebSocket对象。
*/
private static CopyOnWriteArraySet<WebSocketServer> webSocketSet = new CopyOnWriteArraySet<WebSocketServer>();
/**
* concurrent包的线程安全Set,用来存放每个客户端对应的MyWebSocket对象。
*/
private static CopyOnWriteArraySet<WebSocketServer> webSocketSet = new CopyOnWriteArraySet<WebSocketServer>();
/**
* 与某个客户端的连接会话,需要通过它来给客户端发送数据
*/
private Session session;
/**
* 接收sid
*/
private String sid = "";
/**
* 与某个客户端的连接会话,需要通过它来给客户端发送数据
*/
private Session session;
/**
* 连接建立成功调用的方法
*/
@OnOpen
public void onOpen(Session session, @PathParam("sid") String sid) {
this.session = session;
//如果存在就先删除一个,防止重复推送消息
for (WebSocketServer webSocket : webSocketSet) {
if (webSocket.sid.equals(sid)) {
webSocketSet.remove(webSocket);
}
}
webSocketSet.add(this);
this.sid = sid;
}
/**
* 接收sid
*/
private String sid="";
/**
* 连接建立成功调用的方法
* */
@OnOpen
public void onOpen(Session session,@PathParam("sid") String sid) {
this.session = session;
//如果存在就先删除一个,防止重复推送消息
for (WebSocketServer webSocket:webSocketSet) {
if (webSocket.sid.equals(sid)) {
webSocketSet.remove(webSocket);
}
}
webSocketSet.add(this);
this.sid=sid;
}
/**
* 连接关闭调用的方法
*/
@OnClose
public void onClose() {
webSocketSet.remove(this);
}
/**
* 连接关闭调用的方法
*/
@OnClose
public void onClose() {
webSocketSet.remove(this);
}
/**
* 收到客户端消息后调用的方法
*
* @param message 客户端发送过来的消息
*/
@OnMessage
public void onMessage(String message, Session session) {
log.info("收到来" + sid + "的信息:" + message);
//群发消息
for (WebSocketServer item : webSocketSet) {
try {
item.sendMessage(message);
} catch (IOException e) {
log.error(e.getMessage(), e);
}
}
}
/**
* 收到客户端消息后调用的方法
* @param message 客户端发送过来的消息*/
@OnMessage
public void onMessage(String message, Session session) {
log.info("收到来"+sid+"的信息:"+message);
//群发消息
for (WebSocketServer item : webSocketSet) {
try {
item.sendMessage(message);
} catch (IOException e) {
log.error(e.getMessage(),e);
}
}
}
@OnError
public void onError(Session session, Throwable error) {
log.error("发生错误");
error.printStackTrace();
}
@OnError
public void onError(Session session, Throwable error) {
log.error("发生错误");
error.printStackTrace();
}
/**
* 实现服务器主动推送
*/
private void sendMessage(String message) throws IOException {
this.session.getBasicRemote().sendText(message);
}
/**
* 实现服务器主动推送
*/
private void sendMessage(String message) throws IOException {
this.session.getBasicRemote().sendText(message);
}
/**
* 群发自定义消息
* */
public static void sendInfo(SocketMsg socketMsg,@PathParam("sid") String sid) throws IOException {
String message = JSONObject.toJSONString(socketMsg);
log.info("推送消息到"+sid+",推送内容:"+message);
for (WebSocketServer item : webSocketSet) {
try {
//这里可以设定只推送给这个sid的,为null则全部推送
if(sid==null) {
item.sendMessage(message);
}else if(item.sid.equals(sid)){
item.sendMessage(message);
}
} catch (IOException ignored) { }
}
}
/**
* 群发自定义消息
*/
public static void sendInfo(SocketMsg socketMsg, @PathParam("sid") String sid) throws IOException {
String message = JSONObject.toJSONString(socketMsg);
log.info("推送消息到" + sid + ",推送内容:" + message);
for (WebSocketServer item : webSocketSet) {
try {
//这里可以设定只推送给这个sid的,为null则全部推送
if (sid == null) {
item.sendMessage(message);
} else if (item.sid.equals(sid)) {
item.sendMessage(message);
}
} catch (IOException ignored) {
}
}
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
WebSocketServer that = (WebSocketServer) o;
return Objects.equals(session, that.session) &&
Objects.equals(sid, that.sid);
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
WebSocketServer that = (WebSocketServer) o;
return Objects.equals(session, that.session) &&
Objects.equals(sid, that.sid);
}
@Override
public int hashCode() {
return Objects.hash(session, sid);
}
@Override
public int hashCode() {
return Objects.hash(session, sid);
}
}
......@@ -23,30 +23,31 @@ import org.springframework.stereotype.Component;
/**
* 定时任务配置
*
* @author /
* @date 2019-01-07
*/
@Configuration
public class QuartzConfig {
/**
* 解决Job中注入Spring Bean为null的问题
*/
@Component("quartzJobFactory")
public static class QuartzJobFactory extends AdaptableJobFactory {
/**
* 解决Job中注入Spring Bean为null的问题
*/
@Component("quartzJobFactory")
public static class QuartzJobFactory extends AdaptableJobFactory {
private final AutowireCapableBeanFactory capableBeanFactory;
private final AutowireCapableBeanFactory capableBeanFactory;
public QuartzJobFactory(AutowireCapableBeanFactory capableBeanFactory) {
this.capableBeanFactory = capableBeanFactory;
}
public QuartzJobFactory(AutowireCapableBeanFactory capableBeanFactory) {
this.capableBeanFactory = capableBeanFactory;
}
@Override
protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception {
//调用父类的方法,把Job注入到spring中
Object jobInstance = super.createJobInstance(bundle);
capableBeanFactory.autowireBean(jobInstance);
return jobInstance;
}
}
@Override
protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception {
//调用父类的方法,把Job注入到spring中
Object jobInstance = super.createJobInstance(bundle);
capableBeanFactory.autowireBean(jobInstance);
return jobInstance;
}
}
}
......@@ -25,10 +25,11 @@ import java.util.List;
* @author Zheng Jie
* @date 2019-01-07
*/
public interface QuartzJobRepository extends JpaRepository<QuartzJob,Long>, JpaSpecificationExecutor<QuartzJob> {
public interface QuartzJobRepository extends JpaRepository<QuartzJob, Long>, JpaSpecificationExecutor<QuartzJob> {
/**
* 查询启用的任务
*
* @return List
*/
List<QuartzJob> findByIsPauseIsFalse();
......
......@@ -23,6 +23,6 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
* @author Zheng Jie
* @date 2019-01-07
*/
public interface QuartzLogRepository extends JpaRepository<QuartzLog,Long>, JpaSpecificationExecutor<QuartzLog> {
public interface QuartzLogRepository extends JpaRepository<QuartzLog, Long>, JpaSpecificationExecutor<QuartzLog> {
}
......@@ -52,8 +52,8 @@ public class QuartzJobController {
@ApiOperation("查询定时任务")
@GetMapping
@PreAuthorize("@el.check('timing:list')")
public ResponseEntity<Object> queryQuartzJob(JobQueryCriteria criteria, Pageable pageable){
return new ResponseEntity<>(quartzJobService.queryAll(criteria,pageable), HttpStatus.OK);
public ResponseEntity<Object> queryQuartzJob(JobQueryCriteria criteria, Pageable pageable) {
return new ResponseEntity<>(quartzJobService.queryAll(criteria, pageable), HttpStatus.OK);
}
@ApiOperation("导出任务数据")
......@@ -73,17 +73,17 @@ public class QuartzJobController {
@ApiOperation("查询任务执行日志")
@GetMapping(value = "/logs")
@PreAuthorize("@el.check('timing:list')")
public ResponseEntity<Object> queryQuartzJobLog(JobQueryCriteria criteria, Pageable pageable){
return new ResponseEntity<>(quartzJobService.queryAllLog(criteria,pageable), HttpStatus.OK);
public ResponseEntity<Object> queryQuartzJobLog(JobQueryCriteria criteria, Pageable pageable) {
return new ResponseEntity<>(quartzJobService.queryAllLog(criteria, pageable), HttpStatus.OK);
}
@Log("新增定时任务")
@ApiOperation("新增定时任务")
@PostMapping
@PreAuthorize("@el.check('timing:add')")
public ResponseEntity<Object> createQuartzJob(@Validated @RequestBody QuartzJob resources){
public ResponseEntity<Object> createQuartzJob(@Validated @RequestBody QuartzJob resources) {
if (resources.getId() != null) {
throw new BadRequestException("A new "+ ENTITY_NAME +" cannot already have an ID");
throw new BadRequestException("A new " + ENTITY_NAME + " cannot already have an ID");
}
quartzJobService.create(resources);
return new ResponseEntity<>(HttpStatus.CREATED);
......@@ -93,7 +93,7 @@ public class QuartzJobController {
@ApiOperation("修改定时任务")
@PutMapping
@PreAuthorize("@el.check('timing:edit')")
public ResponseEntity<Object> updateQuartzJob(@Validated(QuartzJob.Update.class) @RequestBody QuartzJob resources){
public ResponseEntity<Object> updateQuartzJob(@Validated(QuartzJob.Update.class) @RequestBody QuartzJob resources) {
quartzJobService.update(resources);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
......@@ -102,7 +102,7 @@ public class QuartzJobController {
@ApiOperation("更改定时任务状态")
@PutMapping(value = "/{id}")
@PreAuthorize("@el.check('timing:edit')")
public ResponseEntity<Object> updateQuartzJobStatus(@PathVariable Long id){
public ResponseEntity<Object> updateQuartzJobStatus(@PathVariable Long id) {
quartzJobService.updateIsPause(quartzJobService.findById(id));
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
......@@ -111,7 +111,7 @@ public class QuartzJobController {
@ApiOperation("执行定时任务")
@PutMapping(value = "/exec/{id}")
@PreAuthorize("@el.check('timing:edit')")
public ResponseEntity<Object> executionQuartzJob(@PathVariable Long id){
public ResponseEntity<Object> executionQuartzJob(@PathVariable Long id) {
quartzJobService.execution(quartzJobService.findById(id));
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
......@@ -120,7 +120,7 @@ public class QuartzJobController {
@ApiOperation("删除定时任务")
@DeleteMapping
@PreAuthorize("@el.check('timing:del')")
public ResponseEntity<Object> deleteQuartzJob(@RequestBody Set<Long> ids){
public ResponseEntity<Object> deleteQuartzJob(@RequestBody Set<Long> ids) {
quartzJobService.delete(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
......
......@@ -33,6 +33,7 @@ public interface QuartzJobService {
/**
* 分页查询
*
* @param criteria 条件
* @param pageable 分页参数
* @return /
......@@ -41,6 +42,7 @@ public interface QuartzJobService {
/**
* 查询全部
*
* @param criteria 条件
* @return /
*/
......@@ -48,6 +50,7 @@ public interface QuartzJobService {
/**
* 分页查询日志
*
* @param criteria 条件
* @param pageable 分页参数
* @return /
......@@ -56,6 +59,7 @@ public interface QuartzJobService {
/**
* 查询全部
*
* @param criteria 条件
* @return /
*/
......@@ -63,24 +67,28 @@ public interface QuartzJobService {
/**
* 创建
*
* @param resources /
*/
void create(QuartzJob resources);
/**
* 编辑
*
* @param resources /
*/
void update(QuartzJob resources);
/**
* 删除任务
*
* @param ids /
*/
void delete(Set<Long> ids);
/**
* 根据ID查询
*
* @param id ID
* @return /
*/
......@@ -88,18 +96,21 @@ public interface QuartzJobService {
/**
* 更改定时任务状态
*
* @param quartzJob /
*/
void updateIsPause(QuartzJob quartzJob);
/**
* 立即执行定时任务
*
* @param quartzJob /
*/
void execution(QuartzJob quartzJob);
/**
* 导出定时任务
*
* @param queryAll 待导出的数据
* @param response /
* @throws IOException /
......@@ -108,14 +119,16 @@ public interface QuartzJobService {
/**
* 导出定时任务日志
*
* @param queryAllLog 待导出的数据
* @param response /
* @param response /
* @throws IOException /
*/
void downloadLog(List<QuartzLog> queryAllLog, HttpServletResponse response) throws IOException;
/**
* 执行子任务
*
* @param tasks /
* @throws InterruptedException /
*/
......
......@@ -51,36 +51,36 @@ public class QuartzJobServiceImpl implements QuartzJobService {
private final RedisUtils redisUtils;
@Override
public Object queryAll(JobQueryCriteria criteria, Pageable pageable){
return PageUtil.toPage(quartzJobRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable));
public Object queryAll(JobQueryCriteria criteria, Pageable pageable) {
return PageUtil.toPage(quartzJobRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable));
}
@Override
public Object queryAllLog(JobQueryCriteria criteria, Pageable pageable){
return PageUtil.toPage(quartzLogRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable));
public Object queryAllLog(JobQueryCriteria criteria, Pageable pageable) {
return PageUtil.toPage(quartzLogRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable));
}
@Override
public List<QuartzJob> queryAll(JobQueryCriteria criteria) {
return quartzJobRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder));
return quartzJobRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder));
}
@Override
public List<QuartzLog> queryAllLog(JobQueryCriteria criteria) {
return quartzLogRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder));
return quartzLogRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder));
}
@Override
public QuartzJob findById(Long id) {
QuartzJob quartzJob = quartzJobRepository.findById(id).orElseGet(QuartzJob::new);
ValidationUtil.isNull(quartzJob.getId(),"QuartzJob","id",id);
ValidationUtil.isNull(quartzJob.getId(), "QuartzJob", "id", id);
return quartzJob;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void create(QuartzJob resources) {
if (!CronExpression.isValidExpression(resources.getCronExpression())){
if (!CronExpression.isValidExpression(resources.getCronExpression())) {
throw new BadRequestException("cron表达式格式错误");
}
resources = quartzJobRepository.save(resources);
......@@ -90,10 +90,10 @@ public class QuartzJobServiceImpl implements QuartzJobService {
@Override
@Transactional(rollbackFor = Exception.class)
public void update(QuartzJob resources) {
if (!CronExpression.isValidExpression(resources.getCronExpression())){
if (!CronExpression.isValidExpression(resources.getCronExpression())) {
throw new BadRequestException("cron表达式格式错误");
}
if(StringUtils.isNotBlank(resources.getSubTask())){
if (StringUtils.isNotBlank(resources.getSubTask())) {
List<String> tasks = Arrays.asList(resources.getSubTask().split("[,,]"));
if (tasks.contains(resources.getId().toString())) {
throw new BadRequestException("子任务中不能添加当前任务ID");
......@@ -152,7 +152,7 @@ public class QuartzJobServiceImpl implements QuartzJobService {
Thread.sleep(5000);
result = (Boolean) redisUtils.get(uuid);
}
if(!result){
if (!result) {
redisUtils.del(uuid);
break;
}
......@@ -163,7 +163,7 @@ public class QuartzJobServiceImpl implements QuartzJobService {
public void download(List<QuartzJob> quartzJobs, HttpServletResponse response) throws IOException {
List<Map<String, Object>> list = new ArrayList<>();
for (QuartzJob quartzJob : quartzJobs) {
Map<String,Object> map = new LinkedHashMap<>();
Map<String, Object> map = new LinkedHashMap<>();
map.put("任务名称", quartzJob.getJobName());
map.put("Bean名称", quartzJob.getBeanName());
map.put("执行方法", quartzJob.getMethodName());
......@@ -181,7 +181,7 @@ public class QuartzJobServiceImpl implements QuartzJobService {
public void downloadLog(List<QuartzLog> queryAllLog, HttpServletResponse response) throws IOException {
List<Map<String, Object>> list = new ArrayList<>();
for (QuartzLog quartzLog : queryAllLog) {
Map<String,Object> map = new LinkedHashMap<>();
Map<String, Object> map = new LinkedHashMap<>();
map.put("任务名称", quartzLog.getJobName());
map.put("Bean名称", quartzLog.getBeanName());
map.put("执行方法", quartzLog.getMethodName());
......
......@@ -21,6 +21,7 @@ import org.springframework.stereotype.Component;
/**
* 测试用
*
* @author Zheng Jie
* @date 2019-01-08
*/
......@@ -29,15 +30,15 @@ import org.springframework.stereotype.Component;
@Component
public class TestTask {
public void run(){
public void run() {
log.info("run 执行成功");
}
public void run1(String str){
public void run1(String str) {
log.info("run1 执行成功,参数为: {}" + str);
}
public void run2(){
public void run2() {
log.info("run2 执行成功");
}
}
......@@ -45,6 +45,7 @@ import java.util.concurrent.Future;
/**
* 参考人人开源,https://gitee.com/renrenio/renren-security
*
* @author /
* @date 2019-01-07
*/
......@@ -80,20 +81,20 @@ public class ExecutionJob extends QuartzJobBean {
future.get();
long times = System.currentTimeMillis() - startTime;
log.setTime(times);
if(StringUtils.isNotBlank(uuid)) {
if (StringUtils.isNotBlank(uuid)) {
redisUtils.set(uuid, true);
}
// 任务状态
log.setIsSuccess(true);
logger.info("任务执行成功,任务名称:" + quartzJob.getJobName() + ", 执行时间:" + times + "毫秒");
// 判断是否存在子任务
if(StringUtils.isNotBlank(quartzJob.getSubTask())){
if (StringUtils.isNotBlank(quartzJob.getSubTask())) {
String[] tasks = quartzJob.getSubTask().split("[,,]");
// 执行子任务
quartzJobService.executionSubJob(tasks);
}
} catch (Exception e) {
if(StringUtils.isNotBlank(uuid)) {
if (StringUtils.isNotBlank(uuid)) {
redisUtils.set(uuid, false);
}
logger.error("任务执行失败,任务名称:" + quartzJob.getJobName());
......@@ -103,15 +104,15 @@ public class ExecutionJob extends QuartzJobBean {
log.setIsSuccess(false);
log.setExceptionDetail(ThrowableUtil.getStackTrace(e));
// 任务如果失败了则暂停
if(quartzJob.getPauseAfterFailure() != null && quartzJob.getPauseAfterFailure()){
if (quartzJob.getPauseAfterFailure() != null && quartzJob.getPauseAfterFailure()) {
quartzJob.setIsPause(false);
//更新状态
quartzJobService.updateIsPause(quartzJob);
}
if(quartzJob.getEmail() != null){
if (quartzJob.getEmail() != null) {
EmailService emailService = SpringContextHolder.getBean(EmailService.class);
// 邮箱报警
if(StringUtils.isNoneBlank(quartzJob.getEmail())){
if (StringUtils.isNoneBlank(quartzJob.getEmail())) {
EmailVo emailVo = taskAlarm(quartzJob, ThrowableUtil.getStackTrace(e));
emailService.send(emailVo, emailService.find());
}
......@@ -124,7 +125,7 @@ public class ExecutionJob extends QuartzJobBean {
private EmailVo taskAlarm(QuartzJob quartzJob, String msg) {
EmailVo emailVo = new EmailVo();
emailVo.setSubject("定时任务【"+ quartzJob.getJobName() +"】执行失败,请尽快处理!");
emailVo.setSubject("定时任务【" + quartzJob.getJobName() + "】执行失败,请尽快处理!");
Map<String, Object> data = new HashMap<>(16);
data.put("task", quartzJob);
data.put("msg", msg);
......
......@@ -40,7 +40,7 @@ public class QuartzManage {
@Resource
private Scheduler scheduler;
public void addJob(QuartzJob quartzJob){
public void addJob(QuartzJob quartzJob) {
try {
// 构建job信息
JobDetail jobDetail = JobBuilder.newJob(ExecutionJob.class).
......@@ -56,16 +56,16 @@ public class QuartzManage {
cronTrigger.getJobDataMap().put(QuartzJob.JOB_KEY, quartzJob);
//重置启动时间
((CronTriggerImpl)cronTrigger).setStartTime(new Date());
((CronTriggerImpl) cronTrigger).setStartTime(new Date());
//执行定时任务
scheduler.scheduleJob(jobDetail,cronTrigger);
scheduler.scheduleJob(jobDetail, cronTrigger);
// 暂停任务
if (quartzJob.getIsPause()) {
pauseJob(quartzJob);
}
} catch (Exception e){
} catch (Exception e) {
log.error("创建定时任务失败", e);
throw new BadRequestException("创建定时任务失败");
}
......@@ -73,29 +73,30 @@ public class QuartzManage {
/**
* 更新job cron表达式
*
* @param quartzJob /
*/
public void updateJobCron(QuartzJob quartzJob){
public void updateJobCron(QuartzJob quartzJob) {
try {
TriggerKey triggerKey = TriggerKey.triggerKey(JOB_NAME + quartzJob.getId());
CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey);
// 如果不存在则创建一个定时任务
if(trigger == null){
if (trigger == null) {
addJob(quartzJob);
trigger = (CronTrigger) scheduler.getTrigger(triggerKey);
}
CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(quartzJob.getCronExpression());
trigger = trigger.getTriggerBuilder().withIdentity(triggerKey).withSchedule(scheduleBuilder).build();
//重置启动时间
((CronTriggerImpl)trigger).setStartTime(new Date());
trigger.getJobDataMap().put(QuartzJob.JOB_KEY,quartzJob);
((CronTriggerImpl) trigger).setStartTime(new Date());
trigger.getJobDataMap().put(QuartzJob.JOB_KEY, quartzJob);
scheduler.rescheduleJob(triggerKey, trigger);
// 暂停任务
if (quartzJob.getIsPause()) {
pauseJob(quartzJob);
}
} catch (Exception e){
} catch (Exception e) {
log.error("更新定时任务失败", e);
throw new BadRequestException("更新定时任务失败");
}
......@@ -104,14 +105,15 @@ public class QuartzManage {
/**
* 删除一个job
*
* @param quartzJob /
*/
public void deleteJob(QuartzJob quartzJob){
public void deleteJob(QuartzJob quartzJob) {
try {
JobKey jobKey = JobKey.jobKey(JOB_NAME + quartzJob.getId());
scheduler.pauseJob(jobKey);
scheduler.deleteJob(jobKey);
} catch (Exception e){
} catch (Exception e) {
log.error("删除定时任务失败", e);
throw new BadRequestException("删除定时任务失败");
}
......@@ -119,19 +121,20 @@ public class QuartzManage {
/**
* 恢复一个job
*
* @param quartzJob /
*/
public void resumeJob(QuartzJob quartzJob){
public void resumeJob(QuartzJob quartzJob) {
try {
TriggerKey triggerKey = TriggerKey.triggerKey(JOB_NAME + quartzJob.getId());
CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey);
// 如果不存在则创建一个定时任务
if(trigger == null) {
if (trigger == null) {
addJob(quartzJob);
}
JobKey jobKey = JobKey.jobKey(JOB_NAME + quartzJob.getId());
scheduler.resumeJob(jobKey);
} catch (Exception e){
} catch (Exception e) {
log.error("恢复定时任务失败", e);
throw new BadRequestException("恢复定时任务失败");
}
......@@ -139,21 +142,22 @@ public class QuartzManage {
/**
* 立即执行job
*
* @param quartzJob /
*/
public void runJobNow(QuartzJob quartzJob){
public void runJobNow(QuartzJob quartzJob) {
try {
TriggerKey triggerKey = TriggerKey.triggerKey(JOB_NAME + quartzJob.getId());
CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey);
// 如果不存在则创建一个定时任务
if(trigger == null) {
if (trigger == null) {
addJob(quartzJob);
}
JobDataMap dataMap = new JobDataMap();
dataMap.put(QuartzJob.JOB_KEY, quartzJob);
JobKey jobKey = JobKey.jobKey(JOB_NAME + quartzJob.getId());
scheduler.triggerJob(jobKey,dataMap);
} catch (Exception e){
scheduler.triggerJob(jobKey, dataMap);
} catch (Exception e) {
log.error("定时任务执行失败", e);
throw new BadRequestException("定时任务执行失败");
}
......@@ -161,13 +165,14 @@ public class QuartzManage {
/**
* 暂停一个job
*
* @param quartzJob /
*/
public void pauseJob(QuartzJob quartzJob){
public void pauseJob(QuartzJob quartzJob) {
try {
JobKey jobKey = JobKey.jobKey(JOB_NAME + quartzJob.getId());
scheduler.pauseJob(jobKey);
} catch (Exception e){
} catch (Exception e) {
log.error("定时任务暂停失败", e);
throw new BadRequestException("定时任务暂停失败");
}
......
......@@ -25,35 +25,36 @@ import java.util.concurrent.Callable;
/**
* 执行定时任务
*
* @author /
*/
@Slf4j
public class QuartzRunnable implements Callable<Object> {
private final Object target;
private final Method method;
private final String params;
private final Object target;
private final Method method;
private final String params;
QuartzRunnable(String beanName, String methodName, String params)
throws NoSuchMethodException, SecurityException {
this.target = SpringContextHolder.getBean(beanName);
this.params = params;
if (StringUtils.isNotBlank(params)) {
this.method = target.getClass().getDeclaredMethod(methodName, String.class);
} else {
this.method = target.getClass().getDeclaredMethod(methodName);
}
}
QuartzRunnable(String beanName, String methodName, String params)
throws NoSuchMethodException, SecurityException {
this.target = SpringContextHolder.getBean(beanName);
this.params = params;
if (StringUtils.isNotBlank(params)) {
this.method = target.getClass().getDeclaredMethod(methodName, String.class);
} else {
this.method = target.getClass().getDeclaredMethod(methodName);
}
}
@Override
@SuppressWarnings("all")
public Object call() throws Exception {
ReflectionUtils.makeAccessible(method);
if (StringUtils.isNotBlank(params)) {
method.invoke(target, params);
} else {
method.invoke(target);
}
return null;
}
@Override
@SuppressWarnings("all")
public Object call() throws Exception {
ReflectionUtils.makeAccessible(method);
if (StringUtils.isNotBlank(params)) {
method.invoke(target, params);
} else {
method.invoke(target);
}
return null;
}
}
......@@ -15,6 +15,7 @@
*/
package me.zhengjie.modules.security.config;
import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor;
import me.zhengjie.annotation.AnonymousAccess;
import me.zhengjie.modules.security.config.bean.SecurityProperties;
......@@ -81,8 +82,10 @@ public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
// 搜寻匿名标记 url: @AnonymousAccess
RequestMappingHandlerMapping requestMappingHandlerMapping = (RequestMappingHandlerMapping) applicationContext.getBean("requestMappingHandlerMapping");
Map<RequestMappingInfo, HandlerMethod> handlerMethodMap = requestMappingHandlerMapping.getHandlerMethods();
// 获取匿名标记
Map<String, Set<String>> anonymousUrls = getAnonymousUrl(handlerMethodMap);
System.out.println("anonymousUrls = " + JSONObject.toJSONString(anonymousUrls));
httpSecurity
// 禁用 CSRF
.csrf().disable()
......@@ -126,6 +129,7 @@ public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
// 自定义匿名访问所有url放行:允许匿名和带Token访问,细腻化到每个 Request 类型
// GET
.antMatchers(HttpMethod.GET, anonymousUrls.get(RequestMethodEnum.GET.getType()).toArray(new String[0])).permitAll()
.antMatchers(HttpMethod.GET, "/ins/data/download").permitAll()
// POST
.antMatchers(HttpMethod.POST, anonymousUrls.get(RequestMethodEnum.POST.getType()).toArray(new String[0])).permitAll()
// PUT
......@@ -137,7 +141,7 @@ public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
// 所有类型的接口都放行
.antMatchers(anonymousUrls.get(RequestMethodEnum.ALL.getType()).toArray(new String[0])).permitAll()
// 所有请求都需要认证
//.anyRequest().authenticated()
.anyRequest().authenticated()
.and().apply(securityConfigurerAdapter());
}
......
......@@ -104,7 +104,7 @@ public class LoginProperties {
throw new BadConfigurationException("验证码配置信息错误!正确配置查看 LoginCodeEnum ");
}
}
if(StringUtils.isNotBlank(loginCode.getFontName())){
if (StringUtils.isNotBlank(loginCode.getFontName())) {
captcha.setFont(new Font(loginCode.getFontName(), Font.PLAIN, loginCode.getFontSize()));
}
return captcha;
......
......@@ -44,8 +44,8 @@ public class OnlineController {
@ApiOperation("查询在线用户")
@GetMapping
@PreAuthorize("@el.check()")
public ResponseEntity<Object> queryOnlineUser(String filter, Pageable pageable){
return new ResponseEntity<>(onlineUserService.getAll(filter, pageable),HttpStatus.OK);
public ResponseEntity<Object> queryOnlineUser(String filter, Pageable pageable) {
return new ResponseEntity<>(onlineUserService.getAll(filter, pageable), HttpStatus.OK);
}
@ApiOperation("导出数据")
......
......@@ -29,9 +29,9 @@ import java.io.IOException;
@Component
public class JwtAccessDeniedHandler implements AccessDeniedHandler {
@Override
public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException) throws IOException {
//当用户在没有授权的情况下访问受保护的REST资源时,将调用此方法发送403 Forbidden响应
response.sendError(HttpServletResponse.SC_FORBIDDEN, accessDeniedException.getMessage());
}
@Override
public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException) throws IOException {
//当用户在没有授权的情况下访问受保护的REST资源时,将调用此方法发送403 Forbidden响应
response.sendError(HttpServletResponse.SC_FORBIDDEN, accessDeniedException.getMessage());
}
}
......@@ -34,6 +34,6 @@ public class JwtAuthenticationEntryPoint implements AuthenticationEntryPoint {
HttpServletResponse response,
AuthenticationException authException) throws IOException {
// 当用户尝试访问安全的REST资源而不提供任何凭据时,将调用此方法发送401 响应
response.sendError(HttpServletResponse.SC_UNAUTHORIZED, authException==null?"Unauthorized":authException.getMessage());
response.sendError(HttpServletResponse.SC_UNAUTHORIZED, authException == null ? "Unauthorized" : authException.getMessage());
}
}
......@@ -213,21 +213,24 @@ public class OnlineUserService {
Long currentUserId = SecurityUtils.getCurrentUserId();
TailpondinforService tailpondinforService1 = SpringContextHolder.getBean(TailpondinforService.class);
Tailpondinfor tailpondinfor = tailpondinforService1.getByUser(username);
Long tokenValidityInSeconds = properties.getTokenValidityInSeconds();
System.out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++" + tokenValidityInSeconds);
redisUtils.set("wkk" + username, tailpondinfor.getTailingno(), (properties.getTokenValidityInSeconds() / 1000) * 2);
//清空 菜单的缓存
if (tailpondinfor != null) {
Long tokenValidityInSeconds = properties.getTokenValidityInSeconds();
System.out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++" + tokenValidityInSeconds);
redisUtils.set("wkk" + username, tailpondinfor.getTailingno(), (properties.getTokenValidityInSeconds() / 1000) * 2);
} //清空 菜单的缓存
redisUtils.del("menu::user:" + currentUserId);
}
public void saveWKKBase(String username, String token) {
Long currentUserId = SecurityUtils.getCurrentUserId();
TailpondinforService tailpondinforService1 = SpringContextHolder.getBean(TailpondinforService.class);
Tailpondinfor tailpondinfor = tailpondinforService1.getByUser(username);
Long tokenValidityInSeconds = properties.getTokenValidityInSeconds();
System.out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++" + tokenValidityInSeconds);
redisUtils.set("wkk" + username, tailpondinfor.getTailingno(), (properties.getTokenValidityInSeconds() / 1000) * 2);
//清空 菜单的缓存
if (tailpondinfor != null) {
Long tokenValidityInSeconds = properties.getTokenValidityInSeconds();
System.out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++" + tokenValidityInSeconds);
redisUtils.set("wkk" + username, tailpondinfor.getTailingno(), (properties.getTokenValidityInSeconds() / 1000) * 2);
} //清空 菜单的缓存
redisUtils.del("menu::user:" + currentUserId);
}
......@@ -265,4 +268,16 @@ public class OnlineUserService {
String tailno = (String) redisUtils.get("wkk" + username);
return tailno;
}
/**
* 根据用户获取尾矿库编号
*
* @param username
* @return
*/
public String gettailno(String username) {
TokenProvider tokenProvider = SpringContextHolder.getBean(TokenProvider.class);
String tailno = (String) redisUtils.get("wkk" + username);
return tailno;
}
}
......@@ -85,25 +85,25 @@ public class UserDetailsServiceImpl implements UserDetailsService {
return jwtUserDto;
}
if (future==null) {
Callable<JwtUserDto> call=()->getJwtBySearchDb(username);
FutureTask<JwtUserDto> ft=new FutureTask<>(call);
future=USER_DTO_CACHE.putIfAbsent(username,ft);
if(future==null){
future=ft;
if (future == null) {
Callable<JwtUserDto> call = () -> getJwtBySearchDb(username);
FutureTask<JwtUserDto> ft = new FutureTask<>(call);
future = USER_DTO_CACHE.putIfAbsent(username, ft);
if (future == null) {
future = ft;
executor.submit(ft);
}
try{
try {
return future.get();
}catch(CancellationException e){
} catch (CancellationException e) {
USER_DTO_CACHE.remove(username);
}catch (InterruptedException | ExecutionException e) {
} catch (InterruptedException | ExecutionException e) {
throw new RuntimeException(e.getMessage());
}
}else{
} else {
try {
jwtUserDto=future.get();
}catch (InterruptedException | ExecutionException e) {
jwtUserDto = future.get();
} catch (InterruptedException | ExecutionException e) {
throw new RuntimeException(e.getMessage());
}
// 检查dataScope是否修改
......
......@@ -23,6 +23,7 @@ import java.util.Date;
/**
* 在线用户
*
* @author Zheng Jie
*/
@Data
......
......@@ -29,13 +29,13 @@ import java.util.Objects;
import java.util.Set;
/**
* @author Zheng Jie
* @date 2019-03-25
*/
* @author Zheng Jie
* @date 2019-03-25
*/
@Entity
@Getter
@Setter
@Table(name="sys_dept")
@Table(name = "sys_dept")
public class Dept extends BaseEntity implements Serializable {
@Id
......
......@@ -27,13 +27,13 @@ import java.io.Serializable;
import java.util.List;
/**
* @author Zheng Jie
* @date 2019-04-10
*/
* @author Zheng Jie
* @date 2019-04-10
*/
@Entity
@Getter
@Setter
@Table(name="sys_dict")
@Table(name = "sys_dict")
public class Dict extends BaseEntity implements Serializable {
@Id
......@@ -43,7 +43,7 @@ public class Dict extends BaseEntity implements Serializable {
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@OneToMany(mappedBy = "dict",cascade={CascadeType.PERSIST,CascadeType.REMOVE})
@OneToMany(mappedBy = "dict", cascade = {CascadeType.PERSIST, CascadeType.REMOVE})
private List<DictDetail> dictDetails;
@NotBlank
......
......@@ -25,13 +25,13 @@ import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @author Zheng Jie
* @date 2019-04-10
*/
* @author Zheng Jie
* @date 2019-04-10
*/
@Entity
@Getter
@Setter
@Table(name="sys_dict_detail")
@Table(name = "sys_dict_detail")
public class DictDetail extends BaseEntity implements Serializable {
@Id
......@@ -42,7 +42,7 @@ public class DictDetail extends BaseEntity implements Serializable {
private Long id;
@JoinColumn(name = "dict_id")
@ManyToOne(fetch=FetchType.LAZY)
@ManyToOne(fetch = FetchType.LAZY)
@ApiModelProperty(value = "字典", hidden = true)
private Dict dict;
......
......@@ -27,13 +27,13 @@ import java.io.Serializable;
import java.util.Objects;
/**
* @author Zheng Jie
* @date 2019-03-29
*/
* @author Zheng Jie
* @date 2019-03-29
*/
@Entity
@Getter
@Setter
@Table(name="sys_job")
@Table(name = "sys_job")
public class Job extends BaseEntity implements Serializable {
@Id
......
......@@ -31,6 +31,7 @@ import java.util.Set;
/**
* 角色
*
* @author Zheng Jie
* @date 2018-11-22
*/
......@@ -54,15 +55,15 @@ public class Role extends BaseEntity implements Serializable {
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "sys_roles_menus",
joinColumns = {@JoinColumn(name = "role_id",referencedColumnName = "role_id")},
inverseJoinColumns = {@JoinColumn(name = "menu_id",referencedColumnName = "menu_id")})
joinColumns = {@JoinColumn(name = "role_id", referencedColumnName = "role_id")},
inverseJoinColumns = {@JoinColumn(name = "menu_id", referencedColumnName = "menu_id")})
@ApiModelProperty(value = "菜单", hidden = true)
private Set<Menu> menus;
@ManyToMany
@JoinTable(name = "sys_roles_depts",
joinColumns = {@JoinColumn(name = "role_id",referencedColumnName = "role_id")},
inverseJoinColumns = {@JoinColumn(name = "dept_id",referencedColumnName = "dept_id")})
joinColumns = {@JoinColumn(name = "role_id", referencedColumnName = "role_id")},
inverseJoinColumns = {@JoinColumn(name = "dept_id", referencedColumnName = "dept_id")})
@ApiModelProperty(value = "部门", hidden = true)
private Set<Dept> depts;
......
......@@ -19,6 +19,7 @@ import lombok.Data;
/**
* 修改密码的 Vo 类
*
* @author Zheng Jie
* @date 2019年7月11日13:59:49
*/
......
......@@ -25,13 +25,14 @@ import java.util.List;
import java.util.Set;
/**
* @author Zheng Jie
* @date 2019-03-25
*/
* @author Zheng Jie
* @date 2019-03-25
*/
public interface DeptRepository extends JpaRepository<Dept, Long>, JpaSpecificationExecutor<Dept> {
/**
* 根据 PID 查询
*
* @param id pid
* @return /
*/
......@@ -39,12 +40,14 @@ public interface DeptRepository extends JpaRepository<Dept, Long>, JpaSpecificat
/**
* 获取顶级部门
*
* @return /
*/
List<Dept> findByPidIsNull();
/**
* 根据角色ID 查询
*
* @param roleId 角色ID
* @return /
*/
......@@ -54,6 +57,7 @@ public interface DeptRepository extends JpaRepository<Dept, Long>, JpaSpecificat
/**
* 判断是否存在子节点
*
* @param pid /
* @return /
*/
......@@ -61,10 +65,11 @@ public interface DeptRepository extends JpaRepository<Dept, Long>, JpaSpecificat
/**
* 根据ID更新sub_count
*
* @param count /
* @param id /
* @param id /
*/
@Modifying
@Query(value = " update sys_dept set sub_count = ?1 where dept_id = ?2 ",nativeQuery = true)
@Query(value = " update sys_dept set sub_count = ?1 where dept_id = ?2 ", nativeQuery = true)
void updateSubCntById(Integer count, Long id);
}
\ No newline at end of file
......@@ -22,13 +22,14 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.List;
/**
* @author Zheng Jie
* @date 2019-04-10
*/
* @author Zheng Jie
* @date 2019-04-10
*/
public interface DictDetailRepository extends JpaRepository<DictDetail, Long>, JpaSpecificationExecutor<DictDetail> {
/**
* 根据字典名称查询
*
* @param name /
* @return /
*/
......
......@@ -23,19 +23,21 @@ import java.util.List;
import java.util.Set;
/**
* @author Zheng Jie
* @date 2019-04-10
*/
* @author Zheng Jie
* @date 2019-04-10
*/
public interface DictRepository extends JpaRepository<Dict, Long>, JpaSpecificationExecutor<Dict> {
/**
* 删除
*
* @param ids /
*/
void deleteByIdIn(Set<Long> ids);
/**
* 查询
*
* @param ids /
* @return /
*/
......
......@@ -22,13 +22,14 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.Set;
/**
* @author Zheng Jie
* @date 2019-03-29
*/
* @author Zheng Jie
* @date 2019-03-29
*/
public interface JobRepository extends JpaRepository<Job, Long>, JpaSpecificationExecutor<Job> {
/**
* 根据名称查询
*
* @param name 名称
* @return /
*/
......@@ -36,6 +37,7 @@ public interface JobRepository extends JpaRepository<Job, Long>, JpaSpecificatio
/**
* 根据Id删除
*
* @param ids /
*/
void deleteAllByIdIn(Set<Long> ids);
......
......@@ -33,6 +33,7 @@ public interface MenuRepository extends JpaRepository<Menu, Long>, JpaSpecificat
/**
* 根据菜单标题查询
*
* @param title 菜单标题
* @return /
*/
......@@ -40,6 +41,7 @@ public interface MenuRepository extends JpaRepository<Menu, Long>, JpaSpecificat
/**
* 根据组件名称查询
*
* @param name 组件名称
* @return /
*/
......@@ -47,6 +49,7 @@ public interface MenuRepository extends JpaRepository<Menu, Long>, JpaSpecificat
/**
* 根据菜单的 PID 查询
*
* @param pid /
* @return /
*/
......@@ -54,22 +57,25 @@ public interface MenuRepository extends JpaRepository<Menu, Long>, JpaSpecificat
/**
* 查询顶级菜单
*
* @return /
*/
List<Menu> findByPidIsNull();
/**
* 根据角色ID与菜单类型查询菜单
*
* @param roleIds roleIDs
* @param type 类型
* @param type 类型
* @return /
*/
@Query(value = "SELECT m.* FROM sys_menu m, sys_roles_menus r WHERE " +
"m.menu_id = r.menu_id AND r.role_id IN ?1 AND type != ?2 order by m.menu_sort asc",nativeQuery = true)
"m.menu_id = r.menu_id AND r.role_id IN ?1 AND type != ?2 order by m.menu_sort asc", nativeQuery = true)
LinkedHashSet<Menu> findByRoleIdsAndTypeNot(Set<Long> roleIds, int type);
/**
* 获取节点数量
*
* @param id /
* @return /
*/
......@@ -77,10 +83,11 @@ public interface MenuRepository extends JpaRepository<Menu, Long>, JpaSpecificat
/**
* 更新节点数目
* @param count /
*
* @param count /
* @param menuId /
*/
@Modifying
@Query(value = " update sys_menu set sub_count = ?1 where menu_id = ?2 ",nativeQuery = true)
@Query(value = " update sys_menu set sub_count = ?1 where menu_id = ?2 ", nativeQuery = true)
void updateSubCntById(int count, Long menuId);
}
......@@ -32,6 +32,7 @@ public interface RoleRepository extends JpaRepository<Role, Long>, JpaSpecificat
/**
* 根据名称查询
*
* @param name /
* @return /
*/
......@@ -39,42 +40,47 @@ public interface RoleRepository extends JpaRepository<Role, Long>, JpaSpecificat
/**
* 删除多个角色
*
* @param ids /
*/
void deleteAllByIdIn(Set<Long> ids);
/**
* 根据用户ID查询
*
* @param id 用户ID
* @return /
*/
@Query(value = "SELECT r.* FROM sys_role r, sys_users_roles u WHERE " +
"r.role_id = u.role_id AND u.user_id = ?1",nativeQuery = true)
"r.role_id = u.role_id AND u.user_id = ?1", nativeQuery = true)
Set<Role> findByUserId(Long id);
/**
* 解绑角色菜单
*
* @param id 菜单ID
*/
@Modifying
@Query(value = "delete from sys_roles_menus where menu_id = ?1",nativeQuery = true)
@Query(value = "delete from sys_roles_menus where menu_id = ?1", nativeQuery = true)
void untiedMenu(Long id);
/**
* 根据部门查询
*
* @param deptIds /
* @return /
*/
@Query(value = "select count(1) from sys_role r, sys_roles_depts d where " +
"r.role_id = d.role_id and d.dept_id in ?1",nativeQuery = true)
"r.role_id = d.role_id and d.dept_id in ?1", nativeQuery = true)
int countByDepts(Set<Long> deptIds);
/**
* 根据菜单Id查询
*
* @param menuIds /
* @return /
*/
@Query(value = "SELECT r.* FROM sys_role r, sys_roles_menus m WHERE " +
"r.role_id = m.role_id AND m.menu_id in ?1",nativeQuery = true)
"r.role_id = m.role_id AND m.menu_id in ?1", nativeQuery = true)
List<Role> findInMenuId(List<Long> menuIds);
}
......@@ -33,6 +33,7 @@ public interface UserRepository extends JpaRepository<User, Long>, JpaSpecificat
/**
* 根据用户名查询
*
* @param username 用户名
* @return /
*/
......@@ -40,6 +41,7 @@ public interface UserRepository extends JpaRepository<User, Long>, JpaSpecificat
/**
* 根据邮箱查询
*
* @param email 邮箱
* @return /
*/
......@@ -47,6 +49,7 @@ public interface UserRepository extends JpaRepository<User, Long>, JpaSpecificat
/**
* 根据手机号查询
*
* @param phone 手机号
* @return /
*/
......@@ -54,25 +57,28 @@ public interface UserRepository extends JpaRepository<User, Long>, JpaSpecificat
/**
* 修改密码
* @param username 用户名
* @param pass 密码
*
* @param username 用户名
* @param pass 密码
* @param lastPasswordResetTime /
*/
@Modifying
@Query(value = "update sys_user set password = ?2 , pwd_reset_time = ?3 where username = ?1",nativeQuery = true)
@Query(value = "update sys_user set password = ?2 , pwd_reset_time = ?3 where username = ?1", nativeQuery = true)
void updatePass(String username, String pass, Date lastPasswordResetTime);
/**
* 修改邮箱
*
* @param username 用户名
* @param email 邮箱
* @param email 邮箱
*/
@Modifying
@Query(value = "update sys_user set email = ?2 where username = ?1",nativeQuery = true)
@Query(value = "update sys_user set email = ?2 where username = ?1", nativeQuery = true)
void updateEmail(String username, String email);
/**
* 根据角色查询用户
*
* @param roleId /
* @return /
*/
......@@ -82,6 +88,7 @@ public interface UserRepository extends JpaRepository<User, Long>, JpaSpecificat
/**
* 根据角色中的部门查询
*
* @param deptId /
* @return /
*/
......@@ -91,6 +98,7 @@ public interface UserRepository extends JpaRepository<User, Long>, JpaSpecificat
/**
* 根据菜单查询
*
* @param id 菜单ID
* @return /
*/
......@@ -100,12 +108,14 @@ public interface UserRepository extends JpaRepository<User, Long>, JpaSpecificat
/**
* 根据Id删除
*
* @param ids /
*/
void deleteAllByIdIn(Set<Long> ids);
/**
* 根据岗位查询
*
* @param ids /
* @return /
*/
......@@ -114,6 +124,7 @@ public interface UserRepository extends JpaRepository<User, Long>, JpaSpecificat
/**
* 根据部门查询
*
* @param deptIds /
* @return /
*/
......@@ -122,6 +133,7 @@ public interface UserRepository extends JpaRepository<User, Long>, JpaSpecificat
/**
* 根据角色查询
*
* @param ids /
* @return /
*/
......
......@@ -36,9 +36,9 @@ import javax.servlet.http.HttpServletResponse;
import java.util.*;
/**
* @author Zheng Jie
* @date 2019-03-25
*/
* @author Zheng Jie
* @date 2019-03-25
*/
@RestController
@RequiredArgsConstructor
@Api(tags = "系统:部门管理")
......@@ -60,29 +60,29 @@ public class DeptController {
@PreAuthorize("@el.check('user:list','dept:list')")
public ResponseEntity<Object> queryDept(DeptQueryCriteria criteria) throws Exception {
List<DeptDto> deptDtos = deptService.queryAll(criteria, true);
return new ResponseEntity<>(PageUtil.toPage(deptDtos, deptDtos.size()),HttpStatus.OK);
return new ResponseEntity<>(PageUtil.toPage(deptDtos, deptDtos.size()), HttpStatus.OK);
}
@ApiOperation("查询部门:根据ID获取同级与上级数据")
@PostMapping("/superior")
@PreAuthorize("@el.check('user:list','dept:list')")
public ResponseEntity<Object> getDeptSuperior(@RequestBody List<Long> ids) {
Set<DeptDto> deptDtos = new LinkedHashSet<>();
Set<DeptDto> deptDtos = new LinkedHashSet<>();
for (Long id : ids) {
DeptDto deptDto = deptService.findById(id);
List<DeptDto> depts = deptService.getSuperior(deptDto, new ArrayList<>());
deptDtos.addAll(depts);
}
return new ResponseEntity<>(deptService.buildTree(new ArrayList<>(deptDtos)),HttpStatus.OK);
return new ResponseEntity<>(deptService.buildTree(new ArrayList<>(deptDtos)), HttpStatus.OK);
}
@Log("新增部门")
@ApiOperation("新增部门")
@PostMapping
@PreAuthorize("@el.check('dept:add')")
public ResponseEntity<Object> createDept(@Validated @RequestBody Dept resources){
public ResponseEntity<Object> createDept(@Validated @RequestBody Dept resources) {
if (resources.getId() != null) {
throw new BadRequestException("A new "+ ENTITY_NAME +" cannot already have an ID");
throw new BadRequestException("A new " + ENTITY_NAME + " cannot already have an ID");
}
deptService.create(resources);
return new ResponseEntity<>(HttpStatus.CREATED);
......@@ -92,7 +92,7 @@ public class DeptController {
@ApiOperation("修改部门")
@PutMapping
@PreAuthorize("@el.check('dept:edit')")
public ResponseEntity<Object> updateDept(@Validated(Dept.Update.class) @RequestBody Dept resources){
public ResponseEntity<Object> updateDept(@Validated(Dept.Update.class) @RequestBody Dept resources) {
deptService.update(resources);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
......@@ -101,12 +101,12 @@ public class DeptController {
@ApiOperation("删除部门")
@DeleteMapping
@PreAuthorize("@el.check('dept:del')")
public ResponseEntity<Object> deleteDept(@RequestBody Set<Long> ids){
public ResponseEntity<Object> deleteDept(@RequestBody Set<Long> ids) {
Set<DeptDto> deptDtos = new HashSet<>();
for (Long id : ids) {
List<Dept> deptList = deptService.findByPid(id);
deptDtos.add(deptService.findById(id));
if(CollectionUtil.isNotEmpty(deptList)){
if (CollectionUtil.isNotEmpty(deptList)) {
deptDtos = deptService.getDeleteDepts(deptList, deptDtos);
}
}
......
......@@ -35,9 +35,9 @@ import java.io.IOException;
import java.util.Set;
/**
* @author Zheng Jie
* @date 2019-04-10
*/
* @author Zheng Jie
* @date 2019-04-10
*/
@RestController
@RequiredArgsConstructor
@Api(tags = "系统:字典管理")
......@@ -57,24 +57,24 @@ public class DictController {
@ApiOperation("查询字典")
@GetMapping(value = "/all")
@PreAuthorize("@el.check('dict:list')")
public ResponseEntity<Object> queryAllDict(){
return new ResponseEntity<>(dictService.queryAll(new DictQueryCriteria()),HttpStatus.OK);
public ResponseEntity<Object> queryAllDict() {
return new ResponseEntity<>(dictService.queryAll(new DictQueryCriteria()), HttpStatus.OK);
}
@ApiOperation("查询字典")
@GetMapping
@PreAuthorize("@el.check('dict:list')")
public ResponseEntity<Object> queryDict(DictQueryCriteria resources, Pageable pageable){
return new ResponseEntity<>(dictService.queryAll(resources,pageable),HttpStatus.OK);
public ResponseEntity<Object> queryDict(DictQueryCriteria resources, Pageable pageable) {
return new ResponseEntity<>(dictService.queryAll(resources, pageable), HttpStatus.OK);
}
@Log("新增字典")
@ApiOperation("新增字典")
@PostMapping
@PreAuthorize("@el.check('dict:add')")
public ResponseEntity<Object> createDict(@Validated @RequestBody Dict resources){
public ResponseEntity<Object> createDict(@Validated @RequestBody Dict resources) {
if (resources.getId() != null) {
throw new BadRequestException("A new "+ ENTITY_NAME +" cannot already have an ID");
throw new BadRequestException("A new " + ENTITY_NAME + " cannot already have an ID");
}
dictService.create(resources);
return new ResponseEntity<>(HttpStatus.CREATED);
......@@ -84,7 +84,7 @@ public class DictController {
@ApiOperation("修改字典")
@PutMapping
@PreAuthorize("@el.check('dict:edit')")
public ResponseEntity<Object> updateDict(@Validated(Dict.Update.class) @RequestBody Dict resources){
public ResponseEntity<Object> updateDict(@Validated(Dict.Update.class) @RequestBody Dict resources) {
dictService.update(resources);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
......@@ -93,7 +93,7 @@ public class DictController {
@ApiOperation("删除字典")
@DeleteMapping
@PreAuthorize("@el.check('dict:del')")
public ResponseEntity<Object> deleteDict(@RequestBody Set<Long> ids){
public ResponseEntity<Object> deleteDict(@RequestBody Set<Long> ids) {
dictService.delete(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
......
......@@ -38,9 +38,9 @@ import java.util.List;
import java.util.Map;
/**
* @author Zheng Jie
* @date 2019-04-10
*/
* @author Zheng Jie
* @date 2019-04-10
*/
@RestController
@RequiredArgsConstructor
@Api(tags = "系统:字典详情管理")
......@@ -53,13 +53,13 @@ public class DictDetailController {
@ApiOperation("查询字典详情")
@GetMapping
public ResponseEntity<Object> queryDictDetail(DictDetailQueryCriteria criteria,
@PageableDefault(sort = {"dictSort"}, direction = Sort.Direction.ASC) Pageable pageable){
return new ResponseEntity<>(dictDetailService.queryAll(criteria,pageable),HttpStatus.OK);
@PageableDefault(sort = {"dictSort"}, direction = Sort.Direction.ASC) Pageable pageable) {
return new ResponseEntity<>(dictDetailService.queryAll(criteria, pageable), HttpStatus.OK);
}
@ApiOperation("查询多个字典详情")
@GetMapping(value = "/map")
public ResponseEntity<Object> getDictDetailMaps(@RequestParam String dictName){
public ResponseEntity<Object> getDictDetailMaps(@RequestParam String dictName) {
String[] names = dictName.split("[,,]");
Map<String, List<DictDetailDto>> dictMap = new HashMap<>(16);
for (String name : names) {
......@@ -72,9 +72,9 @@ public class DictDetailController {
@ApiOperation("新增字典详情")
@PostMapping
@PreAuthorize("@el.check('dict:add')")
public ResponseEntity<Object> createDictDetail(@Validated @RequestBody DictDetail resources){
public ResponseEntity<Object> createDictDetail(@Validated @RequestBody DictDetail resources) {
if (resources.getId() != null) {
throw new BadRequestException("A new "+ ENTITY_NAME +" cannot already have an ID");
throw new BadRequestException("A new " + ENTITY_NAME + " cannot already have an ID");
}
dictDetailService.create(resources);
return new ResponseEntity<>(HttpStatus.CREATED);
......@@ -84,7 +84,7 @@ public class DictDetailController {
@ApiOperation("修改字典详情")
@PutMapping
@PreAuthorize("@el.check('dict:edit')")
public ResponseEntity<Object> updateDictDetail(@Validated(DictDetail.Update.class) @RequestBody DictDetail resources){
public ResponseEntity<Object> updateDictDetail(@Validated(DictDetail.Update.class) @RequestBody DictDetail resources) {
dictDetailService.update(resources);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
......@@ -93,7 +93,7 @@ public class DictDetailController {
@ApiOperation("删除字典详情")
@DeleteMapping(value = "/{id}")
@PreAuthorize("@el.check('dict:del')")
public ResponseEntity<Object> deleteDictDetail(@PathVariable Long id){
public ResponseEntity<Object> deleteDictDetail(@PathVariable Long id) {
dictDetailService.delete(id);
return new ResponseEntity<>(HttpStatus.OK);
}
......
......@@ -35,9 +35,9 @@ import java.io.IOException;
import java.util.Set;
/**
* @author Zheng Jie
* @date 2019-03-29
*/
* @author Zheng Jie
* @date 2019-03-29
*/
@RestController
@RequiredArgsConstructor
@Api(tags = "系统:岗位管理")
......@@ -57,17 +57,17 @@ public class JobController {
@ApiOperation("查询岗位")
@GetMapping
@PreAuthorize("@el.check('job:list','user:list')")
public ResponseEntity<Object> queryJob(JobQueryCriteria criteria, Pageable pageable){
return new ResponseEntity<>(jobService.queryAll(criteria, pageable),HttpStatus.OK);
public ResponseEntity<Object> queryJob(JobQueryCriteria criteria, Pageable pageable) {
return new ResponseEntity<>(jobService.queryAll(criteria, pageable), HttpStatus.OK);
}
@Log("新增岗位")
@ApiOperation("新增岗位")
@PostMapping
@PreAuthorize("@el.check('job:add')")
public ResponseEntity<Object> createJob(@Validated @RequestBody Job resources){
public ResponseEntity<Object> createJob(@Validated @RequestBody Job resources) {
if (resources.getId() != null) {
throw new BadRequestException("A new "+ ENTITY_NAME +" cannot already have an ID");
throw new BadRequestException("A new " + ENTITY_NAME + " cannot already have an ID");
}
jobService.create(resources);
return new ResponseEntity<>(HttpStatus.CREATED);
......@@ -77,7 +77,7 @@ public class JobController {
@ApiOperation("修改岗位")
@PutMapping
@PreAuthorize("@el.check('job:edit')")
public ResponseEntity<Object> updateJob(@Validated(Job.Update.class) @RequestBody Job resources){
public ResponseEntity<Object> updateJob(@Validated(Job.Update.class) @RequestBody Job resources) {
jobService.update(resources);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
......@@ -86,7 +86,7 @@ public class JobController {
@ApiOperation("删除岗位")
@DeleteMapping
@PreAuthorize("@el.check('job:del')")
public ResponseEntity<Object> deleteJob(@RequestBody Set<Long> ids){
public ResponseEntity<Object> deleteJob(@RequestBody Set<Long> ids) {
// 验证是否被用户关联
jobService.verification(ids);
jobService.delete(ids);
......
......@@ -64,7 +64,7 @@ public class MenuController {
@GetMapping(value = "/build")
@ApiOperation("获取前端所需菜单")
public ResponseEntity<Object> buildMenus(HttpServletRequest request) {
List<MenuDto> menuDtoList = menuService.findByUser(SecurityUtils.getCurrentUserId(),request);
List<MenuDto> menuDtoList = menuService.findByUser(SecurityUtils.getCurrentUserId(), request);
List<MenuDto> menuDtos = menuService.buildTree(menuDtoList);
return new ResponseEntity<>(menuService.buildMenus(menuDtos), HttpStatus.OK);
}
......
......@@ -41,7 +41,7 @@ public class MonitorController {
@GetMapping
@ApiOperation("查询服务监控")
@PreAuthorize("@el.check('monitor:list')")
public ResponseEntity<Object> queryMonitor(){
return new ResponseEntity<>(serverService.getServers(),HttpStatus.OK);
public ResponseEntity<Object> queryMonitor() {
return new ResponseEntity<>(serverService.getServers(), HttpStatus.OK);
}
}
......@@ -58,7 +58,7 @@ public class RoleController {
@ApiOperation("获取单个role")
@GetMapping(value = "/{id}")
@PreAuthorize("@el.check('roles:list')")
public ResponseEntity<Object> findRoleById(@PathVariable Long id){
public ResponseEntity<Object> findRoleById(@PathVariable Long id) {
return new ResponseEntity<>(roleService.findById(id), HttpStatus.OK);
}
......@@ -72,30 +72,30 @@ public class RoleController {
@ApiOperation("返回全部的角色")
@GetMapping(value = "/all")
@PreAuthorize("@el.check('roles:list','user:add','user:edit')")
public ResponseEntity<Object> queryAllRole(){
return new ResponseEntity<>(roleService.queryAll(),HttpStatus.OK);
public ResponseEntity<Object> queryAllRole() {
return new ResponseEntity<>(roleService.queryAll(), HttpStatus.OK);
}
@ApiOperation("查询角色")
@GetMapping
@PreAuthorize("@el.check('roles:list')")
public ResponseEntity<Object> queryRole(RoleQueryCriteria criteria, Pageable pageable){
return new ResponseEntity<>(roleService.queryAll(criteria,pageable),HttpStatus.OK);
public ResponseEntity<Object> queryRole(RoleQueryCriteria criteria, Pageable pageable) {
return new ResponseEntity<>(roleService.queryAll(criteria, pageable), HttpStatus.OK);
}
@ApiOperation("获取用户级别")
@GetMapping(value = "/level")
public ResponseEntity<Object> getRoleLevel(){
return new ResponseEntity<>(Dict.create().set("level", getLevels(null)),HttpStatus.OK);
public ResponseEntity<Object> getRoleLevel() {
return new ResponseEntity<>(Dict.create().set("level", getLevels(null)), HttpStatus.OK);
}
@Log("新增角色")
@ApiOperation("新增角色")
@PostMapping
@PreAuthorize("@el.check('roles:add')")
public ResponseEntity<Object> createRole(@Validated @RequestBody Role resources){
public ResponseEntity<Object> createRole(@Validated @RequestBody Role resources) {
if (resources.getId() != null) {
throw new BadRequestException("A new "+ ENTITY_NAME +" cannot already have an ID");
throw new BadRequestException("A new " + ENTITY_NAME + " cannot already have an ID");
}
getLevels(resources.getLevel());
roleService.create(resources);
......@@ -106,7 +106,7 @@ public class RoleController {
@ApiOperation("修改角色")
@PutMapping
@PreAuthorize("@el.check('roles:edit')")
public ResponseEntity<Object> updateRole(@Validated(Role.Update.class) @RequestBody Role resources){
public ResponseEntity<Object> updateRole(@Validated(Role.Update.class) @RequestBody Role resources) {
getLevels(resources.getLevel());
roleService.update(resources);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
......@@ -116,10 +116,10 @@ public class RoleController {
@ApiOperation("修改角色菜单")
@PutMapping(value = "/menu")
@PreAuthorize("@el.check('roles:edit')")
public ResponseEntity<Object> updateRoleMenu(@RequestBody Role resources){
public ResponseEntity<Object> updateRoleMenu(@RequestBody Role resources) {
RoleDto role = roleService.findById(resources.getId());
getLevels(role.getLevel());
roleService.updateMenu(resources,role);
roleService.updateMenu(resources, role);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
......@@ -127,7 +127,7 @@ public class RoleController {
@ApiOperation("删除角色")
@DeleteMapping
@PreAuthorize("@el.check('roles:del')")
public ResponseEntity<Object> deleteRole(@RequestBody Set<Long> ids){
public ResponseEntity<Object> deleteRole(@RequestBody Set<Long> ids) {
for (Long id : ids) {
RoleDto role = roleService.findById(id);
getLevels(role.getLevel());
......@@ -140,13 +140,14 @@ public class RoleController {
/**
* 获取用户的角色级别
*
* @return /
*/
private int getLevels(Integer level){
private int getLevels(Integer level) {
List<Integer> levels = roleService.findByUsersId(SecurityUtils.getCurrentUserId()).stream().map(RoleSmallDto::getLevel).collect(Collectors.toList());
int min = Collections.min(levels);
if(level != null){
if(level < min){
if (level != null) {
if (level < min) {
throw new BadRequestException("权限不足,你的角色级别:" + min + ",低于操作的角色级别:" + level);
}
}
......
......@@ -44,30 +44,30 @@ public class VerifyController {
@PostMapping(value = "/resetEmail")
@ApiOperation("重置邮箱,发送验证码")
public ResponseEntity<Object> resetEmail(@RequestParam String email){
public ResponseEntity<Object> resetEmail(@RequestParam String email) {
EmailVo emailVo = verificationCodeService.sendEmail(email, CodeEnum.EMAIL_RESET_EMAIL_CODE.getKey());
emailService.send(emailVo,emailService.find());
emailService.send(emailVo, emailService.find());
return new ResponseEntity<>(HttpStatus.OK);
}
@PostMapping(value = "/email/resetPass")
@ApiOperation("重置密码,发送验证码")
public ResponseEntity<Object> resetPass(@RequestParam String email){
public ResponseEntity<Object> resetPass(@RequestParam String email) {
EmailVo emailVo = verificationCodeService.sendEmail(email, CodeEnum.EMAIL_RESET_PWD_CODE.getKey());
emailService.send(emailVo,emailService.find());
emailService.send(emailVo, emailService.find());
return new ResponseEntity<>(HttpStatus.OK);
}
@GetMapping(value = "/validated")
@ApiOperation("验证码验证")
public ResponseEntity<Object> validated(@RequestParam String email, @RequestParam String code, @RequestParam Integer codeBi){
public ResponseEntity<Object> validated(@RequestParam String email, @RequestParam String code, @RequestParam Integer codeBi) {
CodeBiEnum biEnum = CodeBiEnum.find(codeBi);
switch (Objects.requireNonNull(biEnum)){
switch (Objects.requireNonNull(biEnum)) {
case ONE:
verificationCodeService.validated(CodeEnum.EMAIL_RESET_EMAIL_CODE.getKey() + email ,code);
verificationCodeService.validated(CodeEnum.EMAIL_RESET_EMAIL_CODE.getKey() + email, code);
break;
case TWO:
verificationCodeService.validated(CodeEnum.EMAIL_RESET_PWD_CODE.getKey() + email ,code);
verificationCodeService.validated(CodeEnum.EMAIL_RESET_PWD_CODE.getKey() + email, code);
break;
default:
break;
......
......@@ -21,6 +21,7 @@ import java.util.List;
/**
* 数据权限服务类
*
* @author Zheng Jie
* @date 2020-05-07
*/
......@@ -28,6 +29,7 @@ public interface DataService {
/**
* 获取数据权限
*
* @param user /
* @return /
*/
......
......@@ -25,22 +25,24 @@ import java.util.List;
import java.util.Set;
/**
* @author Zheng Jie
* @date 2019-03-25
*/
* @author Zheng Jie
* @date 2019-03-25
*/
public interface DeptService {
/**
* 查询所有数据
*
* @param criteria 条件
* @param isQuery /
* @throws Exception /
* @param isQuery /
* @return /
* @throws Exception /
*/
List<DeptDto> queryAll(DeptQueryCriteria criteria, Boolean isQuery) throws Exception;
/**
* 根据ID查询
*
* @param id /
* @return /
*/
......@@ -48,25 +50,28 @@ public interface DeptService {
/**
* 创建
*
* @param resources /
*/
void create(Dept resources);
/**
* 编辑
*
* @param resources /
*/
void update(Dept resources);
/**
* 删除
* @param deptDtos /
*
* @param deptDtos /
*/
void delete(Set<DeptDto> deptDtos);
/**
* 根据PID查询
*
* @param pid /
* @return /
*/
......@@ -74,6 +79,7 @@ public interface DeptService {
/**
* 根据角色ID查询
*
* @param id /
* @return /
*/
......@@ -81,6 +87,7 @@ public interface DeptService {
/**
* 导出数据
*
* @param queryAll 待导出的数据
* @param response /
* @throws IOException /
......@@ -89,6 +96,7 @@ public interface DeptService {
/**
* 获取待删除的部门
*
* @param deptList /
* @param deptDtos /
* @return /
......@@ -97,14 +105,16 @@ public interface DeptService {
/**
* 根据ID获取同级与上级数据
*
* @param deptDto /
* @param depts /
* @param depts /
* @return /
*/
List<DeptDto> getSuperior(DeptDto deptDto, List<Dept> depts);
/**
* 构建树形数据
*
* @param deptDtos /
* @return /
*/
......@@ -112,6 +122,7 @@ public interface DeptService {
/**
* 获取
*
* @param deptList
* @return
*/
......@@ -119,6 +130,7 @@ public interface DeptService {
/**
* 验证是否被角色或用户关联
*
* @param deptDtos /
*/
void verification(Set<DeptDto> deptDtos);
......
......@@ -24,39 +24,44 @@ import java.util.List;
import java.util.Map;
/**
* @author Zheng Jie
* @date 2019-04-10
*/
* @author Zheng Jie
* @date 2019-04-10
*/
public interface DictDetailService {
/**
* 创建
*
* @param resources /
*/
void create(DictDetail resources);
/**
* 编辑
*
* @param resources /
*/
void update(DictDetail resources);
/**
* 删除
*
* @param id /
*/
void delete(Long id);
/**
* 分页查询
*
* @param criteria 条件
* @param pageable 分页参数
* @return /
*/
Map<String,Object> queryAll(DictDetailQueryCriteria criteria, Pageable pageable);
Map<String, Object> queryAll(DictDetailQueryCriteria criteria, Pageable pageable);
/**
* 根据字典名称获取字典详情
*
* @param name 字典名称
* @return /
*/
......
......@@ -27,21 +27,23 @@ import java.util.Map;
import java.util.Set;
/**
* @author Zheng Jie
* @date 2019-04-10
*/
* @author Zheng Jie
* @date 2019-04-10
*/
public interface DictService {
/**
* 分页查询
*
* @param criteria 条件
* @param pageable 分页参数
* @return /
*/
Map<String,Object> queryAll(DictQueryCriteria criteria, Pageable pageable);
Map<String, Object> queryAll(DictQueryCriteria criteria, Pageable pageable);
/**
* 查询全部数据
*
* @param dict /
* @return /
*/
......@@ -49,6 +51,7 @@ public interface DictService {
/**
* 创建
*
* @param resources /
* @return /
*/
......@@ -56,18 +59,21 @@ public interface DictService {
/**
* 编辑
*
* @param resources /
*/
void update(Dict resources);
/**
* 删除
*
* @param ids /
*/
void delete(Set<Long> ids);
/**
* 导出数据
*
* @param queryAll 待导出的数据
* @param response /
* @throws IOException /
......
......@@ -27,13 +27,14 @@ import java.util.Map;
import java.util.Set;
/**
* @author Zheng Jie
* @date 2019-03-29
*/
* @author Zheng Jie
* @date 2019-03-29
*/
public interface JobService {
/**
* 根据ID查询
*
* @param id /
* @return /
*/
......@@ -41,6 +42,7 @@ public interface JobService {
/**
* 创建
*
* @param resources /
* @return /
*/
......@@ -48,26 +50,30 @@ public interface JobService {
/**
* 编辑
*
* @param resources /
*/
void update(Job resources);
/**
* 删除
*
* @param ids /
*/
void delete(Set<Long> ids);
/**
* 分页查询
*
* @param criteria 条件
* @param pageable 分页参数
* @return /
*/
Map<String,Object> queryAll(JobQueryCriteria criteria, Pageable pageable);
Map<String, Object> queryAll(JobQueryCriteria criteria, Pageable pageable);
/**
* 查询全部数据
*
* @param criteria /
* @return /
*/
......@@ -75,6 +81,7 @@ public interface JobService {
/**
* 导出数据
*
* @param queryAll 待导出的数据
* @param response /
* @throws IOException /
......@@ -83,6 +90,7 @@ public interface JobService {
/**
* 验证是否被用户关联
*
* @param ids /
*/
void verification(Set<Long> ids);
......
......@@ -33,15 +33,17 @@ public interface MenuService {
/**
* 查询全部数据
*
* @param criteria 条件
* @param isQuery /
* @throws Exception /
* @param isQuery /
* @return /
* @throws Exception /
*/
List<MenuDto> queryAll(MenuQueryCriteria criteria, Boolean isQuery) throws Exception;
/**
* 根据ID查询
*
* @param id /
* @return /
*/
......@@ -49,26 +51,30 @@ public interface MenuService {
/**
* 创建
*
* @param resources /
*/
void create(Menu resources);
/**
* 编辑
*
* @param resources /
*/
void update(Menu resources);
/**
* 获取所有子节点,包含自身ID
*
* @param menuList /
* @param menuSet /
* @param menuSet /
* @return /
*/
Set<Menu> getChildMenus(List<Menu> menuList, Set<Menu> menuSet);
/**
* 构建菜单树
*
* @param menuDtos 原始数据
* @return /
*/
......@@ -76,6 +82,7 @@ public interface MenuService {
/**
* 构建菜单树
*
* @param menuDtos /
* @return /
*/
......@@ -83,6 +90,7 @@ public interface MenuService {
/**
* 根据ID查询
*
* @param id /
* @return /
*/
......@@ -90,12 +98,14 @@ public interface MenuService {
/**
* 删除
*
* @param menuSet /
*/
void delete(Set<Menu> menuSet);
/**
* 导出
*
* @param queryAll 待导出的数据
* @param response /
* @throws IOException /
......@@ -104,6 +114,7 @@ public interface MenuService {
/**
* 懒加载菜单数据
*
* @param pid /
* @return /
*/
......@@ -111,6 +122,7 @@ public interface MenuService {
/**
* 根据ID获取同级与上级数据
*
* @param menuDto /
* @param objects /
* @return /
......@@ -119,6 +131,7 @@ public interface MenuService {
/**
* 根据当前用户获取菜单
*
* @param currentUserId /
* @return /
*/
......
......@@ -24,8 +24,9 @@ import java.util.Map;
public interface MonitorService {
/**
* 查询数据分页
* @return Map<String,Object>
*/
Map<String,Object> getServers();
* 查询数据分页
*
* @return Map<String, Object>
*/
Map<String, Object> getServers();
}
......@@ -36,12 +36,14 @@ public interface RoleService {
/**
* 查询全部数据
*
* @return /
*/
List<RoleDto> queryAll();
/**
* 根据ID查询
*
* @param id /
* @return /
*/
......@@ -49,24 +51,28 @@ public interface RoleService {
/**
* 创建
*
* @param resources /
*/
void create(Role resources);
/**
* 编辑
*
* @param resources /
*/
void update(Role resources);
/**
* 删除
*
* @param ids /
*/
void delete(Set<Long> ids);
/**
* 根据用户ID查询
*
* @param id 用户ID
* @return /
*/
......@@ -74,6 +80,7 @@ public interface RoleService {
/**
* 根据角色查询角色级别
*
* @param roles /
* @return /
*/
......@@ -81,19 +88,22 @@ public interface RoleService {
/**
* 修改绑定的菜单
*
* @param resources /
* @param roleDTO /
* @param roleDTO /
*/
void updateMenu(Role resources, RoleDto roleDTO);
/**
* 解绑菜单
*
* @param id /
*/
void untiedMenu(Long id);
/**
* 待条件分页查询
*
* @param criteria 条件
* @param pageable 分页参数
* @return /
......@@ -102,6 +112,7 @@ public interface RoleService {
/**
* 查询全部
*
* @param criteria 条件
* @return /
*/
......@@ -109,6 +120,7 @@ public interface RoleService {
/**
* 导出数据
*
* @param queryAll 待导出的数据
* @param response /
* @throws IOException /
......@@ -117,6 +129,7 @@ public interface RoleService {
/**
* 获取用户权限信息
*
* @param user 用户信息
* @return 权限信息
*/
......@@ -124,12 +137,14 @@ public interface RoleService {
/**
* 验证是否被用户关联
*
* @param ids /
*/
void verification(Set<Long> ids);
/**
* 根据菜单Id查询
*
* @param menuIds /
* @return /
*/
......
......@@ -35,6 +35,7 @@ public interface UserService {
/**
* 根据ID查询
*
* @param id ID
* @return /
*/
......@@ -42,12 +43,14 @@ public interface UserService {
/**
* 新增用户
*
* @param resources /
*/
void create(User resources);
/**
* 编辑用户
*
* @param resources /
* @throws Exception /
*/
......@@ -55,12 +58,14 @@ public interface UserService {
/**
* 删除用户
*
* @param ids /
*/
void delete(Set<Long> ids);
/**
* 根据用户名查询
*
* @param userName /
* @return /
*/
......@@ -68,13 +73,15 @@ public interface UserService {
/**
* 修改密码
* @param username 用户名
*
* @param username 用户名
* @param encryptPassword 密码
*/
void updatePass(String username, String encryptPassword);
/**
* 修改头像
*
* @param file 文件
* @return /
*/
......@@ -82,13 +89,15 @@ public interface UserService {
/**
* 修改邮箱
*
* @param username 用户名
* @param email 邮箱
* @param email 邮箱
*/
void updateEmail(String username, String email);
/**
* 查询全部
*
* @param criteria 条件
* @param pageable 分页参数
* @return /
......@@ -97,6 +106,7 @@ public interface UserService {
/**
* 查询全部不分页
*
* @param criteria 条件
* @return /
*/
......@@ -104,6 +114,7 @@ public interface UserService {
/**
* 导出数据
*
* @param queryAll 待导出的数据
* @param response /
* @throws IOException /
......@@ -112,6 +123,7 @@ public interface UserService {
/**
* 用户自助修改资料
*
* @param resources /
*/
void updateCenter(User resources);
......
......@@ -25,8 +25,9 @@ public interface VerifyService {
/**
* 发送验证码
*
* @param email /
* @param key /
* @param key /
* @return /
*/
EmailVo sendEmail(String email, String key);
......@@ -34,8 +35,9 @@ public interface VerifyService {
/**
* 验证
*
* @param code /
* @param key /
* @param key /
*/
void validated(String key, String code);
}
......@@ -25,9 +25,9 @@ import java.util.List;
import java.util.Objects;
/**
* @author Zheng Jie
* @date 2019-03-25
*/
* @author Zheng Jie
* @date 2019-03-25
*/
@Getter
@Setter
public class DeptDto extends BaseDTO implements Serializable {
......
......@@ -23,12 +23,12 @@ import java.sql.Timestamp;
import java.util.List;
/**
* @author Zheng Jie
* @date 2019-03-25
*/
* @author Zheng Jie
* @date 2019-03-25
*/
@Data
@DataPermission(fieldName = "id")
public class DeptQueryCriteria{
public class DeptQueryCriteria {
@Query(type = Query.Type.INNER_LIKE)
private String name;
......
......@@ -20,9 +20,9 @@ import lombok.Data;
import java.io.Serializable;
/**
* @author Zheng Jie
* @date 2019-6-10 16:32:18
*/
* @author Zheng Jie
* @date 2019-6-10 16:32:18
*/
@Data
public class DeptSmallDto implements Serializable {
......
......@@ -22,9 +22,9 @@ import me.zhengjie.base.BaseDTO;
import java.io.Serializable;
/**
* @author Zheng Jie
* @date 2019-04-10
*/
* @author Zheng Jie
* @date 2019-04-10
*/
@Getter
@Setter
public class DictDetailDto extends BaseDTO implements Serializable {
......
......@@ -19,15 +19,15 @@ import lombok.Data;
import me.zhengjie.annotation.Query;
/**
* @author Zheng Jie
* @date 2019-04-10
*/
* @author Zheng Jie
* @date 2019-04-10
*/
@Data
public class DictDetailQueryCriteria {
@Query(type = Query.Type.INNER_LIKE)
private String label;
@Query(propName = "name",joinName = "dict")
@Query(propName = "name", joinName = "dict")
private String dictName;
}
\ No newline at end of file
......@@ -23,9 +23,9 @@ import java.io.Serializable;
import java.util.List;
/**
* @author Zheng Jie
* @date 2019-04-10
*/
* @author Zheng Jie
* @date 2019-04-10
*/
@Getter
@Setter
public class DictDto extends BaseDTO implements Serializable {
......
......@@ -21,9 +21,9 @@ import lombok.Setter;
import java.io.Serializable;
/**
* @author Zheng Jie
* @date 2019-04-10
*/
* @author Zheng Jie
* @date 2019-04-10
*/
@Getter
@Setter
public class DictSmallDto implements Serializable {
......
......@@ -23,9 +23,9 @@ import me.zhengjie.base.BaseDTO;
import java.io.Serializable;
/**
* @author Zheng Jie
* @date 2019-03-29
*/
* @author Zheng Jie
* @date 2019-03-29
*/
@Getter
@Setter
@NoArgsConstructor
......
......@@ -23,9 +23,9 @@ import java.sql.Timestamp;
import java.util.List;
/**
* @author Zheng Jie
* @date 2019-6-4 14:49:34
*/
* @author Zheng Jie
* @date 2019-6-4 14:49:34
*/
@Data
@NoArgsConstructor
public class JobQueryCriteria {
......
......@@ -21,9 +21,9 @@ import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author Zheng Jie
* @date 2019-6-10 16:32:18
*/
* @author Zheng Jie
* @date 2019-6-10 16:32:18
*/
@Data
@NoArgsConstructor
public class JobSmallDto implements Serializable {
......
......@@ -45,6 +45,7 @@ public class DataServiceImpl implements DataService {
/**
* 用户角色改变时需清理缓存
*
* @param user /
* @return /
*/
......@@ -74,11 +75,12 @@ public class DataServiceImpl implements DataService {
/**
* 获取自定义的数据权限
*
* @param deptIds 部门ID
* @param role 角色
* @param role 角色
* @return 数据权限ID
*/
public Set<Long> getCustomize(Set<Long> deptIds, RoleSmallDto role){
public Set<Long> getCustomize(Set<Long> deptIds, RoleSmallDto role) {
Set<Dept> depts = deptService.findByRoleId(role.getId());
for (Dept dept : depts) {
deptIds.add(dept.getId());
......
......@@ -43,9 +43,9 @@ import java.util.*;
import java.util.stream.Collectors;
/**
* @author Zheng Jie
* @date 2019-03-25
*/
* @author Zheng Jie
* @date 2019-03-25
*/
@Service
@RequiredArgsConstructor
@CacheConfig(cacheNames = "dept")
......@@ -62,16 +62,19 @@ public class DeptServiceImpl implements DeptService {
Sort sort = Sort.by(Sort.Direction.ASC, "deptSort");
String dataScopeType = SecurityUtils.getDataScopeType();
if (isQuery) {
if(dataScopeType.equals(DataScopeEnum.ALL.getValue())){
if (dataScopeType.equals(DataScopeEnum.ALL.getValue())) {
criteria.setPidIsNull(true);
}
List<Field> fields = QueryHelp.getAllFields(criteria.getClass(), new ArrayList<>());
List<String> fieldNames = new ArrayList<String>(){{ add("pidIsNull");add("enabled");}};
List<String> fieldNames = new ArrayList<String>() {{
add("pidIsNull");
add("enabled");
}};
for (Field field : fields) {
//设置对象的访问权限,保证对private的属性的访问
field.setAccessible(true);
Object val = field.get(criteria);
if(fieldNames.contains(field.getName())){
if (fieldNames.contains(field.getName())) {
continue;
}
if (ObjectUtil.isNotNull(val)) {
......@@ -80,9 +83,9 @@ public class DeptServiceImpl implements DeptService {
}
}
}
List<DeptDto> list = deptMapper.toDto(deptRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),sort));
List<DeptDto> list = deptMapper.toDto(deptRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), sort));
// 如果为空,就代表为自定义权限或者本级权限,就需要去重,不理解可以注释掉,看查询结果
if(StringUtils.isBlank(dataScopeType)){
if (StringUtils.isBlank(dataScopeType)) {
return deduplication(list);
}
return list;
......@@ -92,7 +95,7 @@ public class DeptServiceImpl implements DeptService {
@Cacheable(key = "'id:' + #p0")
public DeptDto findById(Long id) {
Dept dept = deptRepository.findById(id).orElseGet(Dept::new);
ValidationUtil.isNull(dept.getId(),"Dept","id",id);
ValidationUtil.isNull(dept.getId(), "Dept", "id", id);
return deptMapper.toDto(dept);
}
......@@ -124,11 +127,11 @@ public class DeptServiceImpl implements DeptService {
// 旧的部门
Long oldPid = findById(resources.getId()).getPid();
Long newPid = resources.getPid();
if(resources.getPid() != null && resources.getId().equals(resources.getPid())) {
if (resources.getPid() != null && resources.getId().equals(resources.getPid())) {
throw new BadRequestException("上级不能为自己");
}
Dept dept = deptRepository.findById(resources.getId()).orElseGet(Dept::new);
ValidationUtil.isNull( dept.getId(),"Dept","id",resources.getId());
ValidationUtil.isNull(dept.getId(), "Dept", "id", resources.getId());
resources.setId(dept.getId());
deptRepository.save(resources);
// 更新父节点中子节点数目
......@@ -153,7 +156,7 @@ public class DeptServiceImpl implements DeptService {
public void download(List<DeptDto> deptDtos, HttpServletResponse response) throws IOException {
List<Map<String, Object>> list = new ArrayList<>();
for (DeptDto deptDTO : deptDtos) {
Map<String,Object> map = new LinkedHashMap<>();
Map<String, Object> map = new LinkedHashMap<>();
map.put("部门名称", deptDTO.getName());
map.put("部门状态", deptDTO.getEnabled() ? "启用" : "停用");
map.put("创建日期", deptDTO.getCreateTime());
......@@ -167,7 +170,7 @@ public class DeptServiceImpl implements DeptService {
for (Dept dept : menuList) {
deptDtos.add(deptMapper.toDto(dept));
List<Dept> depts = deptRepository.findByPid(dept.getId());
if(depts!=null && depts.size()!=0){
if (depts != null && depts.size() != 0) {
getDeleteDepts(depts, deptDtos);
}
}
......@@ -178,7 +181,7 @@ public class DeptServiceImpl implements DeptService {
public List<Long> getDeptChildren(List<Dept> deptList) {
List<Long> list = new ArrayList<>();
deptList.forEach(dept -> {
if (dept!=null && dept.getEnabled()) {
if (dept != null && dept.getEnabled()) {
List<Dept> depts = deptRepository.findByPid(dept.getId());
if (depts.size() != 0) {
list.addAll(getDeptChildren(depts));
......@@ -192,7 +195,7 @@ public class DeptServiceImpl implements DeptService {
@Override
public List<DeptDto> getSuperior(DeptDto deptDto, List<Dept> depts) {
if(deptDto.getPid() == null){
if (deptDto.getPid() == null) {
depts.addAll(deptRepository.findByPidIsNull());
return deptMapper.toDto(depts);
}
......@@ -203,7 +206,7 @@ public class DeptServiceImpl implements DeptService {
@Override
public Object buildTree(List<DeptDto> deptDtos) {
Set<DeptDto> trees = new LinkedHashSet<>();
Set<DeptDto> depts= new LinkedHashSet<>();
Set<DeptDto> depts = new LinkedHashSet<>();
List<String> deptNames = deptDtos.stream().map(DeptDto::getName).collect(Collectors.toList());
boolean isChild;
for (DeptDto deptDTO : deptDtos) {
......@@ -220,9 +223,9 @@ public class DeptServiceImpl implements DeptService {
deptDTO.getChildren().add(it);
}
}
if(isChild) {
if (isChild) {
depts.add(deptDTO);
} else if(deptDTO.getPid() != null && !deptNames.contains(findById(deptDTO.getPid()).getName())) {
} else if (deptDTO.getPid() != null && !deptNames.contains(findById(deptDTO.getPid()).getName())) {
depts.add(deptDTO);
}
}
......@@ -230,25 +233,25 @@ public class DeptServiceImpl implements DeptService {
if (CollectionUtil.isEmpty(trees)) {
trees = depts;
}
Map<String,Object> map = new HashMap<>(2);
map.put("totalElements",deptDtos.size());
map.put("content",CollectionUtil.isEmpty(trees)? deptDtos :trees);
Map<String, Object> map = new HashMap<>(2);
map.put("totalElements", deptDtos.size());
map.put("content", CollectionUtil.isEmpty(trees) ? deptDtos : trees);
return map;
}
@Override
public void verification(Set<DeptDto> deptDtos) {
Set<Long> deptIds = deptDtos.stream().map(DeptDto::getId).collect(Collectors.toSet());
if(userRepository.countByDepts(deptIds) > 0){
if (userRepository.countByDepts(deptIds) > 0) {
throw new BadRequestException("所选部门存在用户关联,请解除后再试!");
}
if(roleRepository.countByDepts(deptIds) > 0){
if (roleRepository.countByDepts(deptIds) > 0) {
throw new BadRequestException("所选部门存在角色关联,请解除后再试!");
}
}
private void updateSubCnt(Long deptId){
if(deptId != null){
private void updateSubCnt(Long deptId) {
if (deptId != null) {
int count = deptRepository.countByPid(deptId);
deptRepository.updateSubCntById(count, deptId);
}
......@@ -264,7 +267,7 @@ public class DeptServiceImpl implements DeptService {
break;
}
}
if (flag){
if (flag) {
deptDtos.add(deptDto);
}
}
......@@ -273,9 +276,10 @@ public class DeptServiceImpl implements DeptService {
/**
* 清理缓存
*
* @param id /
*/
public void delCaches(Long id){
public void delCaches(Long id) {
List<User> users = userRepository.findByRoleDeptId(id);
// 删除数据权限
redisUtils.delByKeys(CacheKey.DATA_USER, users.stream().map(User::getId).collect(Collectors.toSet()));
......
......@@ -36,9 +36,9 @@ import java.util.List;
import java.util.Map;
/**
* @author Zheng Jie
* @date 2019-04-10
*/
* @author Zheng Jie
* @date 2019-04-10
*/
@Service
@RequiredArgsConstructor
@CacheConfig(cacheNames = "dict")
......@@ -50,8 +50,8 @@ public class DictDetailServiceImpl implements DictDetailService {
private final RedisUtils redisUtils;
@Override
public Map<String,Object> queryAll(DictDetailQueryCriteria criteria, Pageable pageable) {
Page<DictDetail> page = dictDetailRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
public Map<String, Object> queryAll(DictDetailQueryCriteria criteria, Pageable pageable) {
Page<DictDetail> page = dictDetailRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable);
return PageUtil.toPage(page.map(dictDetailMapper::toDto));
}
......@@ -67,7 +67,7 @@ public class DictDetailServiceImpl implements DictDetailService {
@Transactional(rollbackFor = Exception.class)
public void update(DictDetail resources) {
DictDetail dictDetail = dictDetailRepository.findById(resources.getId()).orElseGet(DictDetail::new);
ValidationUtil.isNull( dictDetail.getId(),"DictDetail","id",resources.getId());
ValidationUtil.isNull(dictDetail.getId(), "DictDetail", "id", resources.getId());
resources.setId(dictDetail.getId());
dictDetailRepository.save(resources);
// 清理缓存
......@@ -89,7 +89,7 @@ public class DictDetailServiceImpl implements DictDetailService {
dictDetailRepository.deleteById(id);
}
public void delCaches(DictDetail dictDetail){
public void delCaches(DictDetail dictDetail) {
Dict dict = dictRepository.findById(dictDetail.getDict().getId()).orElseGet(Dict::new);
redisUtils.del(CacheKey.DICT_NAME + dict.getName());
}
......
......@@ -36,9 +36,9 @@ import java.io.IOException;
import java.util.*;
/**
* @author Zheng Jie
* @date 2019-04-10
*/
* @author Zheng Jie
* @date 2019-04-10
*/
@Service
@RequiredArgsConstructor
@CacheConfig(cacheNames = "dict")
......@@ -49,7 +49,7 @@ public class DictServiceImpl implements DictService {
private final RedisUtils redisUtils;
@Override
public Map<String, Object> queryAll(DictQueryCriteria dict, Pageable pageable){
public Map<String, Object> queryAll(DictQueryCriteria dict, Pageable pageable) {
Page<Dict> page = dictRepository.findAll((root, query, cb) -> QueryHelp.getPredicate(root, dict, cb), pageable);
return PageUtil.toPage(page.map(dictMapper::toDto));
}
......@@ -72,7 +72,7 @@ public class DictServiceImpl implements DictService {
// 清理缓存
delCaches(resources);
Dict dict = dictRepository.findById(resources.getId()).orElseGet(Dict::new);
ValidationUtil.isNull( dict.getId(),"Dict","id",resources.getId());
ValidationUtil.isNull(dict.getId(), "Dict", "id", resources.getId());
dict.setName(resources.getName());
dict.setDescription(resources.getDescription());
dictRepository.save(dict);
......@@ -93,9 +93,9 @@ public class DictServiceImpl implements DictService {
public void download(List<DictDto> dictDtos, HttpServletResponse response) throws IOException {
List<Map<String, Object>> list = new ArrayList<>();
for (DictDto dictDTO : dictDtos) {
if(CollectionUtil.isNotEmpty(dictDTO.getDictDetails())){
if (CollectionUtil.isNotEmpty(dictDTO.getDictDetails())) {
for (DictDetailDto dictDetail : dictDTO.getDictDetails()) {
Map<String,Object> map = new LinkedHashMap<>();
Map<String, Object> map = new LinkedHashMap<>();
map.put("字典名称", dictDTO.getName());
map.put("字典描述", dictDTO.getDescription());
map.put("字典标签", dictDetail.getLabel());
......@@ -104,7 +104,7 @@ public class DictServiceImpl implements DictService {
list.add(map);
}
} else {
Map<String,Object> map = new LinkedHashMap<>();
Map<String, Object> map = new LinkedHashMap<>();
map.put("字典名称", dictDTO.getName());
map.put("字典描述", dictDTO.getDescription());
map.put("字典标签", null);
......@@ -116,7 +116,7 @@ public class DictServiceImpl implements DictService {
FileUtil.downloadExcel(list, response);
}
public void delCaches(Dict dict){
public void delCaches(Dict dict) {
redisUtils.del(CacheKey.DICT_NAME + dict.getName());
}
}
\ No newline at end of file
......@@ -39,9 +39,9 @@ import java.io.IOException;
import java.util.*;
/**
* @author Zheng Jie
* @date 2019-03-29
*/
* @author Zheng Jie
* @date 2019-03-29
*/
@Service
@RequiredArgsConstructor
@CacheConfig(cacheNames = "job")
......@@ -53,14 +53,14 @@ public class JobServiceImpl implements JobService {
private final UserRepository userRepository;
@Override
public Map<String,Object> queryAll(JobQueryCriteria criteria, Pageable pageable) {
Page<Job> page = jobRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
return PageUtil.toPage(page.map(jobMapper::toDto).getContent(),page.getTotalElements());
public Map<String, Object> queryAll(JobQueryCriteria criteria, Pageable pageable) {
Page<Job> page = jobRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable);
return PageUtil.toPage(page.map(jobMapper::toDto).getContent(), page.getTotalElements());
}
@Override
public List<JobDto> queryAll(JobQueryCriteria criteria) {
List<Job> list = jobRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder));
List<Job> list = jobRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder));
return jobMapper.toDto(list);
}
......@@ -68,7 +68,7 @@ public class JobServiceImpl implements JobService {
@Cacheable(key = "'id:' + #p0")
public JobDto findById(Long id) {
Job job = jobRepository.findById(id).orElseGet(Job::new);
ValidationUtil.isNull(job.getId(),"Job","id",id);
ValidationUtil.isNull(job.getId(), "Job", "id", id);
return jobMapper.toDto(job);
}
......@@ -76,8 +76,8 @@ public class JobServiceImpl implements JobService {
@Transactional(rollbackFor = Exception.class)
public void create(Job resources) {
Job job = jobRepository.findByName(resources.getName());
if(job != null){
throw new EntityExistException(Job.class,"name",resources.getName());
if (job != null) {
throw new EntityExistException(Job.class, "name", resources.getName());
}
jobRepository.save(resources);
}
......@@ -88,10 +88,10 @@ public class JobServiceImpl implements JobService {
public void update(Job resources) {
Job job = jobRepository.findById(resources.getId()).orElseGet(Job::new);
Job old = jobRepository.findByName(resources.getName());
if(old != null && !old.getId().equals(resources.getId())){
throw new EntityExistException(Job.class,"name",resources.getName());
if (old != null && !old.getId().equals(resources.getId())) {
throw new EntityExistException(Job.class, "name", resources.getName());
}
ValidationUtil.isNull( job.getId(),"Job","id",resources.getId());
ValidationUtil.isNull(job.getId(), "Job", "id", resources.getId());
resources.setId(job.getId());
jobRepository.save(resources);
}
......@@ -108,7 +108,7 @@ public class JobServiceImpl implements JobService {
public void download(List<JobDto> jobDtos, HttpServletResponse response) throws IOException {
List<Map<String, Object>> list = new ArrayList<>();
for (JobDto jobDTO : jobDtos) {
Map<String,Object> map = new LinkedHashMap<>();
Map<String, Object> map = new LinkedHashMap<>();
map.put("岗位名称", jobDTO.getName());
map.put("岗位状态", jobDTO.getEnabled() ? "启用" : "停用");
map.put("创建日期", jobDTO.getCreateTime());
......@@ -119,7 +119,7 @@ public class JobServiceImpl implements JobService {
@Override
public void verification(Set<Long> ids) {
if(userRepository.countByJobs(ids) > 0){
if (userRepository.countByJobs(ids) > 0) {
throw new BadRequestException("所选的岗位中存在用户关联,请解除关联再试!");
}
}
......
......@@ -116,9 +116,6 @@ public class MenuServiceImpl implements MenuService {
Menu menu = iterator.next();
String title = menu.getTitle();
if (list1.contains(title)) {
if ("外坡比".equals(title)) {
continue;
}
if (!list.contains(title)) {
menu.setHidden(true);
}
......
......@@ -42,16 +42,16 @@ import java.util.List;
import java.util.Map;
/**
* @author Zheng Jie
* @date 2020-05-02
*/
* @author Zheng Jie
* @date 2020-05-02
*/
@Service
public class MonitorServiceImpl implements MonitorService {
private final DecimalFormat df = new DecimalFormat("0.00");
@Override
public Map<String,Object> getServers(){
public Map<String, Object> getServers() {
Map<String, Object> resultMap = new LinkedHashMap<>(8);
try {
SystemInfo si = new SystemInfo();
......@@ -76,17 +76,18 @@ public class MonitorServiceImpl implements MonitorService {
/**
* 获取磁盘信息
*
* @return /
*/
private Map<String,Object> getDiskInfo(OperatingSystem os) {
Map<String,Object> diskInfo = new LinkedHashMap<>();
private Map<String, Object> getDiskInfo(OperatingSystem os) {
Map<String, Object> diskInfo = new LinkedHashMap<>();
FileSystem fileSystem = os.getFileSystem();
List<OSFileStore> fsArray = fileSystem.getFileStores();
String osName = System.getProperty("os.name");
long available = 0, total = 0;
for (OSFileStore fs : fsArray){
for (OSFileStore fs : fsArray) {
// windows 需要将所有磁盘分区累加,linux 和 mac 直接累加会出现磁盘重复的问题,待修复
if(osName.toLowerCase().startsWith(ElAdminConstant.WIN)) {
if (osName.toLowerCase().startsWith(ElAdminConstant.WIN)) {
available += fs.getUsableSpace();
total += fs.getTotalSpace();
} else {
......@@ -99,8 +100,8 @@ public class MonitorServiceImpl implements MonitorService {
diskInfo.put("total", total > 0 ? FileUtil.getSize(total) : "?");
diskInfo.put("available", FileUtil.getSize(available));
diskInfo.put("used", FileUtil.getSize(used));
if(total != 0){
diskInfo.put("usageRate", df.format(used/(double)total * 100));
if (total != 0) {
diskInfo.put("usageRate", df.format(used / (double) total * 100));
} else {
diskInfo.put("usageRate", 0);
}
......@@ -109,46 +110,49 @@ public class MonitorServiceImpl implements MonitorService {
/**
* 获取交换区信息
*
* @param memory /
* @return /
*/
private Map<String,Object> getSwapInfo(GlobalMemory memory) {
Map<String,Object> swapInfo = new LinkedHashMap<>();
private Map<String, Object> getSwapInfo(GlobalMemory memory) {
Map<String, Object> swapInfo = new LinkedHashMap<>();
VirtualMemory virtualMemory = memory.getVirtualMemory();
long total = virtualMemory.getSwapTotal();
long used = virtualMemory.getSwapUsed();
swapInfo.put("total", FormatUtil.formatBytes(total));
swapInfo.put("used", FormatUtil.formatBytes(used));
swapInfo.put("available", FormatUtil.formatBytes(total - used));
if(used == 0){
if (used == 0) {
swapInfo.put("usageRate", 0);
} else {
swapInfo.put("usageRate", df.format(used/(double)total * 100));
swapInfo.put("usageRate", df.format(used / (double) total * 100));
}
return swapInfo;
}
/**
* 获取内存信息
*
* @param memory /
* @return /
*/
private Map<String,Object> getMemoryInfo(GlobalMemory memory) {
Map<String,Object> memoryInfo = new LinkedHashMap<>();
private Map<String, Object> getMemoryInfo(GlobalMemory memory) {
Map<String, Object> memoryInfo = new LinkedHashMap<>();
memoryInfo.put("total", FormatUtil.formatBytes(memory.getTotal()));
memoryInfo.put("available", FormatUtil.formatBytes(memory.getAvailable()));
memoryInfo.put("used", FormatUtil.formatBytes(memory.getTotal() - memory.getAvailable()));
memoryInfo.put("usageRate", df.format((memory.getTotal() - memory.getAvailable())/(double)memory.getTotal() * 100));
memoryInfo.put("usageRate", df.format((memory.getTotal() - memory.getAvailable()) / (double) memory.getTotal() * 100));
return memoryInfo;
}
/**
* 获取Cpu相关信息
*
* @param processor /
* @return /
*/
private Map<String,Object> getCpuInfo(CentralProcessor processor) {
Map<String,Object> cpuInfo = new LinkedHashMap<>();
private Map<String, Object> getCpuInfo(CentralProcessor processor) {
Map<String, Object> cpuInfo = new LinkedHashMap<>();
cpuInfo.put("name", processor.getProcessorIdentifier().getName());
cpuInfo.put("package", processor.getPhysicalPackageCount() + "个物理CPU");
cpuInfo.put("core", processor.getPhysicalProcessorCount() + "个物理核心");
......@@ -175,11 +179,12 @@ public class MonitorServiceImpl implements MonitorService {
/**
* 获取系统相关信息,系统、运行天数、系统IP
*
* @param os /
* @return /
*/
private Map<String,Object> getSystemInfo(OperatingSystem os){
Map<String,Object> systemInfo = new LinkedHashMap<>();
private Map<String, Object> getSystemInfo(OperatingSystem os) {
Map<String, Object> systemInfo = new LinkedHashMap<>();
// jvm 运行时间
long time = ManagementFactory.getRuntimeMXBean().getStartTime();
Date date = new Date(time);
......
......@@ -210,6 +210,7 @@ public class RoleServiceImpl implements RoleService {
/**
* 清理缓存
*
* @param id /
*/
public void delCaches(Long id, List<User> users) {
......
......@@ -122,7 +122,7 @@ public class UserServiceImpl implements UserService {
redisUtils.del(CacheKey.ROLE_AUTH + resources.getId());
}
// 如果用户被禁用,则清除用户登录信息
if(!resources.getEnabled()){
if (!resources.getEnabled()) {
onlineUserService.kickOutForUsername(resources.getUsername());
}
user.setUsername(resources.getUsername());
......@@ -191,8 +191,8 @@ public class UserServiceImpl implements UserService {
// 验证文件上传的格式
String image = "gif jpg png jpeg";
String fileType = FileUtil.getExtensionName(multipartFile.getOriginalFilename());
if(fileType != null && !image.contains(fileType)){
throw new BadRequestException("文件格式错误!, 仅支持 " + image +" 格式");
if (fileType != null && !image.contains(fileType)) {
throw new BadRequestException("文件格式错误!, 仅支持 " + image + " 格式");
}
User user = userRepository.findByUsername(SecurityUtils.getCurrentUsername());
String oldPath = user.getAvatarPath();
......
......@@ -53,19 +53,19 @@ public class VerifyServiceImpl implements VerifyService {
// 如果不存在有效的验证码,就创建一个新的
TemplateEngine engine = TemplateUtil.createEngine(new TemplateConfig("template", TemplateConfig.ResourceMode.CLASSPATH));
Template template = engine.getTemplate("email/email.ftl");
Object oldCode = redisUtils.get(redisKey);
if(oldCode == null){
String code = RandomUtil.randomNumbers (6);
Object oldCode = redisUtils.get(redisKey);
if (oldCode == null) {
String code = RandomUtil.randomNumbers(6);
// 存入缓存
if(!redisUtils.set(redisKey, code, expiration)){
if (!redisUtils.set(redisKey, code, expiration)) {
throw new BadRequestException("服务异常,请联系网站负责人");
}
content = template.render(Dict.create().set("code",code));
emailVo = new EmailVo(Collections.singletonList(email),"EL-ADMIN后台管理系统",content);
// 存在就再次发送原来的验证码
content = template.render(Dict.create().set("code", code));
emailVo = new EmailVo(Collections.singletonList(email), "EL-ADMIN后台管理系统", content);
// 存在就再次发送原来的验证码
} else {
content = template.render(Dict.create().set("code",oldCode));
emailVo = new EmailVo(Collections.singletonList(email),"EL-ADMIN后台管理系统",content);
content = template.render(Dict.create().set("code", oldCode));
emailVo = new EmailVo(Collections.singletonList(email), "EL-ADMIN后台管理系统", content);
}
return emailVo;
}
......@@ -73,7 +73,7 @@ public class VerifyServiceImpl implements VerifyService {
@Override
public void validated(String key, String code) {
Object value = redisUtils.get(key);
if(value == null || !value.toString().equals(code)){
if (value == null || !value.toString().equals(code)) {
throw new BadRequestException("无效验证码");
} else {
redisUtils.del(key);
......
......@@ -22,9 +22,9 @@ import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
/**
* @author Zheng Jie
* @date 2019-03-25
*/
@Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE)
* @author Zheng Jie
* @date 2019-03-25
*/
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface DeptMapper extends BaseMapper<DeptDto, Dept> {
}
\ No newline at end of file
......@@ -22,10 +22,10 @@ import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
/**
* @author Zheng Jie
* @date 2019-03-25
*/
@Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE)
* @author Zheng Jie
* @date 2019-03-25
*/
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface DeptSmallMapper extends BaseMapper<DeptSmallDto, Dept> {
}
\ No newline at end of file
......@@ -22,9 +22,9 @@ import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
/**
* @author Zheng Jie
* @date 2019-04-10
*/
* @author Zheng Jie
* @date 2019-04-10
*/
@Mapper(componentModel = "spring", uses = {DictSmallMapper.class}, unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface DictDetailMapper extends BaseMapper<DictDetailDto, DictDetail> {
......
......@@ -22,10 +22,10 @@ import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
/**
* @author Zheng Jie
* @date 2019-04-10
*/
@Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE)
* @author Zheng Jie
* @date 2019-04-10
*/
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface DictMapper extends BaseMapper<DictDto, Dict> {
}
\ No newline at end of file
......@@ -22,10 +22,10 @@ import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
/**
* @author Zheng Jie
* @date 2019-04-10
*/
@Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE)
* @author Zheng Jie
* @date 2019-04-10
*/
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface DictSmallMapper extends BaseMapper<DictSmallDto, Dict> {
}
\ No newline at end of file
......@@ -22,9 +22,9 @@ import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
/**
* @author Zheng Jie
* @date 2019-03-29
*/
@Mapper(componentModel = "spring",uses = {DeptMapper.class},unmappedTargetPolicy = ReportingPolicy.IGNORE)
* @author Zheng Jie
* @date 2019-03-29
*/
@Mapper(componentModel = "spring", uses = {DeptMapper.class}, unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface JobMapper extends BaseMapper<JobDto, Job> {
}
\ No newline at end of file
......@@ -22,10 +22,10 @@ import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
/**
* @author Zheng Jie
* @date 2019-03-29
*/
@Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE)
* @author Zheng Jie
* @date 2019-03-29
*/
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface JobSmallMapper extends BaseMapper<JobSmallDto, Job> {
}
\ No newline at end of file
......@@ -25,6 +25,6 @@ import org.mapstruct.ReportingPolicy;
* @author Zheng Jie
* @date 2018-12-17
*/
@Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE)
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface MenuMapper extends BaseMapper<MenuDto, Menu> {
}
......@@ -25,7 +25,7 @@ import org.mapstruct.ReportingPolicy;
* @author Zheng Jie
* @date 2019-5-23
*/
@Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE)
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface RoleSmallMapper extends BaseMapper<RoleSmallDto, Role> {
}
......@@ -25,6 +25,6 @@ import org.mapstruct.ReportingPolicy;
* @author Zheng Jie
* @date 2018-11-23
*/
@Mapper(componentModel = "spring",uses = {RoleMapper.class, DeptMapper.class, JobMapper.class},unmappedTargetPolicy = ReportingPolicy.IGNORE)
@Mapper(componentModel = "spring", uses = {RoleMapper.class, DeptMapper.class, JobMapper.class}, unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface UserMapper extends BaseMapper<UserDto, User> {
}
......@@ -13,7 +13,7 @@ spring:
# 最小连接数
min-idle: 15
# 最大连接数
max-active: 30
max-active: 60
# 超时时间(以秒数为单位)
remove-abandoned-timeout: 180
# 获取连接超时时间
......
......@@ -4,15 +4,15 @@ spring:
druid:
db-type: com.alibaba.druid.pool.DruidDataSource
driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
url: jdbc:log4jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:mdm_1_db}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false
url: jdbc:log4jdbc:mysql://${DB_HOST:8.142.46.126}:${DB_PORT:3306}/${DB_NAME:newpond_intest_dev}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false
username: ${DB_USER:root}
password: ${DB_PWD:123456}
password: ${DB_PWD:jinghe2021//}
# 初始连接数
initial-size: 5
# 最小连接数
min-idle: 15
# 最大连接数
max-active: 30
max-active: 60
# 获取连接超时时间
max-wait: 5000
# 连接有效性检测时间
......
......@@ -5,7 +5,7 @@ spring:
freemarker:
check-template-location: false
profiles:
active: dev
active: prod
jackson:
time-zone: GMT+8
data:
......
......@@ -4,24 +4,17 @@ smallint=Integer
mediumint=Integer
int=Integer
integer=Integer
bigint=Long
float=Float
double=Double
decimal=BigDecimal
bit=Boolean
char=String
varchar=String
tinytext=String
text=String
mediumtext=String
longtext=String
date=Timestamp
datetime=Timestamp
timestamp=Timestamp
\ No newline at end of file
......@@ -29,6 +29,12 @@
"name": "水位值"
}
],
"wpbdata": [
{
"key": "value",
"name": "监测值"
}
],
"mpdata": [
{
"key": "disp_x",
......@@ -79,10 +85,22 @@
"name": "测量值"
}
],
"psldata1": [
{
"key": "pslvalue",
"name": "测量值"
}
],
"sldata": [
{
"key": "value",
"name": "测量值"
}
],
"sldata1": [
{
"key": "sllvalue",
"name": "测量值"
}
]
}
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds" debug="false">
<contextName>elAdmin</contextName>
<property name="log.charset" value="utf-8" />
<property name="log.pattern" value="%contextName- %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) - %msg%n" />
<property name="log.charset" value="utf-8"/>
<property name="log.pattern"
value="%contextName- %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) - %msg%n"/>
<!--输出到控制台-->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
......@@ -14,32 +15,32 @@
<!--普通日志输出到控制台-->
<root level="info">
<appender-ref ref="console" />
<appender-ref ref="console"/>
</root>
<!--监控sql日志输出,如需监控 Sql 打印,请设置为 INFO -->
<logger name="jdbc.sqlonly" level="ERROR" additivity="false">
<appender-ref ref="console" />
<appender-ref ref="console"/>
</logger>
<logger name="jdbc.resultset" level="ERROR" additivity="false">
<appender-ref ref="console" />
<appender-ref ref="console"/>
</logger>
<!-- 如想看到表格数据,将OFF改为INFO -->
<logger name="jdbc.resultsettable" level="OFF" additivity="false">
<appender-ref ref="console" />
<appender-ref ref="console"/>
</logger>
<logger name="jdbc.connection" level="OFF" additivity="false">
<appender-ref ref="console" />
<appender-ref ref="console"/>
</logger>
<logger name="jdbc.sqltiming" level="OFF" additivity="false">
<appender-ref ref="console" />
<appender-ref ref="console"/>
</logger>
<logger name="jdbc.audit" level="OFF" additivity="false">
<appender-ref ref="console" />
<appender-ref ref="console"/>
</logger>
</configuration>
\ No newline at end of file
<?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="me.zhengjie.gemho.mapper.data.StDataMapper">
<select id="getStageDepth" resultType="me.zhengjie.gemho.x_datavo.tab.visual.JrxDryVo">
SELECT b.*, c.jrx_burial,c.jrx_trepanning,c.jrx_coord_x
from (SELECT CONVERT(a.stage,DECIMAL(10,5))as stage,CONVERT(a.depth,DECIMAL(10,5))as depth, a.sensorid, a.time
from (select * from tb_st_data ORDER BY time DESC) a
GROUP BY a.sensorid) b
join tb_drybeachequipinfor c on b.sensorid = c.equipno
where c.equipno in
<foreach item="item" index="index" collection="sensorids" open="(" separator="," close=")">
#{item}
</foreach>
</select>
</mapper>
<?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="me.zhengjie.gemho.mapper.data.SzDataMapper">
<select id="real" resultType="hashmap">
SELECT *
from (select sz.sensorid, td.equipname as sensroname, sz.svalue, td.eqdanwei as unit, sz.time
from tb_sz_data sz
join tb_drybeachequipinfor td on sz.sensorid = td.equipno
where td.tailingid = #{tailingid}
order by time DESC) a
GROUP BY sensorid
</select>
</mapper>
<?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="me.zhengjie.gemho.mapper.dic.AlarmLevelMapper">
</mapper>
<?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="me.zhengjie.gemho.mapper.dic.AlarmStateMapper">
</mapper>
......@@ -32,4 +32,9 @@
%H:%m:%s')
or tailingid = #{tailingid} and initialstateno = '0' and datarealtime is Null
</select>
<update id="enforceOnline">
update tb_drybeachequipinfor
set initialstateno = '1'
where equipno = #{equipno}
</update>
</mapper>
<?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="me.zhengjie.gemho.mapper.tab.JrxDissectMapper">
<select id="getsubs" resultType="me.zhengjie.gemho.x_datavo.sys.TypeVo">
select `name`, `code` as `value`
from tab_jrx_dissect
where pondid = #{pondid}
</select>
</mapper>
<?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="me.zhengjie.gemho.mapper.tab.JrxStepsMapper">
<select id="getByCode" resultType="me.zhengjie.gemho.x_datavo.tab.JrxStepsDto">
select js.*
from tab_jrx_steps js
join tab_jrx_dissect jd on js.dissectid = jd.id
where jd.code = #{code}
</select>
</mapper>
<?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="me.zhengjie.gemho.mapper.data.WpbDataMapper">
</mapper>
<?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="me.zhengjie.gemho.mapper.sys.SysAreaMapper">
<!-- <resultMap type="SysArea" id="sysareaResult">
<result property="areaid" column="areaid"/>
<collection property="views" javaType="SysViews">
<result property="id" column="mdcode"/>
<result property="sortid" column="sortid"/>
<result property="interval" column="`interval`"/>
<collection property="children" javaType="SysSelect">
<result property="sumid" column="sumid"/>
<result property="sumtitle" column="sumtitle"/>
<!-- <resultMap type="SysArea" id="sysareaResult">
<result property="areaid" column="areaid"/>
<collection property="views" javaType="SysViews">
<result property="id" column="mdcode"/>
<result property="sortid" column="sortid"/>
<result property="interval" column="`interval`"/>
<collection property="children" javaType="SysSelect">
<result property="sumid" column="sumid"/>
<result property="sumtitle" column="sumtitle"/>
</collection>
</collection>
</collection>
</resultMap>
<select id="getall" resultMap="sysareaResult">
select sa.areaid as areaid,
sv.id as mdcode,
b.sumid as sumid,
b.sumtitle as sumtitle,
sv.`interval` as `interval`,
sv.sortid as sortid
from sys_area sa
join sys_views sv ON sa.areaid = sv.areaid
JOIN (select sv.id as mdcode, ss.sumid as sumid, ss.sumtitle as sumtitle
from sys_views sv
left JOIN sys_select ss ON ss.mdcode = sv.id) b ON b.mdcode = sv.id
</resultMap>
<select id="getall" resultMap="sysareaResult">
select sa.areaid as areaid,
sv.id as mdcode,
b.sumid as sumid,
b.sumtitle as sumtitle,
sv.`interval` as `interval`,
sv.sortid as sortid
from sys_area sa
join sys_views sv ON sa.areaid = sv.areaid
JOIN (select sv.id as mdcode, ss.sumid as sumid, ss.sumtitle as sumtitle
from sys_views sv
left JOIN sys_select ss ON ss.mdcode = sv.id) b ON b.mdcode = sv.id
</select>-->
</select>-->
</mapper>
\ No newline at end of file
......@@ -39,7 +39,9 @@
font-size: 12px;
padding: 20px 0px;
font-family: Microsoft YaHei;">
Copyright &copy;${.now?string("yyyy")} <a hover="color: #DA251D;" style="color: #999;" href="https://github.com/elunez/eladmin" target="_blank">EL-ADMIN</a> 后台管理系统 All Rights Reserved.
Copyright &copy;${.now?string("yyyy")} <a hover="color: #DA251D;" style="color: #999;"
href="https://github.com/elunez/eladmin"
target="_blank">EL-ADMIN</a> 后台管理系统 All Rights Reserved.
</div>
</div>
......
......@@ -17,30 +17,30 @@
margin-top: 20px;
padding: 20px;
border: 1px solid #eee;">
<div>
<p style="margin-bottom: 10px;">任务信息:</p>
<table style="border-collapse: collapse;">
<tr>
<th style="padding: .65em;background: #666;border: 1px solid #777;color: #fff;">任务名称</th>
<th style="padding: .65em;background: #666;border: 1px solid #777;color: #fff;">Bean名称</th>
<th style="padding: .65em;background: #666;border: 1px solid #777;color: #fff;">执行方法</th>
<th style="padding: .65em;background: #666;border: 1px solid #777;color: #fff;">参数内容</th>
<th style="padding: .65em;background: #666;border: 1px solid #777;color: #fff;">Cron表达式</th>
<th style="padding: .65em;background: #666;border: 1px solid #777;color: #fff;">描述内容</th>
</tr>
<tr>
<td style="padding: .65em;border: 1px solid#777;">${task.jobName}</td>
<td style="padding: .65em;border: 1px solid#777;">${task.beanName}</td>
<td style="padding: .65em;border: 1px solid#777;">${task.methodName}</td>
<td style="padding: .65em;border: 1px solid#777;">${(task.params)!""}</td>
<td style="padding: .65em;border: 1px solid#777;">${task.cronExpression}</td>
<td style="padding: .65em;border: 1px solid#777;">${(task.description)!""}</td>
</tr>
</table>
</div>
<div>
<p style="margin-bottom: 10px;">异常信息:</p>
<pre style="position: relative;
<div>
<p style="margin-bottom: 10px;">任务信息:</p>
<table style="border-collapse: collapse;">
<tr>
<th style="padding: .65em;background: #666;border: 1px solid #777;color: #fff;">任务名称</th>
<th style="padding: .65em;background: #666;border: 1px solid #777;color: #fff;">Bean名称</th>
<th style="padding: .65em;background: #666;border: 1px solid #777;color: #fff;">执行方法</th>
<th style="padding: .65em;background: #666;border: 1px solid #777;color: #fff;">参数内容</th>
<th style="padding: .65em;background: #666;border: 1px solid #777;color: #fff;">Cron表达式</th>
<th style="padding: .65em;background: #666;border: 1px solid #777;color: #fff;">描述内容</th>
</tr>
<tr>
<td style="padding: .65em;border: 1px solid#777;">${task.jobName}</td>
<td style="padding: .65em;border: 1px solid#777;">${task.beanName}</td>
<td style="padding: .65em;border: 1px solid#777;">${task.methodName}</td>
<td style="padding: .65em;border: 1px solid#777;">${(task.params)!""}</td>
<td style="padding: .65em;border: 1px solid#777;">${task.cronExpression}</td>
<td style="padding: .65em;border: 1px solid#777;">${(task.description)!""}</td>
</tr>
</table>
</div>
<div>
<p style="margin-bottom: 10px;">异常信息:</p>
<pre style="position: relative;
padding: 15px;
line-height: 20px;
border-left: 5px solid #ddd;
......@@ -49,21 +49,23 @@
font-size: 12px">
${msg}
</pre>
</div>
<div class="foot-hr hr" style="margin: 0 auto;
</div>
<div class="foot-hr hr" style="margin: 0 auto;
z-index: 111;
width: 800px;
margin-top: 30px;
border-top: 1px solid #DA251D;">
</div>
<div style="text-align: center;
</div>
<div style="text-align: center;
font-size: 12px;
padding: 20px 0px;
font-family: Microsoft YaHei;">
Copyright &copy;${.now?string("yyyy")} <a hover="color: #DA251D;" style="color: #999;" href="https://github.com/elunez/eladmin" target="_blank">EL-ADMIN</a> 后台管理系统 All Rights Reserved.
</div>
Copyright &copy;${.now?string("yyyy")} <a hover="color: #DA251D;" style="color: #999;"
href="https://github.com/elunez/eladmin" target="_blank">EL-ADMIN</a>
后台管理系统 All Rights Reserved.
</div>
</div>
</div>
</body>
</html>
......@@ -41,47 +41,51 @@ import javax.servlet.http.HttpServletResponse;
@RequestMapping("/api/${changeClassName}")
public class ${className}Controller {
private final ${className}Service ${changeClassName}Service;
private final ${className}Service ${changeClassName}Service;
@Log("导出数据")
@ApiOperation("导出数据")
@GetMapping(value = "/download")
@PreAuthorize("@el.check('${changeClassName}:list')")
public void export${className}(HttpServletResponse response, ${className}QueryCriteria criteria) throws IOException {
${changeClassName}Service.download(${changeClassName}Service.queryAll(criteria), response);
}
@Log("导出数据")
@ApiOperation("导出数据")
@GetMapping(value = "/download")
@PreAuthorize("@el.check('${changeClassName}:list')")
public void export${className}(HttpServletResponse response, ${className}QueryCriteria criteria) throws IOException {
${changeClassName}Service.download(${changeClassName}Service.queryAll(criteria), response);
}
@GetMapping
@Log("查询${apiAlias}")
@ApiOperation("查询${apiAlias}")
@PreAuthorize("@el.check('${changeClassName}:list')")
public ResponseEntity<Object> query${className}(${className}QueryCriteria criteria, Pageable pageable){
return new ResponseEntity<>(${changeClassName}Service.queryAll(criteria,pageable),HttpStatus.OK);
@GetMapping
@Log("查询${apiAlias}")
@ApiOperation("查询${apiAlias}")
@PreAuthorize("@el.check('${changeClassName}:list')")
public ResponseEntity
<Object> query${className}(${className}QueryCriteria criteria, Pageable pageable){
return new ResponseEntity<>(${changeClassName}Service.queryAll(criteria,pageable),HttpStatus.OK);
}
@PostMapping
@Log("新增${apiAlias}")
@ApiOperation("新增${apiAlias}")
@PreAuthorize("@el.check('${changeClassName}:add')")
public ResponseEntity<Object> create${className}(@Validated @RequestBody ${className} resources){
public ResponseEntity
<Object> create${className}(@Validated @RequestBody ${className} resources){
return new ResponseEntity<>(${changeClassName}Service.create(resources),HttpStatus.CREATED);
}
}
@PutMapping
@Log("修改${apiAlias}")
@ApiOperation("修改${apiAlias}")
@PreAuthorize("@el.check('${changeClassName}:edit')")
public ResponseEntity<Object> update${className}(@Validated @RequestBody ${className} resources){
${changeClassName}Service.update(resources);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@PutMapping
@Log("修改${apiAlias}")
@ApiOperation("修改${apiAlias}")
@PreAuthorize("@el.check('${changeClassName}:edit')")
public ResponseEntity
<Object> update${className}(@Validated @RequestBody ${className} resources){
${changeClassName}Service.update(resources);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@DeleteMapping
@Log("删除${apiAlias}")
@ApiOperation("删除${apiAlias}")
@PreAuthorize("@el.check('${changeClassName}:del')")
public ResponseEntity<Object> delete${className}(@RequestBody ${pkColumnType}[] ids) {
${changeClassName}Service.deleteAll(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
}
\ No newline at end of file
@DeleteMapping
@Log("删除${apiAlias}")
@ApiOperation("删除${apiAlias}")
@PreAuthorize("@el.check('${changeClassName}:del')")
public ResponseEntity
<Object> delete${className}(@RequestBody ${pkColumnType}[] ids) {
${changeClassName}Service.deleteAll(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
}
\ No newline at end of file
......@@ -17,15 +17,15 @@ package ${package}.service.dto;
import lombok.Data;
<#if hasTimestamp>
import java.sql.Timestamp;
import java.sql.Timestamp;
</#if>
<#if hasBigDecimal>
import java.math.BigDecimal;
import java.math.BigDecimal;
</#if>
import java.io.Serializable;
<#if !auto && pkColumnType = 'Long'>
import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.serializer.ToStringSerializer;
import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.serializer.ToStringSerializer;
</#if>
/**
......@@ -39,16 +39,16 @@ public class ${className}Dto implements Serializable {
<#if columns??>
<#list columns as column>
<#if column.remark != ''>
/** ${column.remark} */
</#if>
<#if column.columnKey = 'PRI'>
<#if !auto && pkColumnType = 'Long'>
/** 防止精度丢失 */
@JSONField(serializeUsing = ToStringSerializer.class)
</#if>
</#if>
private ${column.columnType} ${column.changeColumnName};
<#if column.remark != ''>
/** ${column.remark} */
</#if>
<#if column.columnKey = 'PRI'>
<#if !auto && pkColumnType = 'Long'>
/** 防止精度丢失 */
@JSONField(serializeUsing = ToStringSerializer.class)
</#if>
</#if>
private ${column.columnType} ${column.changeColumnName};
</#list>
</#if>
}
\ No newline at end of file
......@@ -21,18 +21,18 @@ import io.swagger.annotations.ApiModelProperty;
import cn.hutool.core.bean.copier.CopyOptions;
import javax.persistence.*;
<#if isNotNullColumns??>
import javax.validation.constraints.*;
import javax.validation.constraints.*;
</#if>
<#if hasDateAnnotation>
import javax.persistence.Entity;
import javax.persistence.Table;
import org.hibernate.annotations.*;
import javax.persistence.Entity;
import javax.persistence.Table;
import org.hibernate.annotations.*;
</#if>
<#if hasTimestamp>
import java.sql.Timestamp;
import java.sql.Timestamp;
</#if>
<#if hasBigDecimal>
import java.math.BigDecimal;
import java.math.BigDecimal;
</#if>
import java.io.Serializable;
......@@ -49,37 +49,37 @@ public class ${className} implements Serializable {
<#if columns??>
<#list columns as column>
<#if column.columnKey = 'PRI'>
@Id
<#if auto>
@GeneratedValue(strategy = GenerationType.IDENTITY)
</#if>
</#if>
@Column(name = "${column.columnName}"<#if column.columnKey = 'UNI'>,unique = true</#if><#if column.istNotNull && column.columnKey != 'PRI'>,nullable = false</#if>)
<#if column.istNotNull && column.columnKey != 'PRI'>
<#if column.columnType = 'String'>
@NotBlank
<#if column.columnKey = 'PRI'>
@Id
<#if auto>
@GeneratedValue(strategy = GenerationType.IDENTITY)
</#if>
</#if>
@Column(name = "${column.columnName}"<#if column.columnKey = 'UNI'>,unique = true</#if><#if column.istNotNull && column.columnKey != 'PRI'>,nullable = false</#if>)
<#if column.istNotNull && column.columnKey != 'PRI'>
<#if column.columnType = 'String'>
@NotBlank
<#else>
@NotNull
</#if>
</#if>
<#if (column.dateAnnotation)?? && column.dateAnnotation != ''>
<#if column.dateAnnotation = 'CreationTimestamp'>
@CreationTimestamp
<#else>
@UpdateTimestamp
</#if>
</#if>
<#if column.remark != ''>
@ApiModelProperty(value = "${column.remark}")
<#else>
@NotNull
@ApiModelProperty(value = "${column.changeColumnName}")
</#if>
</#if>
<#if (column.dateAnnotation)?? && column.dateAnnotation != ''>
<#if column.dateAnnotation = 'CreationTimestamp'>
@CreationTimestamp
<#else>
@UpdateTimestamp
</#if>
</#if>
<#if column.remark != ''>
@ApiModelProperty(value = "${column.remark}")
<#else>
@ApiModelProperty(value = "${column.changeColumnName}")
</#if>
private ${column.columnType} ${column.changeColumnName};
private ${column.columnType} ${column.changeColumnName};
</#list>
</#if>
public void copy(${className} source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
}
public void copy(${className} source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
}
}
\ No newline at end of file
......@@ -27,6 +27,7 @@ import org.mapstruct.ReportingPolicy;
* @date ${date}
**/
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface ${className}Mapper extends BaseMapper<${className}Dto, ${className}> {
public interface ${className}Mapper extends BaseMapper
<${className}Dto, ${className}> {
}
\ No newline at end of file
......@@ -17,16 +17,16 @@ package ${package}.service.dto;
import lombok.Data;
<#if queryHasTimestamp>
import java.sql.Timestamp;
import java.sql.Timestamp;
</#if>
<#if queryHasBigDecimal>
import java.math.BigDecimal;
import java.math.BigDecimal;
</#if>
<#if betweens??>
import java.util.List;
import java.util.List;
</#if>
<#if queryColumns??>
import me.zhengjie.annotation.Query;
import me.zhengjie.annotation.Query;
</#if>
/**
......@@ -39,43 +39,43 @@ public class ${className}QueryCriteria{
<#if queryColumns??>
<#list queryColumns as column>
<#if column.queryType = '='>
/** 精确 */
@Query
private ${column.columnType} ${column.changeColumnName};
</#if>
<#if column.queryType = 'Like'>
/** 模糊 */
@Query(type = Query.Type.INNER_LIKE)
private ${column.columnType} ${column.changeColumnName};
</#if>
<#if column.queryType = '!='>
/** 不等于 */
@Query(type = Query.Type.NOT_EQUAL)
private ${column.columnType} ${column.changeColumnName};
</#if>
<#if column.queryType = 'NotNull'>
/** 不为空 */
@Query(type = Query.Type.NOT_NULL)
private ${column.columnType} ${column.changeColumnName};
</#if>
<#if column.queryType = '>='>
/** 大于等于 */
@Query(type = Query.Type.GREATER_THAN)
private ${column.columnType} ${column.changeColumnName};
</#if>
<#if column.queryType = '<='>
/** 小于等于 */
@Query(type = Query.Type.LESS_THAN)
private ${column.columnType} ${column.changeColumnName};
</#if>
<#if column.queryType = '='>
/** 精确 */
@Query
private ${column.columnType} ${column.changeColumnName};
</#if>
<#if column.queryType = 'Like'>
/** 模糊 */
@Query(type = Query.Type.INNER_LIKE)
private ${column.columnType} ${column.changeColumnName};
</#if>
<#if column.queryType = '!='>
/** 不等于 */
@Query(type = Query.Type.NOT_EQUAL)
private ${column.columnType} ${column.changeColumnName};
</#if>
<#if column.queryType = 'NotNull'>
/** 不为空 */
@Query(type = Query.Type.NOT_NULL)
private ${column.columnType} ${column.changeColumnName};
</#if>
<#if column.queryType = '>='>
/** 大于等于 */
@Query(type = Query.Type.GREATER_THAN)
private ${column.columnType} ${column.changeColumnName};
</#if>
<#if column.queryType = '<='>
/** 小于等于 */
@Query(type = Query.Type.LESS_THAN)
private ${column.columnType} ${column.changeColumnName};
</#if>
</#list>
</#if>
<#if betweens??>
<#list betweens as column>
/** BETWEEN */
@Query(type = Query.Type.BETWEEN)
private List<${column.columnType}> ${column.changeColumnName};
/** BETWEEN */
@Query(type = Query.Type.BETWEEN)
private List<${column.columnType}> ${column.changeColumnName};
</#list>
</#if>
}
\ No newline at end of file
......@@ -28,12 +28,12 @@ public interface ${className}Repository extends JpaRepository<${className}, ${pk
<#if columns??>
<#list columns as column>
<#if column.columnKey = 'UNI'>
/**
* 根据 ${column.capitalColumnName} 查询
* @param ${column.columnName} /
* @return /
*/
${className} findBy${column.capitalColumnName}(${column.columnType} ${column.columnName});
/**
* 根据 ${column.capitalColumnName} 查询
* @param ${column.columnName} /
* @return /
*/
${className} findBy${column.capitalColumnName}(${column.columnType} ${column.columnName});
</#if>
</#list>
</#if>
......
......@@ -32,52 +32,57 @@ import javax.servlet.http.HttpServletResponse;
**/
public interface ${className}Service {
/**
* 查询数据分页
* @param criteria 条件
* @param pageable 分页参数
* @return Map<String,Object>
*/
Map<String,Object> queryAll(${className}QueryCriteria criteria, Pageable pageable);
/**
* 查询数据分页
* @param criteria 条件
* @param pageable 分页参数
* @return Map
<String,Object>
*/
Map
<String,Object> queryAll(${className}QueryCriteria criteria, Pageable pageable);
/**
* 查询所有数据不分页
* @param criteria 条件参数
* @return List<${className}Dto>
/**
* 查询所有数据不分页
* @param criteria 条件参数
* @return List
<${className}Dto>
*/
List<${className}Dto> queryAll(${className}QueryCriteria criteria);
List
<${className}Dto> queryAll(${className}QueryCriteria criteria);
/**
* 根据ID查询
* @param ${pkChangeColName} ID
* @return ${className}Dto
*/
${className}Dto findById(${pkColumnType} ${pkChangeColName});
/**
* 根据ID查询
* @param ${pkChangeColName} ID
* @return ${className}Dto
*/
${className}Dto findById(${pkColumnType} ${pkChangeColName});
/**
* 创建
* @param resources /
* @return ${className}Dto
*/
${className}Dto create(${className} resources);
/**
* 创建
* @param resources /
* @return ${className}Dto
*/
${className}Dto create(${className} resources);
/**
* 编辑
* @param resources /
*/
void update(${className} resources);
/**
* 编辑
* @param resources /
*/
void update(${className} resources);
/**
* 多选删除
* @param ids /
*/
void deleteAll(${pkColumnType}[] ids);
/**
* 多选删除
* @param ids /
*/
void deleteAll(${pkColumnType}[] ids);
/**
* 导出数据
* @param all 待导出的数据
* @param response /
* @throws IOException /
*/
void download(List<${className}Dto> all, HttpServletResponse response) throws IOException;
}
\ No newline at end of file
/**
* 导出数据
* @param all 待导出的数据
* @param response /
* @throws IOException /
*/
void download(List
<${className}Dto> all, HttpServletResponse response) throws IOException;
}
\ No newline at end of file
......@@ -20,7 +20,7 @@ import ${package}.domain.${className};
<#list columns as column>
<#if column.columnKey = 'UNI'>
<#if column_index = 1>
import me.zhengjie.exception.EntityExistException;
import me.zhengjie.exception.EntityExistException;
</#if>
</#if>
</#list>
......@@ -36,11 +36,11 @@ import ${package}.service.mapstruct.${className}Mapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
<#if !auto && pkColumnType = 'Long'>
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.IdUtil;
</#if>
<#if !auto && pkColumnType = 'String'>
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.IdUtil;
</#if>
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
......@@ -63,95 +63,108 @@ import java.util.LinkedHashMap;
@RequiredArgsConstructor
public class ${className}ServiceImpl implements ${className}Service {
private final ${className}Repository ${changeClassName}Repository;
private final ${className}Mapper ${changeClassName}Mapper;
private final ${className}Repository ${changeClassName}Repository;
private final ${className}Mapper ${changeClassName}Mapper;
@Override
public Map<String,Object> queryAll(${className}QueryCriteria criteria, Pageable pageable){
Page<${className}> page = ${changeClassName}Repository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
return PageUtil.toPage(page.map(${changeClassName}Mapper::toDto));
}
@Override
public Map
<String,Object> queryAll(${className}QueryCriteria criteria, Pageable pageable){
Page<${className}> page = ${changeClassName}Repository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
return PageUtil.toPage(page.map(${changeClassName}Mapper::toDto));
}
@Override
public List<${className}Dto> queryAll(${className}QueryCriteria criteria){
return ${changeClassName}Mapper.toDto(${changeClassName}Repository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder)));
@Override
public List
<${className}Dto> queryAll(${className}QueryCriteria criteria){
return ${changeClassName}Mapper.toDto(${changeClassName}Repository.findAll((root, criteriaQuery, criteriaBuilder) ->
QueryHelp.getPredicate(root,criteria,criteriaBuilder)));
}
@Override
@Transactional
public ${className}Dto findById(${pkColumnType} ${pkChangeColName}) {
${className} ${changeClassName} = ${changeClassName}Repository.findById(${pkChangeColName}).orElseGet(${className}::new);
ValidationUtil.isNull(${changeClassName}.get${pkCapitalColName}(),"${className}","${pkChangeColName}",${pkChangeColName});
return ${changeClassName}Mapper.toDto(${changeClassName});
${className} ${changeClassName} = ${changeClassName}Repository.findById(${pkChangeColName}).orElseGet(${className}
::new);
ValidationUtil.isNull(${changeClassName}.get${pkCapitalColName}(),"${className}","${pkChangeColName}
",${pkChangeColName});
return ${changeClassName}Mapper.toDto(${changeClassName});
}
@Override
@Transactional(rollbackFor = Exception.class)
public ${className}Dto create(${className} resources) {
<#if !auto && pkColumnType = 'Long'>
<#if !auto && pkColumnType = 'Long'>
Snowflake snowflake = IdUtil.createSnowflake(1, 1);
resources.set${pkCapitalColName}(snowflake.nextId());
</#if>
<#if !auto && pkColumnType = 'String'>
resources.set${pkCapitalColName}(IdUtil.simpleUUID());
</#if>
<#if columns??>
<#list columns as column>
<#if column.columnKey = 'UNI'>
if(${changeClassName}Repository.findBy${column.capitalColumnName}(resources.get${column.capitalColumnName}()) != null){
throw new EntityExistException(${className}.class,"${column.columnName}",resources.get${column.capitalColumnName}());
}
resources.set${pkCapitalColName}(snowflake.nextId());
</#if>
</#list>
</#if>
return ${changeClassName}Mapper.toDto(${changeClassName}Repository.save(resources));
<#if !auto && pkColumnType = 'String'>
resources.set${pkCapitalColName}(IdUtil.simpleUUID());
</#if>
<#if columns??>
<#list columns as column>
<#if column.columnKey = 'UNI'>
if(${changeClassName}Repository.findBy${column.capitalColumnName}(resources.get${column.capitalColumnName}()) != null){
throw new EntityExistException(${className}.class,"${column.columnName}",resources.get${column.capitalColumnName}());
}
</#if>
</#list>
</#if>
return ${changeClassName}Mapper.toDto(${changeClassName}Repository.save(resources));
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(${className} resources) {
${className} ${changeClassName} = ${changeClassName}Repository.findById(resources.get${pkCapitalColName}()).orElseGet(${className}::new);
ValidationUtil.isNull( ${changeClassName}.get${pkCapitalColName}(),"${className}","id",resources.get${pkCapitalColName}());
<#if columns??>
<#list columns as column>
<#if column.columnKey = 'UNI'>
<#if column_index = 1>
${className} ${changeClassName}1 = null;
</#if>
${changeClassName}1 = ${changeClassName}Repository.findBy${column.capitalColumnName}(resources.get${column.capitalColumnName}());
if(${changeClassName}1 != null && !${changeClassName}1.get${pkCapitalColName}().equals(${changeClassName}.get${pkCapitalColName}())){
throw new EntityExistException(${className}.class,"${column.columnName}",resources.get${column.capitalColumnName}());
}
</#if>
</#list>
</#if>
${changeClassName}.copy(resources);
${changeClassName}Repository.save(${changeClassName});
${className} ${changeClassName} = ${changeClassName}Repository.findById(resources.get${pkCapitalColName}
()).orElseGet(${className}::new);
ValidationUtil.isNull( ${changeClassName}.get${pkCapitalColName}(),"${className}
","id",resources.get${pkCapitalColName}());
<#if columns??>
<#list columns as column>
<#if column.columnKey = 'UNI'>
<#if column_index = 1>
${className} ${changeClassName}1 = null;
</#if>
${changeClassName}1 = ${changeClassName}Repository.findBy${column.capitalColumnName}(resources.get${column.capitalColumnName}());
if(${changeClassName}1 != null && !${changeClassName}1.get${pkCapitalColName}().equals(${changeClassName}.get${pkCapitalColName}())){
throw new EntityExistException(${className}.class,"${column.columnName}",resources.get${column.capitalColumnName}());
}
</#if>
</#list>
</#if>
${changeClassName}.copy(resources);
${changeClassName}Repository.save(${changeClassName});
}
@Override
public void deleteAll(${pkColumnType}[] ids) {
for (${pkColumnType} ${pkChangeColName} : ids) {
${changeClassName}Repository.deleteById(${pkChangeColName});
}
for (${pkColumnType} ${pkChangeColName} : ids) {
${changeClassName}Repository.deleteById(${pkChangeColName});
}
}
@Override
public void download(List<${className}Dto> all, HttpServletResponse response) throws IOException {
List<Map<String, Object>> list = new ArrayList<>();
public void download(List
<${className}Dto> all, HttpServletResponse response) throws IOException {
List
<Map
<String
, Object>> list = new ArrayList<>();
for (${className}Dto ${changeClassName} : all) {
Map<String,Object> map = new LinkedHashMap<>();
Map
<String
,Object> map = new LinkedHashMap<>();
<#list columns as column>
<#if column.columnKey != 'PRI'>
<#if column.remark != ''>
map.put("${column.remark}", ${changeClassName}.get${column.capitalColumnName}());
<#else>
map.put(" ${column.changeColumnName}", ${changeClassName}.get${column.capitalColumnName}());
</#if>
<#if column.remark != ''>
map.put("${column.remark}", ${changeClassName}.get${column.capitalColumnName}());
<#else>
map.put(" ${column.changeColumnName}", ${changeClassName}.get${column.capitalColumnName}());
</#if>
</#if>
</#list>
list.add(map);
list.add(map);
}
FileUtil.downloadExcel(list, response);
}
}
\ No newline at end of file
}
}
\ No newline at end of file
import request from '@/utils/request'
export function add(data) {
return request({
url: 'api/${changeClassName}',
method: 'post',
data
})
return request({
url: 'api/${changeClassName}',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/${changeClassName}/',
method: 'delete',
data: ids
})
return request({
url: 'api/${changeClassName}/',
method: 'delete',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/${changeClassName}',
method: 'put',
data
})
return request({
url: 'api/${changeClassName}',
method: 'put',
data
})
}
export default { add, edit, del }
<#--noinspection ALL-->
<template>
<div class="app-container">
<!--工具栏-->
<div class="head-container">
<#if hasQuery>
<div v-if="crud.props.searchToggle">
<!-- 搜索 -->
<#if queryColumns??>
<#list queryColumns as column>
<#if column.queryType != 'BetWeen'>
<label class="el-form-item-label"><#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if></label>
<el-input v-model="query.${column.changeColumnName}" clearable placeholder="<#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if>" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
<div class="app-container">
<!--工具栏-->
<div class="head-container">
<#if hasQuery>
<div v-if="crud.props.searchToggle">
<!-- 搜索 -->
<#if queryColumns??>
<#list queryColumns as column>
<#if column.queryType != 'BetWeen'>
<label class="el-form-item-label"><#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if></label>
<el-input v-model="query.${column.changeColumnName}" clearable
placeholder="<#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if>"
style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery"/>
</#if>
</#list>
</#if>
<#if betweens??>
<#list betweens as column>
<#if column.queryType = 'BetWeen'>
<date-range-picker
v-model="query.${column.changeColumnName}"
start-placeholder="${column.changeColumnName}Start"
end-placeholder="${column.changeColumnName}Start"
class="date-item"
/>
</#if>
</#list>
</#if>
<rrOperation :crud="crud"/>
</div>
</#if>
</#list>
</#if>
<#if betweens??>
<#list betweens as column>
<#if column.queryType = 'BetWeen'>
<date-range-picker
v-model="query.${column.changeColumnName}"
start-placeholder="${column.changeColumnName}Start"
end-placeholder="${column.changeColumnName}Start"
class="date-item"
/>
</#if>
</#list>
</#if>
<rrOperation :crud="crud" />
</div>
</#if>
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
<crudOperation :permission="permission" />
<!--表单组件-->
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="500px">
<el-form ref="form" :model="form" <#if isNotNullColumns??>:rules="rules"</#if> size="small" label-width="80px">
<#if columns??>
<#list columns as column>
<#if column.formShow>
<el-form-item label="<#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if>"<#if column.istNotNull> prop="${column.changeColumnName}"</#if>>
<#if column.formType = 'Input'>
<el-input v-model="form.${column.changeColumnName}" style="width: 370px;" />
<#elseif column.formType = 'Textarea'>
<el-input v-model="form.${column.changeColumnName}" :rows="3" type="textarea" style="width: 370px;" />
<#elseif column.formType = 'Radio'>
<#if (column.dictName)?? && (column.dictName)!="">
<el-radio v-model="form.${column.changeColumnName}" v-for="item in dict.${column.dictName}" :key="item.id" :label="item.value">{{ item.label }}</el-radio>
<#else>
未设置字典,请手动设置 Radio
</#if>
<#elseif column.formType = 'Select'>
<#if (column.dictName)?? && (column.dictName)!="">
<el-select v-model="form.${column.changeColumnName}" filterable placeholder="请选择">
<el-option
v-for="item in dict.${column.dictName}"
:key="item.id"
:label="item.label"
:value="item.value" />
</el-select>
<#else>
未设置字典,请手动设置 Select
</#if>
<#else>
<el-date-picker v-model="form.${column.changeColumnName}" type="datetime" style="width: 370px;" />
</#if>
</el-form-item>
</#if>
</#list>
</#if>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="crud.cancelCU">取消</el-button>
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
</div>
</el-dialog>
<!--表格渲染-->
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="small" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
<el-table-column type="selection" width="55" />
<#if columns??>
<#list columns as column>
<#if column.columnShow>
<#if (column.dictName)?? && (column.dictName)!="">
<el-table-column prop="${column.changeColumnName}" label="<#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if>">
<template slot-scope="scope">
{{ dict.label.${column.dictName}[scope.row.${column.changeColumnName}] }}
</template>
</el-table-column>
<#else>
<el-table-column prop="${column.changeColumnName}" label="<#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if>" />
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
<crudOperation :permission="permission"/>
<!--表单组件-->
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0"
:title="crud.status.title" width="500px">
<el-form ref="form" :model="form" <#if isNotNullColumns??>:rules="rules"</#if> size="small"
label-width="80px">
<#if columns??>
<#list columns as column>
<#if column.formShow>
<el-form-item
label="<#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if>"<#if column.istNotNull> prop="${column.changeColumnName}"</#if>>
<#if column.formType = 'Input'>
<el-input v-model="form.${column.changeColumnName}" style="width: 370px;"/>
<#elseif column.formType = 'Textarea'>
<el-input v-model="form.${column.changeColumnName}" :rows="3" type="textarea"
style="width: 370px;"/>
<#elseif column.formType = 'Radio'>
<#if (column.dictName)?? && (column.dictName)!="">
<el-radio v-model="form.${column.changeColumnName}"
v-for="item in dict.${column.dictName}" :key="item.id"
:label="item.value">{{ item.label }}
</el-radio>
<#else>
未设置字典,请手动设置 Radio
</#if>
<#elseif column.formType = 'Select'>
<#if (column.dictName)?? && (column.dictName)!="">
<el-select v-model="form.${column.changeColumnName}" filterable
placeholder="请选择">
<el-option
v-for="item in dict.${column.dictName}"
:key="item.id"
:label="item.label"
:value="item.value"/>
</el-select>
<#else>
未设置字典,请手动设置 Select
</#if>
<#else>
<el-date-picker v-model="form.${column.changeColumnName}" type="datetime"
style="width: 370px;"/>
</#if>
</el-form-item>
</#if>
</#list>
</#if>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="crud.cancelCU">取消</el-button>
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
</div>
</el-dialog>
<!--表格渲染-->
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="small" style="width: 100%;"
@selection-change="crud.selectionChangeHandler">
<el-table-column type="selection" width="55"/>
<#if columns??>
<#list columns as column>
<#if column.columnShow>
<#if (column.dictName)?? && (column.dictName)!="">
<el-table-column prop="${column.changeColumnName}"
label="<#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if>">
<template slot-scope="scope">
{{ dict.label.${column.dictName}[scope.row.${column.changeColumnName}] }}
</template>
</el-table-column>
<#else>
<el-table-column prop="${column.changeColumnName}"
label="<#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if>"/>
</#if>
</#if>
</#list>
</#if>
</#if>
</#list>
</#if>
<el-table-column v-if="checkPer(['admin','${changeClassName}:edit','${changeClassName}:del'])" label="操作" width="150px" align="center">
<template slot-scope="scope">
<udOperation
:data="scope.row"
:permission="permission"
/>
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<pagination />
<el-table-column v-if="checkPer(['admin','${changeClassName}:edit','${changeClassName}:del'])"
label="操作" width="150px" align="center">
<template slot-scope="scope">
<udOperation
:data="scope.row"
:permission="permission"
/>
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<pagination/>
</div>
</div>
</div>
</template>
<script>
......@@ -113,54 +128,67 @@
import udOperation from '@crud/UD.operation'
import pagination from '@crud/Pagination'
const defaultForm = { <#if columns??><#list columns as column>${column.changeColumnName}: null<#if column_has_next>, </#if></#list></#if> }
export default {
name: '${className}',
components: { pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()],
<#if hasDict>
dicts: [<#if hasDict??><#list dicts as dict>'${dict}'<#if dict_has_next>, </#if></#list></#if>],
</#if>
cruds() {
return CRUD({ title: '${apiAlias}', url: 'api/${changeClassName}', idField: '${pkChangeColName}', sort: '${pkChangeColName},desc', crudMethod: { ...crud${className} }})
},
data() {
return {
permission: {
add: ['admin', '${changeClassName}:add'],
edit: ['admin', '${changeClassName}:edit'],
del: ['admin', '${changeClassName}:del']
},
rules: {
<#if isNotNullColumns??>
<#list isNotNullColumns as column>
<#if column.istNotNull>
${column.changeColumnName}: [
{ required: true, message: '<#if column.remark != ''>${column.remark}</#if>不能为空', trigger: 'blur' }
]<#if column_has_next>,</#if>
</#if>
</#list>
</#if>
}<#if hasQuery>,
queryTypeOptions: [
<#if queryColumns??>
<#list queryColumns as column>
<#if column.queryType != 'BetWeen'>
{ key: '${column.changeColumnName}', display_name: '<#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if>' }<#if column_has_next>,</#if>
const defaultForm = {<#if columns??><#list columns as column>${column.changeColumnName}: null<#if column_has_next>, </#if></#list></#if>}
export default {
name: '${className}',
components: {pagination, crudOperation, rrOperation, udOperation},
mixins: [presenter(), header(), form(defaultForm), crud()],
<#if hasDict>
dicts: [<#if hasDict??><#list dicts as dict>'${dict}'<#if dict_has_next>, </#if></#list></#if>],
</#if>
</#list>
</#if>
]
</#if>
}
},
methods: {
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
[CRUD.HOOK.beforeRefresh]() {
return true
cruds() {
return CRUD({
title: '${apiAlias}',
url: 'api/${changeClassName}',
idField: '${pkChangeColName}',
sort: '${pkChangeColName},desc',
crudMethod: {...crud${className}}
})
},
data() {
return {
permission: {
add: ['admin', '${changeClassName}:add'],
edit: ['admin', '${changeClassName}:edit'],
del: ['admin', '${changeClassName}:del']
},
rules: {
<#if isNotNullColumns??>
<#list isNotNullColumns as column>
<#if column.istNotNull>
${column.changeColumnName}: [
{
required: true,
message: '<#if column.remark != ''>${column.remark}</#if>不能为空',
trigger: 'blur'
}
]<#if column_has_next>, </#if>
</#if>
</#list>
</#if>
}<#if hasQuery>,
queryTypeOptions: [
<#if queryColumns??>
<#list queryColumns as column>
<#if column.queryType != 'BetWeen'>
{
key: '${column.changeColumnName}',
display_name: '<#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if>'
}<#if column_has_next>, </#if>
</#if>
</#list>
</#if>
]
</#if>
}
},
methods: {
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
[CRUD.HOOK.beforeRefresh]() {
return true
}
}
}
}
}
</script>
<style scoped>
......
......@@ -53,10 +53,13 @@ class ${table.controllerName}<#if superControllerClass??> : ${superControllerCla
@Autowired
private ${table.serviceName} ${table.serviceName?uncap_first};
@ApiOperation(value = "${table.comment}分页列表", response = ${entity}.class)
@GetMapping(value = "/page")
public ResponseEntity<Object> list(DataQueryCriteria dataQueryCriteria) {
HashMap<String, Object> data = ${table.serviceName?uncap_first}.plist(dataQueryCriteria);
@ApiOperation(value = "${table.comment}分页列表", response = ${entity}.class)
@GetMapping(value = "/page")
public ResponseEntity
<Object> list(DataQueryCriteria dataQueryCriteria) {
HashMap
<String
, Object> data = ${table.serviceName?uncap_first}.plist(dataQueryCriteria);
return new ResponseEntity<>(new PageResult().success(data), HttpStatus.OK);
}
......@@ -67,10 +70,10 @@ private ${table.serviceName} ${table.serviceName?uncap_first};
boolean result = ${table.serviceName?uncap_first}.add(param);
if (result) {
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
} else {
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
}
@ApiOperation(value = "${table.comment}修改")
......@@ -79,23 +82,25 @@ private ${table.serviceName} ${table.serviceName?uncap_first};
boolean result = ${table.serviceName?uncap_first}.modify(param);
if (result) {
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
} else {
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
}
@ApiOperation(value = "${table.comment}删除(单个条目)")
@DeleteMapping()
public Object remove(@RequestBody HashMap<String, Object> map) {
public Object remove(@RequestBody HashMap
<String
, Object> map) {
Integer id = Integer.valueOf(map.get("id").toString());
boolean result = ${table.serviceName?uncap_first}.removeById(id);
if (result) {
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
return new ResponseEntity<>(new PostOrPutResult().success(), HttpStatus.OK);
} else {
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
return new ResponseEntity<>(new PostOrPutResult().failed(), HttpStatus.INTERNAL_SERVER_ERROR);
}
}
}
}
</#if>
</#if>
......@@ -10,38 +10,39 @@ import java.util.List;
/**
* <p>
* ${table.comment!} 服务类
* </p>
* ${table.comment!} 服务类
* </p>
*
* @author ${author}
* @since ${date}
*/
<#if kotlin>
interface ${table.serviceName} : ${superServiceClass}<${entity}>
interface ${table.serviceName} : ${superServiceClass}<${entity}>
<#else>
public interface ${table.serviceName} extends ${superServiceClass}<${entity}> {
/**
* ${table.comment!}分页列表
* @param dataQueryCriteria
* @return
*/
HashMap<String, Object> plist(DataQueryCriteria dataQueryCriteria);
/**
* ${table.comment!}新增
* @param param 根据需要进行传值
* @return
*/
boolean add(${entity} param);
/**
* ${table.comment!}修改
* @param param 根据需要进行传值
* @return
*/
boolean modify(${entity} param);
}
public interface ${table.serviceName} extends ${superServiceClass}<${entity}> {
/**
* ${table.comment!}分页列表
* @param dataQueryCriteria
* @return
*/
HashMap
<String, Object> plist(DataQueryCriteria dataQueryCriteria);
/**
* ${table.comment!}新增
* @param param 根据需要进行传值
* @return
*/
boolean add(${entity} param);
/**
* ${table.comment!}修改
* @param param 根据需要进行传值
* @return
*/
boolean modify(${entity} param);
}
</#if>
......@@ -24,70 +24,72 @@ import java.util.List;
*/
@Service
<#if kotlin>
open class ${table.serviceImplName} : ${superServiceImplClass}<${table.mapperName}, ${entity}>(), ${table.serviceName} {
open class ${table.serviceImplName} : ${superServiceImplClass}<${table.mapperName}, ${entity}>(), ${table.serviceName} {
}
}
<#else>
public class ${table.serviceImplName} extends ${superServiceImplClass}<${table.mapperName}, ${entity}> implements ${table.serviceName} {
public class ${table.serviceImplName} extends ${superServiceImplClass}<${table.mapperName}, ${entity}> implements ${table.serviceName} {
@Autowired
private ${table.mapperName} ${table.mapperName?uncap_first};
@Autowired
private ${table.mapperName} ${table.mapperName?uncap_first};
/**
* ${table.comment!}分页列表
* @param searchName
* @param searchValue
* @param limit
* @param timeSpace
* @param sort
* @param page
* @param size
* @return
*/
@Override
public HashMap<String, Object> plist(DataQueryCriteria dataQueryCriteria) {
/**
* ${table.comment!}分页列表
* @param searchName
* @param searchValue
* @param limit
* @param timeSpace
* @param sort
* @param page
* @param size
* @return
*/
@Override
public HashMap
<String, Object> plist(DataQueryCriteria dataQueryCriteria) {
long size = dataQueryCriteria.getSize();
long page = dataQueryCriteria.getPage();
Page<${entity}> ${entity}Page = new Page<>(page+1, size);
QueryWrapper<${entity}> queryWrapper = new QueryWrapper<>();
ServiceUtil.dataQuery(queryWrapper, dataQueryCriteria);
${entity}Page=${table.mapperName?uncap_first}.selectPage(${entity}Page, queryWrapper);
List<${entity}> records = ${entity}Page.getRecords();
Page<${entity}> ${entity}Page = new Page<>(page+1, size);
QueryWrapper<${entity}> queryWrapper = new QueryWrapper<>();
ServiceUtil.dataQuery(queryWrapper, dataQueryCriteria);
${entity}Page=${table.mapperName?uncap_first}.selectPage(${entity}Page, queryWrapper);
List<${entity}> records = ${entity}Page.getRecords();
long total = ${entity}Page.getTotal();
HashMap<String, Object> map = new HashMap<>();
HashMap
<String, Object> map = new HashMap<>();
map.put("list", records);
map.put("total", total);
return map;
}
return map;
}
/**
* ${table.comment!}新增
* @param param 根据需要进行传值
* @return
*/
@Override
public boolean add(${entity} param) {
int result =${table.mapperName?uncap_first}.insert(param);
/**
* ${table.comment!}新增
* @param param 根据需要进行传值
* @return
*/
@Override
public boolean add(${entity} param) {
int result =${table.mapperName?uncap_first}.insert(param);
if(result>0){
return true;
}
return false;
}
}
/**
* ${table.comment!}修改
* @param param 根据需要进行传值
* @return
*/
@Override
public boolean modify(${entity} param) {
/**
* ${table.comment!}修改
* @param param 根据需要进行传值
* @return
*/
@Override
public boolean modify(${entity} param) {
QueryWrapper<${entity}> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id",param.getId());
int result = ${table.mapperName?uncap_first}.update(param,queryWrapper);
if(result>0){
return true;
}
return false;
}}
</#if>
int result = ${table.mapperName?uncap_first}.update(param,queryWrapper);
if(result>0){
return true;
}
return false;
}}
</#if>
<?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="me.zhengjie.gemho.mapper.artificial.ArtificialDataMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="me.zhengjie.gemho.entity.artificial.ArtificialData">
<id column="id" property="id" />
<result column="jcitemid" property="jcitemid" />
<result column="jcziitemid" property="jcziitemid" />
<result column="jcneirongid" property="jcneirongid" />
<result column="jcyiqi" property="jcyiqi" />
<result column="jcjingdu" property="jcjingdu" />
<result column="jcjieguo" property="jcjieguo" />
<result column="addtime" property="addtime" />
<result column="jctime" property="jctime" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, jcitemid, jcziitemid, jcneirongid, jcyiqi, jcjingdu, jcjieguo, addtime, jctime
</sql>
</mapper>
<?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="me.zhengjie.gemho.mapper.artificial.ArtificialPointMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="me.zhengjie.gemho.entity.artificial.ArtificialPoint">
<id column="id" property="id" />
<result column="jcitem" property="jcitem" />
<result column="jcdname" property="jcdname" />
<result column="remarks" property="remarks" />
<result column="addtime" property="addtime" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, jcitem, jcdname, remarks, addtime
</sql>
</mapper>
<?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="me.zhengjie.gemho.mapper.ins.InsChildrenMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="me.zhengjie.gemho.entity.ins.InsChildren">
<id column="id" property="id" />
<result column="pro_id" property="proId" />
<result column="type" property="type" />
<result column="content" property="content" />
<result column="update_time" property="updateTime" />
<result column="add_time" property="addTime" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, pro_id, `type`, content, update_time, add_time
</sql>
</mapper>
<?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="me.zhengjie.gemho.mapper.ins.InsDataMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="me.zhengjie.gemho.entity.ins.InsData">
<id column="id" property="id" />
<result column="child_id" property="childId" />
<result column="text" property="text" />
<result column="file" property="file" />
<result column="image" property="image" />
<result column="update_time" property="updateTime" />
<result column="add_time" property="addTime" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, child_id, `text`, `file`, image, update_time, add_time
</sql>
</mapper>
<?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="me.zhengjie.gemho.mapper.ins.InsProjectMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="me.zhengjie.gemho.entity.ins.InsProject">
<id column="id" property="id" />
<result column="name" property="name" />
<result column="update_time" property="updateTime" />
<result column="add_time" property="addTime" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, `name`, update_time, add_time
</sql>
</mapper>
<?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="me.zhengjie.gemho.mapper.tab.JrxDissectMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="me.zhengjie.gemho.entity.tab.JrxDissect">
<id column="id" property="id" />
<result column="name" property="name" />
<result column="code" property="code" />
<result column="pondid" property="pondid" />
<result column="drys" property="drys" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, `name`, `code`, pondid, drys
</sql>
</mapper>
<?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="me.zhengjie.gemho.mapper.tab.JrxWaterMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="me.zhengjie.gemho.entity.tab.JrxWater">
<id column="id" property="id" />
<result column="dissectid" property="dissectid" />
<result column="sdeg" property="sdeg" />
<result column="diameter" property="diameter" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, dissectid, sdeg, diameter
</sql>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment