Browse Source

更新

master
gengby 2 years ago
parent
commit
f40a917974
  1. 14
      nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_coating/HaiLiangCoatingDeviceDriver.java
  2. 14
      nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_feeding/HaiLiangFeedingDeviceDriver.java
  3. 13
      nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_feeding_trunk/HaiLiangFeedingTrunkDeviceDriver.java
  4. 15
      nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_labeling/HaiLiangLabelingDeviceDriver.java
  5. 13
      nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_lettering/HaiLiangLetteringDeviceDriver.java
  6. 14
      nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_risking/HaiLiangRiskingDeviceDriver.java
  7. 14
      nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_strapping/HaiLiangStrappingDeviceDriver.java
  8. 72
      nladmin-system/src/main/java/org/nl/acs/history/ErrorUtil.java
  9. 75
      nladmin-system/src/main/java/org/nl/acs/history/rest/DeviceErrorLogController.java
  10. 73
      nladmin-system/src/main/java/org/nl/acs/history/service/DeviceErrorLogService.java
  11. 28
      nladmin-system/src/main/java/org/nl/acs/history/service/dto/DeviceErrorLogDto.java
  12. 140
      nladmin-system/src/main/java/org/nl/acs/history/service/impl/DeviceErrorLogServiceImpl.java
  13. BIN
      nladmin-system/src/main/java/org/nl/acs/log/wql/log.xls
  14. 13
      nladmin-system/src/main/java/org/nl/hand/rest/HandController.java
  15. 5
      nladmin-system/src/main/java/org/nl/hand/service/HandService.java
  16. 30
      nladmin-system/src/main/java/org/nl/hand/service/impl/HandServiceImpl.java
  17. 2
      nladmin-system/src/main/java/org/nl/modules/system/service/DictService.java
  18. 10
      nladmin-system/src/main/java/org/nl/modules/system/service/impl/DictDetailServiceImpl.java
  19. 7
      nladmin-system/src/main/java/org/nl/modules/system/service/impl/DictServiceImpl.java
  20. 6
      nladmin-system/src/main/resources/config/application-dev.yml
  21. 27
      qd/src/api/acs/history/acsDeviceErrorLog.js
  22. 145
      qd/src/views/acs/history/deviceErrorInfo/index.vue

14
nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_coating/HaiLiangCoatingDeviceDriver.java

@ -8,6 +8,10 @@ import org.nl.acs.device.device_driver.standard_inspect.ReadUtil;
import org.nl.acs.device_driver.DeviceDriver;
import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver;
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
import org.nl.acs.history.ErrorUtil;
import org.nl.acs.history.service.DeviceErrorLogService;
import org.nl.acs.history.service.dto.DeviceErrorLogDto;
import org.nl.acs.history.service.impl.DeviceErrorLogServiceImpl;
import org.nl.acs.log.service.LogServer;
import org.nl.acs.opc.Device;
import org.nl.acs.order.service.ProduceshiftorderService;
@ -45,6 +49,9 @@ public class HaiLiangCoatingDeviceDriver extends AbstractOpcDeviceDriver impleme
@Autowired
LogServer logServer = SpringContextHolder.getBean(LogServer.class);
@Autowired
DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class);
String device_code;
int mode = 0;
int last_mode = 0;
@ -92,6 +99,13 @@ public class HaiLiangCoatingDeviceDriver extends AbstractOpcDeviceDriver impleme
logServer.deviceLogToacs(this.device_code,"","","信号move:" + last_move + "->" + move);
}
if (error != last_error) {
if (error != 0) {
DeviceErrorLogDto dto = new DeviceErrorLogDto();
dto.setDevice_code(device_code);
dto.setError_code(String.valueOf(error));
dto.setError_info(ErrorUtil.getDictDetail("error_type", String.valueOf(error)));
deviceErrorLogService.create(dto);
}
logServer.deviceLog(this.device_code,"error" ,String.valueOf(error));
logServer.deviceLogToacs(this.device_code,"","","信号error:" + last_error + "->" + error);
}

14
nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_feeding/HaiLiangFeedingDeviceDriver.java

