同步
This commit is contained in:
@@ -10,6 +10,9 @@ import java.util.List;
|
||||
|
||||
@Component
|
||||
public class ApplicationAutoInitialExecuter {
|
||||
/**
|
||||
* 获取所有实现ApplicationAutoInitial接口的bean对象
|
||||
*/
|
||||
@Autowired(required = false)
|
||||
List<ApplicationAutoInitial> applicationAutoInitial;
|
||||
//是否启动
|
||||
@@ -25,7 +28,7 @@ public class ApplicationAutoInitialExecuter {
|
||||
|
||||
while (it.hasNext()) {
|
||||
ApplicationAutoInitial service = (ApplicationAutoInitial) it.next();
|
||||
service.autoInitial();
|
||||
service.autoInitial(); // 执行实现的autoInitial方法
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -13,15 +13,18 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 初始化启动线程
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class AutoRunServiceImpl implements AutoRunService, ApplicationAutoInitial {
|
||||
@Autowired(required = false)
|
||||
private List<AbstractAutoRunnable> abstractAutoRunnableList;
|
||||
private List<String> autoRun_code_index = new ArrayList();
|
||||
private List<Thread> threads = new ArrayList();
|
||||
private List<AbstractAutoRunnable> thread_autoRun = new ArrayList();
|
||||
private List<String> thread_code_index = new ArrayList();
|
||||
private List<AbstractAutoRunnable> thread_autoRun = new ArrayList(); // 线程类
|
||||
private List<String> autoRun_code_index = new ArrayList(); // key
|
||||
private List<Thread> threads = new ArrayList(); // 运行线程
|
||||
private List<String> thread_code_index = new ArrayList(); // key
|
||||
|
||||
@Override
|
||||
public synchronized void startThread(String threadCode) {
|
||||
@@ -172,8 +175,13 @@ public class AutoRunServiceImpl implements AutoRunService, ApplicationAutoInitia
|
||||
: new LinkedList();
|
||||
}
|
||||
|
||||
/**
|
||||
* 自动初始化线程
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public void autoInitial() throws Exception {
|
||||
// 获取所有的类型为AbstractAutoRunnable的bean
|
||||
List<AbstractAutoRunnable> list = this.getAllAutoThread();
|
||||
Iterator it = list.iterator();
|
||||
|
||||
|
||||
@@ -237,7 +237,7 @@ public class DeviceExtraServiceImpl extends CommonServiceImpl<DeviceExtraMapper,
|
||||
dto.setDevice_code(json.getString("device_code"));
|
||||
dto.setDevice_id(device_id);
|
||||
dto.setExtra_name((String) key);
|
||||
dto.setExtra_value(json.get(key).toString());
|
||||
dto.setExtra_value(String.valueOf(json.get(key)));
|
||||
dto.setFiled_type("01");
|
||||
dto.setOrder_seq(new BigDecimal(0));
|
||||
this.create(dto);
|
||||
|
||||
@@ -1776,6 +1776,9 @@ public class DeviceServiceImpl extends CommonServiceImpl<DeviceMapper, Device> i
|
||||
this.reload();
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载货位信息
|
||||
*/
|
||||
@Override
|
||||
public void reload() {
|
||||
this.storageCells = queryAllStorageCell();
|
||||
|
||||
@@ -17,10 +17,10 @@ public interface DeviceMapper extends CommonMapper<Device> {
|
||||
String queryDeviceSql = "SELECT d.*, dict.label AS device_type_name, dict2.label AS region_name " +
|
||||
"FROM " +
|
||||
"ACS_DEVICE d " +
|
||||
"LEFT JOIN sys_dict_detail dict ON dict.value = d.device_type " +
|
||||
"AND dict.`name` = 'device_type' " +
|
||||
"LEFT JOIN sys_dict_detail dict2 ON dict2.value = d.region " +
|
||||
"AND dict2.`name` = 'region_type' ";
|
||||
"LEFT JOIN sys_dict dict ON dict.value = d.device_type " +
|
||||
"AND dict.`code` = 'device_type' " +
|
||||
"LEFT JOIN sys_dict dict2 ON dict2.value = d.region " +
|
||||
"AND dict2.`code` = 'region_type' ";
|
||||
String wrapperDeviceSql = queryDeviceSql + " ${ew.customSqlSegment}";
|
||||
|
||||
/**
|
||||
|
||||
@@ -159,6 +159,9 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
|
||||
}
|
||||
}*/
|
||||
|
||||
/**
|
||||
* 加载指令数据
|
||||
*/
|
||||
@Override
|
||||
public void autoInitial() {
|
||||
this.reload();
|
||||
|
||||
@@ -20,8 +20,8 @@ import java.util.*;
|
||||
@Slf4j
|
||||
@Service
|
||||
public class DeviceAppServiceImpl implements DeviceAppService, ApplicationAutoInitial {
|
||||
private List<Device> devices = new ArrayList();
|
||||
private List<String> code_indexs = new ArrayList();
|
||||
private List<Device> devices = new ArrayList(); // 所有设备链表
|
||||
private List<String> code_indexs = new ArrayList(); // 设备对应的下表
|
||||
@Autowired
|
||||
private DeviceManageService deviceManageService;
|
||||
@Autowired
|
||||
@@ -315,7 +315,7 @@ public class DeviceAppServiceImpl implements DeviceAppService, ApplicationAutoIn
|
||||
}
|
||||
|
||||
public synchronized void reload() {
|
||||
List<DeviceManageDto> deviceManageDtos = this.deviceManageService.queryAllWithExtra();
|
||||
List<DeviceManageDto> deviceManageDtos = deviceManageService.queryAllWithExtra();
|
||||
this.devices = new ArrayList();
|
||||
Collections.synchronizedList(this.devices);
|
||||
this.code_indexs = new ArrayList();
|
||||
|
||||
@@ -42,13 +42,16 @@ public class DeviceManageServiceImpl implements DeviceManageService {
|
||||
@Override
|
||||
public List<DeviceManageDto> queryAllWithExtra() {
|
||||
// JSONArray arr = WQLObject.getWQLObject("acs_device").query().getResultJSONArray(0);
|
||||
// 获取所有的设备
|
||||
List<Device> deviceList= new LambdaQueryChainWrapper<>(deviceMapper).list();
|
||||
JSONArray arr = JSONArray.parseArray(JSON.toJSONString(deviceList));
|
||||
|
||||
// 获取列表扩展
|
||||
// JSONArray extArr = WQLObject.getWQLObject("acs_device_extra").query().getResultJSONArray(0);
|
||||
List<DeviceExtra> deviceExtraList= new LambdaQueryChainWrapper<>(deviceExtraMapper).list();
|
||||
JSONArray extArr = JSONArray.parseArray(JSON.toJSONString(deviceExtraList));
|
||||
|
||||
// 设备+扩展DTO
|
||||
List<DeviceExtraManageDto> extras = extArr.toJavaList(DeviceExtraManageDto.class);
|
||||
|
||||
// WQLObject runpointTab = WQLObject.getWQLObject("acs_device_runpoint");
|
||||
|
||||
@@ -30,127 +30,131 @@ import java.util.Map;
|
||||
@Service
|
||||
public class OpcServerServiceImpl implements OpcServerService, ApplicationAutoInitial {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(OpcServerServiceImpl.class);
|
||||
@Autowired OpcServerManageService opcServerManageService;
|
||||
Map<String, OpcServerManageDto> opcServerManageDtos = new HashMap();
|
||||
Map<String, Server> servers = Collections.synchronizedMap(new HashMap());
|
||||
Map<String, Group> groups = Collections.synchronizedMap(new HashMap());
|
||||
private static final Logger log = LoggerFactory.getLogger(OpcServerServiceImpl.class);
|
||||
@Autowired
|
||||
OpcServerManageService opcServerManageService;
|
||||
Map<String, OpcServerManageDto> opcServerManageDtos = new HashMap();
|
||||
Map<String, Server> servers = Collections.synchronizedMap(new HashMap());
|
||||
Map<String, Group> groups = Collections.synchronizedMap(new HashMap());
|
||||
|
||||
public OpcServerServiceImpl() {}
|
||||
|
||||
public void autoInitial() throws Exception {
|
||||
this.reload();
|
||||
if (OpcConfig.auto_start_opc) {
|
||||
Thread t =
|
||||
new Thread() {
|
||||
public void run() {
|
||||
Iterator var1 = OpcServerServiceImpl.this.opcServerManageDtos.values().iterator();
|
||||
|
||||
while (var1.hasNext()) {
|
||||
OpcServerManageDto dto = (OpcServerManageDto) var1.next();
|
||||
|
||||
try {
|
||||
OpcServerServiceImpl.this.getServer(dto.getOpc_code());
|
||||
OpcServerServiceImpl.log.info("加载opc server {}", dto.getOpc_code());
|
||||
} catch (Exception var4) {
|
||||
OpcServerServiceImpl.log.warn("启动无法载入servers", var4);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
t.start();
|
||||
public OpcServerServiceImpl() {
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized void reload() {
|
||||
this.opcServerManageDtos = this.opcServerManageService.queryAllServerMap();
|
||||
this.opcServerManageDtos = Collections.synchronizedMap(this.opcServerManageDtos);
|
||||
}
|
||||
/**
|
||||
* 加载opc服务,启动opc线程
|
||||
* @throws Exception
|
||||
*/
|
||||
public void autoInitial() throws Exception {
|
||||
this.reload(); // 加载opc服务
|
||||
if (OpcConfig.auto_start_opc) {
|
||||
Thread t =
|
||||
new Thread(() -> {
|
||||
Iterator var1 = OpcServerServiceImpl.this.opcServerManageDtos.values().iterator();
|
||||
|
||||
public synchronized Group getServer(String code) {
|
||||
Group group = null;
|
||||
group = (Group) this.groups.get(code);
|
||||
if (group != null) {
|
||||
try {
|
||||
if (group.isActive()) {
|
||||
return group;
|
||||
while (var1.hasNext()) {
|
||||
OpcServerManageDto dto = (OpcServerManageDto) var1.next();
|
||||
|
||||
try {
|
||||
OpcServerServiceImpl.this.getServer(dto.getOpc_code());
|
||||
OpcServerServiceImpl.log.info("加载opc server {}", dto.getOpc_code());
|
||||
} catch (Exception var4) {
|
||||
OpcServerServiceImpl.log.warn("启动无法载入servers", var4);
|
||||
}
|
||||
}
|
||||
});
|
||||
t.start();
|
||||
}
|
||||
} catch (JIException var9) {
|
||||
var9.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
Server server = (Server) this.servers.get(code);
|
||||
boolean needcreate = false;
|
||||
if (server == null) {
|
||||
needcreate = true;
|
||||
} else {
|
||||
try {
|
||||
group = server.findGroup(OpcConfig.opc_server_default_group);
|
||||
} catch (UnknownHostException
|
||||
| JIException
|
||||
| UnknownGroupException
|
||||
| NotConnectedException
|
||||
| IllegalArgumentException var8) {
|
||||
var8.printStackTrace();
|
||||
needcreate = true;
|
||||
}
|
||||
public synchronized void reload() {
|
||||
this.opcServerManageDtos = this.opcServerManageService.queryAllServerMap();
|
||||
this.opcServerManageDtos = Collections.synchronizedMap(this.opcServerManageDtos);
|
||||
}
|
||||
|
||||
if (needcreate) {
|
||||
OpcServerManageDto dto = (OpcServerManageDto) this.opcServerManageDtos.get(code);
|
||||
if (dto == null) {
|
||||
throw new BadRequestException("code 不存在");
|
||||
}
|
||||
public synchronized Group getServer(String code) {
|
||||
Group group = null;
|
||||
group = (Group) this.groups.get(code);
|
||||
if (group != null) {
|
||||
try {
|
||||
if (group.isActive()) {
|
||||
return group;
|
||||
}
|
||||
} catch (JIException var9) {
|
||||
var9.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
server = OpcServerUtl.getServerWithOutException(
|
||||
dto.getOpc_host(),
|
||||
dto.getCls_id(),
|
||||
dto.getUser(),
|
||||
dto.getPassword(),
|
||||
dto.getDomain());
|
||||
Server server = (Server) this.servers.get(code);
|
||||
boolean needcreate = false;
|
||||
if (server == null) {
|
||||
needcreate = true;
|
||||
} else {
|
||||
try {
|
||||
group = server.findGroup(OpcConfig.opc_server_default_group);
|
||||
} catch (UnknownHostException
|
||||
| JIException
|
||||
| UnknownGroupException
|
||||
| NotConnectedException
|
||||
| IllegalArgumentException var8) {
|
||||
var8.printStackTrace();
|
||||
needcreate = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (needcreate) {
|
||||
OpcServerManageDto dto = (OpcServerManageDto) this.opcServerManageDtos.get(code);
|
||||
if (dto == null) {
|
||||
throw new BadRequestException("code 不存在");
|
||||
}
|
||||
|
||||
server = OpcServerUtl.getServerWithOutException(
|
||||
dto.getOpc_host(),
|
||||
dto.getCls_id(),
|
||||
dto.getUser(),
|
||||
dto.getPassword(),
|
||||
dto.getDomain());
|
||||
|
||||
// server = OpcServerUtl.getServerWithOutException(this.OpcServer.getOpc_host(), this.OpcServer.getCls_id(), this.OpcServer.getUser(), this.OpcServer.getPassword(), this.OpcServer.getDomain());
|
||||
|
||||
|
||||
try {
|
||||
group = server.addGroup(OpcConfig.opc_server_default_group);
|
||||
} catch (Exception var7) {
|
||||
throw new BadRequestException(var7.toString());
|
||||
}
|
||||
try {
|
||||
group = server.addGroup(OpcConfig.opc_server_default_group);
|
||||
} catch (Exception var7) {
|
||||
throw new BadRequestException(var7.toString());
|
||||
}
|
||||
|
||||
this.servers.put(code, server);
|
||||
this.groups.put(code, group);
|
||||
this.servers.put(code, server);
|
||||
this.groups.put(code, group);
|
||||
}
|
||||
|
||||
return group;
|
||||
}
|
||||
|
||||
return group;
|
||||
}
|
||||
public synchronized void clearServer(String code) {
|
||||
try {
|
||||
Server server = (Server) this.servers.get(code);
|
||||
if (server != null) {
|
||||
server.disconnect();
|
||||
}
|
||||
|
||||
public synchronized void clearServer(String code) {
|
||||
try {
|
||||
Server server = (Server) this.servers.get(code);
|
||||
if (server!=null){
|
||||
server.disconnect();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
log.error("清理server异常,", e.getMessage());
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
log.error("清理server异常,",e.getMessage());
|
||||
this.servers.remove(code);
|
||||
this.groups.remove(code);
|
||||
}
|
||||
|
||||
this.servers.remove(code);
|
||||
this.groups.remove(code);
|
||||
}
|
||||
|
||||
public void writeInteger(String code, ItemValue... values) {
|
||||
try {
|
||||
Group group = this.getServer(code);
|
||||
OpcUtl.writeValue(group, values);
|
||||
} catch (Exception var4) {
|
||||
this.clearServer(code);
|
||||
log.warn("写入出错opc server {} 重新加载", code, var4);
|
||||
ThreadUtl.sleep(5000L);
|
||||
throw var4;
|
||||
public void writeInteger(String code, ItemValue... values) {
|
||||
try {
|
||||
Group group = this.getServer(code);
|
||||
OpcUtl.writeValue(group, values);
|
||||
} catch (Exception var4) {
|
||||
this.clearServer(code);
|
||||
log.warn("写入出错opc server {} 重新加载", code, var4);
|
||||
ThreadUtl.sleep(5000L);
|
||||
throw var4;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,71 +1,87 @@
|
||||
//package org.nl.acs.plc.rest;
|
||||
//
|
||||
//import org.nl.common.logging.annotation.Log;
|
||||
//import org.nl.acs.plc.service.OpcPlcService;
|
||||
//import org.nl.acs.opc.service.dto.OpcPlcDto;
|
||||
//import org.nl.acs.opc.service.dto.OpcPlcQueryParam;
|
||||
//import org.springframework.data.domain.Pageable;
|
||||
//import lombok.RequiredArgsConstructor;
|
||||
//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.util.Set;
|
||||
//
|
||||
///**
|
||||
//* @author jiaolm
|
||||
//* @date 2023-05-09
|
||||
//**/
|
||||
//@RestController
|
||||
//@RequiredArgsConstructor
|
||||
//@Api(tags = "plc服务管理")
|
||||
//@RequestMapping("/api/opcPlc")
|
||||
//public class OpcPlcController {
|
||||
//
|
||||
// private final OpcPlcService opcPlcService;
|
||||
//
|
||||
// @GetMapping
|
||||
// @Log("查询plc服务")
|
||||
// @ApiOperation("查询plc服务")
|
||||
// //@PreAuthorize("@el.check('opcPlc:list')")
|
||||
// public ResponseEntity query(OpcPlcQueryParam query, Pageable pageable){
|
||||
// return new ResponseEntity<>(opcPlcService.queryAll(query,pageable),HttpStatus.OK);
|
||||
// }
|
||||
//
|
||||
// @PostMapping
|
||||
// @Log("新增plc服务")
|
||||
// @ApiOperation("新增plc服务")
|
||||
// //@PreAuthorize("@el.check('opcPlc:add')")
|
||||
// public ResponseEntity create(@Validated @RequestBody OpcPlcDto resources){
|
||||
// return new ResponseEntity<>(opcPlcService.insert(resources),HttpStatus.CREATED);
|
||||
// }
|
||||
//
|
||||
// @PutMapping
|
||||
// @Log("修改plc服务")
|
||||
// @ApiOperation("修改plc服务")
|
||||
// //@PreAuthorize("@el.check('opcPlc:edit')")
|
||||
// public ResponseEntity update(@Validated @RequestBody OpcPlcDto resources){
|
||||
// opcPlcService.updateById(resources);
|
||||
// return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
// }
|
||||
//
|
||||
// @DeleteMapping
|
||||
// @Log("删除plc服务")
|
||||
// @ApiOperation("删除plc服务")
|
||||
// //@PreAuthorize("@el.check('opcPlc:del')")
|
||||
// public ResponseEntity delete(@RequestBody Set<String> ids) {
|
||||
// opcPlcService.removeByIds(ids);
|
||||
// return new ResponseEntity<>(HttpStatus.OK);
|
||||
// }
|
||||
//
|
||||
// /*
|
||||
// @Log("导出plc服务")
|
||||
// @ApiOperation("导出plc服务")
|
||||
// @GetMapping(value = "/download")
|
||||
// //@PreAuthorize("@el.check('opcPlc:list')")
|
||||
// public void download(HttpServletResponse response, OpcPlcQueryParam query) throws IOException {
|
||||
// opcPlcService.download(opcPlcService.queryAll(query), response);
|
||||
// }*/
|
||||
//
|
||||
//}
|
||||
package org.nl.acs.plc.rest;
|
||||
|
||||
import org.nl.common.logging.annotation.Log;
|
||||
import org.nl.acs.plc.service.OpcPlcService;
|
||||
import org.nl.acs.opc.service.dto.OpcPlcDto;
|
||||
import org.nl.acs.opc.service.dto.OpcPlcQueryParam;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
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.util.Set;
|
||||
|
||||
/**
|
||||
* @author jiaolm
|
||||
* @date 2023-05-09
|
||||
**/
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@Api(tags = "plc服务管理")
|
||||
@RequestMapping("/api/opcPlc")
|
||||
public class OpcPlcController {
|
||||
|
||||
private final OpcPlcService opcPlcService;
|
||||
|
||||
@GetMapping
|
||||
@Log("查询plc服务")
|
||||
@ApiOperation("查询plc服务")
|
||||
//@PreAuthorize("@el.check('opcPlc:list')")
|
||||
public ResponseEntity query(OpcPlcQueryParam query, Pageable pageable){
|
||||
return new ResponseEntity<>(opcPlcService.queryAll(query,pageable),HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
@Log("新增plc服务")
|
||||
@ApiOperation("新增plc服务")
|
||||
//@PreAuthorize("@el.check('opcPlc:add')")
|
||||
public ResponseEntity create(@Validated @RequestBody OpcPlcDto resources){
|
||||
return new ResponseEntity<>(opcPlcService.insert(resources),HttpStatus.CREATED);
|
||||
}
|
||||
|
||||
@PutMapping
|
||||
@Log("修改plc服务")
|
||||
@ApiOperation("修改plc服务")
|
||||
//@PreAuthorize("@el.check('opcPlc:edit')")
|
||||
public ResponseEntity update(@Validated @RequestBody OpcPlcDto resources){
|
||||
opcPlcService.updateById(resources);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
|
||||
@DeleteMapping
|
||||
@Log("删除plc服务")
|
||||
@ApiOperation("删除plc服务")
|
||||
//@PreAuthorize("@el.check('opcPlc:del')")
|
||||
public ResponseEntity delete(@RequestBody Set<String> ids) {
|
||||
opcPlcService.removeByIds(ids);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/selectList")
|
||||
@Log("下拉选PLC")
|
||||
@ApiOperation("下拉选PLC")
|
||||
//@PreAuthorize("@el.check('routePlan:list')")
|
||||
public ResponseEntity<Object> selectList() {
|
||||
return new ResponseEntity<>(opcPlcService.selectList(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/selectList/{opc_uuid}")
|
||||
@Log("下拉选PLC")
|
||||
@ApiOperation("下拉选PLC")
|
||||
//@PreAuthorize("@el.check('routePlan:list')")
|
||||
public ResponseEntity<Object> selectListByOpcID(@PathVariable String opc_uuid) {
|
||||
return new ResponseEntity<>(opcPlcService.selectListByOpcID(opc_uuid), HttpStatus.OK);
|
||||
}
|
||||
|
||||
/*
|
||||
@Log("导出plc服务")
|
||||
@ApiOperation("导出plc服务")
|
||||
@GetMapping(value = "/download")
|
||||
//@PreAuthorize("@el.check('opcPlc:list')")
|
||||
public void download(HttpServletResponse response, OpcPlcQueryParam query) throws IOException {
|
||||
opcPlcService.download(opcPlcService.queryAll(query), response);
|
||||
}*/
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.nl.acs.plc.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import org.nl.acs.common.base.PageInfo;
|
||||
import org.nl.acs.common.base.CommonService;
|
||||
import org.nl.acs.opc.domain.OpcPlc;
|
||||
@@ -50,4 +51,18 @@ public interface OpcPlcService extends CommonService<OpcPlc> {
|
||||
* @throws IOException /
|
||||
*/
|
||||
// void download(List<OpcPlcDto> all, HttpServletResponse response) throws IOException;
|
||||
|
||||
/**
|
||||
* 前端PLC下拉选列表
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<OpcPlc> selectList();
|
||||
|
||||
/**
|
||||
* 根据OPC标识得到前端PLC下拉选列表
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<OpcPlc> selectListByOpcID(String opc_uuid);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
package org.nl.acs.plc.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.nl.acs.common.base.PageInfo;
|
||||
@@ -12,6 +15,7 @@ import org.nl.acs.plc.service.OpcPlcService;
|
||||
import org.nl.acs.opc.service.dto.OpcPlcDto;
|
||||
import org.nl.acs.opc.service.dto.OpcPlcQueryParam;
|
||||
import org.nl.acs.opc.service.mapper.OpcPlcMapper;
|
||||
import org.nl.system.service.logicflow.dao.StageImage;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Propagation;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -89,6 +93,40 @@ public class OpcPlcServiceImpl extends CommonServiceImpl<OpcPlcMapper, OpcPlc> i
|
||||
return this.removeByIds(set);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OpcPlc> selectList() {
|
||||
List<OpcPlc> lists = opcPlcMapper.selectList(new LambdaQueryWrapper<OpcPlc>()
|
||||
.eq(OpcPlc::getIs_delete, "0")
|
||||
.eq(OpcPlc::getIs_active, "1")
|
||||
.orderByDesc(OpcPlc::getUpdate_time));
|
||||
return lists;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OpcPlc> selectListByOpcID(String opc_uuid) {
|
||||
//OPC_PLC表【acs_opc_plc】
|
||||
// JSONArray arr = WQLObject.getWQLObject("acs_opc_plc").query("is_delete= '0' AND is_active= '1' and opc_server_id = '" + opc_uuid + "'").getResultJSONArray(0);
|
||||
// JSONArray result = new JSONArray();
|
||||
// for (int i = 0; i < arr.size(); i++) {
|
||||
// JSONObject obj = arr.getJSONObject(i);
|
||||
// JSONObject json = new JSONObject();
|
||||
// json.put("plc_id", obj.getString("plc_id"));
|
||||
// json.put("plc_code", obj.getString("plc_code"));
|
||||
// json.put("plc_name", obj.getString("plc_name"));
|
||||
// result.add(json);
|
||||
// }
|
||||
// return result;
|
||||
|
||||
List<OpcPlc> lists = opcPlcMapper.selectList(new LambdaQueryWrapper<OpcPlc>()
|
||||
.eq(OpcPlc::getIs_delete, "0")
|
||||
.eq(OpcPlc::getIs_active, "1")
|
||||
.eq(OpcPlc::getOpc_server_id, opc_uuid)
|
||||
.orderByDesc(OpcPlc::getUpdate_time));
|
||||
return lists;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
private void delCaches(String id) {
|
||||
redisUtils.delByKey(CACHE_KEY + "::id:", id);
|
||||
|
||||
@@ -514,6 +514,10 @@ public class RouteLineServiceImpl extends CommonServiceImpl<RouteLineMapper, Rou
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载路由路线
|
||||
* @throws SQLException
|
||||
*/
|
||||
@Override
|
||||
public void reload() throws SQLException {
|
||||
Object[] param = new Object[0];
|
||||
|
||||
@@ -246,6 +246,10 @@ public class TaskServiceImpl extends CommonServiceImpl<TaskMapper, Task> impleme
|
||||
FileUtil.downloadExcel(list, response);
|
||||
}*/
|
||||
|
||||
/**
|
||||
* 获取未完成任务
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public void autoInitial() throws Exception {
|
||||
Class var1 = TaskInstructionLock.class;
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
|
||||
package org.nl.acs.udw.rest;
|
||||
|
||||
|
||||
import cn.dev33.satoken.annotation.SaIgnore;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.acs.udw.service.UdwManageService;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@Api(tags = "内存点位管理")
|
||||
@RequestMapping("/api/udw")
|
||||
@Slf4j
|
||||
public class UdwManagerController {
|
||||
|
||||
private final UdwManageService udwManageService;
|
||||
|
||||
// @GetMapping
|
||||
// @Log("查询内存点位")
|
||||
// @ApiOperation("查询内存点位")
|
||||
// @SaIgnore
|
||||
// public ResponseEntity<Object> query(@RequestParam JSONObject whereJson) {
|
||||
// return new ResponseEntity<>(udwManageService.queryByConditions(whereJson), HttpStatus.OK);
|
||||
// }
|
||||
|
||||
@GetMapping
|
||||
@ApiOperation("查询内存点位")
|
||||
@SaIgnore
|
||||
//@PreAuthorize("@el.check('device:list')")
|
||||
public ResponseEntity<Object> query(@RequestParam Map whereJson, Pageable page) {
|
||||
return new ResponseEntity<>(udwManageService.queryAll(whereJson, page), HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
package org.nl.start;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.boot.ApplicationArguments;
|
||||
import org.springframework.boot.ApplicationRunner;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* 随项目启动模块
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class Init implements ApplicationRunner {
|
||||
|
||||
@Override
|
||||
public void run(ApplicationArguments args) throws Exception {
|
||||
System.out.println("项目启动成功!");
|
||||
}
|
||||
}
|
||||
@@ -157,10 +157,12 @@ public class SysNoticeServiceImpl extends ServiceImpl<SysNoticeMapper, SysNotice
|
||||
public void createNotice(String msg, String title, String type) {
|
||||
log.info("创建消息通知-信息:{}, 标题:{}, 类型:{}", msg, title, type);
|
||||
// 获取标题相同的信息
|
||||
List<SysNotice> sysNotices = sysNoticeMapper.selectList(new LambdaQueryWrapper<SysNotice>().eq(SysNotice::getNotice_title, title));
|
||||
List<SysNotice> sysNotices = sysNoticeMapper.selectList(new LambdaQueryWrapper<SysNotice>()
|
||||
.eq(SysNotice::getNotice_title, title)
|
||||
.eq(SysNotice::getHave_read, NoticeEnum.HAVE_READ_OFF.getValue()));
|
||||
if (ObjectUtil.isNotEmpty(sysNotices)) return;
|
||||
SysNotice noticeDto = SysNotice.builder()
|
||||
.notice_id(IdUtil.getSnowflake(1,1).nextIdStr())
|
||||
.notice_id(IdUtil.getSnowflake(1, 1).nextIdStr())
|
||||
.notice_type(type)
|
||||
.notice_title(title)
|
||||
.notice_content(msg)
|
||||
@@ -180,4 +182,6 @@ public class SysNoticeServiceImpl extends ServiceImpl<SysNoticeMapper, SysNotice
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,120 +0,0 @@
|
||||
# 端口
|
||||
server:
|
||||
port: 9000
|
||||
|
||||
# Sa-Token 配置
|
||||
sa-token:
|
||||
# ------- SSO-模式一相关配置 (非模式一不需要配置)
|
||||
|
||||
# 配置 Cookie 作用域
|
||||
|
||||
# ------- SSO-模式二相关配置
|
||||
sso:
|
||||
# Ticket有效期 (单位: 秒),默认五分钟
|
||||
ticket-timeout: 300
|
||||
# 所有允许的授权回调地址比较重要
|
||||
allow-url: "*"
|
||||
# 是否打开单点注销功能
|
||||
is-slo: true
|
||||
# ------- SSO-模式三相关配置 (下面的配置在SSO模式三并且 is-slo=true 时打开)
|
||||
# # 是否打开模式三
|
||||
isHttp: true
|
||||
# # 接口调用秘钥(用于SSO模式三的单点注销功能)
|
||||
secretkey: kQwIOrYvnXmSDkwEiFngrKidMcdrgKor
|
||||
token-name: EL-ADMIN-TOEKN
|
||||
# # ---- 除了以上配置项,你还需要为 Sa-Token 配置http请求处理器(文档有步骤说明)
|
||||
#
|
||||
spring:
|
||||
#配置 Jpa
|
||||
jpa:
|
||||
hibernate:
|
||||
ddl-auto: none
|
||||
open-in-view: true
|
||||
properties:
|
||||
hibernate:
|
||||
dialect: org.hibernate.dialect.MySQL5InnoDBDialect
|
||||
enable_lazy_load_no_trans: true
|
||||
# 数据源
|
||||
datasource:
|
||||
druid:
|
||||
db-type: com.alibaba.druid.pool.DruidDataSource
|
||||
driverClassName: com.mysql.cj.jdbc.Driver
|
||||
# url: jdbc:log4jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:whxr_test}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
|
||||
url: jdbc:mysql://${DB_HOST:47.111.78.178}:${DB_PORT:3306}/${DB_NAME:whxr}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
|
||||
username: ${DB_USER:root}
|
||||
password: ${DB_PWD:P@ssw0rd}
|
||||
# username: ${DB_USER:root}
|
||||
# password: ${DB_PWD:root}
|
||||
# 初始连接数
|
||||
initial-size: 5
|
||||
# 最小连接数
|
||||
min-idle: 15
|
||||
# 最大连接数
|
||||
max-active: 30
|
||||
# 是否自动回收超时连接
|
||||
remove-abandoned: true
|
||||
# 超时时间(以秒数为单位)
|
||||
remove-abandoned-timeout: 180
|
||||
# 获取连接超时时间
|
||||
max-wait: 300
|
||||
# 连接有效性检测时间
|
||||
time-between-eviction-runs-millis: 60000
|
||||
# 连接在池中最小生存的时间
|
||||
min-evictable-idle-time-millis: 300000
|
||||
# 连接在池中最大生存的时间
|
||||
max-evictable-idle-time-millis: 900000
|
||||
# 指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除
|
||||
test-while-idle: true
|
||||
# 指明是否在从池中取出连接前进行检验,如果检验失败, 则从池中去除连接并尝试取出另一个
|
||||
test-on-borrow: true
|
||||
# 是否在归还到池中前进行检验
|
||||
test-on-return: false
|
||||
# 检测连接是否有效
|
||||
validation-query: select 1
|
||||
# 配置监控统计
|
||||
# webStatFilter:
|
||||
# enabled: true
|
||||
# stat-view-servlet:
|
||||
# enabled: true
|
||||
# url-pattern: /druid/*
|
||||
# reset-enable: false
|
||||
# filter:
|
||||
# stat:
|
||||
# enabled: true
|
||||
# # 记录慢SQL
|
||||
# log-slow-sql: true
|
||||
# slow-sql-millis: 1000
|
||||
# merge-sql: true
|
||||
# wall:
|
||||
# config:
|
||||
# multi-statement-allow: true
|
||||
|
||||
# Redis配置 (SSO模式一和模式二使用Redis来同步会话)
|
||||
redis:
|
||||
# Redis数据库索引(默认为0)
|
||||
database: 1
|
||||
# Redis服务器地址
|
||||
host: 47.96.133.178
|
||||
# Redis服务器连接端口
|
||||
port: 6479
|
||||
# Redis服务器连接密码(默认为空)
|
||||
password: 942464Yy
|
||||
# 连接超时时间
|
||||
timeout: 10s
|
||||
lettuce:
|
||||
pool:
|
||||
# 连接池最大连接数
|
||||
max-active: 200
|
||||
# 连接池最大阻塞等待时间(使用负值表示没有限制)
|
||||
max-wait: -1ms
|
||||
# 连接池中的最大空闲连接
|
||||
max-idle: 10
|
||||
# 连接池中的最小空闲连接
|
||||
min-idle: 0
|
||||
|
||||
forest:
|
||||
# 关闭 forest 请求日志打印
|
||||
log-enabled: false
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user