@ -10,6 +10,10 @@ import org.nl.acs.device_driver.DeviceDriver;
import org.nl.acs.device_driver.RouteableDeviceDriver;
import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver;
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
import org.nl.acs.history.ErrorUtil;
import org.nl.acs.history.service.DeviceErrorLogService;
import org.nl.acs.history.service.dto.DeviceErrorLogDto;
import org.nl.acs.history.service.impl.DeviceErrorLogServiceImpl;
import org.nl.acs.log.service.LogServer;
import org.nl.acs.opc.Device;
import org.nl.acs.order.service.ProduceshiftorderService;
@ -43,7 +47,8 @@ public class HaiLiangFeedingDeviceDriver extends AbstractOpcDeviceDriver impleme
@Autowired
ProduceshiftorderdetailService produceshiftorderdetailService = SpringContextHolder.getBean(ProduceshiftorderdetailService.class);
@Autowired
DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class);
@Autowired
LogServer logServer = SpringContextHolder.getBean(LogServer.class);
@ -95,6 +100,13 @@ public class HaiLiangFeedingDeviceDriver extends AbstractOpcDeviceDriver impleme
this.setRequireSucess(false);
}
if (error != last_error) {
if (error != 0) {
DeviceErrorLogDto dto = new DeviceErrorLogDto();
dto.setDevice_code(device_code);
dto.setError_code(String.valueOf(error));
dto.setError_info(ErrorUtil.getDictDetail("error_type", String.valueOf(error)));
deviceErrorLogService.create(dto);
}
logServer.deviceLog(this.device_code,"error" ,String.valueOf(error));
logServer.deviceLogToacs(this.device_code,"","","信号error:" + last_error + "->" + error);
}

13
nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_feeding_trunk/HaiLiangFeedingTrunkDeviceDriver.java

@ -9,6 +9,10 @@ import org.nl.acs.device.device_driver.standard_inspect.ReadUtil;
import org.nl.acs.device_driver.DeviceDriver;
import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver;
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
import org.nl.acs.history.ErrorUtil;
import org.nl.acs.history.service.DeviceErrorLogService;
import org.nl.acs.history.service.dto.DeviceErrorLogDto;
import org.nl.acs.history.service.impl.DeviceErrorLogServiceImpl;
import org.nl.acs.log.service.LogServer;
import org.nl.acs.opc.Device;
import org.nl.acs.order.service.ProduceshiftorderService;
@ -41,6 +45,8 @@ public class HaiLiangFeedingTrunkDeviceDriver extends AbstractOpcDeviceDriver im
@Autowired
LogServer logServer = SpringContextHolder.getBean(LogServer.class);
@Autowired
DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class);
@Override
public Device getDevice() {
@ -211,6 +217,13 @@ public class HaiLiangFeedingTrunkDeviceDriver extends AbstractOpcDeviceDriver im
if(error != last_error)
{
if (error != 0) {
DeviceErrorLogDto dto = new DeviceErrorLogDto();
dto.setDevice_code(device_code);
dto.setError_code(String.valueOf(error));
dto.setError_info(ErrorUtil.getDictDetail("error_type", String.valueOf(error)));
deviceErrorLogService.create(dto);
}
logServer.deviceLog(this.device_code,"error" ,String.valueOf(error));
logServer.deviceLogToacs(this.device_code,"","","信号error:" + last_error + "->" + error);
}

15
nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_labeling/HaiLiangLabelingDeviceDriver.java

@ -11,6 +11,10 @@ import org.nl.acs.device.device_driver.standard_inspect.ReadUtil;
import org.nl.acs.device_driver.DeviceDriver;
import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver;
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
import org.nl.acs.history.ErrorUtil;
import org.nl.acs.history.service.DeviceErrorLogService;
import org.nl.acs.history.service.dto.DeviceErrorLogDto;
import org.nl.acs.history.service.impl.DeviceErrorLogServiceImpl;
import org.nl.acs.log.service.LogServer;
import org.nl.acs.opc.Device;
import org.nl.acs.order.service.ProduceshiftorderService;
@ -50,6 +54,9 @@ public class HaiLiangLabelingDeviceDriver extends AbstractOpcDeviceDriver implem
@Autowired
LogServer logServer = SpringContextHolder.getBean(LogServer.class);
@Autowired
DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class);
// @Autowired
// LabelingTemplateService labelingTemplateService = SpringContextHolder.getBean(LabelingTemplateService.class);
@ -80,7 +87,6 @@ public class HaiLiangLabelingDeviceDriver extends AbstractOpcDeviceDriver implem
private int detail_time_out = 3000;
@Override
public void execute() {
String message = null;
@ -105,6 +111,13 @@ public class HaiLiangLabelingDeviceDriver extends AbstractOpcDeviceDriver implem
logServer.deviceLogToacs(this.device_code, "", "", "信号move:" + last_move + "->" + move);
}
if (error != last_error) {
if (error != 0) {
DeviceErrorLogDto dto = new DeviceErrorLogDto();
dto.setDevice_code(device_code);
dto.setError_code(String.valueOf(error));
dto.setError_info(ErrorUtil.getDictDetail("error_type", String.valueOf(error)));
deviceErrorLogService.create(dto);
}
logServer.deviceLog(this.device_code, "error", String.valueOf(error));
logServer.deviceLogToacs(this.device_code, "", "", "信号error:" + last_error + "->" + error);
}

13
nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_lettering/HaiLiangLetteringDeviceDriver.java

@ -8,6 +8,10 @@ import org.nl.acs.device.device_driver.standard_inspect.ReadUtil;
import org.nl.acs.device_driver.DeviceDriver;
import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver;
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
import org.nl.acs.history.ErrorUtil;
import org.nl.acs.history.service.DeviceErrorLogService;
import org.nl.acs.history.service.dto.DeviceErrorLogDto;
import org.nl.acs.history.service.impl.DeviceErrorLogServiceImpl;
import org.nl.acs.log.service.LogServer;
import org.nl.acs.opc.Device;
import org.nl.acs.order.service.ProduceshiftorderService;
@ -38,6 +42,8 @@ public class HaiLiangLetteringDeviceDriver extends AbstractOpcDeviceDriver imple
@Autowired
LogServer logServer = SpringContextHolder.getBean(LogServer.class);
@Autowired
DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class);
String device_code;
int mode = 0;
@ -91,6 +97,13 @@ public class HaiLiangLetteringDeviceDriver extends AbstractOpcDeviceDriver imple
logServer.deviceLogToacs(this.device_code,"","","信号move:" + last_move + "->" + move);
}
if (error != last_error) {
if (error != 0) {
DeviceErrorLogDto dto = new DeviceErrorLogDto();
dto.setDevice_code(device_code);
dto.setError_code(String.valueOf(error));
dto.setError_info(ErrorUtil.getDictDetail("error_type", String.valueOf(error)));
deviceErrorLogService.create(dto);
}
logServer.deviceLog(this.device_code,"error" ,String.valueOf(error));
logServer.deviceLogToacs(this.device_code,"","","信号error:" + last_error + "->" + error);
}

14
nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_risking/HaiLiangRiskingDeviceDriver.java

@ -8,6 +8,10 @@ import org.nl.acs.device.device_driver.standard_inspect.ReadUtil;
import org.nl.acs.device_driver.DeviceDriver;
import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver;
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
import org.nl.acs.history.ErrorUtil;
import org.nl.acs.history.service.DeviceErrorLogService;
import org.nl.acs.history.service.dto.DeviceErrorLogDto;
import org.nl.acs.history.service.impl.DeviceErrorLogServiceImpl;
import org.nl.acs.log.service.LogServer;
import org.nl.acs.opc.Device;
import org.nl.acs.order.service.ProduceshiftorderService;
@ -39,7 +43,8 @@ public class HaiLiangRiskingDeviceDriver extends AbstractOpcDeviceDriver impleme
@Autowired
LogServer logServer = SpringContextHolder.getBean(LogServer.class);
@Autowired
DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class);
String device_code;
int mode = 0;
int last_mode = 0;
@ -92,6 +97,13 @@ public class HaiLiangRiskingDeviceDriver extends AbstractOpcDeviceDriver impleme
logServer.deviceLogToacs(this.device_code,"","","信号move:" + last_move + "->" + move);
}
if (error != last_error) {
if (error != 0) {
DeviceErrorLogDto dto = new DeviceErrorLogDto();
dto.setDevice_code(device_code);
dto.setError_code(String.valueOf(error));
dto.setError_info(ErrorUtil.getDictDetail("error_type", String.valueOf(error)));
deviceErrorLogService.create(dto);
}
logServer.deviceLog(this.device_code,"error" ,String.valueOf(error));
logServer.deviceLogToacs(this.device_code,"","","信号error:" + last_error + "->" + error);
}

14
nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_strapping/HaiLiangStrappingDeviceDriver.java

@ -8,6 +8,10 @@ import org.nl.acs.device.device_driver.standard_inspect.ReadUtil;
import org.nl.acs.device_driver.DeviceDriver;
import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver;
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
import org.nl.acs.history.ErrorUtil;
import org.nl.acs.history.service.DeviceErrorLogService;
import org.nl.acs.history.service.dto.DeviceErrorLogDto;
import org.nl.acs.history.service.impl.DeviceErrorLogServiceImpl;
import org.nl.acs.log.service.LogServer;
import org.nl.acs.opc.Device;
import org.nl.acs.order.service.ProduceshiftorderService;
@ -43,7 +47,8 @@ public class HaiLiangStrappingDeviceDriver extends AbstractOpcDeviceDriver imple
@Autowired
LogServer logServer = SpringContextHolder.getBean(LogServer.class);
@Autowired
DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class);
String device_code;
int mode = 0;
int last_mode = 0;
@ -101,6 +106,13 @@ public class HaiLiangStrappingDeviceDriver extends AbstractOpcDeviceDriver imple
logServer.deviceLogToacs(this.device_code,"","","信号move:" + last_move + "->" + move);
}
if (error != last_error) {
if (error != 0) {
DeviceErrorLogDto dto = new DeviceErrorLogDto();
dto.setDevice_code(device_code);
dto.setError_code(String.valueOf(error));
dto.setError_info(ErrorUtil.getDictDetail("error_type", String.valueOf(error)));
deviceErrorLogService.create(dto);
}
logServer.deviceLog(this.device_code,"error" ,String.valueOf(error));
logServer.deviceLogToacs(this.device_code,"","","信号error:" + last_error + "->" + error);
}

72
nladmin-system/src/main/java/org/nl/acs/history/ErrorUtil.java

@ -0,0 +1,72 @@
package org.nl.acs.history;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import net.dreamlu.mica.core.result.R;
import org.apache.poi.ss.formula.functions.T;
import org.nl.modules.system.domain.Dict;
import org.nl.modules.system.service.DictDetailService;
import org.nl.modules.system.service.DictService;
import org.nl.modules.system.service.dto.DictDetailDto;
import org.nl.modules.system.service.dto.DictDto;
import org.nl.modules.system.service.dto.DictQueryCriteria;
import org.nl.modules.system.service.impl.DictDetailServiceImpl;
import org.nl.modules.system.service.impl.DictServiceImpl;
import org.nl.utils.SpringContextHolder;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.function.Supplier;
/**
* @author: geng by
* @createDate: 2023/3/15
*/
public class ErrorUtil {
public static ConcurrentHashMap<String, List<DictDetailDto>> dictMap = new ConcurrentHashMap<>();
public static String getDictDetail(String type, String error_code) {
getDict();
List<DictDetailDto> dictDetailDtos = dictMap.get(type);
String detail = null;
if (ObjectUtil.isNotEmpty(dictDetailDtos)) {
for (int i = 0; i < dictDetailDtos.size(); i++) {
DictDetailDto dictDetailDto = dictDetailDtos.get(i);
String value = dictDetailDto.getValue();
String label = dictDetailDto.getLabel();
if (StrUtil.equals(value, error_code)) {
detail = label;
break;
}
}
}
return detail == null ? "字典表未配置对应的报警信息" : detail;
}
public static void getDict() {
if (ObjectUtil.isEmpty(dictMap)) {
DictDetailService dictDetailService = SpringContextHolder.getBean(DictDetailServiceImpl.class);
DictService dictService = SpringContextHolder.getBean(DictServiceImpl.class);
List<Dict> dictDtos = dictService.queryAll();
for (int i = 0; i < dictDtos.size(); i++) {
Dict dictDto = dictDtos.get(i);
dictMap.put(dictDto.getName(), getDict(dictDto.getName(), t -> {
return dictDetailService.getDictByName(t);
}));
}
}
}
public static List<DictDetailDto> getDict(String name, Function<String, List<DictDetailDto>> f) {
return f.apply(name);
}
}

75
nladmin-system/src/main/java/org/nl/acs/history/rest/DeviceErrorLogController.java

@ -0,0 +1,75 @@
package org.nl.acs.history.rest;
import org.nl.acs.history.service.dto.DeviceErrorLogDto;
import org.nl.acs.history.service.DeviceErrorLogService;
import org.springframework.data.domain.Pageable;
import lombok.RequiredArgsConstructor;
import org.nl.annotation.Log;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.*;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
import lombok.extern.slf4j.Slf4j;
/**
* @author gengby
* @date 2023-03-15
**/
@RestController
@RequiredArgsConstructor
@Api(tags = "设备报警记录管理")
@RequestMapping("/api/deviceErrorLog")
@Slf4j
public class DeviceErrorLogController {
private final DeviceErrorLogService acsDeviceErrorLogService;
@GetMapping
@Log("查询设备报警记录")
@ApiOperation("查询设备报警记录")
//@PreAuthorize("@el.check('acsDeviceErrorLog:list')")
public ResponseEntity<Object> query(@RequestParam Map whereJson, Pageable page){
return new ResponseEntity<>(acsDeviceErrorLogService.queryAll(whereJson,page),HttpStatus.OK);
}
@PostMapping
@Log("新增设备报警记录")
@ApiOperation("新增设备报警记录")
//@PreAuthorize("@el.check('acsDeviceErrorLog:add')")
public ResponseEntity<Object> create(@Validated @RequestBody DeviceErrorLogDto dto){
acsDeviceErrorLogService.create(dto);
return new ResponseEntity<>(HttpStatus.CREATED);
}
@PutMapping
@Log("修改设备报警记录")
@ApiOperation("修改设备报警记录")
//@PreAuthorize("@el.check('acsDeviceErrorLog:edit')")
public ResponseEntity<Object> update(@Validated @RequestBody DeviceErrorLogDto dto){
acsDeviceErrorLogService.update(dto);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@Log("删除设备报警记录")
@ApiOperation("删除设备报警记录")
//@PreAuthorize("@el.check('acsDeviceErrorLog:del')")
@DeleteMapping
public ResponseEntity<Object> delete(@RequestBody String[] ids) {
acsDeviceErrorLogService.deleteAll(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
@Log("导出设备报警记录")
@ApiOperation("导出设备报警记录")
@GetMapping(value = "/download")
//@PreAuthorize("@el.check('acsDeviceErrorLog:list')")
public void download(HttpServletResponse response, @RequestParam Map whereJson) throws IOException {
acsDeviceErrorLogService.download(acsDeviceErrorLogService.queryAll(whereJson), response);
}
}

73
nladmin-system/src/main/java/org/nl/acs/history/service/DeviceErrorLogService.java

@ -0,0 +1,73 @@
package org.nl.acs.history.service;
import org.nl.acs.history.service.dto.DeviceErrorLogDto;
import org.springframework.data.domain.Pageable;
import java.util.Map;
import java.util.List;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
/**
* @description 服务接口
* @author gengby
* @date 2023-03-15
**/
public interface DeviceErrorLogService {
/**
* 查询数据分页
* @param whereJson 条件
* @param page 分页参数
* @return Map<String,Object>
*/
Map<String,Object> queryAll(Map whereJson, Pageable page);
/**
* 查询所有数据不分页
* @param whereJson 条件参数
* @return List<AcsDeviceErrorLogDto>
*/
List<DeviceErrorLogDto> queryAll(Map whereJson);
/**
* 根据ID查询
* @param error_log_uuid ID
* @return AcsDeviceErrorLog
*/
DeviceErrorLogDto findById(String error_log_uuid);
/**
* 根据编码查询
* @param code code
* @return AcsDeviceErrorLog
*/
DeviceErrorLogDto findByCode(String code);
/**
* 创建
* @param dto /
*/
void create(DeviceErrorLogDto dto);
/**
* 编辑
* @param dto /
*/
void update(DeviceErrorLogDto dto);
/**
* 多选删除
* @param ids /
*/
void deleteAll(String[] ids);
/**
* 导出数据
* @param dtos 待导出的数据
* @param response /
* @throws IOException /
*/
void download(List<DeviceErrorLogDto> dtos, HttpServletResponse response) throws IOException;
}

28
nladmin-system/src/main/java/org/nl/acs/history/service/dto/DeviceErrorLogDto.java

@ -0,0 +1,28 @@
package org.nl.acs.history.service.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @description /
* @author gengby
* @date 2023-03-15
**/
@Data
public class DeviceErrorLogDto implements Serializable {
/** 报警日志标识 */
private String error_log_uuid;
/** 设备编码 */
private String device_code;
/** 报警编码 */
private String error_code;
/** 报警信息 */
private String error_info;
/** 报警时间 */
private String error_time;
}

140
nladmin-system/src/main/java/org/nl/acs/history/service/impl/DeviceErrorLogServiceImpl.java

@ -0,0 +1,140 @@
package org.nl.acs.history.service.impl;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.StrUtil;
import lombok.RequiredArgsConstructor;
import org.nl.acs.device.service.dto.AcsDeviceErpmappingDto;
import org.nl.acs.history.service.DeviceErrorLogService;
import org.nl.acs.history.service.dto.DeviceErrorLogDto;
import org.nl.exception.BadRequestException;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.data.domain.Pageable;
import java.util.List;
import java.util.Map;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.nl.utils.SecurityUtils;
import org.nl.wql.core.bean.ResultBean;
import org.nl.wql.core.bean.WQLObject;
import org.nl.wql.util.WqlUtil;
import org.nl.utils.FileUtil;
import lombok.extern.slf4j.Slf4j;
/**
* @author gengby
* @description 服务实现
* @date 2023-03-15
**/
@Service
@RequiredArgsConstructor
@Slf4j
public class DeviceErrorLogServiceImpl implements DeviceErrorLogService {
@Override
public Map<String, Object> queryAll(Map whereJson, Pageable page) {
String device_code = MapUtil.getStr(whereJson, "device_code");
String error_code = MapUtil.getStr(whereJson, "error_code");
String error_info = MapUtil.getStr(whereJson, "error_info");
WQLObject wo = WQLObject.getWQLObject("acs_device_error_log");
String where = "1 = 1 ";
if (StrUtil.isNotEmpty(device_code)) {
where += "and device_code like '%" + device_code + "%'";
}
if (StrUtil.isNotEmpty(error_code)) {
where += "and error_code like '%" + error_code + "%'";
}
if (StrUtil.isNotEmpty(error_info)) {
where += "and error_info like '%" + error_info + "%'";
}
ResultBean rb = wo.pagequery(WqlUtil.getHttpContext(page), where, "error_time desc");
final JSONObject json = rb.pageResult();
return json;
}
@Override
public List<DeviceErrorLogDto> queryAll(Map whereJson) {
WQLObject wo = WQLObject.getWQLObject("acs_device_error_log");
JSONArray arr = wo.query().getResultJSONArray(0);
List<DeviceErrorLogDto> list = arr.toJavaList(DeviceErrorLogDto.class);
return list;
}
@Override
public DeviceErrorLogDto findById(String error_log_uuid) {
WQLObject wo = WQLObject.getWQLObject("acs_device_error_log");
JSONObject json = wo.query("error_log_uuid ='" + error_log_uuid + "'").uniqueResult(0);
final DeviceErrorLogDto obj = (DeviceErrorLogDto) JSONObject.toJavaObject(json, DeviceErrorLogDto.class);
return obj;
}
@Override
public DeviceErrorLogDto findByCode(String code) {
WQLObject wo = WQLObject.getWQLObject("acs_device_error_log");
JSONObject json = wo.query("code ='" + code + "'").uniqueResult(0);
final DeviceErrorLogDto obj = (DeviceErrorLogDto) JSONObject.toJavaObject(json, DeviceErrorLogDto.class);
return obj;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void create(DeviceErrorLogDto dto) {
String currentUsername = SecurityUtils.getCurrentUsername();
String now = DateUtil.now();
dto.setError_log_uuid(IdUtil.simpleUUID());
dto.setDevice_code(dto.getDevice_code());
dto.setError_code(dto.getError_code());
dto.setError_info(dto.getError_info());
dto.setError_time(now);
WQLObject wo = WQLObject.getWQLObject("acs_device_error_log");
JSONObject json = (JSONObject) JSONObject.toJSON(dto);
wo.insert(json);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(DeviceErrorLogDto dto) {
DeviceErrorLogDto entity = this.findById(dto.getError_log_uuid());
if (entity == null) throw new BadRequestException("被删除或无权限,操作失败!");
String currentUsername = SecurityUtils.getCurrentUsername();
String now = DateUtil.now();
WQLObject wo = WQLObject.getWQLObject("acs_device_error_log");
JSONObject json = (JSONObject) JSONObject.toJSON(dto);
wo.update(json);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteAll(String[] ids) {
WQLObject wo = WQLObject.getWQLObject("acs_device_error_log");
for (String error_log_uuid : ids) {
wo.delete("error_log_uuid = '" + error_log_uuid + "'");
}
}
@Override
public void download(List<DeviceErrorLogDto> all, HttpServletResponse response) throws IOException {
List<Map<String, Object>> list = new ArrayList<>();
for (DeviceErrorLogDto acsDeviceErrorLog : all) {
Map<String, Object> map = new LinkedHashMap<>();
map.put("设备编码", acsDeviceErrorLog.getDevice_code());
map.put("报警编码", acsDeviceErrorLog.getError_code());
map.put("报警信息", acsDeviceErrorLog.getError_info());
map.put("报警时间", acsDeviceErrorLog.getError_time());
list.add(map);
}
FileUtil.downloadExcel(list, response);
}
}

BIN
nladmin-system/src/main/java/org/nl/acs/log/wql/log.xls

Binary file not shown.

13
nladmin-system/src/main/java/org/nl/hand/rest/HandController.java

@ -9,11 +9,11 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.annotation.Log;
import org.nl.hand.service.HandService;
import org.nl.wql.core.content.HttpContext;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.io.IOException;
import java.util.Map;
@Slf4j
@ -39,6 +39,7 @@ public class HandController {
return new ResponseEntity<>(handService.handlogin(param), HttpStatus.OK);
}
/**
* 查询工单及明细
*
@ -129,4 +130,14 @@ public class HandController {
public ResponseEntity<JSONObject> queryDeviceInfo() {
return new ResponseEntity<>(handService.queryDeviceInfo(), HttpStatus.OK);
}
@PostMapping("/queryDeviceErrorInfo")
@Log("查询设备报警记录")
@ApiOperation("查询设备报警记录")
public ResponseEntity<Object> queryDeviceErrorInfo(@RequestBody JSONObject whereJson) {
HttpContext ctx = new HttpContext("11");
ctx.setPage((String) (whereJson.get("page")));
ctx.setRows((String) (whereJson.get("size")));
return new ResponseEntity<>(handService.queryDeviceErrorInfo(whereJson,ctx), HttpStatus.OK);
}
}

5
nladmin-system/src/main/java/org/nl/hand/service/HandService.java

@ -1,7 +1,9 @@
package org.nl.hand.service;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.nl.wql.core.content.HttpContext;
import java.io.IOException;
import java.util.Map;
@ -17,6 +19,9 @@ public interface HandService {
*/
JSONObject handlogin(Map<String, String> param);
JSONObject queryDeviceErrorInfo(JSONObject whereJson, HttpContext ctx);
/**
* 查询工单及明细
*

30
nladmin-system/src/main/java/org/nl/hand/service/impl/HandServiceImpl.java

@ -1,6 +1,7 @@
package org.nl.hand.service.impl;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
@ -21,6 +22,10 @@ import org.nl.modules.system.service.UserService;
import org.nl.modules.system.service.dto.UserDto;
import org.nl.utils.RsaUtils;
import org.nl.wql.WQL;
import org.nl.wql.core.bean.ResultBean;
import org.nl.wql.core.bean.WQLObject;
import org.nl.wql.core.content.HttpContext;
import org.nl.wql.util.WqlUtil;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
@ -99,6 +104,31 @@ public class HandServiceImpl implements HandService {
return resultJSON;
}
@Override
public JSONObject queryDeviceErrorInfo(JSONObject whereJson, HttpContext ctx) {
String device_code = MapUtil.getStr(whereJson, "device_code");
String error_code = MapUtil.getStr(whereJson, "error_code");
String error_info = MapUtil.getStr(whereJson, "error_info");
WQLObject wo = WQLObject.getWQLObject("acs_device_error_log");
String where = "1 = 1 ";
if (StrUtil.isNotEmpty(device_code)) {
where += "and device_code like '%" + device_code + "%'";
}
if (StrUtil.isNotEmpty(error_code)) {
where += "and error_code like '%" + error_code + "%'";
}
if (StrUtil.isNotEmpty(error_info)) {
where += "and error_info like '%" + error_info + "%'";
}
JSONArray jsonArray = wo.pagequery(ctx, where, "error_time desc").getResultJSONArray(0);
// 返回
JSONObject resultJSON = new JSONObject();
resultJSON.put("code", "1");
resultJSON.put("desc", "查询成功");
resultJSON.put("result", jsonArray);
return resultJSON;
}
@Override
public JSONObject order() {
// 查询工单

2
nladmin-system/src/main/java/org/nl/modules/system/service/DictService.java

@ -48,6 +48,8 @@ public interface DictService {
*/
List<DictDto> queryAll(DictQueryCriteria dict);
List<Dict> queryAll();
/**
* 根据字典名查询字典详情
* @param name

10
nladmin-system/src/main/java/org/nl/modules/system/service/impl/DictDetailServiceImpl.java

@ -15,7 +15,10 @@
*/
package org.nl.modules.system.service.impl;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
import lombok.RequiredArgsConstructor;
import org.nl.acs.history.ErrorUtil;
import org.nl.modules.system.domain.Dict;
import org.nl.modules.system.domain.DictDetail;
import org.nl.modules.system.repository.DictDetailRepository;
@ -37,6 +40,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
import java.util.Optional;
/**
* @author Zheng Jie
@ -64,6 +68,8 @@ public class DictDetailServiceImpl implements DictDetailService {
dictDetailRepository.save(resources);
// 清理缓存
delCaches(resources);
Dict dict = dictRepository.findById(resources.getDict().getId()).get();
ErrorUtil.dictMap.put(dict.getName(), this.getDictByName(dict.getName()));
}
@Override
@ -75,6 +81,8 @@ public class DictDetailServiceImpl implements DictDetailService {
dictDetailRepository.save(resources);
// 清理缓存
delCaches(resources);
Dict dict = dictRepository.findById(resources.getDict().getId()).get();
ErrorUtil.dictMap.put(dict.getName(), this.getDictByName(dict.getName()));
}
@Override
@ -90,6 +98,8 @@ public class DictDetailServiceImpl implements DictDetailService {
// 清理缓存
delCaches(dictDetail);
dictDetailRepository.deleteById(id);
Dict dict = dictRepository.findById(id).get();
ErrorUtil.dictMap.put(dict.getName(), this.getDictByName(dict.getName()));
}
public void delCaches(DictDetail dictDetail) {

7
nladmin-system/src/main/java/org/nl/modules/system/service/impl/DictServiceImpl.java

@ -16,6 +16,7 @@
package org.nl.modules.system.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor;
@ -63,6 +64,12 @@ public class DictServiceImpl implements DictService {
return dictMapper.toDto(list);
}
@Override
public List<Dict> queryAll() {
List<Dict> list = dictRepository.findAll();
return list;
}
@Override
public JSONArray queryDetailByName(String name) {
JSONObject resultJson = new JSONObject();

6
nladmin-system/src/main/resources/config/application-dev.yml

@ -9,11 +9,11 @@ spring:
db-type: com.alibaba.druid.pool.DruidDataSource
driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
#url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.81.252}:${DB_PORT:3306}/${DB_NAME:hl_zgbz_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.1.90}:${DB_PORT:3306}/${DB_NAME:hl_zgbz_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true
url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:hl_zgbz_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true
username: ${DB_USER:root}
#password: ${DB_PWD:P@ssw0rd}
#password: ${DB_PWD:Root.123456}
password: ${DB_PWD:123456}
password: ${DB_PWD:password}
#password: ${DB_PWD:123456}
# 初始连接数
initial-size: 5
# 最小连接数

27
qd/src/api/acs/history/acsDeviceErrorLog.js

@ -0,0 +1,27 @@
import request from '@/utils/request'
export function add(data) {
return request({
url: 'api/deviceErrorLog',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: 'api/deviceErrorLog/',
method: 'delete',
data: ids
})
}
export function edit(data) {
return request({
url: 'api/deviceErrorLog',
method: 'put',
data
})
}
export default { add, edit, del }

145
qd/src/views/acs/history/deviceErrorInfo/index.vue

@ -0,0 +1,145 @@
<template>
<div class="app-container">
<!--工具栏-->
<div class="head-container">
<div v-if="crud.props.searchToggle">
<!-- 搜索 -->
<label class="el-form-item-label">设备编码</label>
<el-input
v-model="query.device_code"
clearable
placeholder="设备编码"
style="width: 185px;"
class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
<el-input
v-model="query.error_code"
clearable
placeholder="报警编码"
style="width: 185px;"
class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
<el-input
v-model="query.error_info"
clearable
placeholder="报警信息"
style="width: 185px;"
class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
<date-range-picker
v-model="query.error_time"
start-placeholder="error_timeStart"
end-placeholder="error_timeStart"
class="date-item"
/>
<rrOperation :crud="crud" />
</div>
<!--如果想在工具栏加入更多按钮可以使用插槽方式 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" :rules="rules" size="small" label-width="80px" />
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="crud.cancelCU">取消</el-button>
<el-button :loading="crud.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" />
<el-table-column prop="device_code" label="设备编码" />
<el-table-column prop="error_code" label="报警编码" />
<el-table-column prop="error_info" label="报警信息" />
<el-table-column prop="error_time" label="报警时间" />
<el-table-column
v-permission="['admin','acsDeviceErrorLog:edit','acsDeviceErrorLog:del']"
label="操作"
width="150px"
align="center"
>
<template slot-scope="scope">
<udOperation
:data="scope.row"
:permission="permission"
:disabled-edit="true"
/>
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<pagination />
</div>
</div>
</template>
<script>
import CRUD, { crud, form, header, presenter } from '@crud/crud'
import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation'
import udOperation from '@crud/UD.operation'
import pagination from '@crud/Pagination'
import crudAcsDeviceErrorLog from '@/api/acs/history/acsDeviceErrorLog'
const defaultForm = { error_log_uuid: null, device_code: null, error_code: null, error_info: null, error_time: null }
export default {
name: 'DeviceErrorLog',
components: { pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
return CRUD({
title: '设备报警记录',
url: 'api/deviceErrorLog',
idField: 'error_log_uuid',
sort: 'error_log_uuid,desc',
crudMethod: { ...crudAcsDeviceErrorLog },
optShow: {
add: false,
edit: false,
del: false,
download: false
}
})
},
data() {
return {
permission: {
add: ['admin', 'deviceErrorLog:add'],
edit: ['admin', 'deviceErrorLog:edit'],
del: ['admin', 'adeviceErrorLog:del']
},
rules: {},
queryTypeOptions: [
{ key: 'device_code', display_name: '设备编码' },
{ key: 'error_code', display_name: '报警编码' },
{ key: 'error_info', display_name: '报警信息' }
]
}
},
methods: {
// false
[CRUD.HOOK.beforeRefresh]() {
return true
}
}
}
</script>
<style scoped>
</style>
Loading…
Cancel
Save